anthropics / anthropics/claude-ai-mcp
Custom connector icon is frozen at add-time — doesn't refresh on favicon change, and the icons field is ignored
- Dominant language
- No language data
- Stars
- 471
- Forks
- 76
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
A custom (remote) MCP connector's icon appears to be a **point-in-time snapshot of the origin's favicon, captured when the connector is first added**. It never refreshes afterward — even when the live favicon changes (e.g. a rebrand), the local HTTP cache is cleared, or the MCP server advertises new icons via the `icons` field. The connector keeps showing the original logo indefinitely.
## Environment
- Claude Desktop (macOS), latest
- Custom connector added by URL (remote MCP server over HTTPS)
## Steps to reproduce
1. Add a custom connector pointing at a remote MCP server, e.g. `https://example.com/mcp`. Claude renders the origin's favicon in the connector list.
2. Later, change the favicon served at that origin (verified live: new `favicon.ico` / `favicon.svg` / `favicon-192.png` / `apple-touch-icon.png`, all returning `200` with a fresh `Last-Modified`).
3. Reopen the connector in Claude Desktop.
## Expected
The connector shows the current, live favicon (or at least re-fetches on reconnect / on a cache-bust interval).
## Actual
The connector keeps showing the **original** icon from when it was first added. This persists across:
- **Disconnecting** the connector (the disconnected "You are not connected yet" state still shows the old icon).
- **Clearing the local Electron/Chromium HTTP cache** (`~/Library/Application Support/Claude/{Cache,Code Cache,GPUCache,...}` and `~/Library/Caches/com.anthropic.claudefordesktop/`) and relaunching. This confirms the stale icon is **not** in the local disk cache — it's stored with the connector definition / account state, frozen at add-time.
## Workaround
Fully **remove** the connector (not just disconnect) and **re-add** it. That forces a fresh favicon capture. If it persists on Desktop, removing + re-adding on **claude.ai in a browser** and then returning to Desktop clears it (the connector list is account-synced).
## Related: the `icons` field is not honored
Per MCP spec revision `2025-11-25` (SEP-973), a server can advertise display icons in the `serverInfo` block of the `initialize` response (`icons: [{ src, mimeType, sizes }]`). Our server advertises correct, current icons there. **claude.ai / Claude Desktop appears to ignore this field** and relies solely on the add-time favicon snapshot, so a rebrand never reaches it without a manual remove-and-re-add.
For comparison, other MCP clients (Codex, VS Code) **do** read the `icons` field and pick up the updated icons automatically. Honoring `icons` (and/or re-fetching the favicon on reconnect) in claude.ai/Desktop would close this gap.
## Suggested fixes (either would resolve it)
1. Honor the `icons` field from `serverInfo` and re-read it on reconnect / periodically.
2. Re-fetch the origin favicon on reconnect or invalidate the snapshot after some TTL, instead of freezing it at add-time.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.