Skip to content

Support custom icons for MCP servers and marketplace plugins #49040

Description

@e11en

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions