[FEATURE] Render images returned from MCP tool calls inline in chat UI
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
When an MCP tool returns an ImageContent response (base64 PNG/JPG), Claude Code displays the raw base64 JSON blob in the chat output instead of rendering the image. This makes it impossible for the user to see visual output from MCP tools — even though Claude itself receives and processes the image correctly.
Proposed Solution
Detect ImageContent blocks in MCP tool results and render them as images inline in the chat UI, the same way images render when attached directly to a message. The image should appear in the tool result expansion area beneath the tool call, visible to the user alongside Claude's text response.
Alternative Solutions
Currently working around this by having the MCP server save images to disk and opening them separately, or relying solely on Claude's text description of the image. Neither is a good experience. The Claude.ai web UI already renders images in responses — this gap only exists in Claude Code.
Priority
High - Significant impact on productivity
Feature Category
MCP server integration
Use Case Example
- I have a local MCP server that renders Marp presentation slides to PNG images
- I ask Claude to review my slide deck: "View slides 1–5 and tell me if the layout looks good"
- Claude calls the MCP tool, receives the images, and analyzes them
- Claude gives me feedback — but I can't see the slides myself in the chat
- With inline rendering, I'd see the rendered slides alongside Claude's feedback, making it a true collaborative review experience rather than a one-sided description
The same pattern applies to any visual MCP tool: diagram renderers, screenshot tools, chart generators, map visualizers, etc.
Additional Context
The MCP spec explicitly supports ImageContent as a tool response type. Claude Code correctly passes the image data to the model — the missing piece is surfacing it in the UI. This would unlock a whole category of visual MCP tools that currently have degraded UX in Claude Code compared to other interfaces.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗