feat(mcp): icons on server, tools, prompts, and resources - verify client rendering first #411
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#411
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #412.
The MCP spec (2025-06-18 and later) defines
iconsarrays on tools, resources, prompts, and the server implementation. Claude Code's rendering of them is UNCONFIRMED. Bundle strings show that icon handling exists, but there is no verified display path. The terminal CLI may not render image icons at all, and the desktop app might. So this is investigate-first, build-second.If icons render anywhere, the madtea icon is obvious: the 🎩🫖 hat-and-teapot, served as an SVG or PNG data URI. The spec allows
data:URIs, which avoids a hosted-URL dependency. This would complement the earlier emoji-in-server-key display hack with a spec-proper channel, and it could eventually replace that hack if clients render implementation icons in the tool-call line.Acceptance criteria
sizesandmimeTypedeclared.docs/COMPAT.mdnote on which clients render icons.Labelled status/needs-verification, because the next step needs a live interactive client session. The first acceptance criterion is to serve the icons and record what Claude Code (terminal and desktop app) and at least one other client actually render. Building the full icon surface before that check would violate the issue's own ordering, and everything after the probe depends on what the observation shows.
The plan is ready to run: a small probe branch that serves the 🎩🫖 icon as an SVG data URI on the server implementation plus one tool, one prompt and one resource, using the spec
iconsarrays withsizesandmimeType. Then I eyeball the terminal CLI, the desktop app and one non-Claude client, and comment the findings here. If nothing renders anywhere, this closes with the evidence and a revisit trigger, per the issue body.This parks here until I run that probe in an interactive session.