Council of AI GSPC

Independent AI governance measurement MCP.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Measure: Return the GSPC measurement CONTRACT for a subject: which axes exist, how they are graded, and where the published results live. This endpoint DOES NOT MEASURE — it contacts no model and grad
  • Verify: Verify a signed CSOAI card. Recomputes the id (or content_id) from the canonical body under the published rule, checks the Ed25519 signature over exactly those bytes, and pins the signer again
  • Jail Probe: Return the jail-probe verdict CONTRACT for a model and prompt. This endpoint DOES NOT RUN the probe — sandbox execution and signed card issuance happen on the measurement fleet, not here —

What data it sees

Do you need an account

No: the server works without sign-in

Independent AI governance measurement MCP. Remote HTTP (7 tools, no auth): POST https://councilof.ai/mcp — board_totals, get_axis, verify_card, list_cards, get_root, get_card, verify_inclusion. stdio npm csoai-gspc-mcp@0.1.0 is four tools; prefer the remote URL. Verify: https://councilof.ai/gspc-verify. Keywords: AI governance, model safety, EU AI Act, agent verification, MCP governance. Measurement, not certification. UNMEASURED is first-class.

Server tool list (8)

Raw names from tools/list. Only developers need these.

measureReturn the GSPC measurement CONTRACT for a subject: which axes exist, how they are graded, and where the published results live. This endpoint DOES NOT MEASURE — it contacts no model and grades nothing, so it always answers measured:false. Published measurements are at GET /api/gspc (axes) and /signed/card_index.json (signed cards); an axis with no card is UNMEASURED and stays UNMEASURED. Never a certification.
verifyVerify a signed CSOAI card. Recomputes the id (or content_id) from the canonical body under the published rule, checks the Ed25519 signature over exactly those bytes, and pins the signer against the keys published at did:web:csoai.org. Recognises both published families: gspc.measurement-card (top-level id + body + pubkey + signature) and the content_id families (cross-border, axis-signal). A hash mismatch, an invalid signature and an unpublished signing key are reported as three DIFFERENT failures — they mean different things. Accepts the card as an object, as a JSON string, or as a councilof.ai / csoai.org URL. Free, anonymous, no account. There is no time-anchor: CSOAI publishes no RFC-3161 token and this tool does not pretend to check one.
jail-probeReturn the jail-probe verdict CONTRACT for a model and prompt. This endpoint DOES NOT RUN the probe — sandbox execution and signed card issuance happen on the measurement fleet, not here — so it always answers measured:false and issues no verdict. Never a certification.
enter-arenaSelf-enrolment for external agents. Present an A2A agent card URL + machine-readable consent:true; we run the honest live predicates now (card validity, signing state, endpoint liveness) and return an UNSIGNED intake receipt with contentId, queued for signed fleet measurement. No placement for sale, Firewall 2, UNMEASURED shown honestly.
board_totalsLive GSPC board totals from https://councilof.ai/api/gspc. Returns the slot count and the measured count as two labelled numbers WITH their kind — a slot is a declared position on the board, a measurement is a real run behind it; the two are never summed and never swapped — plus as_of dates for the board and for this fetch. We measure, never certify. If the board cannot be fetched the answer is a distinct UNREACHABLE state: no cached number is ever presented as live.
get_axisOne axis row from the live GSPC board at https://councilof.ai/api/gspc: n, accuracy, interval, MEASURED or UNMEASURED status, family, and dates. An unmeasured axis is a first-class answer — a declared slot with no run behind it, published so the gap is visible — never an error and never a zero. Never a certification.
verify_cardVerify a signed gspc.measurement-card under the published rule (https://councilof.ai/signed/HOW-TO-VERIFY.md): recompute the id from the canonical body bytes, then check the Ed25519 signature under the PINNED key published at did:web:csoai.org#card-attestation-1. A card that carries its own key proves only that the file is self-consistent — anyone can alter a body and sign it with a key they just generated — so a signer other than the published key is reported INVALID. Three verdicts, never two: VALID, INVALID (with the reason), or UNCHECKABLE when the check could not be completed — 'could not check' is a different claim from 'forged'. Accepts the card as a JSON object, a JSON string, or a councilof.ai / csoai.org URL. Never a certification.
list_cardsThe published signed-card index (https://councilof.ai/signed/card_index.json): what the index declares (n_cards) and how many rows it actually carries, reported next to — never reconciled with — the count the card store endpoint (https://councilof.ai/api/cards) reports for itself. Two labelled numbers from two surfaces; if they disagree, this tool shows the disagreement rather than picking one. Optional filters return recent rows: axis, limit.