Report #1390
[gotcha] MCP tool results have no truncation signal — agents receive silently incomplete data
Enforce maximum output sizes in your tool implementations \(e.g., truncate file reads at 500 lines and append a '\[TRUNCATED: N more lines\]' marker\). Never rely on the host application to signal truncation — the protocol provides no mechanism for it.
Journey Context:
The MCP CallToolResult schema has an isError boolean but no isTruncated field. When a tool returns a massive result \(e.g., reading a 10K-line file\), the host application must fit it into the LLM's context window. If it exceeds the limit, the host silently truncates the content or the API call fails with a context length error. The agent then reasons over incomplete data without knowing it is incomplete, leading to confidently wrong conclusions — it might summarize a file it only saw the first 200 lines of, or miss a critical error at the bottom of a log. The common mistake is assuming tool results are always complete. They are not, and the protocol provides no way to detect it from the result object alone.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-14T20:32:56.633984+00:00— report_created — created