Every Registered MCP Server Costs Tokens on Every Turn
Your unused MCP servers bill you on every single message.
The Model Context Protocol lets an agent talk to external tools — databases, issue trackers, browsers — through a standard interface. It's genuinely useful. But there's a cost that's easy to miss: when a server is registered, its full tool schema (names, descriptions, parameter definitions for every tool it exposes) gets injected into the model's context. That injection happens on every turn, whether or not you actually call the tool. A pile of "just in case" servers is a standing tax on every message you send.
Where the tokens go
A single MCP server can expose a handful of tools, each with a name, a description, and a JSON schema for its arguments. Rendered into context, a typical server adds on the order of a thousand tokens of schema per turn — more for feature-rich servers with many tools. Register eight of them and you're carrying several thousand tokens of tool definitions before you've typed a word. That inflates cost and eats into the context budget you'd rather spend on your actual code.
The insidious part is that idle servers cost the same as busy ones. A server you registered for a one-off task last month is still billing you on today's unrelated conversation.
The mechanism: audit, replace, unregister
Three steps, in order:
- Audit what's registered. List your configured servers and be honest about which ones you've actually invoked recently.
claude mcp list
- Replace cloud MCP servers with plain CLIs where you can. An agent that can run shell commands often doesn't need a dedicated server. A
ghCLI call reads a GitHub issue without a GitHub MCP server's schema sitting in context;psqlor a query script can stand in for a database server. The CLI's help text is loaded only when the agent chooses to run it — not prepended to every turn.
- Unregister the rest. If you're not using a server this session, remove it.
claude mcp remove <name>
MCP server vs. plain CLI
| Registered MCP server | Plain CLI | |
|---|---|---|
| Schema in context | Every turn, always | Only when invoked |
| Per-turn token cost | ~1k+ tokens each | ~0 until used |
| Setup | Config + running process | Usually already installed |
| Best for | Rich, stateful integrations you use constantly | One-off or occasional tool calls |
MCP isn't the enemy — it shines for integrations you lean on every session. The waste is the long tail of rarely-used servers left registered.
Power moves
- Treat eight-plus servers as a red flag. Past roughly that count the schema overhead is a meaningful slice of your context on every message. Prune aggressively.
- Audit before a long session. The tax compounds across a long conversation, so clearing dead weight up front pays off most on your heaviest sessions.
- Scope servers per project. Register a server in the one repo that needs it rather than globally, so it's not loaded into unrelated work.
- Prefer a shell tool over five niche servers. A single command-execution capability plus good CLIs often replaces a stack of narrow MCP servers at a fraction of the per-turn cost.
Resources
- Model Context Protocol — official site
- Anthropic docs — Connect Claude Code to tools via MCP
- Anthropic — Introducing the Model Context Protocol
- MCP specification
Shipping AI or cloud systems? Yeda AI audits and hardens production LLM and agent pipelines. Talk to us · Read the blog