Skip to main content
Dawloom

Why is my MCP server using so many tokens? Free calculator

Dawloom engineering 9 min read
Why is my MCP server using so many tokens? Free calculator

Your MCP server uses so many tokens because the client sends the full definition of every tool, its name, description, and input schema, to the model on every request, even when no tool gets called. Six order-management tools with long descriptions add about 2,200 tokens to each request on Claude Sonnet 5.5, plus 286 tokens for Anthropic’s own tool system prompt, before the user has typed a word.

Paste your server’s tools below to see what they cost you. The estimate runs in your browser, and we checked it against Anthropic’s token counting endpoint on 2026-10-13. Prices come from the official Anthropic, OpenAI, and Google pricing pages, checked the same day.

Who this is for: anyone running an MCP server or an agent with a long tool list, and anyone who opened a model bill and wondered where the input tokens went. Who should look elsewhere: if your bill is driven by large tool results, such as whole documents or big JSON payloads returned by a tool, this calculator won’t show it. It measures the definitions only.

Added to every request

715 tokens

429 for 2 tools, give or take 5%, plus 286 for Anthropic's tool system prompt

Per month, no caching

$42.90

$1.43 per 1,000 requests

Per month, 90% cache hits

$7.29

$0.24 per 1,000 requests

Estimate calibrated against Anthropic's token counting endpoint on 2026-10-13: within 5% for a whole server, up to 17% off for one small tool. Prices from Anthropic pricing, checked 2026-10-21. Cache misses are billed at the cache write price.

Tokens per tool on Claude Sonnet 5.5

  • convert_document 322
  • list_supported_formats 107

Every model, 30,000 requests a month

Every model, 30,000 requests a month
ModelTokens / requestNo caching90% cache hits
Claude Opus 5.5715$85.80$14.59
Claude Fable 5.1429$128.70$18.98
Claude Sonnet 5.5715$42.90$7.29
Claude Haiku 5.5715$2.15$0.46
Claude Sonnet 4.6823$74.07$15.93
GPT-6 Astra247$74.10$15.93
GPT-6.1 Sol247$14.82$2.52
GPT-6 Luna247$0.74$0.16
GPT-5.6 Sol (promo price)247$29.64$6.37
GPT-5.6 Terra247$14.82$3.19
GPT-5.6 Luna247$1.48$0.32
GPT-5.4 mini247$5.56$1.06
Gemini 4 Argon (2026 price)247$14.82$2.15
Gemini 4 Argon (from 2026-12-01)247$29.64$4.30
Gemini 3.1 Pro (preview)247$14.82$2.82
Gemini 3.8 Flash (2026 price)247$5.56$1.06
Gemini 3.8 Flash (from 2027-01-01)247$11.12$2.11
Gemini 3.5 Flash-Lite247$2.22$0.42
Gemini 3.1 Flash-Lite247$1.85$0.35

This is only the cost of the definitions. Messages, tool results, and output are billed on top.

The calculator also has its own page at /tools/mcp-token-cost-calculator/.

What rides along on every request

An MCP client calls tools/list once when it connects. After that, it turns each tool into the model’s tool format and sends the whole list with every model request. Anthropic’s pricing page lists where the extra tokens come from: “The tools parameter in API requests (tool names, descriptions, and schemas)”, plus the tool calls and tool results in the conversation.

Animated diagram. Three requests travel from an MCP client to a model API. Each carries the same orange block of tool definitions, a system prompt, and a conversation that grows with each turn. The first request writes the tool block to the prompt cache at 1.25 times the input price. Requests two and three read it from the cache at 0.05 times the input price.

There is a second, hidden cost. When any tool is present, Anthropic adds its own tool-use system prompt. Its pricing page lists the size per model, checked 2026-10-13:

What rides along on every request
ModelTool system prompt (tool_choice auto or none)
Claude Opus 5.5, Sonnet 5.5, Haiku 5.5286 tokens
Claude Sonnet 5354 tokens
Claude Sonnet 4.6497 tokens
Claude Opus 4.7675 tokens

OpenAI and Google do not publish an equivalent number. The calculator adds Anthropic’s figure for Claude models and nothing for the others, so the GPT and Gemini rows likely run a little low.

At scale the definitions get large fast. Anthropic’s tool search docs give this example: “A typical multiserver setup (GitHub, Slack, Sentry, Grafana, and Splunk) can consume ~55k tokens in definitions before Claude does any work.” That is Anthropic’s own measurement.

What we measured

We counted three tool lists with Anthropic’s token counting endpoint on 2026-10-13. The first is the real tools/list from our own MCP server at dawloom.com/mcp. The other two are the same six order-management tools, written once with one-line descriptions and once with long descriptions, enums, and patterns. We wrote those two as examples; they are not a real product’s server. All three are in the calculator’s example buttons.

The numbers are definition tokens only, after subtracting the empty request and the documented tool system prompt.

What we measured
Tool listToolsClaude Sonnet 5.5 (measured)Claude Sonnet 4.6 (measured)OpenAI o200k tokenizerOur estimate, Sonnet 5.5
Dawloom MCP server2432321243442
Shop orders, short descriptions6793602369790
Shop orders, long descriptions62,2251,6991,3342,227

Three things stand out:

  • Descriptions are most of the bill. The same six tools cost 2.8 times as many tokens with long descriptions. The biggest single tool, search_orders, went from 194 to 565 tokens.
  • Claude’s newer tokenizer counts more. The same JSON came out 31% to 35% larger on Sonnet 5.5 than on Sonnet 4.6. That matches Anthropic’s note that Claude 4.7 and later produce “approximately 30% more tokens for the same text.”
  • The usual “4 characters per token” rule is far off for schemas. JSON is full of quotes, braces, and short keys. On Sonnet 5.5, characters divided by 4 came out 42% low on average across our 20 test tools.

One more finding from the test. When we sent our own convert_document schema straight to Anthropic’s API (the token counting endpoint), it was rejected: “input_schema does not support oneOf, allOf, or anyOf at the top level.” Our schema used a top-level anyOf to say “send a url or base64.” We fixed it on 2026-10-13: the rule now sits in the field descriptions, and the server still refuses a call that has neither. If you pass MCP schemas to the API yourself, flatten them the same way.

What it costs per month

The cost of the definitions alone, at 30,000 model requests a month (about 1,000 a day). The cached column assumes 90% of requests read the tool prefix from cache and 10% write it. Prices checked 2026-10-13.

What it costs per month
Tool listModelTokens per requestNo caching90% cache hits
Dawloom MCP serverClaude Sonnet 5.5728$44$7.43
Shop orders, shortClaude Sonnet 5.51,076$65$11
Shop orders, longClaude Sonnet 5.52,513$151$26
Shop orders, longClaude Opus 5.52,513$302$51
Shop orders, longGPT-6.1 Sol1,338$80$14
Shop orders, longGemini 3.8 Flash1,338$30$5.72
Anthropic’s 5-server exampleClaude Sonnet 5.555,286$3,317$564
Anthropic’s 5-server exampleClaude Opus 5.555,286$6,634$1,128

Token counts in this table come from the calculator’s estimate, so they differ slightly from the measured table above. The 55,000-token row uses Anthropic’s figure plus the 286-token tool system prompt. The GPT and Gemini rows use our OpenAI-tokenizer estimate and no hidden tool prompt, so read them as rough.

A small, tidy server is cheap. A pile of large servers on a big model is not: Anthropic’s five-server example costs $3,317 a month on Sonnet 5.5 before anyone types anything.

How prompt caching changes the math

Tool definitions sit at the very front of the prompt, which makes them easy to cache. Anthropic’s prompt caching docs say caching covers “the entire prompt: tools, system, and messages (in that order).” On Claude Sonnet 5.5, a cache write costs 1.25 times the input price and a cache hit costs 0.05 times. At a 90% hit rate, the definitions cost about 17% of the uncached price.

Three rules decide whether you actually get that discount:

  • Keep the tool list byte-for-byte identical. Anthropic’s docs say “Modifying tool definitions (names, descriptions, parameters) invalidates the entire cache.” A server that returns tools in a different order each time breaks every user’s cache.
  • Mind the minimum. On Claude Opus 5.5, Sonnet 5.5, and Haiku 5.5, a prefix under 512 tokens can’t be cached at all. OpenAI’s prompt caching guide sets the minimum at 1,024 tokens for GPT-5.6 and later.
  • Mind the clock. Anthropic’s default cache lives 5 minutes and refreshes each time it’s read. OpenAI keeps a prefix for 30 minutes on GPT-5.6 and later. Quiet agents that make one request every 20 minutes miss the Claude cache every time unless you pay for the 1-hour cache, which costs 2 times the input price to write.

Caching cuts the price, not the size. The definitions still fill the context window on every turn.

How to cut the overhead

  1. Trim descriptions. Our long-description server cost 2.8 times the short one. Say what the tool does, what each argument means, and when to use it. Cut policy text, examples, and edge cases unless the model gets the tool wrong without them.
  2. Expose fewer tools. A tool per database table is the most common way servers balloon. Group actions into a smaller set of well-named tools.
  3. Use tool search when the list is long. Anthropic recommends it when “You have 10 or more tools available” or “Your tool definitions consume more than 10k tokens.” Deferred tools stay out of the context until Claude searches for them, and Anthropic says this “typically reduces this by over 85 percent.”
  4. Keep the order stable. Sort tools by name before you return them from tools/list, so the prefix caches.
  5. Look at tool results too. A tool that returns a 20,000-token document costs more than the definitions of most servers. Return summaries or IDs and let the model ask for detail.

How the estimate works, and how far off it can be

No tokenizer ships with the calculator. It reduces each tool to the three fields a model API takes (name, description, input schema), minifies the JSON, and estimates:

tokens = fixed cost per tool + a weight × JSON punctuation marks + a weight × all other characters

We fit the weights on 2026-10-13 against 20 tool definitions: the 14 tools in the examples above, plus 6 we wrote in the style of common servers (file reading, GitHub issues, SQL, Slack, calendar, and one Spanish-language tool). There are three profiles:

How the estimate works, and how far off it can be
ProfileCalibrated againstError, leaving each tool out of the fit
Claude 4.7 and laterAnthropic token counting endpoint, claude-sonnet-5-5Mean 4.7%, worst single tool 16.6%
Claude 4.6 and earlierAnthropic token counting endpoint, claude-sonnet-4-6Mean 4.6%, worst single tool 16.8%
GPT and GeminiOpenAI’s open o200k_base tokenizer on the raw JSONMean 3.5%, worst single tool 15.7%

For a whole server, the Claude estimate landed within 3.5% of the measured count on all three examples. Those examples were part of the fitting set, so treat 5% as the honest margin for a whole server and up to 17% for one small tool. For GPT and Gemini, the o200k fit is close to the tokenizer, but neither OpenAI nor Google publishes how it renders tool definitions into the prompt. We show those numbers as give or take 25%. That figure is our allowance, not a measurement.

FAQ

How many tokens does an MCP tool use?

It depends mostly on the description. In our measurements on Claude Sonnet 5.5, a one-line tool with one argument used about 90 tokens, and a tool with a long description and five documented arguments used 565. Anthropic’s five-server example averages about 950 tokens per tool across 58 tools, per its advanced tool use post.

Does the model see my tools even if it doesn’t call them?

Yes. Every tool definition is part of every request’s input, and you pay for those tokens whether or not a tool gets called. That is why a large tool list costs money even on turns where the model only chats.

Does prompt caching make MCP tools free?

No, but it makes repeats much cheaper. On Claude Sonnet 5.5 a cache hit costs 5% of the input price. At a 90% hit rate the definitions cost about 17% of the uncached price. The cache breaks if the tool list changes in any way between requests.

How do I see my MCP server’s tool list?

Send a JSON-RPC tools/list request to the server and paste the response into the calculator. To try it on ours: POST {"jsonrpc":"2.0","id":1,"method":"tools/list"} to https://dawloom.com/mcp.

When should I use tool search instead of loading every tool?

Anthropic recommends it once you have 10 or more tools or your definitions pass 10,000 tokens. Its docs also say Claude gets worse at picking the right tool once more than 30 to 50 tools are available.

We build MCP servers with short, well-described tool lists. See MCP server development. For background, read when a business needs an MCP server, MCP, API, or Zapier for ChatGPT, and our AI SaaS margin calculator for what the rest of the request costs.

More in MCP servers Need this built? See MCP server development

Got something to build?

Tell us what you need. An engineer replies, not a sales team.

Search the whole site