org.aioq/aio
REMOTE · AIOQ.ORG
AI integrity standards, benchmarks, and EU AI Act-aligned Tier 0 model certification
Available components
Last scanned (23 hours ago)
Scores higher than 87% of remote servers
Reachable. Last reached 4 Nov 2026.
Category AI and Machine Learning
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5566 tokens (~253/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability check failed: schema churn in the 30 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 6 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety92
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 2 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "get_eval_items" implies "eval" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
- An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 29 Oct 26 −1
- Stability: pass → fail ▼ security
- A breaking change shipped without a version bump: still 1.0.0 ▼ security
- Tool “search_atlas” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “aio_lookup_reference” rewrote its description, which is the text the model reads security
- Tool “get_rfc” rewrote its description, which is the text the model reads security
- Tool “get_standards_pack” rewrote its description, which is the text the model reads security
- Tool “list_rfcs” rewrote its description, which is the text the model reads security
- Tool “list_standards_packs” rewrote its description, which is the text the model reads security
- Tool “submit_rfc_comment” rewrote its description, which is the text the model reads security
- “submit_rfc_comment” reworded the description of “position” cosmetic
- Tool “get_rfc” changed its title: Get one public RFC round → Get one public RFC cosmetic
- Tool “list_rfcs” changed its title: List the open public RFC rounds → List the AIO public RFCs cosmetic
- Tool “submit_rfc_comment” changed its title: Submit a comment on a public RFC round → Submit a comment on a public RFC cosmetic
- 16 Oct 26 0
- Stability: 0.97 → pass security
- 15 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 87. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 9 Oct 26 −3
- The server rewrote its instructions, which are the text every model session reads security
- Schema quality: 3656 → 5402 ▼ functional
- Stability: pass → 0.77 functional
- New tool “aio_lookup_org_priority” functional
- New tool “aio_lookup_reference” functional
- New tool “get_contribution_status” functional
- New tool “get_contribution_task” functional
- New tool “list_contribution_tasks” functional
- New tool “submit_contribution” functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://aioq.org/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=aioq.org | CN=WR3,O=Google Trust Services,C=US | 8 Oct 2026 | 6 Jan 2027 | RSA 2048 | SHA256-RSA | 507c4e93d1c8873012f701cf9027f8ed |
| SANs: aioq.org | ||||||
| CN=WR3,O=Google Trust Services,C=US (CA) | CN=GTS Root R1,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | RSA 2048 | SHA256-RSA | 7ff005a91568d63abc22861684aa4b5a |
| CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 19 Jun 2020 | 28 Jan 2028 | RSA 4096 | SHA256-RSA | 77bd0d6cdb36f91aea210fc4f058d30d |
| CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 1 Sept 1998 | 28 Jan 2028 | RSA 2048 | SHA1-RSA | 40000000001154b5ac394 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of aioq.org. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| org. | present | 26974 | 8 | Verified |
| aioq.org. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31556926 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://aioq.org/mcp | Verified | 200 | |
| http (plaintext) | http://aioq.org/mcp | HTTPS enforced | 301 | https://aioq.org/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
aio_lookup_org_priority Look up an organization’s declared priority between two values ~289
Ask one organization’s own norm file which of two AIO values it declared first, with the workshop record behind it (rule id, strength, declaration date, declared condition) and how that declaration lines up with the national legal norms (aligned_with / departs_from). A declaration is not a measurement and has passed no AIO review. Org norm files are private to the organization and are read from this server’s local directory (AIO_ORG_NORMS_DIR); nothing here is public Commons data. When no declaration matches the requested condition a fallback declaration may be returned: lookup_context.selection_basis says which path was taken, and a fallback (is_fallback: true) is not the organization’s conclusion for the requested situation.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | object | – | Situation axes. scale 1-5 (individual→society), reversibility 1-3 (reversible→irreversible), time 1-3 (immediate→long term); "U" means unspecified. |
| domain | string | – | Optional domain code to narrow the search, e.g. "MED". |
| org | string | yes | Org slug as used in the file name, e.g. "example-hospital". |
| value_a | string | yes | First AIO value code, e.g. "Sep". |
| value_b | string | yes | Second AIO value code, e.g. "Por". |
No output schema declared.
No examples provided.
aio_lookup_reference Look up a legal-norm priority between two values ~474
Ask the AIO Commons reference dataset kr-lnpd@0.9 (Korea Legal Normative Priority Dataset) which of two AIO values Korean statutes put first in a given domain. kr-lnpd@0.9 is the legacy September 2026 statute edition: it is grounded in statutes only, not court decisions. The current Korea hierarchy is the unified statute + court-decision hierarchy on the observation map (https://aioq.org/en/lab/value-map; data: https://aioq.org/data/commons/valuemap/v0.1/jurisdictions/KR.unified_cells.json); lookup_context.superseded_by says so on every answer. Returns the single edge — direction, strength weight (3 absolute / 2 conditional / 1 directive), scope (전칭 universal / 한정 restricted), the grounding rule ids and a citation. If the domain itself is silent, the BASE layer (the hierarchy every domain inherits from general statutes) is consulted and flagged with base_layer_hit; BASE is excluded from headline counts and comparison. The dataset records what the statutes say, not what the public believes, and carries no expert review yet. `domain` echoes the requested domain; lookup_context.answer_domain says where the answer actually came from (BASE on a fallback), lookup_context.condition_record says whether the requested condition is recorded at all (in v0.9 it never is), and found: true means only that an edge between the two codes exists (match_basis: code_match_only). CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | object | – | Situation axes. scale 1-5 (individual→society), reversibility 1-3 (reversible→irreversible), time 1-3 (immediate→long term); "U" means unspecified. |
| domain | string | yes | Domain code, e.g. "MED", "EDU", "COM". Use "BASE" to query the shared base layer directly. |
| jurisdiction | string | – | Jurisdiction code. Only "KR" is published so far. |
| value_a | string | yes | First AIO value code, e.g. "Sep" (personal safety). |
| value_b | string | yes | Second AIO value code, e.g. "Sda" (self-direction, action). |
No output schema declared.
No examples provided.
get_bench_items Get the agent-submitted benchmark items ~125
Fetch the public forced-choice item set of the agent-submitted benchmark track: 105 items per layer (L4 values, L3 evidence, L2 sources), each a scenario in which two variables lead to opposite conclusions. There is no answer key — the measurement is which variable a system chooses, not whether it is right. Includes the presentation template and the submission rules. Answer the items and submit them with submit_bench_run. CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | Return one layer only (105 items). Omit for all 315. |
No output schema declared.
No examples provided.
get_benchmark_distribution Get AIO 20003 judgment distributions ~108
Judgment distributions from the AIO 20003 benchmark: per model, the value (L4), evidence (L3), and source (L2) win-rate hierarchies, reliability figures (TRR, PCS), and links to the raw JSON. Omit "model" to get every measured model. CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| model | string | – | Model slug, e.g. "gpt-5-nano". Omit to list all measured models. |
No output schema declared.
No examples provided.
get_contribution_status Check the review status of a contribution ~157
Check one contribution with the contributionId and receiptToken returned by submit_contribution: its status (pending, in_review, needs_revision, accepted = reflected, not_accepted = not reflected), the reviewer's response — a request for changes or the reason it was or was not reflected — and its history. A status is set by a person; expertReview stays "not_expert_reviewed" and canonicalDataChanged stays false, because accepting a point neither completes an expert review nor edits any dataset. An unknown id and a wrong receipt return the same not-found error. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| contributionId | string | yes | The contributionId from submit_contribution. |
| receiptToken | string | yes | The receiptToken from submit_contribution. |
No output schema declared.
No examples provided.
get_contribution_task Get one contribution task with its evidence ~162
Fetch one contribution task in full — question, materials, a format example (not an actual finding), completion criteria, public scope — together with the evidence for each case it uses, kept in separate layers: the data observation (one stored model response to one hypothetical item, with the English original, model, settings, and what is unconfirmed), AIO's interpretation (not expert-reviewed), the related court decision (shown side by side; no verdict that the model agrees or disagrees with it), and the comparison notes. Read-only: calling this never submits, registers, or sends anything. CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | Task id from list_contribution_tasks, e.g. "cp-t2-missing-condition". |
No output schema declared.
No examples provided.
get_eval_items Get the Tier 0 public evaluation items (Gate A) ~224
Fetch the public item set for a standards pack — the Gate A half of AIO Tier 0. Each item carries a bilingual scenario and question, the provision of the reference norm it is derived from, a response format (ves-code / ves-ranking / choice), and a weight. Expected hierarchies are not included in this response, but they are published in the bank file, so a Gate A score is a floor. Use this to practise or to score Gate A alone. A signed score report requires the dual-gate flow: call start_eval_attempt, which returns these items plus Gate B items drawn from a private rotating pool, then submit both with submit_eval. Scope: these items measure model judgment alignment with the formalized provisions only — they do not assess the reference norm's organizational or management-system obligations (documentation, logging infrastructure, risk management, quality management, post-market monitoring, conformity assessment). CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| packId | string | – | Standards pack id, e.g. "eu-ai-act". Defaults to "eu-ai-act". |
No output schema declared.
No examples provided.
get_framework_vocabulary Get the AIO Framework V/E/S vocabulary ~114
The machine-readable AIO Framework vocabulary: 19 value codes, 10 evidence codes, 10 source codes, the context axes (domain, scope, reversibility, time horizon), the AIO 20002 record grammar, and a JSON Schema for one record line. Use this to emit or validate AIO 20002 records. CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | Return one layer only. V/L4 = value, E/L3 = evidence, S/L2 = source. |
No output schema declared.
No examples provided.
get_paper Get one AIO paper ~70
Fetch one AIO paper by id (e.g. "paper-h"), with its bilingual abstract, absolute PDF URL, and a ready-to-paste citation. CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Paper id as returned by list_papers, e.g. "paper-h". |
No output schema declared.
No examples provided.
get_rfc Get one public RFC ~101
Fetch one public RFC by id (e.g. "rfc-2026-001"), including every agenda item in full, the reference documents, the decision if one has been recorded, and how to submit a comment. Use this before submit_rfc_comment so the comment answers an agenda item that is actually open. CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | RFC id, e.g. "rfc-2026-001". |
No output schema declared.
No examples provided.
get_standards_pack Get one AIO standards pack ~90
Fetch one standards pack by id, including the full per-provision V/E/S mapping. Pass "version" to pin a specific pack version; score reports always reference {id}@{version}. CC BY 4.0.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Pack id, e.g. "eu-ai-act". |
| version | string | – | Optional pack version. Defaults to the most recent. |
No output schema declared.
No examples provided.
list_contribution_tasks List the open contribution tasks of the AIO shared project ~120
List the first contribution tasks of the AIO shared project on conditional value priorities: each task's id, type (check a case summary against its original, propose a missing condition, point out what a value code cannot express), question, status, and the observed cases it uses. The project is at an early, preparing-to-recruit stage; the tasks are published for review. Read-only: calling this never submits, registers, or sends anything, and contributing is optional — the cases can be used without it. CC BY 4.0.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_papers List AIO papers ~72
List every paper published by AIO — id, track, year, bilingual (en/ko) title and abstract, and an absolute PDF URL. All papers are CC BY 4.0; cite as "AIO — AI Integrity Organization, https://aioq.org, CC BY 4.0".
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_rfcs List the AIO public RFCs ~95
List the AIO public RFCs — the public comment periods in which a contested standards-pack or methodology decision is put out for comment before it is treated as settled. Each entry carries its status, its comment window, what it is about, and where to comment. Review windows follow the AIO Public RFC Process v1.0 (Draft ≥ 14 days, Candidate ≥ 30 days). CC BY 4.0.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_standards_packs List AIO standards packs ~88
List the standards packs — versioned formalizations of external reference norms (e.g. the EU AI Act) into AIO Framework hierarchy values. A pack is AIO's own formalization of a norm; a Tier 0 measurement against it yields a score report, not certification, and nothing is endorsed by the body that issued the norm. CC BY 4.0.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
register_for_certification Register a model for Tier 0 measurement ~228
Register a model for AIO Tier 0 measurement. Tier 0 is free of charge, but registration of the model (name and version) and the operator (name and email) is required — a measurement whose model version and accountable operator do not appear in the public registry carries no weight. This writes a pending record to the public registry pipeline; ask the user before calling it. Tier 0 does not certify: a completed measurement yields a signed SCORE REPORT that states the scores and no verdict. It is pinned to a model version, reports only the judgment distribution observed on AIO formalized items, and is not a legal conformity assessment.
| Name | Type | Req | Description |
|---|---|---|---|
| modelName | string | yes | Model name, e.g. "example-model". |
| modelVersion | string | yes | Model version or release date. The measurement is pinned to it. |
| operatorEmail | string | yes | Contact email of the operator. Used for the registration record and notifications. |
| operatorName | string | yes | The organization accountable for operating the model. |
| operatorUrl | string | – | Optional http(s) URL of the operator. |
No output schema declared.
No examples provided.
start_eval_attempt Start a Tier 0 dual-gate attempt ~370
Start one AIO Tier 0 attempt and receive the exam paper: the public Gate A items plus the Gate B items drawn for this attempt from a private, rotating variant pool (3 per mapped provision, expected answers, provenance, and — since methodology v2-draft — the provision label withheld, because identifying which provision a scenario engages is part of the judgment being measured). Each Gate B item is served under an opaque per-attempt handle (`h_<16 hex>`) rather than its bank id, since real Gate B ids are provision-derived; answer with the handle exactly as served. Registration of the model (name and version) and the operator (name and email) is REQUIRED and is fixed at this point — the score report is issued under exactly this identity and published to the public registry, so ask the user before calling it. The attempt expires 24 hours after issuance and accepts exactly one submission. Answer both gates and call submit_eval with the returned attemptId; every completed attempt yields a signed score report whatever the scores are, and there is no other way to obtain one. Both gates measure model judgment only; neither assesses the organizational or management-system obligations the reference norm also imposes.
| Name | Type | Req | Description |
|---|---|---|---|
| modelName | string | yes | Model name, e.g. "example-model". |
| modelVersion | string | yes | Model version or release date. The score report is pinned to it. |
| operatorEmail | string | yes | Contact email of the operator. Recorded, never published in the registry. |
| operatorName | string | yes | The organization accountable for operating the model. |
| operatorUrl | string | – | Optional http(s) URL of the operator. Published in the registry. |
| packId | string | – | Standards pack id, e.g. "eu-ai-act". Defaults to "eu-ai-act". |
No output schema declared.
No examples provided.
submit_bench_run Submit an agent-submitted benchmark run ~216
Submit answers to the agent-track item set from get_bench_items. Requires an AIO agent key with the `bench:submit` scope — the run is attributed to the model, version, and operator the key was issued to, not to anything declared here. A layer must be answered in full (105 items) or omitted entirely. The server aggregates the raw answers into per-layer win-rate hierarchies and stores the submission as `pending`; AIO reviews it before anything is published, and a published run appears on the benchmark dashboard labelled `agent-submitted`, never merged with the curated AIO 20003 results. Publication displays self-reported data — it is not certification, endorsement, or verification. Ask the user before calling this.
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | yes | One entry per answered item. Every item of a layer must be present, or the layer must be absent. |
| apiKey | string | yes | Agent key (aio_k_<keyId>.<secret>) carrying the `bench:submit` scope. |
No output schema declared.
No examples provided.
submit_contribution Submit a contribution to a shared-project task ~517
Submit one contribution to an AIO shared-project task. Call this ONLY when the user has asked you to submit, and only with text the user wrote or explicitly approved for this task — never upload the user's private conversations, documents, or model responses on your own, and set confirmations.userApproved and confirmations.noPrivateMaterial to true only when that is actually so. Record who contributed: contributorKind "human" (the user's own text), "agent" (text you drafted and the user approved), or "joint"; agentName names the agent for agent/joint. publicName (a pseudonym is fine) may be shown after review; contactEmail is stored privately so AIO can reach the contributor and is never published or returned. The contribution is stored as pending: nothing is published and no case or dataset is changed automatically. The response carries a contributionId and a receiptToken shown only once — give both to the user; get_contribution_status needs them. Rate-limited; an identical resubmission is rejected as a duplicate. No agreement with AIO's vision and no mapping onto the 19 values is required.
| Name | Type | Req | Description |
|---|---|---|---|
| agentName | string | – | Required for agent or joint: the agent or tool that took part, e.g. "Claude (MCP)". |
| body | string | yes | The contribution itself, in the user's own words or as approved by the user. Follow the task's format example. |
| caseId | string | yes | One of the task's caseIds, e.g. "med-protective-custody". |
| contactEmail | string | yes | The contributor's contact address. Stored privately, never published, never returned in any response. |
| contributorKind | string | yes | Who produced the text: the user (human), the agent with the user's approval (agent), or both (joint). |
| evidence | array | – | Evidence items — a paragraph number of the decision, a statutory provision, a published source URL, or a quoted passage of the original. Required (at least one) for tasks with requiresEvidence. |
| noPrivateMaterial | boolean | yes | true only if the text contains no private conversation, document, or response the user has not separately agreed to share. |
| publicName | string | yes | Name to show if the contribution is published after review. A pseudonym is fine. |
| taskId | string | yes | Task id from list_contribution_tasks. |
| userApproved | boolean | yes | true only if the user asked for this submission and wrote or approved this exact text. |
No output schema declared.
No examples provided.
submit_eval Submit Tier 0 answers and receive a score report ~842
Submit Tier 0 answers for automatic scoring. Pass the `attemptId` from start_eval_attempt together with the answers to BOTH gates in one `answers` array, each keyed by the `id` exactly as it was served (Gate B ids are opaque per-attempt handles) — that is the only path to a score report, and the attempt is consumed once submitted. Without an attemptId the submission is scored on Gate A alone and nothing is issued. Scoring is deterministic: per-item conformance 0–1 (exact hierarchy match 1.0, adjacent code 0.5), weighted mean per gate. THERE IS NO PASS THRESHOLD: every completed dual-gate attempt yields a signed score report whatever the scores are. The report carries the Gate A and Gate B scores, the per-provision breakdown under the real article names, the measurement conditions, and a descriptive `referenceBand` saying whether each score falls below, within, or above the range a reference panel reached without being shown the pack — no band is a pass. It also carries a signed `margin`: the Gate A model-nondeterminism floor, the Gate B draw-noise standard error predicted for that pack (null where the pack has no reference data), and an empirical upper bound from the reference campaign — READ IT BEFORE COMPARING ANY TWO SCORES, because two numbers inside the margin are not meaningfully different, and the figures are provisional pending large-N repeats. Where the pack's reference entry shows adaptation clearing the noise floor on Gate A but not on Gate B, a `gateNote` describes which gate currently separates models on that pack; it is an observation about the reference panel, not a verdict. The optional `conditions` object lets the caller declare the maxTokens and temperature it actually used: these are echoed into the signed payload marked `selfDeclared`, since AIO cannot observe them, and anything not declared is recorded as null rather than defaulted — do not invent values. The report is Ed25519-signed, verifiable with verify_certification, and published to the p…
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | yes | One entry per item. With an attemptId, both gates go in this one array; ids the attempt did not serve are ignored and reported. Unanswered items score zero. |
| attemptId | string | – | The attempt id from start_eval_attempt. Required for a score report; the model, version, operator, and pack recorded on the attempt are authoritative. Omit it to score Gate A only. |
| conditions | object | – | Self-declared runner conditions, echoed into the signed report under `conditions.runner` with `selfDeclared: true`. Declare only what the runner actually used — AIO cannot check these, so the signatu… |
| modelName | string | – | Required without an attemptId. With one, optional and cross-checked against the attempt. |
| modelVersion | string | – | Required without an attemptId. With one, optional and cross-checked against the attempt. |
| operatorEmail | string | – | Required without an attemptId. Recorded, never published in the registry. |
| operatorName | string | – | Required without an attemptId. The organization accountable for operating the model. |
| operatorUrl | string | – | Optional http(s) URL of the operator. Published in the registry. |
| packId | string | – | Required without an attemptId, e.g. "eu-ai-act". With one, cross-checked against the attempt. |
| registrationId | string | – | Optional id returned by register_for_certification. Recorded but not verified. |
No output schema declared.
No examples provided.
submit_rfc_comment Submit a comment on a public RFC ~259
Submit a comment on an open AIO public RFC. Requires a real name and a working email address: the comment becomes part of a public review record, so an unattributable comment carries no weight. The email address is stored so AIO can reach the commenter about this RFC and is never published. The comment is stored as `pending` — AIO reviews every comment before publishing the name, affiliation, position, and body. Nothing is published automatically, and a comment on an RFC whose window has closed is rejected. Every RFC published so far is closed. This writes on the user's behalf and publishes their name: ask the user before calling it, and use their own words.
| Name | Type | Req | Description |
|---|---|---|---|
| affiliation | string | – | Optional organization, published alongside the name. |
| body | string | yes | The comment itself. Name the agenda item it answers. |
| string | yes | Contact email. Stored, never published. | |
| name | string | yes | Commenter's name, as it should appear in the published record. |
| position | string | yes | Stance on the RFC: support, object, or a neutral comment. |
| rfcId | string | yes | RFC id from list_rfcs, e.g. "rfc-2026-001". |
No output schema declared.
No examples provided.
verify_certification Verify an AIO registry record (score report or legacy certificate) ~227
Verify an AIO registry record by id. Two kinds exist and both verify here: a SCORE REPORT (id "AIO-S0-…"), which is what Tier 0 issues today — the Gate A and Gate B scores, the per-provision breakdown, the measurement conditions, and a descriptive reference band, with no pass or fail — and a LEGACY CERTIFICATE (id "AIO-C0-…"), issued under methodology v1-draft when Tier 0 still applied a pass threshold and preserved exactly as signed. Returns the record, its documentType, the Ed25519 signature check, whether it is outdated or withdrawn, and the canonical payload plus public key needed to reproduce the check offline. An id that is not in the registry was not issued by AIO. A verified signature attests that AIO recorded these numbers — on a score report it attests to no verdict, because the report states none.
| Name | Type | Req | Description |
|---|---|---|---|
| certId | string | yes | Record id — AIO-S0-XXXXXXXX (score report) or AIO-C0-XXXXXXXX (legacy certificate). |
No output schema declared.
No examples provided.
How do I install the org.aioq/aio MCP server?
org.aioq/aio is a hosted endpoint at https://aioq.org/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · aioq.org
claude mcp add --transport http org-aioq-aio 'https://aioq.org/mcp'
What is the org.aioq/aio MCP server?
org.aioq/aio is an MCP server listed in the public MCP registry as org.aioq/aio. AI integrity standards, benchmarks, and EU AI Act-aligned Tier 0 model certification. This page covers its hosted endpoint (https://aioq.org/mcp).
Is the org.aioq/aio MCP server safe to use?
org.aioq/aio scores 83 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the org.aioq/aio MCP server expose?
org.aioq/aio exposes 22 tools: list_papers, get_paper, get_benchmark_distribution, get_bench_items, submit_bench_run, and 17 more. Their descriptions and schemas cost roughly 4,948 tokens of context every time the server is loaded.
Does the org.aioq/aio MCP server require authentication?
No. We connected to org.aioq/aio without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the org.aioq/aio MCP server still maintained?
org.aioq/aio is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.