We measured one tool server on one real machine. Not a vendor's slide —
a .json catalogue on a laptop, counted with the same tokeniser the
models use.
That is 289 times more expensive — and 303,863 tokens is 152% of a 200,000-token context window. Loaded the ordinary way, that one server does not fit in the model's head at all. There is no room left for your question.
| Input price | Per request, before your question | At 100 requests a day |
|---|---|---|
| $3 per million | $0.91 | $91 / day |
| $15 per million | $4.56 | $456 / day |
| names only, $3 per million | $0.0032 | $0.32 / day |
To let an assistant use your tools, the usual approach hands it the manual for every tool up front: each name, each description, each parameter. Five ordinary apps run to tens of thousands of tokens. A large API runs to millions. Then every step of the work travels back through the model — fetch a row, return it, decide, fetch the next.
Cloudflare published the same arithmetic for their own API: 2,594 tools ≈ 1,170,000 tokens as ordinary tool definitions. Rebuilt so the assistant writes code instead, the whole API fits in two tools and about 1,000 tokens. Anthropic arrived at the same pattern independently.
Point this at your own tool catalogue. If your numbers differ from ours, yours are the ones that matter — that is the point of measuring.
import json, tiktoken
enc = tiktoken.get_encoding("cl100k_base")
tools = json.load(open("your-mcp-catalog.json"))
defs = [json.dumps({k: t[k] for k in ("name","description","inputSchema") if k in t})
for t in tools]
print("loaded up front :", sum(len(enc.encode(s)) for s in defs))
print("names only :", len(enc.encode(", ".join(t["name"] for t in tools))))
Luxucleen builds and audits AI systems for small businesses. If something you are paying for feels slow, expensive, or forgetful, the cause is often measurable in an afternoon.
TALK TO US