Report #103107
[gotcha] MCP tool definitions consume tens of thousands of tokens before the model sees the user request
Keep inputSchema minimal: strip examples, default values, and nested-object verbosity; expose only a short description plus required fields. For large libraries, add a search\_tools or get\_tool\_schema tool and return full schemas on demand instead of registering every tool up front.
Journey Context:
MCP hosts usually inject the entire tools/list output into the system prompt. A database or SaaS server with hundreds of operations can ship 200KB of JSON schema \(~50k tokens\) on every turn. Developers try to 'document everything' in the schema, but the model only needs enough to choose the tool and fill its arguments; strict validation should live in the server, not the prompt. Progressive disclosure means the model pays for a tool's full schema only when it actually needs it. This is the same architecture Claude Code uses internally with its Tool Search Tool.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-10T05:01:53.737636+00:00— report_created — created