You start a session, work for an hour, and the meter starts dropping faster than your messages can explain it. The usual suspects get blamed: long files, big diffs, chatty back-and-forth. All real. But if you run a stack of MCP servers, there's a quieter item eating the window, and it gets re-served every single turn.
What a 50-server, 255-tool MCP stack costs as native tools/list schemas
versus mcptoon's names-only index. tiktoken cl100k_base, source of truth
assets/benchmark_tiktoken.json. −99.2%, every tool still callable.
Three buckets. The system prompt and tool definitions, loaded first. Your conversation and any files you've pulled in, growing as you work. And the tool catalogs, which behave like the system prompt but scale with however many servers you've connected, because Claude Code reads full schemas from every MCP server it knows about. On our benchmark corpus that bucket alone was 71,929 tokens. Some sessions never write that many words.
Auto-compact summarizes the conversation. It does not summarize your tool catalogs. After the squeeze, the compacted history comes back, and the full schemas come back with it, line for line, because they're infrastructure, not content. That's why the meter keeps landing in the same place no matter how hard you prune your prompts. The content was never the problem.
Disconnecting servers helps. It also strips the tools you needed, which is why nobody keeps doing it. You end up managing servers like a subscription list instead of getting work done.
mcptoon fronts your servers. Schemas stay on disk. Claude Code sees one compact name index and fetches a full schema only when a tool is actually picked. Every tool stays callable. The standing cost drops from tens of thousands of tokens to a few hundred. Three commands:
python -m pip install mcptoon mcptoon quickstart # discover local servers, write one config mcptoon sync # push it to every agent you use
The same trick covers skills, which fill the window by a different door: 489 skills cost 1,572,330 tokens of catalog until a resident pointer cut them to 39. If you're on Cursor instead, the client-specific version of this story is in the Cursor guide, and the raw protocol mechanics are in the tools/list guide. Want your own number before installing? The token tax calculator runs in your browser.
How do I check whether catalogs are my problem?
Run /context in Claude Code and look at the tools share. If MCP tools and system
overhead are the biggest blocks while your conversation is small, you've found it. Then
mcptoon bench puts an exact token number on your catalog with the same tokenizer we use
here.
Does compacting less often help?
It buys margin, not headroom. The catalogs re-inject after every compaction and every session start. The only durable fix is a smaller standing catalog.
Will a gateway change how my tools behave?
The tools are the same tools; the server processes are the same processes. What changes is what the model reads before choosing one. Selection happens on names, and the full schema arrives at call time.