Report #13387
[gotcha] 50\+ MCP tool definitions exhaust context window before user message arrives
Limit the number of tools exposed at any one time. Implement a two-tier architecture: expose a small set of meta/discovery tools that return domain-specific tool subsets on demand. Keep each tool description under 100 tokens. Remove unused tools from the active set. If your server has many tools, split them across multiple focused servers.
Journey Context:
Every MCP tool definition — name, description, and full inputSchema JSON Schema — is injected into the LLM context as part of the system or tool-use prompt. With 50 tools averaging 300 tokens each, you burn ~15,000 tokens before the conversation starts. At 100 tools, you may consume a quarter of a 128K context window on definitions alone. The MCP spec has no built-in mechanism for lazy or on-demand tool loading: all tools from a connected server are enumerated via tools/list and presented to the model. Developers coming from REST API design assume more endpoints = more capability, but in MCP, more tools = less reasoning capacity and worse selection accuracy.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T18:40:39.461163+00:00— report_created — created