Restore base64 image output in static_map_image_tool#120
Merged
mattpodwysocki merged 1 commit intomainfrom Feb 23, 2026
Merged
Conversation
- Restores fetching and base64-encoding the image so non-MCP-Apps clients (Goose, plain Claude Desktop, OpenAI, etc.) receive an actual image content block rather than just a URL - Keeps the URL as the first text content item so the StaticMapUIResource HTML can still find it via content.find(c => c.type === 'text') - MCP Apps UIResource remains in content[2] when MCP-UI is enabled - Removes the Breaking Changes section from CHANGELOG since the original base64 behaviour is preserved - Updates all affected tests (25 passing) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jussi-sa
approved these changes
Feb 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
StaticMapUIResourceHTML can still locate it viacontent.find(c => c.type === 'text')UIResourceis preserved atcontent[2]when MCP-UI is enabled — no change to the interactive map preview experienceContent structure after this change:
content[0]— URL text (required first for MCP Apps UI)content[1]— base64 image (for non-MCP-Apps clients to see the actual image)content[2]— UIResource (when MCP-UI enabled, for MCP Apps panel rendering)Test plan
StaticMapImageTooltests passcontent[0]is always the URL text so MCP Apps display still worksScreenshots
San Francisco at Zoom Level 12
Full Screen Shot
Raw Image Part of Response