I use MCP servers with Claude Code every day. Last week I actually counted how many tokens get burned just on tool discovery.

5 servers, 96 tools total. The JSON listing: 2,034 tokens. On a 128K context window, that's before I've asked a single question.

20 tool calls later, each wrapped in {"content":[{"type":"text","text":"..."}]} — another 40,000 tokens of overhead. Brackets, quotes, commas, repeated {"type":"object","properties": declarations.

I wrote mcptoon to deal with this. It's a CLI client that outputs TOON (Token-Optimized Object Notation) instead of JSON. The idea is dumb on purpose: the LLM doesn't need {"type":"object","properties": to understand what a tool does. It just needs the tool name and the relevant fields.

pip install mcptoon