Report #92244
[gotcha] Oversized tool results silently truncate, causing confident reasoning on incomplete data
Implement server-side result size limits in every MCP tool. Return a summary plus a signal like 'Result truncated: 847 of 2300 lines shown. Use read\_lines\(start, end\) for specific ranges.' Never return raw file contents or full query results without bounding. Add a max\_tokens or max\_lines parameter to every tool that can return variable-length output.
Journey Context:
When an MCP tool returns a result larger than the remaining context window, the client SDK or API layer silently truncates it to fit. There is no error, no warning flag in the response, and no standard MCP mechanism to indicate truncation occurred. The model receives a partial result — say, the first 500 lines of a 2000-line file — and proceeds to answer questions about the file as if it has seen the whole thing. This is catastrophically dangerous for code analysis tasks: the model will confidently assert 'this function does not exist' when it simply wasn't in the truncated portion. The fix requires the tool itself to enforce limits and explicitly communicate what was omitted, because the transport layer won't.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T13:25:24.614370+00:00— report_created — created