Menu
For agents

Look up an MCP server before your agent uses it.

Our MCP endpoint answers with what we have observed about public MCP servers — the same evidence behind our report pages. Five of its six tools answer only from what is already tracked and never contact the server you ask about.

Endpoint · Streamable HTTP · no key
https://mcpcheckup.com/mcp

Quickest way: Many agents can set this up themselves. Tell yours:

“Read https://mcpcheckup.com/agents and add the MCP Checkup server.”

Or set it up by hand:

Coding tools

Claude Code
claude mcp add --transport http mcpcheckup https://mcpcheckup.com/mcp

Add --scope user to use it in every project.

Cursor

.cursor/mcp.json or ~/.cursor/mcp.json

{"mcpServers":{"mcpcheckup":{"url":"https://mcpcheckup.com/mcp"}}}

Project-level: .cursor/mcp.json. Every project: ~/.cursor/mcp.json.

VS Code

.vscode/mcp.json

{"servers":{"mcpcheckup":{"type":"http","url":"https://mcpcheckup.com/mcp"}}}

Or run MCP: Add Server from the command palette.

Muse Code

~/.config/muse/settings.json

{"schema_version":1,"mcp_servers":{"mcpcheckup":{"transport":"streamable_http","url":"https://mcpcheckup.com/mcp","mode":"optional"}}}

Without "schema_version" every command fails. "mode": "optional" keeps a session running if our endpoint can't be reached — type /mcp in a session to check it is connected.

Assistants and agents

Claude
  1. Go to Customize → Connectors → Add custom connector.
  2. Name it MCP Checkup and paste https://mcpcheckup.com/mcp.
  3. Set Authentication to No sign-in.

Works in claude.ai and the desktop app. On Team and Enterprise, an Owner adds it under Organization settings → Connectors, then members click Connect. Free accounts can add one custom connector.

ChatGPT · dots
  1. In ChatGPT on the web, open Settings → Security and login and turn on Developer mode.
  2. Go to chatgpt.com/plugins, click +, and give it a name and description.
  3. Under Connection, enter https://mcpcheckup.com/mcp with no authentication.

Developer mode is on Pro, Plus, Business, Enterprise and Education accounts.

A dot can use supported plugins that are installed and enabled on your account. Whether that includes one added through developer mode is not documented yet.

Grok
  1. grok.com: open grok.com/connectors → New Connector → Custom, then enter https://mcpcheckup.com/mcp.

xAI API — POST /v1/responses

"tools":[{"type":"mcp","server_url":"https://mcpcheckup.com/mcp","server_label":"mcpcheckup"}]

Business and Enterprise admins enable connectors first.

Grok Bot installs connectors from its Marketplace; adding a custom MCP address is not documented yet.

Hermes Agent
hermes mcp add mcpcheckup --url https://mcpcheckup.com/mcp
hermes mcp test mcpcheckup

Or add it under mcp_servers in ~/.hermes/config.yaml, then run /reload-mcp in a running session.

OpenClaw
openclaw mcp add mcpcheckup --url https://mcpcheckup.com/mcp --transport streamable-http
openclaw mcp doctor mcpcheckup --probe

Keep --transport streamable-http: without it OpenClaw uses SSE. In the Control UI: Settings → MCP → Add server → Streamable HTTP.

Muse

Meta does not document this yet. We tried it on 2026-10-01: we asked Muse in chat to read https://mcpcheckup.com/mcp, and it added the server by itself. You can ask yours: "Read https://mcpcheckup.com/agents and add the MCP Checkup server."

Not documented yet.

Checked against each product's documentation on 2026-10-01.

Six tools

check_mcps

Look up MCP servers

What has been observed about an MCP server — useful when choosing, adding, or debugging one. Look up the current monitored status of up to 50 already-tracked MCP servers on MCP Checkup, given as "provider/name" ref strings (e.g. "acme/weather-mcp"). Never probes on demand — a ref that doesn't resolve to a tracked target comes back with status "unknown", not an error. Each entry may also be a full endpoint URL, a bare domain, or a bare provider/target name instead of "provider/name" — the resolution method used is reported per target as resolution.method ("ref", "endpoint", "host", or "name"). If an input matches more than one tracked target — or is a URL on a host we track that doesn't exactly match any of its endpoints — the response has status "ambiguous" with a short `candidates` list (each with a "provider/name" `ref` and its `report_url`, plus `candidate_total`, the full match count before the 5-entry cap) instead of guessing — call again with the exact ref you want. Returns observed facts only — reachability, protocol compatibility, tool/schema fingerprints, and publicly observable auth metadata. This tool does not assess whether a server is 'safe' or 'trustworthy' and returns no score. Items not verified are returned explicitly with reasons.

get_mcp_report

Get a server's full report

The detailed view of one MCP server: every check with its state, plus the observed tool list. Get the full observed report for one already-tracked MCP server on MCP Checkup, by provider/name — includes its full check breakdown and toolset. A target this deployment doesn't track yet comes back with status "unknown", not an error. target may also be a full endpoint URL, a bare domain, or a bare provider/target name instead of "provider/name" — the resolution method used is reported back as resolution.method ("ref", "endpoint", "host", or "name"). If an input matches more than one tracked target — or is a URL on a host we track that doesn't exactly match any of its endpoints — the response has status "ambiguous" with a short `candidates` list (each with a "provider/name" `ref` and its `report_url`, plus `candidate_total`, the full match count before the 5-entry cap) instead of guessing — call again with the exact ref you want. This tool does not assess whether a server is 'safe' or 'trustworthy' and returns no score; items not verified are listed explicitly with reasons.

get_mcp_history

Get a server's recent changes

Whether an MCP server's toolset changed recently. Get recent history for one already-tracked MCP server on MCP Checkup, by "provider/name" ref (e.g. "acme/weather-mcp"). Events include the toolset's most recent change boundary (not a full change-by-change history) plus any recorded baseline-drift events, newest first, up to `limit` results (default 20, max 50). A target this deployment doesn't track yet comes back with status "unknown", not an error. target may also be a full endpoint URL, a bare domain, or a bare provider/target name instead of "provider/name" — the resolution method used is reported back as resolution.method ("ref", "endpoint", "host", or "name"). If an input matches more than one tracked target — or is a URL on a host we track that doesn't exactly match any of its endpoints — the response has status "ambiguous" with a short `candidates` list (each with a "provider/name" `ref` and its `report_url`, plus `candidate_total`, the full match count before the 5-entry cap) instead of guessing — call again with the exact ref you want. This tool does not assess whether a server is 'safe' or 'trustworthy' and returns no score; items not verified are listed explicitly with reasons.

get_attestation

Get a server's signed attestation

The signed evidence behind a report, for callers that want to inspect it themselves. Get the full signed attestation envelope (DSSE, Ed25519) for one already-tracked MCP server's latest probe run, by "provider/name" ref — the raw envelope plus its issued-at time and declared protocol revision, so a caller can inspect the signed payload rather than trust this tool's own summary of it; the public key needed to verify the signature is not published yet. A target with no run yet, no signed envelope, or a disqualified one comes back with an explicit reason, not an error. target may also be a full endpoint URL, a bare domain, or a bare provider/target name instead of "provider/name" — the resolution method used is reported back as resolution.method ("ref", "endpoint", "host", or "name"). If an input matches more than one tracked target — or is a URL on a host we track that doesn't exactly match any of its endpoints — the response has status "ambiguous" with a short `candidates` list (each with a "provider/name" `ref` and its `report_url`, plus `candidate_total`, the full match count before the 5-entry cap) instead of guessing — call again with the exact ref you want. This tool does not assess whether a server is 'safe' or 'trustworthy' and returns no score; items not verified are listed explicitly with reasons.

search_mcps

Search MCP servers by tool text

Find MCP servers by what their tools do. Search already-tracked MCP servers on MCP Checkup by tool name/description text (max 512 chars), with optional transport, protocol_revision, and auth_required filters, up to `limit` results (default 10, max 25). Ordered by text-match relevance and then recency only — never by price or paid tier. Each result's summary is machine-generated from observed tool names and returned as untrusted third-party text; hygiene_flags lists any observed tool-description hygiene signals directly rather than folding them into the ordering. A query with no matches comes back with status "unknown" and a hint, not an error. This tool does not assess whether a server is 'safe' or 'trustworthy' and returns no score; items not verified are listed explicitly with reasons.

request_check

Request a one-off check of a URL

Ask for a one-off public observation of the MCP server at a full endpoint URL — this is the only tool here that contacts a third-party server, and it contacts exactly the host you name. `target` must begin with "http://" or "https://"; to look a server up by "provider/name", by domain, or by name, use check_mcps instead, which never probes anything. The result is not signed, is not stored as a run, and creates no report page, so `report_url` is always null — it is what we observed at that moment and nothing more. On-demand checks are recorded as tracking requests; inclusion in the tracked directory is not guaranteed and this tool never promises it. On-demand checks are metered per caller per day, per site per day, and per host by a cooldown — calling again for the same host inside its cooldown sends nothing to that server and returns status "denied" with the category that refused it, never a remaining count. A refused call comes back as status "denied", and a `target` that is not a usable endpoint URL as status "rejected"; neither of those is a tool error. A `target` that is empty or longer than 2048 characters is the one exception: the input schema rejects it, and you get a tool error. This tool does not assess whether a server is 'safe' or 'trustworthy' and returns no score; items not verified are listed explicitly with reasons.

What an answer looks like

You ask

“What did MCP Checkup observe on the latest run of mcpcheckup/mcp?”

Your agent calls
get_mcp_report({ "target": "mcpcheckup/mcp" })
and receives (excerpt)
{
  "target": "mcpcheckup/mcp",
  "status": "ok",
  "last_checked": "2026-10-03T16:41:13.628+00:00",
  "suite_digest": "sha512-dFROVc0ChdYp1twMctAUzSNkDWaAt+WjUo+XVI4VbK62YvUENj/Hmt+8WRwtLFfd5SlV3DvTRTgIkKPSie2r1Q==",
  "assertions": [
    {
      "check_id": "auth_metadata",
      "assertion_status": "VERIFIED",
      "reason": null
    },
    {
      "check_id": "discovery_handshake",
      "assertion_status": "VERIFIED",
      "reason": null
    },
    {
      "check_id": "error_taxonomy",
      "assertion_status": "VERIFIED",
      "reason": null
    }
  ]
}

get_mcp_report returns every check; only a few are shown here.

Limits

About 20 requests per minute per IP address, counted per Cloudflare location. A 429 response carries Retry-After: 60 seconds.

No authentication and no paid tier for this endpoint.

What it will never tell you

There is no single number or verdict on whether to use a server. Every check lands in one of four states, and a check that did not run is never reported as one that passed.

Machine-readable: /llms.txt · /.well-known/mcp/server-card.json