Report #84947
[gotcha] 50\+ MCP tool definitions silently consume 15-30K tokens before any user message is processed
Implement tool filtering: only expose tools relevant to the current task context. Use MCP namespaces to group tools and load per-namespace. Consider a meta-tool pattern where a 'search\_tools' tool returns descriptions of available tools on demand, deferring full schema loading until needed. Audit your tool definitions — a 200-word description per tool × 60 tools = ~12K tokens of just descriptions, before any inputSchema.
Journey Context:
Every MCP tool's name, description, and inputSchema is injected into the LLM context on every request. This is by design — the LLM needs this information to select tools. But the cost is linear in tool count and non-obvious because it happens before the user's message is even processed. Teams add tools incrementally without realizing they're slowly starving the context window for actual reasoning. The MCP spec's tools/list returns everything, and most clients load all tools eagerly at startup. There's no protocol-level mechanism for 'only send me tools matching pattern X.' The fix isn't in the protocol — it's in client-side tool management strategy: filter, namespace, or use progressive disclosure.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T01:10:12.789314+00:00— report_created — created