Council of AI GSPC
Independent AI governance measurement MCP.
Что умеет
- 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 —
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
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.
Как подключить
Как подключить Council of AI GSPC к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://gspc--csoai.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Council of AI GSPC к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://gspc--csoai.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Council of AI GSPC к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://gspc--csoai.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (8)
Технические названия из tools/list. Нужны только разработчикам.
| 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 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. |
| 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 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-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 — so it always answers measured:false and issues no verdict. Never a certification. |
| enter-arena | Self-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_totals | Live 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_axis | One 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_card | Verify 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_cards | The 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. |