Skip to main content

๐Ÿฉบ A health check for your MCP setup โ€” measure the context tax and hygiene of your MCP servers

Project description

๐Ÿฉบ mcp-checkup

A health check for your MCP setup.

One command that tells you what your MCP servers cost you โ€” in context-window tokens and dollars โ€” and whether they follow basic security hygiene.

CI PyPI Python License Ruff


The problem

Every MCP server you connect injects its full tool schemas into your model's context window โ€” on every single request โ€” before you type a word.

  • GitHub's official MCP server alone consumes ~17,600 tokens per request in tool definitions (autopsy).
  • Teams have burned 72% of a 200k context window on tool definitions before doing any actual work (MCP spec issue #2808).
  • A security audit of publicly exposed MCP servers found 119 out of 119 sampled allowed unauthenticated access to internal tool listings.

You are paying a context tax on every request, and you probably have no idea how big it is. mcp-checkup measures it.

What it looks like

Real output of a bare uvx mcp-checkup on a developer laptop (v0.2.0):

$ uvx mcp-checkup

  ๐Ÿฉบ MCP Checkup โ€” 5 server(s), 128 tools
  โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”“
  โ”ƒ Server        โ”ƒ Clients        โ”ƒ Tools โ”ƒ anthropic โ”ƒ openai โ”ƒ gemini โ”ƒ
  โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
  โ”‚ alpaca        โ”‚ claude-code    โ”‚    69 โ”‚    18,611 โ”‚ 19,025 โ”‚ 18,542 โ”‚
  โ”‚ edgartools    โ”‚ claude-code    โ”‚    13 โ”‚     3,725 โ”‚  3,803 โ”‚  3,712 โ”‚
  โ”‚ playwright    โ”‚ claude-desktop โ”‚    23 โ”‚     3,198 โ”‚  3,336 โ”‚  3,175 โ”‚
  โ”‚ filesystem    โ”‚ claude-desktop โ”‚    14 โ”‚     1,640 โ”‚  1,723 โ”‚  1,626 โ”‚
  โ”‚ yahoo-finance โ”‚ claude-code    โ”‚     9 โ”‚     1,396 โ”‚  1,450 โ”‚  1,387 โ”‚
  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
  โ”‚ Total         โ”‚                โ”‚   128 โ”‚    28,570 โ”‚ 29,337 โ”‚ 28,442 โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  Context tax: ~28,916 tokens on Anthropic models (incl. 346 tool-use
  system overhead), before your first message.

That's 14% of a 200k context window, spent before the first user message.

Supported clients (auto-discovery)

Client Config discovered
Claude Desktop claude_desktop_config.json (macOS/Windows/Linux)
Claude Code project .mcp.json + ~/.claude.json user/local scopes
Cursor ~/.cursor/mcp.json + project .cursor/mcp.json
Windsurf ~/.codeium/windsurf/mcp_config.json
VS Code .vscode/mcp.json + user-profile mcp.json (servers key)

The HYGIENE pillar (auth, tool-poisoning, schema-bloat checks) arrives in v0.4.0 โ€” the block below is that target design:

$ uvx mcp-checkup

  ๐Ÿฉบ MCP Checkup โ€” 4 servers, 38 tools

  WEIGHT                                    HYGIENE
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  github       17,612 tok   $0.053/req     โš  2 tools reachable without auth
  slack         4,105 tok   $0.012/req     โœ“ ok
  filesystem    2,890 tok   $0.009/req     โš  unrestricted root path
  custom-api    9,441 tok   $0.028/req     โš  3 schemas 8ร— over minimal size

  Context tax: 34,048 tokens โ€” 17% of a 200k window, before your first message.

  Run `mcp-checkup --fix` to emit compressed schemas.
  Run `mcp-checkup --fail-over 20000` in CI to stop the bloat from coming back.

Quickstart

uvx mcp-checkup          # or: pip install mcp-checkup

Point it at your client config (.mcp.json, Claude Desktop, Cursor, โ€ฆ) or a running server. That's the whole interface โ€” one command, one report.

Roadmap

Full detail per milestone in ROADMAP.md.

Version Theme One line
v0.1.0 Weigh one server weigh <target> prints a per-tool token table for one server
v0.2.0 Auto-discovery Zero-flag scan of Claude Desktop/Code, Cursor, Windsurf, VS Code
v0.3.0 Dollars & context tax $/request, $/session, and context-tax % per model
v0.4.0 Hygiene Weight (W01โ€“W05) and security (H01โ€“H04) checks, two-pillar report
v0.5.0 CI gate Budget/severity gates, stable exit codes, GitHub Action
v0.6.0 --fix emit Semantic-safe schema compression with before/after report
v0.7.0 Trim proxy + rug-pull pins serve --wrap --trim proxy, changed-since-pin detection
v0.8.0 Shareable reports Self-contained HTML report, badge endpoint, diff command
v0.9.0 Hardening + SDK v2 MCP SDK v2 transport, Windows CI, perf budget
v1.0.0 Stable Frozen CLI/exit codes/schema with a deprecation policy

Status

Early days โ€” the measurement engine is being built in the open. If the context tax bothers you too: โญ star the repo to follow along, open an issue with your worst MCP token bill, or see CONTRIBUTING.md to help build it.

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_checkup-0.2.0.tar.gz (143.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_checkup-0.2.0-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file mcp_checkup-0.2.0.tar.gz.

File metadata

  • Download URL: mcp_checkup-0.2.0.tar.gz
  • Upload date:
  • Size: 143.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mcp_checkup-0.2.0.tar.gz
Algorithm Hash digest
SHA256 34c7b81004ea600831e5ffdb256d3dfa86926e280a96247f2bf88d0e073335d7
MD5 81088feadca968a31f44b4a04a855f3a
BLAKE2b-256 27ec3b4fef4609025c510e70779437fd0eecbf4d8a70eead0eecb90d3979c5a8

See more details on using hashes here.

File details

Details for the file mcp_checkup-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_checkup-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mcp_checkup-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ebb4a1444de808f80abbf762fab50423d6f4fc2f4a961d7d04f165a83328e37
MD5 b1436bda419b2f1b5184ebf63eb10db0
BLAKE2b-256 31a03bc7456a94229b98e76cf8548c7695d07d20c2ca08421d21e098d9112c52

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page