Skip to content

Custom emoji

A group’s custom emoji are images it adds to the emoji its projects can react with and write in Markdown. These actions list, add and delete them. Reacting to an issue, a merge request or a snippet with an emoji is not one of them: those are actions of the issue, merge request and snippet groups. Deleting an emoji leaves the reactions that used it in place, shown as its :name:.

  • “List the custom emoji of group platform”
  • “Add a party_parrot emoji to group platform”
  • “Delete the outdated custom emoji”
  • Dynamic, the default surface: call gitlab_execute_action with action set to the action’s ID, such as custom_emoji.create, and its parameters in params. gitlab_find_action finds an ID from a description of the task.
  • Meta (GITLAB_MCP_TOOL_SURFACE=meta): call gitlab_custom_emoji with action set to the action’s name, such as create, and its parameters in params.
  • Individual (GITLAB_MCP_TOOL_SURFACE=individual): call the action’s own tool, such as gitlab_create_custom_emoji, with its parameters as the arguments.

Every tier serves the whole group, on self-managed instances and on GitLab.com alike.

Read-only actions: 1 of 3, the ones a deployment in read-only mode keeps.

The description of each action, and of each of its parameters, is the text the server serves for it on the default surface, quoted as served. A destructive action runs only once confirmed, unless GITLAB_MCP_YOLO_MODE (or AUTOPILOT) skips that step: the dynamic surface needs confirm: true on gitlab_execute_action, and the other two take a confirm parameter or the client’s prompt (Destructive actions).

ActionIndividual
custom_emoji.creategitlab_create_custom_emoji
custom_emoji.deletegitlab_delete_custom_emoji
custom_emoji.listgitlab_list_custom_emoji

Create group-level custom emoji using GraphQL-backed routes.

  • Meta-tool: gitlab_custom_emoji, action create
  • Individual tool: gitlab_create_custom_emoji
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
group_pathstringyesrequired,Group full path (e.g. my-group)
namestringyesrequired,Emoji name without colons (e.g. party_parrot)
urlstringyesrequired,URL to the emoji image (PNG or GIF recommended)

Delete group-level custom emoji using GraphQL-backed routes.

  • Meta-tool: gitlab_custom_emoji, action delete
  • Individual tool: gitlab_delete_custom_emoji
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
idstringyesrequired,Custom emoji GID (e.g. gid://gitlab/CustomEmoji/1)

List group-level custom emoji using GraphQL-backed routes.

  • Meta-tool: gitlab_custom_emoji, action list
  • Individual tool: gitlab_list_custom_emoji
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
group_pathstringyesrequired,Group full path (e.g. my-group)
afterstringnoCursor for forward pagination (from previous response end_cursor)
beforestringnoCursor for backward pagination (from previous response start_cursor). The page size comes from last, or from first when last is omitted
firstintegernoNumber of items to return (default 20, max 100)
lastintegernoNumber of items to return from the end of the range (backward pagination). Cannot be combined with first