I use MCP servers with Claude Code daily. Last week I counted how many tokens the tool listing eats.
5 servers, 96 tools. The JSON listing: 2,034 tokens. Before I type anything. Then 20 tool calls, each wrapped in {"content":[{"type":"text","text":"..."}]} — another 40K tokens of brackets, quotes, and repeated {"type":"object","properties": declarations.
So I built mcptoon — a CLI that outputs TOON (Token-Optimized Object Notation) instead of JSON.
What TOON does
{"name":"search","count":3}→name:search|count:3[1, 2, 3]→1 2 3true/false→T/Fnull→∅
Measured results
| Operation | JSON tokens | TOON tokens | Savings |
|---|---|---|---|
| Tool discovery (96 tools) | 2,034 | 62 | 97% |
| Tool result (structured data) | 812 | 354 | 56% |
| Real session (5 servers, 20 calls) | 47,200 | 8,100 | 83% |
It’s a CLI, not a library. Any agent that runs shell commands can use it. Zero deps, 50KB, Python 3.10+, Apache 2.0.
Tested TOON parsing with Claude, GPT-4, and Gemini — all three parse it correctly.
pip install mcptoon
Curious if others have measured their MCP token overhead. My numbers are in the README, would be interested to compare.