
mcp-pulse
io.github.ondraulehlav0.1.1更新于 Oct 3, 2026
Health and token cost of every remote MCP registry server, probed daily. Look up, search, or probe.
概览
让助手查询、搜索并实时探测远程 MCP 注册表服务器,了解其可用性、认证、付费和工具 token 开销。
- 功能
- mcp-pulse 通过 Streamable HTTP 提供四个工具:lookup_server、search_servers、check_server 和 registry_summary。它提供官方 MCP 注册表中每个远程服务器的每日探测结果,包括 initialize 与 tools/list 是否成功、延迟、协商的协议版本、认证方式、是否要求付费、工具数量以及工具定义的 token 开销。check_server 可对单个 URL 进行实时探测,search_servers 支持全文搜索、筛选和排序。
- 适用场景
- 适合在挑选或审查 MCP 服务器时使用:确认服务器是否在线、是否需要认证或付费,以及其工具定义会占用多少上下文 token。也适合比较提供相同工具集的服务器,或查看某个服务器的历史记录。
- 运行要求
- 需要一个远程 Streamable HTTP 端点 密钥或环境变量。助手需要能访问该主机的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 mcp-pulse,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。
{
"mcpServers": {
"mcp-pulse": {
"type": "http",
"url": "https://mcp-pulse.ulehla.dev/mcp"
}
}
}README
mcp-pulse
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:
- whether it answers
initializeandtools/list, and how fast - the protocol version it negotiates
- whether it needs auth, and which scheme (from
WWW-Authenticate) - whether it asks for payment (HTTP 402)
- how many tools it has and how many tokens their definitions cost
mcptop: what do your own servers cost?
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.
The board
mcp-pulse.ulehla.dev is rendered on the edge from a D1 database, ships no JavaScript, and refreshes every night.
- Overview: the share of servers that answer, token cost percentiles, and a form to check any server
- Check: probes one URL live, with the same steps as the daily run; the exact token count runs in the browser
- Statistics: results by cause, token cost and tool count percentiles, the heaviest tool sets, protocol versions, auth schemes, transports, biggest publishers
- Servers: full-text search over name, title, description and host (word prefixes, so
git copilotfinds the GitHub Copilot servers), filters by result, protocol and transport, seven sorts, and every filter is a plain URL you can share - Server page: status, latency, protocol, capabilities, the most expensive tools, servers with the same tool set, history, and the badge
- Hosts: the 500 biggest publishers with how many distinct tool sets they actually serve
For agents and scripts
- JSON:
/api/s/<name>.json,/api/servers.json?q=…&status=ok&sort=tokens,/api/check.json?url=…,/api/summary.json - MCP server over Streamable HTTP, no auth:
https://mcp-pulse.ulehla.dev/mcpwith the toolslookup_server,search_servers,check_server,registry_summary. The manifest for the registry issite/server.json. /llms.txtlists all of it./tokensanswers the general question: how many context tokens does an MCP server cost.
Each server on the board gets a page and a badge:
First full run, 2026-10-03
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.
Of the 12 975 servers that answered:
- the median tool set costs 1 727 tokens, the 90th percentile 7 429, the 99th 28 200
- 208 servers cost more than 20 000 tokens, 46 more than 50 000, and 3 more than a whole 200k window
- the heaviest is
com.replynodes/mcp: 66 tools, 431 925 tokens - the median server has 8 tools, the largest 1 385
- median
initializelatency is 455 ms, the 90th percentile 1.5 s - 60 % negotiate protocol
2025-11-25, 24 % still2025-03-26, 4 %2024-11-05 - 122 servers answer with protocol
2026-07-28, which the current TypeScript SDK rejects
The 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.
How it works
packages/mcptop/the library and the CLImcptop: 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.ymlruns the whole pipeline daily and commitssummary.jsonandhosts.json.github/workflows/deploy.ymldeploys the site whensite/changes
Methodology
- Transport. The probe uses the official TypeScript SDK as a client. Streamable HTTP first, SSE when that is the only remote.
- No GET stream. The probe answers 405 to the SDK's standalone GET, so it never opens a server-to-client stream. The probe needs no server-initiated messages, and some servers stall
tools/listwhile that stream is open (DeepWiki held it for 15 s and never answered the POST meanwhile). - Token count. Each tool is serialised as compact JSON with
name,descriptionandinput_schema, and counted with theo200k_basetokenizer. Clients wrap tool definitions differently, so this is an estimate. It is the same estimate for every server, which makes the numbers comparable. - Same tool set. A hash of the sorted tool names and schema sizes marks servers that serve identical tools under different names.
- Timeouts. 15 seconds per request. At most one probe runs against a host at a time.
- Identification. Every request carries the User-Agent
mcp-pulse/<version> (+https://github.com/ondraulehla/mcp-pulse). To exclude a server, open an issue with its registry name.
Run it
Site, locally against a local D1:
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.
Licence
MIT
来源:README.md,提交 57782de
工具
0版本历史
1- v0.1.1最新Oct 3, 2026

