Truncated MCP Tool Responses Limit Collaborative Functionality
Bug Description
โ ๐๐ Bug Report: MCP Tool Response Display Truncation Makes Collaborative Tools Nearly Useless
Environment:
- Claude Code Version: Latest
- Platform: Linux (reproduced across platforms)
- MCP Server: zen-mcp-server v2.8.0 (Council/Gemini integration)
The Case:
Listen up, I've been investigating this for a while now, and we've got a serious problem here. The MCP tool response display in Claude
Code is truncating responses to approximately 700 characters, turning what should be powerful collaborative features into frustrating
glimpses of actual content.
What's Actually Happening:
- User invokes MCP tool (e.g., mcp__council__chat to collaborate with Gemini)
- MCP server returns full response (8000+ characters in my test case)
- Full response IS saved to temp file (e.g., /tmp/council_full_response_chat_None_20250626_235912.md)
- BUT Claude Code only displays ~700 characters in the terminal
- Response gets cut mid-sentence with ellipsis
The Evidence:
- Tested with Council MCP requesting 2000+ token response from Gemini
- Gemini delivered comprehensive 8046 character response about CRDTs
- Claude Code displayed: ~700 chars ending with "The guarantee comes from modeling the states of the data structure as a
join-semilattice. That's a fancy term for a set with a merge operation that is:\n\n1. Associative: `(A merge B) merge C = A
m\n\n**[RESPONSE CONTINUES..."
- Full response accessible only via manual file reading
Why This Matters:
Look, I've been in this game long enough to know the difference between a minor inconvenience and a feature-breaking oversight. This
truncation completely defeats the purpose of collaborative MCP tools:
- Breaks Conversational Flow: Can't have meaningful back-and-forth with other models when you only see 10% of their responses
- Destroys Context: Complex technical discussions become useless fragments
- Forces Workarounds: Have to constantly read temp files, breaking the terminal-based workflow
- Wastes Token Usage: Full responses are generated and paid for, but effectively invisible
What I've Ruled Out:
- โ Not an MCP protocol limitation (supports 25K tokens)
- โ Not a server-side issue (zen-mcp-server has no 700 char limit)
- โ Not documented anywhere in Claude Code docs
- โ Not configurable via any known setting
Expected Behavior:
Display the full tool response OR at minimum:
- Make the display limit configurable
- Show first 2-3K chars with "[Response truncated - see full response at: /path/to/file]"
- Provide a flag like --full-response to show complete output
Actual Impact:
This isn't some edge case - any MCP tool that returns substantial content (documentation lookups, code analysis, multi-model
collaboration) becomes nearly useless. The Council MCP, designed specifically for model-to-model collaboration, is reduced to fortune
cookie exchanges.
The Kicker:
The irony here? The infrastructure handles everything correctly - full responses are captured, saved, accessible. But the last mile,
the actual display to the user, chops it down to tweet-length. It's like building a library and only letting people read the book
spines.
Reproduction Steps:
- Configure any MCP server that returns long responses (Council MCP, documentation tools, etc.)
- Invoke tool requesting substantial response
- Observe truncation at ~700 characters
- Verify full response exists in temp file
Suggested Fix:
Either make this configurable or bump the default to something reasonable (5-10K chars). The current limit feels like someone's debug
setting that accidentally shipped.
This one's been driving me crazy during late night debugging sessions. When you're trying to bounce complex architectural decisions
off Gemini at 3am and you can only see the first paragraph... well, let's just say my tentacles have been in a knot.
๐ - Deckard, Senior Detective, Navi City Precinct
P.S. - Whoever set this limit to 700 chars owes me a bottle of good whiskey for all the temp files I've had to manually cat.
Environment Info
- Platform: linux
- Terminal: kitty
- Version: 1.0.35
- Feedback ID: 581d27eb-d2b9-4dae-9a7d-63491f025cdf
Errors
[{"error":"RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded\n at Socket.onChildStdout (node:child_process:482:14)\n at Socket.emit (node:events:507:28)\n at Socket.emit (node:domain:489:12)\n at addChunk (node:internal/streams/readable:559:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\n at Readable.push (node:internal/streams/readable:390:5)\n at Pipe.onStreamRead (node:internal/stream_base_commons:189:23)","timestamp":"2025-06-26T20:54:13.252Z"},{"error":"Error: Error: Failed to fetch https://github.com/ilayvardi/council-mcp - status code 404\n at fz2 (file:///home/vardi/.local/share/npm/lib/node_modules/@anthropic-ai/claude-
Note: Error logs were truncated.
This issue has 7 comments on GitHub. Read the full discussion on GitHub โ