[FEATURE] Desktop: render images returned by MCP tool calls inline in chat (revive #53980)

Open 💬 0 comments Opened Jul 2, 2026 by igord

Description

When an MCP tool returns image content in its tool result, the image is delivered to the model — Claude can see and describe it — but the Claude Desktop chat UI renders nothing for the user. The user has no way to see what Claude is looking at.

Reproduction

  1. Connect an MCP server whose tools return image content — e.g. agent-browser; its agent_browser_screenshot tool returns PNG/JPEG screenshots as image content blocks.
  2. Ask Claude to take a screenshot of a page and describe it.
  3. Claude accurately describes the screenshot (so the image reached the model), but the transcript shows only the tool-call entry — no rendered image. The user has to ask "show me the screenshot" and there's no good way to comply.

Current workarounds (both poor)

  • Claude runs open <path> so the screenshot opens in Preview — leaves the chat entirely.
  • Claude re-encodes the image as base64 into an inline HTML widget — tens of thousands of tokens spent transcribing base64, error-prone, and needs aggressive downscaling to stay feasible.

Request

Render image content blocks from MCP tool results inline in the Desktop transcript (collapsible like other tool results is fine). This matters increasingly for browser-automation MCP servers (agent-browser, Playwright MCP, Chrome extension) where screenshots are the primary feedback channel — the human in the loop is reviewing UI states the agent captured.

Prior art

  • #53980 asked exactly this and was closed as not planned by the staleness bot ("inactive for too long — open a new issue if this is still relevant"). This is that new issue: still relevant.
  • #70280 covers a related but distinct problem (MCP ImageContent duplicated into structuredContent as text).

Environment: Claude Code Desktop on macOS (Darwin 25.5), agent-browser MCP server.

View original on GitHub ↗