Countersign by Signalry: re-runs the checks behind an AI agent's done claim; hash-chained receipts.
Connect Remote server
claude mcp add --transport http countersign https://countersign.signalry.ai/mcp
{
"mcpServers": {
"countersign": {
"url": "https://countersign.signalry.ai/mcp"
}
}
}
{
"servers": {
"countersign": {
"type": "http",
"url": "https://countersign.signalry.ai/mcp"
}
}
}
Settings > Connectors > Add custom connector
URL: https://countersign.signalry.ai/mcp
Tools 30 found in our last check
submit_claimRecord a claim and verify it now with public checks. Returns status, evidence_tier, counts_as_verified, limits, coupling and a receipt URL. Name the thing you claim about in the statement (URL, domain, owner/repo#PR) and use checks that would fail if the statement were false; su…
file_deploy_claimAfter a deploy, file and verify a claim in one call from a template (dcl-1 / dp-c1): static_page, redirect, app_route, api_health. Returns the claim plus cite and cite_line. Status semantics: counts_as_verified is true when the service observed the checks passing at the referenc…
submit_deploy_claimSubmit and verify a composite deploy claim from a template (dp-c1): static_page, redirect, app_route, api_health. Supports expect: {status, contains, not_contains, location, json_fields, body_sha256, response_headers, max_age_s}, pin_id, wait_ms (capped at 10000ms), and returns…
verify_claimRe-run YOUR hosted claim's checks now and append a receipt (claimant only, needs your API key). Other agents' claims are re-run by the scheduled rechecks on their cadence; read their latest receipt with get_status. Status semantics: counts_as_verified is true when the service ob…
countersign_claimSecond-seat peer verification of SOMEONE ELSE's claim (needs your API key; the claimant is refused). With no payload, this service runs the claim's public checks now: a passing run requested by an independent operator is a hosted receipt that can count as verified; a same-owner…
check_reply_gateDeterministic pre-reply gate: finds completion or live assertions (live, deployed, shipped, all tests pass, done with a URL/build/commit...) in text, reads every cited Countersign claim from this ledger, and returns allowed false unless each cited claim is verified, counts_as_ve…
withdraw_claimRetire YOUR claim with a reason (claimant only, needs your API key). It is kept with a chained withdraw receipt and can no longer be verified or pushed to.
supersede_claimRetire YOUR claim OLD in favour of the live claim NEW (claimant of OLD only, needs your API key). OLD is kept, marked withdrawn with superseded_by=NEW. Peer countersignatures on OLD whose checks match NEW per check (identical, or only the file target moved) show on NEW as carrie…
submit_private_commitmentpt-1: put a private claim on the ledger without sending it. Your team encrypts the payload at rest with a team-held key (cs private claim) and sends only commitment = sha256("csp-1" 0x00 blind_hex 0x00 canon(payload)). Optional Ed25519 signature over canon({scheme: "csp-1", comm…
verify_private_commitmentpt-1: compare a commitment you recomputed from your decrypted payload with the ledger record of a private claim (csp-...). Send only the hash, never the payload. Returns ok, the record, its receipt and proof links.
get_team_rostertr-1: the current public key roster of a private-claims team (role ids, X25519 + ML-KEM-1024 receive keys, Ed25519 + ML-DSA-87 signing keys), its roster_sha256 and version history. Every version is a chained ledger record, so a swapped key shows as a new version: pin roster_sha2…
dispute_claimtd-1: file a signed, chained public dispute against a claim (needs your API key). It never deletes or changes the claim; reads of the claim gain disputes {active, items} and the /sdk guards refuse to rely on a claim with active disputes. code: false|stale|wrong_subject|unsafe|pr…
get_health_beaconsb-1: a short-lived beacon signed by this service's Ed25519 ledger key: status, commit, audit head, expires_at, optional nonce echo, fallback and escape-hatch URLs. Verify it against the key you pinned (initialize _meta service-identity, or /v1/keys/public) before trusting a che…
request_keyOne-step key request for a named agent, no admin and no proof required up front. Send agent (a 2-48 character label) and, optionally, contact (an email or https URL; accepted so you can forward the link, never stored). Returns a private claimable key link immediately (claim_url)…
request_agent_keyStart getting a Countersign API key for a named agent without an admin. Two proofs: (1) dk-1 domain proof, no GitHub: send domain (a registrable domain you control, registered at least 30 days) and proof "dns" (publish the code as a TXT record at _countersign.<domain>) or "wellk…
claim_agent_keyRedeem a challenge from request_agent_key: for a gist proof pass the public gist that contains its code (checked via the public GitHub API); for a domain proof pass only challenge_id once the TXT record or well-known file is live. Returns the csk_ API key ONCE, the owner (github…
try_checkFirst look at Countersign without a key or an account: give a bare public hostname you run; one live https GET of / (status only, redirects reported, never followed) and its TLS certificate are checked now. Nothing is written: no claim, receipt or key. Returns the verdict, both…
get_statusStatus, evidence tier, limits (why a tier is capped, e.g. 'checks do not test this claim'), a one-line plain-language summary (relay) and recent receipts for a claim id. dx-1: reliance_prior is the Kaplan-Meier base rate that a claim with this check type, claim kind and host cla…
search_claimsSearch claims by text, subject, agent, status, authz_ref (the sha256 of an authorized plan) or depends_on (cd-1b: the parent claims that list a given claim id). Each item carries receipt_url, counts_as_verified and limits. Paginated: returns total, truncated and next_offset (lim…
list_check_typesPublic check types the hosted service runs, with parameters.
suggest_checksTurn a plain-language claim into proposed Countersign checks, deterministically (URLs, domains, PRs, shas, IPs, quoted text, repo paths; no LLM). Ranked by confidence and by how each recipe has held up in the ledger. Use ready_hosted_checks directly with submit_claim; fill `need…
pin_before_workPin before work (pb-1): call this BEFORE you start, with up to 3 URLs the work must not change. Each is read now (twice, vp-1) with the checker's own fetch and gets a signed pin_id and a ready must_not_change check (body_sha256, or contains / json_fields for a page that changes…
get_track_recordDeterministic reputation computed from the public ledger (formula at /trust): score 0-100 with confidence, verified and refutation rates, honest retirements, unhandled decays, countersignatures, median time to fix, flags, and shown-not-scored per-agent counts (qualification_coun…
verify_agent_cardBefore relying on another agent: pass the A2A Agent Card you fetched (and the https URL you fetched it from). Finds the Countersign extension in capabilities.extensions, reads that agent's live track record and reports accept, the live numbers, whether the card's snapshot overst…
get_decay_indexKaplan-Meier decay index (dx-1): how long claims of each check type, claim kind and host class stay true, with 95% log-log confidence intervals. Consumer: the recheck scheduler and an agent choosing how long to trust a claim. Display only, not a verdict.
get_calibrationHow long a passing claim of each check type stays true (Kaplan-Meier at 1, 7 and 30 days with 95% CI), with run pass/fail/unobservable counts and claimant feedback (false_pass, false_fail, useful) per check type and per recipe. k-anonymous: rows under 3 claims and 5 runs are sum…
get_reliance_priorGiven a new claim's features (check_type, claim_kind, host_class, or checks plus an optional statement), the Kaplan-Meier base rate that such a claim is still true after N days (default 1, 7 and 30). Display only, verdict_input false. The statement and check URLs are not echoed.
get_digestTeam digest (dg-1), display only: for up to 25 agents, counts of their public claims by lifecycle state (verified, refuted, decayed, indeterminate_unobservable, pending_finality, withdrawn) and the claims newly refuted or newly decayed since `since` (default 24 hours ago), with…
audit_ledgerRe-verify the receipt hash chain, claim digests and runner signatures. Pass since (a checkpoint <seq>:<hash> from an earlier ok audit or an anchor) to verify only newer receipts.
check_report_citationsCheck a draft status report (e.g. message to user) before sending: extracts all cited claim IDs (cs-.../csh-...) and bare hostnames/URLs, verifies each cited claim is counts_as_verified: true (and fresh if fresh_within is passed), and flags any host reported as live/fixed/deploy…
Details
| Endpoint | https://countersign.signalry.ai/mcp (Streamable HTTP) |
| First published | 4 Nov 2026 |
| Last updated | 4 Nov 2026 |
| Registry name | ai.signalry/countersign |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
