[BUG] MCP tool-result images are not visible to the model on the same turn as the tool call (Claude Desktop, Windows)

Open 💬 0 comments Opened Jul 14, 2026 by kramytech

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Version: Claude Desktop for Windows 1.20186.1.0 (MSIX, C:\Program Files\WindowsApps\Claude_1.20186.1.0_x64__pzs8sxrjxfjjc)
MCP servers: filesystem, youtube-transcript, mempalace, Desktop Commander
Onset: Regression. Worked correctly for ~6 months; began failing within the last month.
Summary
When Claude calls read_media_file (official @modelcontextprotocol/server-filesystem), the tool returns successfully and the image content block is present in the response — but the image is not visible to the model during the forward pass that made the call. Claude receives an empty placeholder and reports the image as blank.
The image becomes visible on the next forward pass. Any follow-up message — "look again" — causes Claude to describe the image perfectly, with no new tool call. The pixels were delivered; they just weren't in view yet.
Reproduction

Fresh conversation, Claude Desktop, filesystem MCP configured.
read_media_file on any valid JPEG in an allowed directory.
Claude reports the image as blank/empty. Tool call shows success.
Send any follow-up message, e.g. "look again — describe what you see. Do not call any tools."
Claude describes the image accurately, with no new tool call.

Reproduced across multiple fresh conversations, with no prior context, on the first tool call.

Not a duplicate of #53256, which concerns MCP images being collapsed in the UI
(model receives the image; user must expand the block to see it). This issue is
the inverse: the image renders in the UI, but is NOT visible to the model on the
pass that made the tool call.

What Should Happen?

The image content block returned by read_media_file should be visible to the
model on the SAME forward pass that receives the tool result — so Claude can
describe the image immediately, in the same turn, without requiring a follow-up
message.

This is how it behaved until roughly a month ago.

Error Messages/Logs

Steps to Reproduce

  1. Claude Desktop for Windows, with the official filesystem MCP server configured

(@modelcontextprotocol/server-filesystem) and an allowed directory containing
a valid JPEG under ~250KB.

  1. Start a FRESH conversation. Do not paste or drag any images.
  1. As the very first action, ask Claude to call read_media_file on the JPEG:

read_media_file on C:\path\to\screenshot.jpg — what's in it?

  1. OBSERVED: The tool call succeeds. Claude reports the image as blank/empty and

cannot describe its contents.

  1. Send any follow-up message, e.g.:

"look again — describe what you see. Do not call any tools."

  1. OBSERVED: Claude now describes the image accurately and in detail — with NO new

tool call. The image was in context the whole time; it simply was not visible on
the pass that made the call.

Notes:

  • Reproduced across multiple fresh conversations, no prior context, on the first

tool call.

  • Not file corruption: the same file pasted directly into chat renders immediately.
  • Not file size: reproduced at 8KB, 65KB, 116KB, 231KB, 237KB.
  • Not tool-specific: same behavior via Desktop Commander's read_multiple_files.
  • The delay is per PASS, not per image: three images read in a single turn all

became visible together on the next pass.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

idk

Claude Code Version

1.20186.1.0

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

Terminal/Shell: N/A — this is a Claude Desktop (GUI) bug, not a Claude Code CLI
issue. No terminal is involved. Selected an arbitrary value only because the field
is required.

Operating System: Windows 11
Claude Desktop: 1.20186.1.0 (MSIX)

View original on GitHub ↗