
MCP Checkup watches public remote MCP servers and publishes what it observed: reachability, the protocol handshake and negotiated revision, tool-list and input-schema fingerprints and how they change over time, publicly observable auth metadata, and tool-description hygiene signals.
Every check is reported as VERIFIED, FAILED, OBSERVED_RISK or UNVERIFIED. Results are never combined into a score or a verdict, and a check that was not run is never shown as passed.
https://mcpcheckup.com/mcpMCP Checkup publishes observed facts about public MCP servers: reachability, protocol revision, tool and schema fingerprints, publicly observable auth metadata, and tool-description hygiene signals. Every check is reported as VERIFIED, FAILED, OBSERVED_RISK or UNVERIFIED; results are never combined into one number or a verdict. Typical use: when a user is choosing, adding, or debugging an MCP server, look it up with (by "provider/name", endpoint URL, or domain) and read the details with . finds servers by what their tools do, shows recent toolset changes, and returns the signed attestation envelope when there is one and its key is in the published key list. Those five tools answer only from what is already tracked and never contact the server in question. is the only tool that contacts a third-party server, and it contacts exactly the host in the URL you give it. Rate limit: about 20 requests per minute per IP address, counted per Cloudflare location; a 429 response carries Retry-After. No authentication and no paid tier for this endpoint. reports status "changed_unconfirmed" for a signed run in which every failed check is a toolset_unchanged_vs_approved or schema_unchanged_vs_approved check that failed because the tool list or input schemas differ from the version the owner confirmed. Those assertions stay FAILED; with detail "full" (as in ) they are still counted in coverage.failed, unconfirmed_changes counts them, and each carries a note. reports status "auth_gated" for a run signed with signed_scope "auth_gated" and no failed check: the server answered our credential-free request with a 401 and an authentication challenge, the signature vouches only for the checks in signed_checks, and every other check is UNVERIFIED with its reason. Whenever signed is true, signed_scope ("full" or "auth_gated") and signed_checks (the check_ids the signature vouches for) are set; otherwise both are null.
None in the store listings or on the server