📏 Measures AI systems on frozen instruments and publishes the live 22-axis GSPC board, Ed25519-signed cards, a signed Merkle root with a Rekor witness, and a public corrections ledger — councilof.ai. Measurement, not certification.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !Install pipes a remote script into a shell (curl | sh)
claude mcp add councilof-ai -- npx -y csoai-gspc-mcp{
"mcpServers": {
"councilof-ai": {
"command": "npx",
"args": ["-y", "csoai-gspc-mcp"]
}
}
}MCP Servers overview
<!-- org-readme:begin (generated by scripts/github/org-readme.py — do not hand-edit; everything below the end marker is hand-maintained) -->
# CS<strong>O</strong>AI — Council of AI
> **22 axes measured · 14 model fleets · 3 public leader scores · 8 fact runs · TIE is TIE · not a certificate.**
[](https://councilof.ai/api/gspc)
[](https://pypi.org/project/csoai-gspc/) [](https://www.npmjs.com/package/csoai-gspc-mcp) [](https://doi.org/10.5281/zenodo.21991104) [](https://github.com/CSOAI-ORG/councilof-ai/blob/master/LICENSE)
Independent AI-governance measurement. This repository is the live site, API and signing pipeline behind [councilof.ai](https://councilof.ai): the 22-axis GSPC board, Ed25519-signed measurement cards, the signed Merkle public root and its transparency-log witness, the corrections ledger, the A2A agent card, the x402 manifest, and the PyPI / npm readers. **Measurement, not certification.**
_derived 2026-09-05T14:30:46Z by [`scripts/github/org-readme.py`](https://github.com/CSOAI-ORG/councilof-ai/blob/master/scripts/github/org-readme.py) — every number on this page is read live from the URLs in that script; if this page and the API disagree, the API is right._
## The board today
`GET https://councilof.ai/api/gspc` — schema `csoai.gspc-axes/0.5` · `totals.public_count` = **22 axis · 22 measured**
| # | axis | family | kind | n | status | separation | leader carried? |
|---|---|---|---|---|---|---|---|
| 1 | `governance` | gspc | model-comparison | 237 | **MEASURED** | UNTESTED | no — own model led, excluded |
| 2 | `safety` | gspc | model-comparison | 36 | **MEASURED** | TIE | yes — accuracy 0.944 |
| 3 | `provenance` | gspc | model-comparison | 32 | **MEASURED** | UNTESTED | no — own model led, excluded |
| 4 | `continuity` | gspc | model-comparison | 33 | **MEASURED** | UNTESTED | no — own model led, excluded |
| 5 | `conformance` | gspc | model-comparison | 35 | **MEASURED** | UNTESTED | no — own model led, excluded |
| 6 | `openness` | gspc | model-comparison | 32 | **MEASURED** | UNTESTED | no — own model led, excluded |
| 7 | `machinery-conformity` | gspc | model-comparison | 33 | **MEASURED** | UNTESTED | no — no signed card |
| 8 | `care` | gspc | model-comparison | 199 | **MEASURED** | UNTESTED | no — own model led, excluded |
| 9 | `cross-reality` | gspc | model-comparison | 32 | **MEASURED** | UNTESTED | no — no signed card |
| 10 | `detector-interop` | gspc | model-comparison | 33 | **MEASURED** | UNTESTED | no — no signed card |
| 11 | `art5-safeguard` | gspc | model-comparison | 36 | **MEASURED** | UNTESTED | no — own model led, excluded |
| 12 | `swarm` | gspc | model-comparison | 37 | **MEASURED** | SEPARATED | yes — accuracy 0.384 |
| 13 | `affect` | gspc | model-comparison | 41 | **MEASURED** | UNTESTED | no — own model led, excluded |
| 14 | `jail` | gspc | model-comparison | 71 | **MEASURED** | TIE | yes — accuracy 0.5915 |
| 15 | `provenance-controls` | financial | deterministic-facts | 6 | **MEASURED** | — | no leader by design (facts run) |
| 16 | `reserve-attestation` | financial | deterministic-facts | 16 | **MEASURED** | — | no leader by design (facts run) |
| 17 | `regulatory-framework` | financial | deterministic-facts | 16 | **MEASURED** | — | no leader by design (facts run) |
| 18 | `distribution-integrity` | financial | deterministic-facts | 16 | **MEASURED** | — | no leader by design (facts run) |
| 19 | `custody-disclosure` | financial | deterministic-facts | 16 | **MEASURED** | — | no leader by design (facts run) |
| 20 | `ai-adoption-components` | financial | deterministic-facts | 2 | **MEASURED** | — | no leader by design (facts run) |
| 21 | `labour-components` | financial | deterministic-facts | 2 | **MEASURED** | — | no leader by design (facts run) |
| 22 | `humanoid-labour-index` | financial | deterministic-facts | 8 | **MEASURED** | — | no leader by design (facts run) |
Counted from the `axes` array at derive time: 22 rows — MEASURED 22 — agrees with `totals.axes`. Separation over the 14 model-comparison axes: SEPARATED 1 · TIE 2 · UNTESTED 11. A TIE is not a win; UNTESTED is not a win; a facts run has no leader. Living stamp: **SIGNED** (`did:web:csoai.org#board-attestation-1`). Board data: CC-BY-4.0.
## What a stranger can verify in four curls
```bash
# 1. the lid — the one sentence the board is allowed to say about itself
curl -s https://councilof.ai/api/gspc | python3 -c 'import sys,json; print(json.load(sys.stdin)["totals"]["lid"])'
# 2. the signed public root — Merkle root, leaf count, timestamp (card_count MUST equal len(card_sha256))
curl -s https://councilof.ai/root.json | python3 -c 'import sys,json; r=json.load(sys.stdin); print(r["merkle_root"], r["card_count"], len(r["card_sha256"]), r["as_of"])'
# 3. pin the card key from the DID document — never trust the key a card ships with
curl -s https://csoai.org/.well-known/did.json | python3 -c 'import sys,json,base64; k=[v for v in json.load(sys.stdin)["verificationMethod"] if v["id"].endswith("#card-attestation-1")][0]["publicKeyJwk"]["x"]; print(base64.urlsafe_b64decode(k+"="*(-len(k)%4)).hex())'
# 4. verify any card against that pinned key — three states only: VALID · INVALID · UNCHECKABLE
pipx run --spec 'csoai-gspc[verify]' csoai-gspc verify "$(curl -s https://councilof.ai/signed/card_index.json | python3 -c 'import sys,json; print(json.load(sys.stdin)["cards"][0]["card"])')"
```
## The integrity stack
| layer | live now | where |
|---|---|---|
| 1 · Ed25519-signed measurement cards | **335** cards (`n_cards == n_cells`: True), one key `d4cb0eaa…` = `did:web:csoai.org#card-attestation-1` | [`/signed/card_index.json`](https://councilof.ai/signed/card_index.json) · [how to verify](https://councilof.ai/signed/HOW-TO-VERIFY.md) |
| 2 · Signed Merkle public root | `csoai.public-root/v1` · root `8f39bc2f44d9…` · **168** leaves (`card_count == len(card_sha256)`: True) · as_of `2026-09-06T23:49:21Z` · signed: True | [`/root.json`](https://councilof.ai/root.json) · [how to verify the root](https://councilof.ai/signed/HOW-TO-VERIFY-ROOT.md) |
| 3 · Transparency-log witness | Rekor **WITNESSED** · OpenTimestamps `STAMPED_PENDING_BITCOIN` · EAS `NOT_YET` · witnessed root `6347384aa686…` equals live `root.json` at derive time: **True** · pointer's own last drift check `DRIFTED` at `2026-09-05T12:39:37Z` · conflict `NONE` | [`/interop/root-witness-pointer.json`](https://councilof.ai/interop/root-witness-pointer.json) · [sidecar](https://councilof.ai/interop/root-witness-latest.json) |
| 4 · Corrections ledger | **46** entries · latest `C-2026-0822-01` (2026-08-22) · signature_state **STALE** · CC-BY-4.0 | [`/api/corrections`](https://councilof.ai/api/corrections) |
| Living board stamp | **SIGNED** under `did:web:csoai.org#board-attestation-1` | [`/api/gspc` → `measured_on.living_stamp`](https://councilof.ai/api/gspc) |
| Third-party Hub cells | **885** cells: MEASURED 885 · UNMEASURED 0 · complete read: True (as_of `2026-09-07T05:32:14.949Z` — re-GET `/api/hub-cards` → `.counts`; never freeze) | [`/api/hub-cards`](https://councilof.ai/api/hub-cards) |
| Keys (DID) | `did:web:csoai.org` · 5 verification methods · card key x=`1MsOqhbV9Q…` | [`/.well-known/did.json`](https://csoai.org/.well-known/did.json) |
| A2A agent card · x402 manifest | `Council of AI — Measurement Agent`, 6 skills · `csoai.x402/0.2`, network `eip155:8453`, mode `live`, 9 metered resources | [`/.well-known/agent.json`](https://councilof.ai/.well-known/agent.json) · [`/.well-known/x402.json`](https://councilof.ai/.well-known/x402.json) |
Four populations appear above on purpose and are never reconciled here: the **signed-card index** (335 via `/signed/card_index.json`), the **living `/api/cards` registry** (336), the **public-root leaf count** (168 via `/root.json`), and the **Hub cells** (live GET `/api/hub-cards` → `.counts`; currently 885/885/0). Quote each with its URL — never paste 335/335 as root or living API cards. Ceremony: card verify ≠ root inclusion — signed-index cards are not root leaves (index∩root = 0); never sell “335 in the root.”
**Buyers (the one number):** `distinct_nonself_payers` = **0** all-time · 0 in 30 d · 0 settlements · status MEASURED — read from [`/api/revenue`](https://councilof.ai/api/revenue). Published because a measurement body that hides its own zero has no standing to publish anyone else's.
## Install the readers
```bash
pip install csoai-gspc # 0.2.20260905 — board, axis, verify, root, snapshot
npx csoai-gspc-mcp # 0.2.1 — stdio MCP server over the same endpoints
```
## Products
| product | what you get | door (live status at derive time) |
|---|---|---|
| `commission-card` | Commission a signed card (request-attestation) | [`/api/request-attestation?subject=csoai&axis=honesty`](https://councilof.ai/api/request-attestation?subject=csoai&axis=honesty) → **402** |
| `evidence-bundle` | Evidence bundle mapped to an obligation | [`/api/evidence-bundle?obligation=article-50&subject=csoai&bundle=1`](https://councilof.ai/api/evidence-bundle?obligation=article-50&subject=csoai&bundle=1) → **402** |
| `eu-ai-act-pack` | EU AI Act pack (Article 50 / 53 transparency) | [`/api/evidence-bundle?obligation=article-53&subject=csoai&bundle=1`](https://councilof.ai/api/evidence-bundle?obligation=article-53&subject=csoai&bundle=1) → **402** |
| `swift-bank-pack` | SWIFT/bank census evidence pack | [`/api/evidence-bundle?obligatioWhat people ask about councilof-ai
What is CSOAI-ORG/councilof-ai?
+
CSOAI-ORG/councilof-ai is mcp servers for the Claude AI ecosystem. 📏 Measures AI systems on frozen instruments and publishes the live 22-axis GSPC board, Ed25519-signed cards, a signed Merkle root with a Rekor witness, and a public corrections ledger — councilof.ai. Measurement, not certification. It has 0 GitHub stars and its last recorded update is dated 2026-09-07.
How do I install councilof-ai?
+
You can install councilof-ai by cloning the repository (https://github.com/CSOAI-ORG/councilof-ai) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is CSOAI-ORG/councilof-ai safe to use?
+
Our security agent has analyzed CSOAI-ORG/councilof-ai and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains CSOAI-ORG/councilof-ai?
+
CSOAI-ORG/councilof-ai is maintained by CSOAI-ORG. The last recorded GitHub activity is dated 2026-09-07, with 28 open issues.
Are there alternatives to councilof-ai?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy councilof-ai to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/csoai-org-councilof-ai)<a href="https://claudewave.com/repo/csoai-org-councilof-ai"><img src="https://claudewave.com/api/badge/csoai-org-councilof-ai" alt="Featured on ClaudeWave: CSOAI-ORG/councilof-ai" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!