Our checks
plug.directory checks that a listed MCP server starts and answers. This page says what a check does, so you can recognise it in your logs and stop it if you want.
How to recognise a check
Every request carries this user agent, with our version number in place of <version>:
plug.directory-prober/<version> (+https://plug.directory/probe)
Checks come only from these addresses:
87.236.197.37
How often
A server among the 2,000 highest ranked is checked once an hour, every other one once a day, each at a fixed minute of its own. Servers that share a host share its checks: one host is asked at most once every 30 seconds on average, never more than 3,000 times a day, and never more than once a second. A server newly added to the directory goes to the front of the queue and is first checked within minutes, ahead of every routine check; when a host gains several new servers at once, they are checked 30 seconds apart. Its page shows the result as soon as the check is done.
A check that fails is repeated five minutes later. While a server keeps failing it is checked every five minutes for the first hour, then at its usual pace again. A server that has never answered is not repeated early: it waits for its usual time.
What a check calls
Only the requests that say what a server is and list its tools, and the one notification the older handshake requires:
server/discoverinitializenotifications/initializedtools/list
A server of protocol version 2026-07-28 or later is asked server/discover and then tools/list. An earlier one gets the initialize handshake first. Over the older HTTP+SSE
transport a check opens the event stream with one GET and posts to the address it names.
A check never calls a tool (tools/call), never signs in, never sends a key, a token or any other
credential, never reads a resource or a prompt, never sends malformed or random input, and never sends an HTTP DELETE or a cancellation: a session it
was given simply ends. It goes only to public IPv4 addresses over HTTPS on ports 443 and 8443, follows at most three
redirects, reads at most 1 MB of an answer and gives up after 45 seconds.
If a server answers and asks for a key or a sign-in, we show "needs a key": it answered, so it counts as working. If it refuses or limits the check, we show "refused our check", and a server we cannot reach from our network is "not checkable by us". Neither counts against the server.
Stop the checks
Write to [email protected] with the server's name or its address, or use the report form. We stop checking it within 24 hours, and its page then says "checks paused at the owner's request".