MCP is having its moment. Every agent framework is wiring tools through it, and for good reason: standardized tool registration, composable servers, a protocol that doesn't force you to reinvent the plugin system every project. I get the appeal.
What I didn't see coming was the token bill.
Here's the number that stopped me cold: for a simple SerpApi search, an MCP agent used 6,047 tokens per call. A CLI script doing the exact same job used 351 tokens. That's 17x overhead, for the same search result.
I went looking for other data points after that. The range is wider than I thought.
The number that started this: 17x tokens per call
The benchmark comes from a post measuring SerpApi MCP vs a CLI agent with field projection. Both do the same job: search the web, return results. The difference:
| Approach | Tokens per call |
|---|---|
| MCP agent | 6,047 |
| CLI script (with field projection) | 351 |
| Ratio | ~17x |
At 10 searches a day in a conversational interface, 6,047 tokens per call is fine. At 1,000 searches a day in an automated pipeline, you're burning 6 million tokens where 351,000 would do.
That's not a rounding error. That's a billing line item.
Why it happens: schema injection on every message
The overhead isn't in the API call itself. It's in what your AI host has to inject into every single message before the call even happens.
When you register an MCP server, every tool definition (name, description, input schema, parameter types) gets serialized and injected into every system prompt or assistant message in your conversation. The LLM needs to "see" all available tools on every turn so it knows what it can call.
.
If you want help building your own MCP setup without the token tax eating your budget, that's the kind of work I take on.
Drop a comment if you've run your own numbers. Curious what the 4x to 32x range looks like in your production setup.
SOCIAL SHARE CARD GENERATOR