Skip to content

Icon support in web client #784

Description

@vibhor1997a

Is your feature request related to a problem? Please describe.

Currently, MCP servers can define icons in their server.json configuration file (as per the MCP server schema), but these icons are not displayed in the new official UI client. This creates a less visually appealing and less intuitive experience when browsing or selecting MCP servers in the registry or connector list. Users cannot easily identify servers by their visual branding, making it harder to distinguish between different MCP servers at a glance.

Describe the solution you'd like

I would like the MCP registry UI clients to support displaying icons defined in the server.json configuration file. Specifically:

  1. Icon Display in Connector Lists: When users browse available MCP servers in the connector/registry interface, each server should display its configured icon (if available) next to the server name and description.

  2. Icon Support for Multiple Formats: Support for the icon configuration format as defined in the MCP server schema, including:

    • Multiple icon sizes (e.g., sizes: ["45x44"])
    • Different MIME types (e.g., image/png, image/svg+xml)
    • Theme-specific icons (e.g., theme: "light" or theme: "dark")
  3. Fallback Behavior: If an icon is not available or fails to load, the UI should gracefully fall back to a default icon or placeholder.

  4. Icon Caching: Icons should be cached appropriately to improve performance and reduce load times.

Describe alternatives you've considered

  1. No Icons: Continue without icon support. This maintains the status quo but misses an opportunity to improve user experience and visual branding.

Additional context

  • The MCP server schema already supports icon definitions in server.json (as seen in the MCP server schema documentation)
  • Many MCP servers (including JustCall MCP Server) already have icons configured in their server.json files
  • Icon support would improve:
    • User Experience: Easier visual identification of servers
    • Brand Recognition: Better branding opportunities for MCP server providers
    • Professional Appearance: More polished and modern UI
    • Accessibility: Visual cues can help users with different learning styles

Related Files:

  • MCP Server Schema: https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json
  • Example server.json with icons: See server.json in this repository

Activity

  1. added a commit that references this issue on Apr 28, 2026
    9c349e8
  2. added a commit that references this issue on Aug 27, 2026
    8c478cd
  3. tounsils commented on Aug 27, 2026

    @tounsils

    Happy to take this one if nobody is on it.

    The schema has supported icons for a while and the web client just never rendered them, so the change is confined to ui_index.html. Approach I went with:

    • HTTPS only at render time. validateIcon already rejects other schemes at publish, but this UI can be pointed at a staging, local or custom API base URL from its own settings, so the scheme is re-checked rather than trusted.
    • Scalable icons win. sizes: ["any"] is preferred, otherwise the smallest icon at least as wide as the rendered size, so it stays crisp without pulling a needlessly large file.
    • theme: "dark" used only as a fallback, since this UI has a light background.
    • src through the existing escapeAttr, empty alt (the icon sits beside the server name, so repeating it is noise for screen readers), loading="lazy", referrerpolicy="no-referrer", and a broken image removes itself rather than leaving a placeholder.

    Tested the selection against the first 100 servers in the production registry, which happens to cover every shape published today: no sizes field, a single 512x512, ["any"], and a 256/512 pair. Also checked that http, javascript:, data: and null sources render nothing.

    PR incoming. Happy to change the approach if you had something different in mind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions