mcpbeat Sign in

MCP Checkup MCP Server

by mcpcheckup Your server? Claim it
answering

MCP Checkup is answering right now. Last checked 11 min ago. It exposes 6 tools.

Observed facts on public MCP servers: protocol checks, tool changes, signed evidence. No verdicts.

Uptime history 48 days of history · worst day 95%
48 days agonow
100.0%
Uptime 24h
91 of 91 checks
6
Tools
read from the server
470 ms
Response time
average over 24h
open, no key
Access
streamable-http

What changed 27

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 3 October 2026. No other catalogue keeps this.

4 Nov a tool description was rewritten get_mcp_history
31 Oct 2 tools changed the parameters they ask for check_mcps, search_mcps
25 Oct 6 tools changed the parameters they ask for check_mcps, get_attestation, get_mcp_history and 3 more
24 Oct a tool description was rewritten get_mcp_history
23 Oct 2 tool descriptions were rewritten check_mcps, get_mcp_report
22 Oct a tool description was rewritten get_attestation
20 Oct a tool description was rewritten get_attestation
17 Oct 4 tool descriptions were rewritten check_mcps, get_attestation, get_mcp_history and 1 more
5 Oct 3 tool descriptions were rewritten check_mcps, get_attestation, get_mcp_report
4 Oct 3 tool descriptions were rewritten check_mcps, get_mcp_report, search_mcps
and 3 more, back to 3 October 2026

Nothing serious here today

Today is the operative word: we check MCP Checkup every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 11 min ago.

run in your terminal
claude mcp add mcp --transport http https://mcpcheckup.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://mcpcheckup.com/mcp
~/.codex/config.toml
[mcp_servers.mcp]
url = "https://mcpcheckup.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcpcheckup.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp": {
      "type": "http",
      "url": "https://mcpcheckup.com/mcp"
    }
  }
}

Available tools 6

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

mcp
get_mcp_history
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, newest first, up to `limit` results (default 20, max 50), from the last 90 days only: `tools_changed` (at most one: when the set of tool names last changed); `tools_change_detail` (one per recorded tool-list change, the 10 most recent at most, whether names, parameters or descriptions changed; `itemization` is "not_kept" for a change older than 30 days, "unitemizable" when the stored lists cannot be compared, otherwise "itemized" and `added`, `removed`, `parameters_changed` and `description_only` each give `names` (up to 10 tool names) and a `total`); `protocol_revision_changed` (the signed protocol_revision changed between runs whose probe offered the same revision, or because the server switched between the legacy initialize and server/discover handshakes); `probe_offered_revision_changed` (the revision our probe offered changed, with a `note`); and any recorded baseline-drift events. `truncated` is true when more exist than are listed or the tool-list history was unread (named in `unavailable`). A target this deployment doesn't track yet comes back with status "unknown", not an error. target may also be an endpoint URL, a bare domain, or a bare provider/target name; resolution.method reports which was used ("ref", "endpoint", "host", or "name"). If an input matches more than one tracked target — or is a URL on a host with several, none matching exactly — 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. A URL matching only by host returns its target with `resolved_from`. 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_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 — with its full check breakdown and toolset. An untracked target comes back with status "unknown", not an error. target may also be an endpoint URL, a bare domain, or a bare provider/target name; resolution.method reports which was used ("ref", "endpoint", "host", or "name"). If an input matches more than one tracked target — or is a URL on a host with several, none matching exactly — 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. A URL matching only by host returns its target with `resolved_from`. Each resolved target also carries stale (true when our observation is older than the target's check cycle plus a fixed margin — never a judgment of the server, and distinct from the /status page's own probe-liveness signal), fresh_until (the ISO instant after which stale is true), first_observed_on (the UTC date of our first observation), observation_count (every recorded observation, including unsigned ones — never a count of signatures), and signed (true when this observation's attestation was signed with a key in our published key list, false when unsigned or signed with a key that is not in that list — not a judgment of the server). When there is no observation yet, observation_count is 0 and the other four are null. Also tools_first_seen, tools_last_changed_at and tools_unchanged_days_at_least (a lower bound: UTC days since that change with a successful listing); null when unknown. An unread revision offer is null and listed in `unavailable`; a failed target has status "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.
mcps
check_mcps
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" refs (e.g. "acme/weather-mcp"). Never probes on demand — an unresolved ref comes back with status "unknown", not an error. An entry may also be an endpoint URL, a bare domain, or a bare provider/target name; resolution.method reports which was used ("ref", "endpoint", "host", or "name"). If an input matches more than one tracked target — or is a URL on a host with several, none matching exactly — 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. A URL matching only by host returns its target with `resolved_from`. Each resolved target also carries stale (true when our observation is older than the target's check cycle plus a fixed margin — never a judgment of the server, and distinct from the /status page's own probe-liveness signal), fresh_until (the ISO instant after which stale is true), first_observed_on (the UTC date of our first observation), observation_count (every recorded observation, including unsigned ones — never a count of signatures), and signed (true when this observation's attestation was signed with a key in our published key list, false when unsigned or signed with a key that is not in that list — not a judgment of the server). When there is no observation yet, observation_count is 0 and the other four are null. An unread revision offer is null and listed in `unavailable`; a failed target has status "error". 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.
search_mcps
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. Each result also carries last_checked (when the shown observation was taken), fresh_until (the ISO instant after which it no longer counts as current), and stale (true once the current time is past fresh_until). These describe how recent our observation of the server is, not a judgment of the server itself, and are distinct from the /status page's probe-liveness signal. All three are null when the target has no observation yet. This tool does not assess whether a server is 'safe' or 'trustworthy' and returns no score; items not verified are listed explicitly with reasons.
attestation
get_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 keys that verify the signature are published at https://mcpcheckup.com/.well-known/mcpcheckup-keys.json. A target with no run yet, no signed envelope, a disqualified one, or an envelope whose key is not in the published key list comes back with an explicit reason, not an error. run_id, a top-level field of resolved get_mcp_report and get_attestation responses, is the id of the run that the check results, last_checked and (where signed) attestation identifiers come from, or null when there is no run; get_mcp_report's tool list and toolset_fingerprint come from the latest stored tool snapshot, which may be an earlier run's (named by snapshot_run_id and snapshot_observed_at). The same run_id means the same run. A payload signed as version 0.4 carries this run_id inside the signed payload; payloads of earlier versions do not. 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 with several, none matching exactly — 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. A URL matching only by host returns its target with `resolved_from`. 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
request_check
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.

Endpoints

URLTransportStateLatencyChecked
https://mcpcheckup.com/mcp streamable-http answering 501 ms 11 min ago

Alternatives to MCP Checkup

same job, measured the same way
ProtocolProbe
by protocolprobe

Read ProtocolProbe's public facts on MCP registry entries: record checks, topics, daily changes.

573 installs/wk local only
Ccs
by correctover

Runtime verification MCP server: fail-closed checks for agent tool calls, signed evidence receipts.

local only
Stackduke Radar
by stackduke

Read-only answers about tool changes in the public MCP servers on Stackduke's tracker. No sign-in.

4 tools answering
mcp-pin
by gautamtalksdev

Check if an MCP server's tool definitions changed after approval, from a signed public log.

310 installs/wk local only
Dredd MCP
by pduggusa

Pre-flight verdict on MCP servers: known-bad identity, CVEs, dependency tree, tool drift. Signed.

1 tools answering
UND Assay
by undassay

Evidence on MCP servers before you install: publisher, source, provenance, advisories, changes.

8 tools answering
Trust Me Bro
by trustmebro

Fact-check receipts: search published claim verdicts with cited evidence, or verify a new claim.

answering
HISTOR — MCP tool-definition transparency log
by alexar76

Check, diff and history of MCP tool definitions, from a public signed log of 88k+ servers.

2 877 installs/wk local only

MCP Checkup — questions

Answers built from our own checks of this server.

What can MCP Checkup do?
It exposes 6 tools, read directly from the server on our last check. Among them: check_mcps, get_attestation, get_mcp_history, get_mcp_report, request_check, search_mcps. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is MCP Checkup mostly used for?
Its tools cluster around mcps and mcp. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is MCP Checkup working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 470 ms. The bar chart above shows every period we have measured.
How do I connect MCP Checkup?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does MCP Checkup need an API key?
No. MCP Checkup completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 6 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is MCP Checkup?
It answers our handshake in 470 ms on average, which is faster than 25% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.