Council of AI GSPC
What this MCP does
Provides measurement data and cryptographic verification for MCP endpoints, signed cards, Merkle inclusion, payment challenges, and related evidence.
Tools
Input schema
{'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'Public http(s) URL of the generative output to measure (â\x89¤20 MiB).'}, 'preview': {'type': 'boolean', 'description': 'true = free unsigned measurement (no card sha, no signature).'}, 'bytes_b64': {'type': 'string', 'description': 'Alternatively the output bytes, base64 (â\x89¤20 MiB decoded).'}, 'x_payment': {'type': 'string', 'description': 'The X-PAYMENT header value signed against accepts[] from the previous 402. Omit to receive the challenge.'}, 'manifest_b64': {'type': 'string', 'description': 'Alternatively a detached C2PA manifest store, base64 (manifest-only mode).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status'], 'properties': {'tool': {'type': 'string'}, 'route': {'type': 'string'}, 'status': {'type': 'string', 'description': 'PAYMENT_REQUIRED, DELIVERED, NOT_DEPLOYED, UNREACHABLE, UNREADABLE_RESPONSE, BAD_ARGUMENTS or HTTP_<code>'}, 'accepts': {'type': 'array'}, 'resource': {'type': 'object'}, 'deliverable': {}, 'http_status': {'type': 'integer'}, 'x402Version': {'type': 'integer'}, 'delivery_state': {'type': 'string'}, 'settlement_state': {'type': 'string'}, 'payment_presented': {'type': 'boolean'}, 'not_a_certification': {'type': 'boolean'}}, 'description': "The wrapper's status fields. On PAYMENT_REQUIRED (isError:true) the route's x402 PaymentRequired object (x402Version, resource, accepts, extensions) is spread at the top level too, per the x402 MCP transport."}
Input schema
{'type': 'object', 'properties': {'detail': {'enum': ['summary', 'full'], 'type': 'string', 'default': 'summary', 'description': "summary (default): counts, public_count, the separation line, dates and source. full: also count_grammar, by_family and the board's measured_on block."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'as_of': {}, 'state': {'type': 'string', 'description': 'LIVE or UNREACHABLE'}, 'counts': {'type': 'array', 'items': {'type': 'object', 'properties': {'kind': {'type': 'string'}, 'name': {'type': 'string'}}}}, 'detail': {'type': 'string', 'description': 'summary or full'}, 'source': {'type': 'string'}, 'by_family': {}, 'separation': {}, 'public_count': {'type': ['string', 'null']}, 'count_grammar': {}, 'not_a_certification': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'required': ['subject'], 'properties': {'axis': {'type': 'string', 'description': 'Optional axis slug; omit for the subject-level commission.'}, 'subject': {'type': 'string', 'description': 'Subject to commission: a model id, instrument id or card sha (1-120 chars of [A-Za-z0-9._:/@+-]).'}, 'x_payment': {'type': 'string', 'description': 'The X-PAYMENT header value (base64 x402 payload) signed by your wallet against accepts[] from the previous 402. Omit to receive the challenge.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status'], 'properties': {'tool': {'type': 'string'}, 'route': {'type': 'string'}, 'status': {'type': 'string', 'description': 'PAYMENT_REQUIRED, DELIVERED, NOT_DEPLOYED, UNREACHABLE, UNREADABLE_RESPONSE, BAD_ARGUMENTS or HTTP_<code>'}, 'accepts': {'type': 'array'}, 'resource': {'type': 'object'}, 'deliverable': {}, 'http_status': {'type': 'integer'}, 'x402Version': {'type': 'integer'}, 'delivery_state': {'type': 'string'}, 'settlement_state': {'type': 'string'}, 'payment_presented': {'type': 'boolean'}, 'not_a_certification': {'type': 'boolean'}}, 'description': "The wrapper's status fields. On PAYMENT_REQUIRED (isError:true) the route's x402 PaymentRequired object (x402Version, resource, accepts, extensions) is spread at the top level too, per the x402 MCP transport."}
Input schema
{'type': 'object', 'required': ['obligation'], 'properties': {'preview': {'type': 'boolean', 'description': 'true = the free preview (relevant-card count and first cards); nothing is charged.'}, 'subject': {'type': 'string', 'maxLength': 120, 'description': 'Optional: a model id, vendor or instrument the cards must name.'}, 'x_payment': {'type': 'string', 'description': 'The X-PAYMENT header value signed against accepts[] from the previous 402. Omit to receive the challenge.'}, 'obligation': {'enum': ['article-50', 'article-53', 'dora', 'cra'], 'type': 'string', 'description': 'article-50, article-53, dora or cra.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status'], 'properties': {'tool': {'type': 'string'}, 'route': {'type': 'string'}, 'status': {'type': 'string', 'description': 'PAYMENT_REQUIRED, DELIVERED, NOT_DEPLOYED, UNREACHABLE, UNREADABLE_RESPONSE, BAD_ARGUMENTS or HTTP_<code>'}, 'accepts': {'type': 'array'}, 'resource': {'type': 'object'}, 'deliverable': {}, 'http_status': {'type': 'integer'}, 'x402Version': {'type': 'integer'}, 'delivery_state': {'type': 'string'}, 'settlement_state': {'type': 'string'}, 'payment_presented': {'type': 'boolean'}, 'not_a_certification': {'type': 'boolean'}}, 'description': "The wrapper's status fields. On PAYMENT_REQUIRED (isError:true) the route's x402 PaymentRequired object (x402Version, resource, accepts, extensions) is spread at the top level too, per the x402 MCP transport."}
Input schema
{'type': 'object', 'required': ['obligation'], 'properties': {'subject': {'type': 'string', 'maxLength': 120, 'description': 'Optional: a model id, vendor or instrument the cards must name. Omit for the obligation-wide selection.'}, 'obligation': {'enum': ['article-50', 'article-53', 'dora', 'cra'], 'type': 'string', 'description': 'article-50 (AI-generated content marking), article-53 (GPAI provider documentation), dora (ICT third-party oversight) or cra (Cyber Resilience Act).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'cards': {'type': 'array', 'items': {'type': 'object'}}, 'state': {'enum': ['RELEVANT_CARDS_FOUND', 'EMPTY', 'UNKNOWN_OBLIGATION', 'BAD_ARGUMENTS', 'UNREACHABLE'], 'type': 'string'}, 'corpus': {}, 'reason': {'type': 'string'}, 'source': {'type': 'string'}, 'subject': {'type': ['string', 'null']}, 'relation': {'type': 'string'}, 'obligation': {'type': 'object'}, 'review_note': {'type': 'string'}, 'determination': {'type': 'string', 'const': 'NONE'}, 'counsel_confirmed': {'type': 'boolean'}, 'not_a_certification': {'type': 'boolean'}, 'relevant_signed_cards': {'type': 'integer'}}}
Input schema
{'type': 'object', 'required': ['axis'], 'properties': {'axis': {'type': 'string', 'description': 'The axis name as it appears on the board, e.g. governance, safety, jail, provenance-controls. Case-insensitive. An unknown name returns the list of names the board actually carries.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'n': {}, 'axis': {'type': ['string', 'null']}, 'state': {'type': 'string', 'description': 'LIVE, NOT_ON_BOARD, BAD_INPUT or UNREACHABLE'}, 'family': {}, 'leader': {}, 'source': {'type': 'string'}, 'status': {'type': ['string', 'null']}, 'dataset': {}, 'accuracy': {}, 'interval': {}, 'measured': {'type': 'boolean'}, 'board_carries': {'type': 'array'}, 'resolved_from': {'type': 'string', 'description': 'present when the caller named an alias (e.g. gov) that resolved to this board axis'}, 'not_a_certification': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'required': ['sha256'], 'properties': {'sha256': {'type': 'string', 'description': '64-char hex payload SHA-256 of the card-v0 leaf.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'next': {'type': 'object', 'description': 'With NOT_IN_THIS_CORPUS: the tool call that checks this id.'}, 'state': {'type': 'string', 'description': 'VALID, NOT_IN_THIS_CORPUS, INVALID or UNCHECKABLE'}, 'corpus': {'type': 'string', 'description': 'With NOT_IN_THIS_CORPUS: the set the id belongs to (signed_card_index).'}, 'reason': {'type': 'string'}, 'sha256': {'type': 'string'}, 'source': {'type': 'string'}, 'surface': {}, 'card_url': {'type': ['string', 'null'], 'description': 'With NOT_IN_THIS_CORPUS: the signed card body to pass to verify_card.'}, 'not_gspc': {'type': 'boolean'}, 'unmeasured': {}, 'sig_ed25519': {}}}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'kind': {}, 'as_of': {}, 'state': {'type': 'string', 'description': 'VALID, UNREACHABLE or UNCHECKABLE'}, 'source': {'type': 'string'}, 'not_gspc': {'type': 'boolean'}, 'card_count': {}, 'merkle_root': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'properties': {'axis': {'type': 'string', 'description': 'Only list rows whose axis matches this name (case-insensitive).'}, 'limit': {'type': 'integer', 'maximum': 150, 'minimum': 0, 'description': 'How many rows to include in the listing (newest first). Default 10. The two counts are always reported in full regardless of this limit.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'rows': {'type': ['array', 'null'], 'items': {'type': 'object', 'properties': {'ts': {}, 'axis': {'type': 'string'}, 'card': {'type': 'string'}, 'signed': {}, 'card_url': {'type': ['string', 'null'], 'description': 'The signed card body, https://councilof.ai/signed/cards/{id}.json. verify_card takes this URL or the bare card id.'}}}}, 'index': {'type': ['object', 'null']}, 'state': {'enum': ['LIVE', 'UNREACHABLE'], 'type': 'string', 'description': 'Read state of the signed card index on this call: LIVE (read now) or UNREACHABLE. Listing is not verification; verify_card checks a row.'}, 'doctrine': {'type': 'string'}, 'axis_query': {'type': 'object', 'properties': {'asked': {'type': 'string'}, 'canonical': {'type': 'string'}, 'spellings': {'type': 'array', 'items': {'type': 'string'}}, 'index_names_matched': {'type': 'array', 'items': {'type': 'string'}}}}, 'state_basis': {'type': 'string'}, 'not_a_certification': {'type': 'boolean'}, 'card_store_count_endpoint': {'type': ['object', 'null']}}}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'diff': {}, 'kind': {}, 'as_of': {'type': ['string', 'null']}, 'state': {'type': 'string', 'description': 'VALID or UNREACHABLE'}, 'counts': {'type': ['object', 'null']}, 'source': {'type': 'string'}, 'partial': {'type': 'boolean', 'description': 'true whenever the enumeration did not complete â\x80\x94 a cap-limited read is partial'}, 'headline': {'type': ['string', 'null']}, 'enumeration': {'type': ['object', 'null']}, 'partial_reason': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'state': {'enum': ['PUBLISHED', 'NOT_PUBLISHED', 'UNREACHABLE', 'UNCHECKABLE'], 'type': 'string'}, 'reason': {'type': 'string'}, 'anchors': {'type': 'object'}, 'batches': {'type': 'array', 'items': {'type': 'object'}}, 'version': {'type': 'string'}, 'doctrine': {'type': 'string', 'const': 'measurement, not endorsement'}, 'n_batches': {'type': 'integer'}, 'signature': {'type': 'object'}, 'index_root': {'type': ['string', 'null']}, 'n_capsules_total': {'type': ['integer', 'null']}}}
Input schema
{'type': 'object', 'required': ['from'], 'properties': {'to': {'type': 'string', 'description': 'Window end, ISO-8601. Defaults to now.'}, 'from': {'type': 'string', 'description': 'Window start, ISO-8601. Required.'}, 'preview': {'type': 'boolean', 'description': 'true = free: count, span, roots and batch sha256 without the leaves.'}, 'x_payment': {'type': 'string', 'description': 'The X-PAYMENT header value signed against accepts[] from the previous 402. Omit to receive the challenge.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status'], 'properties': {'tool': {'type': 'string'}, 'route': {'type': 'string'}, 'status': {'type': 'string', 'description': 'PAYMENT_REQUIRED, DELIVERED, NOT_DEPLOYED, UNREACHABLE, UNREADABLE_RESPONSE, BAD_ARGUMENTS or HTTP_<code>'}, 'accepts': {'type': 'array'}, 'resource': {'type': 'object'}, 'deliverable': {}, 'http_status': {'type': 'integer'}, 'x402Version': {'type': 'integer'}, 'delivery_state': {'type': 'string'}, 'settlement_state': {'type': 'string'}, 'payment_presented': {'type': 'boolean'}, 'not_a_certification': {'type': 'boolean'}}, 'description': "The wrapper's status fields. On PAYMENT_REQUIRED (isError:true) the route's x402 PaymentRequired object (x402Version, resource, accepts, extensions) is spread at the top level too, per the x402 MCP transport."}
Input schema
{'type': 'object', 'properties': {'mode': {'enum': ['decide', 'execute'], 'type': 'string', 'description': 'decide (default). execute is not enabled and answers NOT_ENABLED.'}, 'task': {'type': 'string', 'maxLength': 20000, 'description': 'The task. Hashed (sha256) and never stored or echoed.'}, 'policy': {'type': 'object', 'properties': {'presets': {'type': 'array', 'items': {'type': 'string'}}, 'allow_kinds': {'type': 'array', 'items': {'type': 'string'}}, 'caller_wallet': {'type': 'boolean'}, 'forbid_providers': {'type': 'array', 'items': {'type': 'string'}}, 'confirm_destructive': {'type': 'boolean'}}, 'description': 'presets [read-only, local-only, eu-only, no-unmeasured], forbid_providers [..], allow_kinds [..], confirm_destructive, caller_wallet. Unknown keys grant nothing.'}, 'objective': {'type': 'object', 'properties': {'weights': {'type': 'object', 'properties': {'cost': {'type': 'number'}, 'latency': {'type': 'number'}, 'quality': {'type': 'number'}}}, 'tie_break': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}], 'description': 'cheapest_declared, local_first, lexical_id (default in that order)'}, 'quality_axis': {'type': 'string', 'description': 'A board axis id, e.g. governance'}}}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'kind'], 'properties': {'id': {'type': 'string'}, 'kind': {'enum': ['model', 'mcp_tool', 'a2a_agent', 'x402_resource', 'local_gpu'], 'type': 'string'}, 'paid': {'type': 'boolean'}, 'model': {'type': 'string'}, 'region': {'type': 'string'}, 'endpoint': {'type': 'string', 'description': 'https://public-host/... or local:<name> for an endpoint you run'}, 'provider': {'type': 'string'}, 'read_only': {'type': 'boolean'}, 'destructive': {'type': 'boolean'}, 'cost_declared': {'type': 'number', 'minimum': 0}, 'data_class_allowed': {'type': 'array', 'items': {'enum': ['public', 'internal', 'confidential', 'pii'], 'type': 'string'}}, 'latency_declared_ms': {'type': 'number', 'minimum': 0}}}, 'maxItems': 32, 'description': 'Omit to route among the GSPC MCP tools. A candidate field the router does not know makes that candidate UNCHECKABLE (never permitted); sponsor/bid/placement fields are ignored.'}, 'data_class': {'enum': ['public', 'internal', 'confidential', 'pii'], 'type': 'string', 'description': 'Default public. A non-public class is routed only to candidates that declare it in data_class_allowed.'}, 'needs_write': {'type': 'boolean'}, 'task_sha256': {'type': 'string', 'pattern': '^[0-9a-fA-F]{64}$', 'description': 'Alternative to task: its sha256.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'mode': {'type': 'string'}, 'note': {'type': 'string'}, 'label': {'type': ['string', 'null']}, 'state': {'enum': ['ROUTED', 'NO_PERMITTED_CANDIDATE', 'BAD_ARGUMENTS', 'NOT_ENABLED'], 'type': 'string'}, 'chosen': {'type': ['object', 'null']}, 'errors': {'type': 'array'}, 'record': {'type': 'object'}, 'signed': {'type': 'boolean'}, 'preview': {'type': 'boolean'}, 'forbidden': {'type': 'array'}, 'permitted': {'type': 'integer'}, 'considered': {'type': 'integer'}, 'separation': {'type': 'string'}, 'http_status': {'type': 'integer'}}}
Input schema
{'type': 'object', 'required': ['asset'], 'properties': {'asset': {'type': 'string', 'description': 'Symbol (as listed by https://councilof.ai/api/xrpl) or issuer r-address.'}, 'preview': {'type': 'boolean', 'description': 'true = free unsigned state.'}, 'x_payment': {'type': 'string', 'description': 'The X-PAYMENT header value signed against accepts[] from the previous 402. Omit to receive the challenge.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status'], 'properties': {'tool': {'type': 'string'}, 'route': {'type': 'string'}, 'status': {'type': 'string', 'description': 'PAYMENT_REQUIRED, DELIVERED, NOT_DEPLOYED, UNREACHABLE, UNREADABLE_RESPONSE, BAD_ARGUMENTS or HTTP_<code>'}, 'accepts': {'type': 'array'}, 'resource': {'type': 'object'}, 'deliverable': {}, 'http_status': {'type': 'integer'}, 'x402Version': {'type': 'integer'}, 'delivery_state': {'type': 'string'}, 'settlement_state': {'type': 'string'}, 'payment_presented': {'type': 'boolean'}, 'not_a_certification': {'type': 'boolean'}}, 'description': "The wrapper's status fields. On PAYMENT_REQUIRED (isError:true) the route's x402 PaymentRequired object (x402Version, resource, accepts, extensions) is spread at the top level too, per the x402 MCP transport."}
Input schema
{'type': 'object', 'required': ['endpoint_url'], 'properties': {'endpoint_url': {'type': 'string', 'description': 'The endpoint URL, e.g. https://example.com/mcp or an agent-card URL.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'state': {'enum': ['MEASURED', 'NOT_MEASURED', 'NOT_PUBLISHED', 'UNREACHABLE', 'UNCHECKABLE'], 'type': 'string'}, 'reason': {'type': 'string'}, 'capsules': {'type': 'array', 'items': {'type': 'object'}}, 'doctrine': {'type': 'string', 'const': 'measurement, not endorsement'}, 'endpoint': {'type': ['string', 'null']}, 'n_capsules': {'type': 'integer'}}}
Input schema
{'type': 'object', 'required': ['capsule_json'], 'properties': {'capsule_json': {'type': ['string', 'object'], 'description': 'The capsule: its JSON text (preferred, byte-exact) or the parsed object.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'batch': {'type': 'object'}, 'state': {'enum': ['INCLUDED', 'NOT_INCLUDED', 'ID_MISMATCH', 'UNCHECKABLE', 'NOT_PUBLISHED', 'UNREACHABLE'], 'type': 'string'}, 'reason': {'type': 'string'}, 'doctrine': {'type': 'string', 'const': 'measurement, not endorsement'}, 'inclusion': {'type': 'object'}, 'capsule_id': {'type': 'object'}, 'index_signature': {'type': 'object'}}}
Input schema
{'type': 'object', 'required': ['card'], 'properties': {'card': {'anyOf': [{'type': 'object'}, {'type': 'string'}], 'description': 'The signed card: an object, a JSON string, a councilof.ai / csoai.org URL to one, or a 64-hex card id (resolved to https://councilof.ai/signed/cards/{id}.json).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'id': {'type': ['string', 'null']}, 'note': {'type': 'string'}, 'rule': {'type': 'string'}, 'state': {'type': 'string', 'description': 'VALID, INVALID or UNCHECKABLE'}, 'checks': {'type': 'array', 'items': {'type': 'object', 'properties': {'ok': {'type': ['boolean', 'null'], 'description': 'true = passed, false = failed, null = not applicable or not run (detail says UNCHECKED)'}, 'code': {'type': 'string'}, 'check': {'type': 'string'}, 'detail': {'type': 'string'}, 'advisory': {'type': 'boolean', 'description': 'true = reported but never decides the verdict (the live did.json cross-check)'}}}}, 'family': {'type': ['string', 'null']}, 'reason': {'type': ['string', 'null']}, 'reasons': {'type': 'array', 'items': {'type': 'string'}}, 'pinned_key': {'type': ['string', 'null']}, 'resolved_from': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}}, 'description': 'Present when a 64-hex card id was passed: the id asked about and the URL fetched for it.'}, 'not_a_certification': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'required': ['sha256'], 'properties': {'sha256': {'type': 'string', 'description': '64-char hex digest to test for inclusion.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'state': {'type': 'string', 'description': 'VALID, INVALID or UNCHECKABLE'}, 'reason': {}, 'sha256': {'type': 'string'}, 'merkle_root': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['state'], 'properties': {'kind': {}, 'as_of': {'type': ['string', 'null']}, 'state': {'type': 'string', 'description': 'VALID or UNREACHABLE'}, 'counts': {'type': ['object', 'null']}, 'source': {'type': 'string'}, 'headline': {'type': ['string', 'null']}}}
Recent tool changes
Similar MCP servers
AIMEAT
Provides a self-hosted agent operating system with agent work delegation, access controls, federation, hooks, SSO, security admin…
hyperion
Acts as a paid MCP tool marketplace and utility gateway with server discovery, HTTP and JavaScript tools, research, data conversi…
Japan Public Ledgers MCP
Provides agent identity, memory, audit, trust, proxy, temporary email, webhook, CAPTCHA, and alerting capabilities alongside publ…
Algenta MCP Server
Provides governed data onboarding, connector browsing, deterministic simulations, agent-run lifecycles, capability routing, deplo…
Crypto Bot Audit + Market Data (x402 paid)
Audits crypto bot source code and provides paid crypto market, token, gas, stablecoin, and DeFi TVL data.
PHION Agent Trust Infrastructure
Provides agent trust, policy, provenance, evidence, delegation, telemetry, and transaction-control services for MCP and agent wor…
Swamp
Coordinates security agents through scoped bug-bounty programs, target claims, vulnerability submissions, peer review, shared fin…
AgentBIT
Routes pay-per-call tools over x402 on Base, covering discovery, data conversion, company research, counterparty screening, domai…