mcpbeat

Our bot

If you found requests from mcpbeat/0.1 in your logs, this page is the answer. We are an independent monitor of the MCP ecosystem: we check whether public MCP servers answer, and we publish the result. We read; we never call a tool, never write, and never log in.

How to recognise us

one host, one address, never changed

Every request carries a User-Agent that links straight back to this page, with a suffix naming the job it belongs to. There are five of them and no others: mcpbeat/0.1 (+https://mcpbeat.com/bot/), and the same with "; liveness check", "; source review", "; package review" or "; metadata check" before the closing bracket. Outgoing alerts we deliver on a customer's behalf go as mcpbeat-alerts/1.0 instead.

All of it leaves from a single address: 65.21.92.231, AS24940 (Hetzner, Finland). That address has not changed since the project started, and if it ever does, the directories that list us will be told before the move, not after.

A User-Agent is a string anyone can copy, and we treat it as such: if something claiming to be mcpbeat reaches you from any other address, it is not us. Cryptographic signing of our requests is planned; until it ships, the address is the identity.

What we ask an MCP server

A standard protocol handshake — initialize — followed, where the server answers, by tools/list, resources/list and prompts/list. That is the whole conversation. We read the catalogue of what a server offers; we never invoke any of it.

We never send tools/call. Not for a tool that looks harmless, not for one that looks interesting. Whatever a tool does, it does on your infrastructure and to your data, and running it to see what happens is not monitoring.

We never authenticate. We hold no keys to anyone's server and do not try to obtain any. A server that answers our handshake with 401 or 403 is recorded as alive but closed — which is a useful, honest state, and one nobody else in this field distinguishes.

One request per endpoint, and no automatic retries against the same host in the same pass. There are no bursts: the work is spread across the interval rather than fired at once.

What we fetch outside your server

Public APIs, on their own published terms: the official MCP registry, npm, PyPI and GitHub. This is where install counts, licences and commit dates come from.

Published source archives — the same tarball anyone gets by installing the package — which we read to describe what the code does. Only released artefacts and public repositories; we do not go looking for anything that was not published on purpose.

How often

every 15 minutes, per endpoint

Liveness runs every 15 minutes against each known endpoint. Everything else is far slower: the registry, package and repository passes run once a day, and source is read only when a new release appears.

Across the whole ecosystem that is 21 595 servers watched and 11 505 checks stored so far — but for any single server of yours it means four requests an hour, forever, and nothing more.

If that is too often for your infrastructure, say so and we will lower it for you specifically. Nobody has asked yet; the offer stands regardless.

How to make it stop

Write to us and we remove your server from the checked set by hand, same day. The contact page has the address, and a human reads it.

Returning 403 will not do it on its own, and we would rather say so than be polite about it: our checker reads 401 and 403 as "alive, requires a key", because for MCP servers that is usually exactly what they mean. Blocking us by status code makes your server look healthy-but-closed rather than gone.

Your server is in our catalogue because it is in the official MCP registry, which is public. Unpublishing it there removes it here on the next daily pass.

Why we do this at all

Every catalogue of MCP servers shows a list copied from READMEs. None of them tell you whether a given server answered this morning, whether its code changed last week, or whether the tools it offers still ask for the same permissions they asked for a month ago. That gap is the entire reason this project exists, and closing it requires checking, repeatedly, forever.

All of it is published openly: full exports of every server, skill, tool and daily uptime figure live at /data/ under CC BY 4.0, no key and no signup. If a measurement about your server looks wrong, the raw file shows where it came from, and we correct what turns out to be wrong.