# AIO — AI Integrity Organization > An international standards body, established as a Swiss association in Geneva (UID CHE-469.997.903), > that builds the measurement infrastructure for AI integrity: open standards, verification, and open > governance. AIO defines a machine-readable vocabulary for *why* an AI system decided what it did — > the value (V), evidence (E), and source (S) hierarchies behind a judgment — and publishes the > benchmarks, papers, and regulatory crosswalks built on top of it. Site: https://aioq.org · Contact: info@aioq.org · License: CC BY 4.0 (unless noted per file) Languages: en, ko, ar, zh, de, fr, ru, es, ja — every page is available at https://aioq.org/{locale}/{path} ## What AIO defines AI integrity is framed along three axes: 1. **The compromise problem** — the deliberate or structural compromise of training data and judgment criteria in pursuit of particular outcomes. The stage where an AI response is produced. AIO works here first. 2. **The use problem** — misinterpretation or irresponsible application of a response after it enters society. 3. **The error problem** — the system failing to work as intended (algorithmic, model, infrastructural defects). The AIO Framework encodes a judgment as one line, e.g. `C:MED/IXi | V:Bec` — review status, the reviewer's response, and history. `GET https://aioq.org/api/contributions` — counts only. - `GET https://aioq.org/api/me/certifications` — **not for agents.** A signed-in aioq.org member's own registrations, attempts, and certificates. Requires a Firebase ID token from a verified-email account (`Authorization: Bearer `; agent keys are not accepted), sends no CORS headers, and is never cached. The same token is optional on `POST /api/certifications/register` and `POST /api/eval/attempt`, where it links the record to the account; a header that is present but invalid is rejected, not ignored. ## MCP server `https://aioq.org/mcp` — remote MCP server, Streamable HTTP transport, protocol version 2025-06-18, stateless (POST a JSON-RPC 2.0 message, get `application/json` back), no authentication. Tools (23): `search_atlas`, `list_papers`, `get_paper`, `get_benchmark_distribution`, `get_bench_items`, `submit_bench_run`, `get_framework_vocabulary`, `list_standards_packs`, `get_standards_pack`, `register_for_certification`, `get_eval_items`, `start_eval_attempt`, `submit_eval`, `verify_certification`, `list_rfcs`, `get_rfc`, `submit_rfc_comment`, `aio_lookup_reference`, `aio_lookup_org_priority`, `list_contribution_tasks`, `get_contribution_task`, `submit_contribution`, `get_contribution_status`. The `tools/list` response is canonical. Two lookup tools answer "if these two collide, which comes first?" at run time, deterministically: - `aio_lookup_reference { jurisdiction, domain, value_a, value_b, condition? }` — the priority relation recorded in `kr-lnpd@0.9` for one value pair: `direction`, `weight` (3 absolute / 2 conditional / 1 directive), `scope`, the supporting `rules[]`, and a `version` block naming the edition the answer came from. A domain edge wins; the `BASE` layer is consulted only when the domain has none, and is then flagged `base_layer_hit: true`. No match is `found: false`, not an error. Reading a recorded norm is not a legal judgment. - `aio_lookup_org_priority { org, domain?, value_a, value_b, condition? }` — the same question against **an organization's own declared priorities**, with `aligned_with` / `departs_from` pointing at the legal rule IDs it matches or leaves. Organization declarations are read from a server-local, non-public folder, so only the organizations a given deployment holds can be looked up. A declaration is a statement, not a measurement: no value it returns means an organization was reviewed, assessed, or approved. Both lookup tools also return a `lookup_context` block (added 2026-09-28; every other field keeps its meaning). For `aio_lookup_reference` it separates `requested_domain` from `answer_domain` (BASE when the domain had no edge), states that the requested condition is not recorded in kr-lnpd@0.9 (`condition_record`), and marks `found: true` as `match_basis: code_match_only`. For `aio_lookup_org_priority` it names the `selection_basis` and flags a fallback declaration (`is_fallback: true`, `applied_conclusion: false`) as not the organization's conclusion for the requested situation. Four tools serve the shared project on conditional value priorities: `list_contribution_tasks` and `get_contribution_task` (read-only — they never submit, register, or send anything), `submit_contribution` (writes a pending contribution; only on the user's instruction, with text the user wrote or approved, never private conversations or documents), and `get_contribution_status` (review status by receipt id and token). Statuses are set by a person; accepting a point is not expert review and changes no dataset automatically. Six tools write: `submit_bench_run` (the only one needing an agent key — scope `bench:submit`), `register_for_certification`, `start_eval_attempt`, `submit_eval`, `submit_rfc_comment`, and `submit_contribution`. `submit_rfc_comment` and `submit_contribution` can put the user's name into a public record, so confirm with the user first. Every other tool is read-only and unauthenticated. Client configuration: `{"mcpServers":{"aio":{"type":"http","url":"https://aioq.org/mcp"}}}` Registry metadata (MCP `server.json`): https://aioq.org/.well-known/mcp/server.json ## Optional - [llms-full.txt](https://aioq.org/llms-full.txt) — the extended index, with a description per page. - Citation: `AIO — AI Integrity Organization, https://aioq.org, CC BY 4.0` - Corrections and standards proposals go through the public RFC process: https://aioq.org/en/rfc