---
title: "Remote MCP server (Streamable HTTP, stateless)"
method: POST
path: "/mcp"
tags: ["meta"]
---

# Remote MCP server (Streamable HTTP, stateless)

`POST /mcp`

## Request

- Base URL: `https://aioq.org`
- URL: `https://aioq.org/mcp`
- Auth: none declared

Model Context Protocol endpoint, protocol version 2025-06-18, Streamable HTTP transport in stateless mode: every request is a JSON-RPC 2.0 message and every response is `application/json` (no SSE stream, no session id required). Supported methods: `initialize`, `notifications/initialized`, `ping`, `tools/list`, `tools/call`. Tools (23; the tools/list response is canonical): 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. aio_lookup_reference reads the priority relation recorded in kr-lnpd@0.9 for one value pair in one domain (direction, weight, scope, supporting rule ids, and the dataset version the answer came from); the BASE layer is consulted only when the domain has no edge. aio_lookup_org_priority asks the same question of an organization’s own declared priorities, which are read from a server-local, non-public folder — a declaration is a statement, not a measurement. Both add a lookup_context block that separates the requested domain from the layer the answer came from, says whether the requested condition is recorded, and marks a fallback declaration as not an applied conclusion; every other field keeps its meaning. The four contribution tools mirror /api/contributions: two read-only lookups that never submit anything, submit_contribution (pending, only on the user’s instruction, never private material), and get_contribution_status (by receipt id and token). submit_eval issues a signed score report for every completed dual-gate attempt; there is no pass threshold. Configure it in an MCP client as a remote server with url `https://aioq.org/mcp`. No authentication is required.

## Request body

- object
  - `jsonrpc` '2.0', required
  - `id` union
    - string
    - integer
  - `method` string, required
  - `params` object

## Response `200`

A JSON-RPC 2.0 response.

- object
  - `jsonrpc` '2.0'
  - `id` union
    - string
    - integer
  - `result` object
  - `error` object

## Other responses

- `202`: A JSON-RPC notification was accepted; no body is returned.
- `400`: Malformed JSON-RPC message.

---

[API](https://skmtc.dev/aioq/apis/aio-public-api.md) · [All operations](https://skmtc.dev/aioq/apis/aio-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aioq/apis/aio-public-api/revisions/377b76120162?raw)
