"Context low" in Claude Code usually isn't your conversation. It's your catalogs.

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.

71,929 → 581 tokens

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.

Where the window actually goes

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.

Why auto-compact doesn't save you

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.

The fix: shrink the catalog, keep the tools

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.

FAQ

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.