I counted them last week: 47 MCP tools wired into one of my agent sessions. Not called — just loaded. Every tool's full JSON schema, sitting in the system prompt, before I'd typed a single character.

I ran the math. Each tool schema (name, description, parameter shapes, examples) averages 150-400 tokens depending on how chatty the description is. 47 tools landed around 11,000 tokens of pure overhead. That's context I paid for and the model read on every single turn, whether or not I ever touched half those tools.

This is the quiet cost nobody budgets for. Everyone worries about a tool call that dumps a 50KB log file into context. Fewer people notice that the menu of tools was already expensive before anyone ordered anything.

Why this happens

MCP servers advertise their full tool list upfront by design — the protocol wants the model to know what's available. But "available" and "loaded in full detail" don't have to be the same thing. A send_slack_message tool and a query_datadog_metrics tool both get their complete parameter schemas injected even in a session where you only ever use git_status.