Health and token cost of every remote MCP registry server, probed daily. Look up, search, or probe.
One address for any MCP client. No sign-in needed on this server.
3 read1 other
Grouped by tool name.
Odel charges nothing per call. The publisher may charge for its own service.
Is that MCP server alive, and what does it cost your context window?
Live board: mcp-pulse.ulehla.dev
mcp-pulse probes every remote server in the official MCP registry and records, for each one:
initialize and tools/list, and how fastWWW-Authenticate)npx mcptop # reads Claude Code, Claude Desktop, Cursor, VS Code, Windsurf and Gemini CLI configs
npx mcptop --config .mcp.json # one file
npx mcptop --budget 30000 # exit 1 when the total is above the budget, for CI
npx mcptop --claude # exact counts from the Anthropic count_tokens endpoint (free, needs ANTHROPIC_API_KEY)
It starts every configured server the way your client does, lists the tools and prints the token cost per server and in total. See packages/mcptop.
mcp-pulse.ulehla.dev is rendered on the edge from a D1 database, ships no JavaScript, and refreshes every night.
git copilot finds the GitHub Copilot servers), filters by result, protocol and transport, seven sorts, and every filter is a plain URL you can share/api/s/<name>.json, /api/servers.json?q=…&status=ok&sort=tokens, /api/check.json?url=…, /api/summary.jsonhttps://mcp-pulse.ulehla.dev/mcp with the tools lookup_server, search_servers, check_server, registry_summary. The manifest for the registry is site/server.json./llms.txt lists all of it. /tokens answers the general question: how many context tokens does an MCP server cost.Each server on the board gets a page and a badge:
[](https://mcp-pulse.ulehla.dev/s/io.github.you/your-server)
The registry held 38 942 latest entries. 24 294 of them have a remote endpoint, and the probe connected to all of them in 40 minutes.
| Result | Servers | Share |
|---|---|---|
alive: initialize and tools/list succeed | 12 975 | 53 % |
| needs auth (401, 403) | 5 836 | 24 % |
| not MCP: HTTP 200 but no valid MCP reply | 1 800 | 7 % |
| not found (404, 405, 410) | 881 | 4 % |
| no DNS | 728 | 3 % |
| rate limited (429) | 500 | 2 % |
| payment required (402) | 434 | 2 % |
| server error (5xx) | 349 | 1 % |
| other | 307 | 1 % |
| TLS error | 259 | 1 % |
| timeout | 204 | 1 % |
| refused | 21 | 0 % |
Of the 12 975 servers that answered:
com.replynodes/mcp: 66 tools, 431 925 tokensinitialize latency is 455 ms, the 90th percentile 1.5 s2025-11-25, 24 % still 2025-03-26, 4 % 2024-11-052026-07-28, which the current TypeScript SDK rejectsThe registry is lumpy. 16 161 of 16 534 hosts publish one server. Five hosts publish more than 6 000 entries between them: one Workers subdomain with 2 365 near-identical entries, a gateway with 1 716 entries of which 1 321 return a JSON-RPC error on initialize, and a host with 276 entries that all answer 402.
registry ──▶ probe/run.ts ──▶ data/raw/probe-run.json
│
probe/build-data.ts
│
data/latest/{servers,summary,hosts}.json
│
probe/to-sql.ts ──▶ import.sql ──▶ D1
│
site/ (Astro on Workers) ◀────────┘
packages/mcptop/ the library and the CLI mcptop: registry client, remote and stdio probe, config discovery, token countingprobe/ the batch runner and the data pipelinesite/ the board: Astro 7 with the Cloudflare adapter on Workers, rendered from D1 with FTS5 search, SVG badges, no client JavaScript.github/workflows/probe.yml runs the whole pipeline daily and commits summary.json and hosts.json.github/workflows/deploy.yml deploys the site when site/ changestools/list while that stream is open (DeepWiki held it for 15 s and never answered the POST meanwhile).count_tokens endpoint for every alive server: one request with the server's tools plus a marker tool, one with the marker tool only, and the difference is what the tools cost in claude-opus-5-5. A second count uses Claude Code's mcp__<server>__ prefix on each tool name. The endpoint is free and calls no model. A server is counted again only when its tool definitions change. About 5 % of servers publish a schema the endpoint refuses; they show the estimate and the reason.name, description and input_schema, and counted with the o200k_base tokenizer. The exact count is about 1.9 times the estimate at the median. The estimate needs no key and is the same for every server.mcp-pulse/<version> (+https://github.com/ondraulehla/mcp-pulse). To exclude a server, open an issue with its registry name.npm install
npm run probe -- --sample 200 --per-host 2 # a sample, results in data/samples/
npm run probe -- --all --out data/raw/probe-run.json
node --import tsx probe/build-data.ts --in data/raw/probe-run.json --out data/latest
node --import tsx probe/to-sql.ts --in data/latest --out data/latest/import.sql
npm test --workspaces --if-present
Site, locally against a local D1:
cd site
npm run db:schema:local && npm run db:import:local
npm run dev
Deploying needs a Cloudflare account with a D1 database named mcp-pulse (wrangler d1 create mcp-pulse, then put the id in site/wrangler.jsonc). The workflows expect the repository secrets CLOUDFLARE_API_TOKEN (Workers Scripts: Edit, D1: Edit) and CLOUDFLARE_ACCOUNT_ID.
MIT