GitLab MCP Server assigns 50 unique SVG icons to all 1065 self-managed Enterprise/Premium tools (1071 on GitLab.com Enterprise/Premium with Orbit), 32 base meta-tools (49 self-managed Enterprise, 50 GitLab.com Enterprise), 45 resources, and 37 prompts. Icons are stored as base64-encoded SVG data URIs (data:image/svg+xml;base64,...) with Sizes: ["any"] for scalability, and help MCP clients render recognizable UI elements for each GitLab domain. They are optional presentation metadata, not a negotiated MCP protocol capability: a client that cannot render icons simply ignores them, and tool behavior is unchanged.
- 16×16 viewport — minimal size optimized for tool lists and sidebars
currentColor fill — icons adapt to light and dark themes automatically
- Inline data URIs — embedded in the binary, zero network requests
- One icon per domain — related tools share the same icon for visual grouping
All icons at 32px display size, grouped by domain category. The Name column shows the Go variable used in code.
| Preview | Name | Packages |
|---|
 | IconBranch | branches, repository, repositorysubmodules |
 | IconCommit | commits, mrcontextcommits |
 | IconTag | tags |
 | IconRelease | releases |
 | IconFile | files, markdown, pages |
| Preview | Name | Packages |
|---|
 | IconIssue | issues, workitems |
 | IconLabel | awardemoji, badges, grouplabels, labels, topics |
 | IconMilestone | groupmilestones, milestones |
 | IconBoard | boards, groupboards |
 | IconLink | issuelinks, releaselinks |
 | IconTodo | todos |
 | IconEpic | epics, epicdiscussions |
| Preview | Name | Packages |
|---|
 | IconMR | mergerequests, mrapprovals, mrchanges, deploymentmergerequests |
 | IconDiscussion | issuediscussions, issuenotes, mrdiscussions, mrdraftnotes, mrnotes,
commitdiscussions, epicdiscussions, snippetdiscussions |
| Preview | Name | Packages |
|---|
 | IconPipeline | cilint, pipelines, pipelinetriggers |
 | IconJob | jobs, jobtokenscope |
 | IconSchedule | freezeperiods, pipelineschedules |
 | IconVariable | civariables, groupvariables, instancevariables |
 | IconRunner | clusteragents, runners, runnercontrollers, runnercontrollerscopes |
| Preview | Name | Packages |
|---|
 | IconEnvironment | environments |
 | IconDeploy | deployments |
 | IconInfra | terraformstates |
| Preview | Name | Packages |
|---|
 | IconPackage | dependencyproxy, packages |
 | IconContainer | containerregistry |
| Preview | Name | Packages |
|---|
 | IconSearch | search |
 | IconAnalytics | appstatistics, issuestatistics, projectstatistics, usagedata |
| Preview | Name | Packages |
|---|
 | IconSecurity | license, protectedenvs, securefiles |
 | IconToken | accesstokens, deploytokens, jobtokenscope, runnercontrollertokens |
 | IconKey | deploykeys, keys |
| Preview | Name | Packages |
|---|
 | IconWiki | wikis |
 | IconSnippet | snippets |
| Preview | Name | Packages |
|---|
 | IconConfig | appearance, applications, customattributes, dbmigrations,
elicitationtools, featureflags, features, planlimits, settings, sidekiq |
 | IconServer | metadata, serverupdate |
 | IconTemplate | ciyamltemplates, dockerfiletemplates, gitignoretemplates,
licensetemplates, projecttemplates |
| Preview | Name | Packages |
|---|
 | IconNotify | broadcastmessages, notifications |
 | IconEvent | events, resourceevents |
 | IconAlert | alertmanagement, errortracking |
Icon rendering depends on the MCP client. The server attaches the same icon metadata in every case; whether it appears is up to the client. Icons are optional, so clients that do not render them lose nothing functional.
| MCP Client | SVG Icons | Notes |
|---|
| VS Code (GitHub Copilot) | ✅ Yes | Full SVG rendering support |
| Claude Desktop | ❌ No | Does not render tool icons |
| Continue.dev | ⚠️ Partial | Depends on version |
| Claude Code | ❌ No | Text-only interface |
- Source:
internal/toolutil/icons.go
- Encoding:
data:image/svg+xml;base64,... (base64-encoded SVG data URIs). The previews on this page use URL-encoded SVG (data:image/svg+xml,%3Csvg ...) for inline browser rendering only — the registered icons in internal/toolutil/icons.go are base64.
- Viewport: All icons use 16×16 with
currentColor for theme adaptation
- Registration: Icons are assigned through catalog action specs and group specs, then projected into meta, individual, and dynamic tool surfaces
GitLab MCP Server assigns 50 unique SVG icons to every tool, resource, and prompt it exposes, so MCP clients can render recognizable UI elements for each GitLab domain. Related tools share one icon for visual grouping — for example, branches, repository, and submodules all use IconBranch. Icons are stored as base64-encoded SVG data URIs with Sizes: ["any"] for scalability, drawn on a 16×16 viewport, and filled with currentColor so they adapt automatically to light and dark themes. They are optional presentation metadata, not a negotiated MCP protocol capability.
Each icon uses a minimal 16×16 viewport optimized for tool lists and sidebars, with a currentColor fill so it adapts to light and dark themes. Icons are embedded inline as base64-encoded SVG data URIs (data:image/svg+xml;base64,...) directly in the binary, requiring zero network requests, and one icon is shared per domain so related tools group visually. They are registered through catalog action specs and group specs, then projected into the meta, individual, and dynamic tool surfaces. The source lives in internal/toolutil/icons.go.
Icon rendering varies by client. VS Code with GitHub Copilot fully renders SVG tool icons, and Continue.dev offers partial support depending on the version. Claude Desktop does not render tool icons, and Claude Code is a text-only interface that does not display them. Because icons are optional metadata, clients that do not support icon rendering simply ignore them and tool functionality is unaffected.
No. Icons are optional presentation metadata attached to tools, resources, and prompts. Clients that cannot render icons ignore them, and every tool behaves identically whether or not its icon is displayed. Icons exist purely to help users visually recognize GitLab domains in clients that support SVG rendering; they never change a tool’s parameters, behavior, or results.