Support custom icons for MCP servers and marketplace plugins

Resolved 💬 4 comments Opened Apr 16, 2026 by e11en Closed May 27, 2026

Feature Request

Allow MCP servers and marketplace plugins to display custom icons in the Claude Code UI instead of the default globe icon.

Current Behavior

All MCP servers display the same default globe icon in the Claude Code UI, regardless of whether the server provides icon metadata via the MCP protocol. This makes it difficult to visually distinguish between multiple connected MCP servers.

Proposed Solution

1. Read icons from MCP serverInfo (MCP protocol standard)

The MCP specification (SEP-973) defines an icons field in the server's Implementation metadata, returned during initialization. MCP SDKs (Python, TypeScript) already support setting this field via FastMCP(icons=[...]). Claude Code should read and display these icons.

Example server response during init:

{
  "implementation": {
    "name": "my-server",
    "version": "1.0.0",
    "icons": [
      {
        "src": "data:image/png;base64,iVBORw0KGgo...",
        "mimeType": "image/png",
        "sizes": ["128x128"]
      }
    ]
  }
}

2. Support icon field in plugin.json for marketplace plugins

Allow plugin authors to include an icon in their plugin manifest:

{
  "name": "my-plugin",
  "description": "...",
  "icon": "./icon.png"
}

Use Case

We maintain an internal company marketplace with multiple plugins and custom MCP servers. Users connect several MCP servers simultaneously — having distinct icons would greatly improve discoverability and UX. Our servers already serve the icons field via the MCP protocol, but Claude Code doesn't render them.

Prior Art

  • Continues from #28187 (closed as stale without team response)
  • MCP spec: SEP-973 (icons in serverInfo)
  • MCP spec: #1040 (icon support discussion)

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗