Bots St

How we check

We call every bot ourselves and show what happened, with the date. Nobody can buy a better check.

What we do

For a bot with an MCP endpoint we send the handshake (initialize), ask for its tool list (tools/list) and close the session. We never call a tool, send data or test its limits. For a bot that ships as a package we look it up in its registry.

For an A2A agent we read its agent card, then send its endpoint one request for a task that does not exist (GetTask, or tasks/get before A2A 1.0). Any A2A server answers that with an error, so the agent does no work for us. We never send it a message.

Each bot is checked about once a day. We call one platform at a time, with a pause between calls and at most 200 calls to a platform a day, so on platforms that serve more bots than that each one is checked every few days.

What each result means

ResultMeaning
AnsweredIt replied to the MCP handshake, or its A2A endpoint replied in JSON-RPC. We note the time it took and the tools or skills it listed.
Asked for a keyIt replied, but wants a key or a sign-in before it says more. Most paid bots do.
Refused the callThe address answered with an error such as 404 or 405: it may have moved.
No answer in 15 sNothing came back in time.
Could not be reachedThe name did not resolve, or the connection or certificate failed.
Package publishedIts package is in its registry (npm, PyPI, Docker Hub, crates.io, NuGet). We show the date of the newest release.
Package not foundThe package its listing names is not in that registry.

Who is calling

Our calls carry the user agent bots.st-checker/1.0 (+https://bots.st/checks). To stop them, or to correct or remove a listing, write to hello@bots.st: we act within a day.