Infra 6 min read

An eBay MCP server spends 40% of my context window on its tool list.

I measured the MCP context cost of 22 server setups. One eBay server takes 40.6% of a 200k window if your client loads every tool. Here is what to keep.

Abstract illustration of a window frame filled by stacked coral and amber bars with teal connectors on the left, on a navy background.

ebay-mcp is an MIT-licensed MCP server for eBay’s APIs, and as shipped it lists 384 tools. That tools list is 81,255 tokens, or 40.6% of a 200,000-token window, before you type a word, in a client that loads every tool. I counted with tiktoken o200k_base over each tool’s name, description and input schema. Qwen2.5 agreed within 3% (80,378), but neither is a Claude tokenizer.

Abstract illustration of a window frame filled by stacked coral and amber bars with teal connectors on the left, on a navy background.
A 200,000-token window, mostly full before you type a word.

Here is the MCP context cost of 22 setups, from 17 servers, that I installed and listed on November 1: which I keep, which I delete, and why the same GitHub server costs 5,896 tokens filtered or 23,139 with every toolset on. My verdict: choose servers by what their tool list costs, and set the filter first. These are worst-case numbers, with every tool loaded upfront. I answer the “my client filters tools” objection below.

The MCP context cost of 22 setups, in plain numbers

For each server I sent initialize and tools/list over stdio, saved the raw JSON, and counted the visible fields. I never called a tool against eBay, GitHub or Amazon. GitHub and n8n ran on dummy credentials, so a real token might change their lists.

Only two servers go above 10,000 tokens. ebay-mcp is the monster at 81,255 for 384 tools. github-mcp-server v2.0.3 with --toolsets all is 91 tools and 23,139 tokens; default toolsets, 46 tools and 11,132. Just under the line, n8n-mcp 2.99.2 with an API key set is 28 tools and 9,872; without it, 7 tools and 2,022.

In the middle: chrome-devtools-mcp 1.12.0 at 32 tools and 6,218, @shopify/dev-mcp 1.18.0 at 5 and 5,663, codebase-memory-mcp 0.12.1 at 17 and 4,384, and @playwright/mcp 0.0.84 at 25 and 3,919.

Then the cheap ones: filesystem 2.1.0 at 14 tools and 1,693, git at 12 and 1,171, server-everything at 13 and 1,082, Context7 at 2 and 1,064, server-memory at 9 and 957, Serena at 2 and 943, DBHub at 2 and 274, fetch at 1 and 228.

Stacks add up fast. Filesystem, git, filtered GitHub, Playwright, Context7 and DBHub are 77 tools and 14,017 tokens, 7.0% of 200k. Add eBay as shipped and it is 47.6%. My 11-server kitchen sink: 69.3%.

Which MCP servers earn their tokens?

I measured size, not use, so this is opinion. Start with the cheap servers.

mcp-server-git gives the model git_status, git_log, git_show and nine more for 1,171 tokens. mcp-server-fetch is a single fetch tool at 228 tokens. Use 2026.10.24 or newer (v2.1.0 release notes).

Context7 has two tools, resolve-library-id and query-docs, for 1,064 tokens.

GitHub: with --toolsets issues,pull_requests,repos --read-only the GitHub server is 22 tools and 5,896 tokens, half of the default 46. Every name in that list is a read.

For browsers, pick one. Playwright is 3,919 tokens and Chrome DevTools is 6,218. Both is 10,137 for overlapping work. I pick Playwright, 2,299 tokens cheaper. Warning: 18 of its 25 tools are annotated destructiveHint: true.

Cheap is not the same as safe. Serena is 2 tools and 943 tokens, and one of them, serena_repl, “executes the given Python code in a REPL”. You are handing the model a Python shell for the price of nothing. Keep it only in a sandbox. This is where my rule, choose by token cost, is not enough. server-memory (957) is fine, but I did not test whether it helps. server-everything is the protocol test fixture, so delete it.

For the middle: keep n8n-mcp in docs-only mode (2,022), and add the API key only when you want the agent to manage workflows, because that is 9,872. Keep @shopify/dev-mcp if you build on Shopify. One description is 13,562 characters; Claude Code cuts upfront tools at 4,096 but allows 16,384 with default tool search, so the 5,663 overstates what it sends. Codebase-memory-mcp is an “I would try”.

Which MCP server should you delete?

The first is jay-trivedi/amazon_sp_mcp. Its README lists sales, returns, inventory, listings and reports tools. I cloned it, built commit 1130b82 and asked for tools/list. It returned exactly one tool, called hello, described as “A simple test tool that says hello”. That is 39 tokens of nothing. To be fair, the README says “Phase 1 (MVP)”, but the last push was 2025-11-17, almost a year ago. It is a scaffold that lists tools the build does not have. Do not install it.

I build tools for Amazon sellers, and open SP-API servers are thin. The best I found is mansournorouzi/amazon-sp-mcp: 20 tools, 2,618 tokens, 49 stars, and names like get_fba_reimbursements and get_settlement_report. Good coverage, but GitHub reports no license file, so “open source” is not established. Need SP-API in an agent? Write your own small server.

The second delete is ebay-mcp as shipped. The README and package.json say 379 tools. The running server logs “Registering 384 tools”. Of those, 168 carry no annotations, so a client cannot tell a read from a write. This is a size verdict, not a quality one.

The maintainers ship the fix in the ebay-mcp README: the EBAY_MCP_TOOLS variable. The README itself warns that the full catalogue is “a meaningful slice of the context window”. With inventory,fulfillment it is 66 tools and 13,899, still more than the whole filtered GitHub server. With dynamic it is 3 tools and 449, but the README says that works only on hosts that honor tools/listChanged, and I tested no such host, so 449 is a floor.

Does tool search make the MCP context cost irrelevant?

Partly. The Claude Code MCP docs say tool search is on by default and that “only tool names and server instructions load at session start”. I measured that floor as the tokens of tool names alone: ebay-mcp 2,636, GitHub default 184, the lean stack 280. So in Claude Code the 81,255 is not the bill by default. The docs list exceptions: models older than Opus 4 and Sonnet 4, Microsoft Foundry on Azure, ENABLE_TOOL_SEARCH=false, and some gateways. There you pay the table.

Anyone who calls the API with their own agent loop pays too. The Claude API docs price tool use on input tokens “including in the tools parameter”. But they also offer a tool search tool: you “set defer_loading: true on the tools that shouldn’t load up front”, meant for definitions over 10k tokens. Caching the definitions cuts the repeated bill, not the window.

Other clients differ. The VS Code docs say a chat request “can have a maximum of 128 tools enabled at a time”. I did not test its virtual tools setting. Still, 91 GitHub tools take most of those slots.

I did not measure what search itself costs: the extra round trip, or a wrong pick.

What to do about it on Monday

Three steps.

First, delete any server you did not use this week.

Second, set the filter before the first run. GitHub gets --toolsets and --read-only. ebay-mcp gets EBAY_MCP_TOOLS, with dynamic only if your host honors tools/listChanged. Calling the API yourself? Set defer_loading: true on rarely used tools.

Third, measure your own stack. The MCP Inspector CLI lists a server’s tools and exits. Run npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list --format json > tools.json, with your own server command in place of node build/index.js. Then pip install tiktoken and run this on the file:

import json, sys, tiktoken

enc = tiktoken.get_encoding("o200k_base")
data = json.load(open(sys.argv[1]))
tools = data.get("result", data)["tools"]
keep = [{k: t[k] for k in ("name", "description", "inputSchema") if k in t} for t in tools]
text = json.dumps(keep, separators=(",", ":"), ensure_ascii=False)
print(len(tools), "tools,", len(enc.encode(text)), "tokens")

It is an estimate, not an exact bill.

What I would wire for a five-person team

Filesystem, git, fetch, filtered GitHub, Context7, one browser, and DBHub if you have a database. That is the 7% stack.

Bon. Do not pick servers by star count: the official reference servers share one repo with 91,722 stars. tools/list tells you more.

More MCP reading from this blog: MCP Skills: I Tried Them, and Verified Is Not Trusted, and 11 Claude Code Features Worth Using.

Still unmeasured: what a deferring client spends on search over a full day with a 384-tool server.

Dominic Plouffe

CTO of Trellis, with exits at FuseTalk, 360pi and DeadHeat. I write about making agents and big data work together safely, and I'm building yaaf, an open-source platform for running teams of AI agents that actually finish the job: yaaf.dplouffe.ca