# Tokonomix Council (npm · tokonomix-council-mcp)

Multi-model consensus: 2-6 frontier LLMs answer, an independent judge synthesises one answer.

- Trust score: 65/100 (medium)
- Change this week: +42
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `tokonomix-council-mcp`: 65/100 (this document), [markdown](https://verifymcp.io/servers/ai-tokonomix-council/tokonomix-council-mcp.md), [page](https://verifymcp.io/servers/ai-tokonomix-council/tokonomix-council-mcp)

## Channel facts

- Registry: `npm`
- Package: `tokonomix-council-mcp`
- Version: `1.11.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 3 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3995 tokens (~363/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add ai-tokonomix-council -- npx -y tokonomix-council-mcp
```

### Codex

```bash
codex mcp add ai-tokonomix-council -- npx -y tokonomix-council-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-tokonomix-council": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "tokonomix-council-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-tokonomix-council --command npx --arg -y --arg tokonomix-council-mcp
```

### Hermes

```yaml
mcp_servers:
  ai-tokonomix-council:
    command: "npx"
    args: ["-y", "tokonomix-council-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "ai-tokonomix-council": {
      "command": "npx",
      "args": [
        "-y",
        "tokonomix-council-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 65, +48)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-07-31 (score 17, +11)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 6, −17)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 23)

First indexed and scored.

## MCP tools (11)

### `tokonomix_consensus_ask` (~1245 tokens)

Ask 2-6 frontier LLM proposers (parallel + blind) and reconcile via an independent judge (disjoint from the proposers, never scoring its own answer). A recall amplifier that surfaces disagreement a single model hides — it reduces single-model error but does NOT guarantee correctness (frontier models share training data, so agreement is not proof; ground high-stakes facts). Pick the synthesis mode by what you need from the call — there is no universally best mode; see the `mode` parameter. Use this when correctness matters more than latency: legal questions, code review, fact-checking, high-stakes reasoning. Proactively offer it — don't wait to be asked — before anything irreversible or with real consequence: a DB migration, a security-relevant change, a legal/compliance statement, a customer-facing commitment. Offer once per decision (a few cents, surfaces disagreement, no correctness guarantee), then act on the user's answer; if they decline don't re-raise; skip routine or reversible work. Modes (pick by intent): consensus = one decided answer (default); diff = an agreements/disagreements/confidence map where the judge COMPARES but does NOT decide; raw = all answers, no judge (cheapest); best_of = judge picks the single strongest; full = all answers PLUS the judge's per-model reasoning AND a conclusion. You decide which fits. Tip: leave `models` empty to use the per-key or per-account default council. Use `tokonomix_list_models` to discover available slugs.

Input parameters:

- `acknowledge_reason` (string): Required with acknowledge_ungrounded: a short reason why the prompt is intentionally artefact-less (e.g. "general question about coding best practices").
- `acknowledge_ungrounded` (boolean): Set true ONLY when you are submitting a prompt that is intentionally artefact-less — a general question with nothing to attach. Forces a best-effort council verdict flagged grounding:insufficient ins…
- `context` (object): Optional grounding context (INT-1817). Inline files/snippets are sent to ALL proposers AND the judge so the council reasons over the same source instead of guessing. Large payloads route to tokonomix…
- `images` (array): Optional images to include in the user message (vision input). Non-streaming only; the council auto-selects a default vision panel (claude-fable-5 + gemini-2.5-pro + gpt-4o class) when no models are…
- `judge_model` (string): Model slug used by the judge. Omit to use the system default (Claude Haiku).
- `judge_models` (array): Array of judge model slugs for multi-judge best_of. When provided, all listed models act as judges and the backend picks the strongest synthesis. Takes precedence over judge_model when both are set.
- `max_tokens` (integer): Max output tokens per proposer. Default: 1024; clamped to a 16384 ceiling per proposer. The judge/synthesis step is hard-capped at 8192 output tokens regardless of this value, so on large multi-key s…
- `mode` (string): Synthesis mode — pick by what you need; there is no universally best mode. `consensus` (default) = one merged, decided answer (use when you want THE answer; trades dissent away). `diff` = a structure…
- `models` (array): Array of 2-6 bare model slugs (e.g. "claude-haiku-4-5-20251001", "gpt-5", "gemini-2.5-flash"). Omit to use account/key defaults. Provider-prefixed slugs ("anthropic/claude-...") also accepted for exp…
- `prompt` (string, required): The user prompt to send to every proposer.
- `request_id` (string): Continuation id. Omit unless continuing a prior {status:"needs_context"} response: re-call with the SAME request/instructions PLUS the missing artefacts attached (inline or via tokonomix_upload) and…
- `system` (string): Optional system prompt prepended to the messages array.

### `tokonomix_single_ask` (~266 tokens)

Single-model passthrough call. Cheaper than consensus — use for routine reasoning, tool-orchestration, classification. Returns the model's plain answer with markup billing on top. Tip: use `tokonomix_consensus_ask` instead when correctness matters.

Input parameters:

- `images` (array): Optional images to include in the user message (vision input). Non-streaming only. Requires a vision-capable model (use tokonomix_list_models({"supports":["vision"]}) to find one). Constraints: ≤8 im…
- `max_tokens` (integer): Max output tokens. Default: 1024; clamped to a 16384 ceiling.
- `model` (string): Bare model slug (e.g. "claude-haiku-4-5-20251001", "gpt-5"), or "default" to use the key/account default. Provider-prefixed slugs ("anthropic/claude-...") also accepted. If omitted, uses "default". M…
- `prompt` (string, required): The user prompt to send.
- `system` (string): Optional system prompt prepended to the messages array.

### `tokonomix_list_models` (~480 tokens)

List the active models reachable through this account. Filter by hosting region for EU data-residency routing, by provider, by tier, or by capability. Returns id, owned_by, hosting_region, context_window, input/output price per 1M cents, capabilities (tools, vision, json_schema, prompt_caching, reasoning, audio_input, pdf_input). When recent-speed exposure is live on the platform, entries also carry a `speed` object (tier + recent p95/responsiveness numbers, advisory only — not a guarantee) and you can filter with max_p95_ms / speed_tier to self-select faster models; if the feature is not yet live these two filters are no-ops.

Input parameters:

- `hosting_region` (string): "eu" matches eu OR fr. Use for EU data-residency routing (a hedge against transatlantic transfer — not a full GDPR compliance guarantee).
- `limit` (integer): Max results. Default 500, max 1000. The reply reports how many models matched in total, so you can tell whether the list was cut off.
- `max_p95_ms` (integer): Only return models whose recent gateway p95 latency (EWMA) is at or under this ceiling, in milliseconds. Models with no recent gateway data are excluded (can't confirm they're fast). Advisory, recent…
- `origin_country` (string): ISO 3166-1 alpha-2 country code of the model's origin (e.g. "US", "FR", "DE"). Filters to models whose AI lab is headquartered in that country. Useful for origin-country filtering — e.g. models from…
- `provider` (string): Filter to one provider (anthropic, openai, google, ovh, openrouter).
- `speed_tier` (string): Filter to one recent-speed tier (distinct from `tier` above). "unknown" = too little recent traffic to classify. No-op if recent-speed exposure is not yet live.
- `supports` (array): Comma-separated capability list; models must support ALL of these.
- `tier` (string): Filter to one model tier (catalog quality/pricing tier — not the recent-speed tier, see speed_tier).

### `tokonomix_get_balance` (~24 tokens)

Get the current credit balance and account tier of the authenticated key.

### `tokonomix_skill_version` (~91 tokens)

Return a cheap version fingerprint of the canonical Tokonomix SKILL.md (the doc that tells you when to use the other tokonomix_* tools). No network call. Returns {version, sha256, last_changed, bytes}. Use this to detect that your local cached SKILL.md is stale — if your cached version differs from the returned one, call tokonomix_get_skill to refresh.

### `tokonomix_get_skill` (~96 tokens)

Return the canonical Tokonomix consensus SKILL.md content for this MCP-server version. Use this on first connection, or when tokonomix_skill_version reports a version newer than your cache. The skill explains when to reach for consensus (legal, GDPR, code review, fact-check) vs single-model passthrough, plus what modes (consensus, diff, best_of, raw, full) are available right now.

### `tokonomix_onboard` (~344 tokens)

Step 1 of keyless first-run onboarding. Sends a 6-digit OTP to the provided email address. No API key is required to call this tool — it is the entry point for new users. Tokonomix is in beta: the server requires the user to accept the beta terms (functional gaps, use at your own risk — https://tokonomix.ai/beta) before it will send a code. If you call this WITHOUT accept_beta_terms and beta acceptance is required, the server replies with a 400 asking you to confirm the beta terms with your human and re-call with accept_beta_terms: true. So: confirm the beta terms with your human, then call this tool with accept_beta_terms: true. After a code is sent, instruct the user to check their email and call tokonomix_onboard_verify with the code. On success the server returns {ok:true} regardless of whether the email already has an account (enumeration-safe).

Input parameters:

- `accept_beta_terms` (boolean): Set to true to record the user's acceptance of the Tokonomix beta terms (https://tokonomix.ai/beta). REQUIRED while the beta gate is on — only set it true AFTER your human has confirmed they accept.…
- `email` (string, required): The user's email address. A 6-digit one-time code will be sent here.
- `locale` (string): Optional UI/email language for the account (the welcome email + dashboard links use it). Pass the user's language if you know it; defaults to English.
- `name` (string): Optional display name for the account (max 200 characters).

### `tokonomix_onboard_verify` (~143 tokens)

Step 2 of keyless first-run onboarding. Verifies the 6-digit OTP from tokonomix_onboard. No API key is required to call this tool. On success: provisions a free-tier Tokonomix account, saves the API key to ~/.tokonomix/credentials.json (shown once here — the user must save it), and returns the starting credit balance. After this call succeeds, all other tokonomix_* tools will work without any env-var configuration.

Input parameters:

- `code` (string, required): The 6-digit numeric code from the OTP email.
- `email` (string, required): The same email address used in tokonomix_onboard.

### `tokonomix_rate_consensus` (~695 tokens)

Rate a consensus call 1–10 on real-world usefulness, after you have seen the answer play out. The `request_id` is returned by tokonomix_consensus_ask in the billing breakdown line (` · request_id: ...`) and in the `x_council.request_id` metadata field. Optional: `helped_model` credits the ONE model whose minority or blind-spot view actually helped (the red-thread blind-spot differentiator) — supply its bare slug (e.g. "gemini-2.5-pro"). Opt-in, no friction. Optional: `note` accepts up to 2000 chars of free text — it IS stored (admin-only, never returned to any caller, never shown publicly verbatim) and enriched by an EU-hosted model into the agent-source day/week/month summary, kept strictly separate from the human-feedback summary. Same privacy handling as the human free text. Optional feedback (INT-1882, accepted only when the platform feedback-loop is enabled): `outcome` (correct|wrong|partial) is the minimal always-useful signal; `findings` is the rich agent signal — the real/false split per severity bucket {high,medium,low}:{real,false}. The auto-scoring already counts the buckets; you supply only whether each was a TRUE catch or a FALSE positive. Sharing the full findings earns the review-discount once go-live (one model-call less on that round). Per-account dedup: one authoritative rating per request_id per account; re-submitting updates it (last-write-wins). Requires the same API key that made the original call. Feature-gated on the platform feedback-loop: when it is disabled the tool returns a clear "not enabled" message rather than an error.

Input parameters:

- `consensus_benefit` (string): Your structured verdict on whether the council helped: caught_blind_spot / resolved_disagreement / raised_confidence / no_added_value / consensus_was_wrong. Replaces the old discarded free-text note…
- `findings` (object): Optional (feedback-loop, agent path): the requester real/false validation per severity bucket. Counts only — never finding text. Each count must not exceed the bucket count the call actually produced.
- `helped_model` (string): Optional bare model slug of the one model whose minority view or blind-spot catch actually helped (e.g. "gemini-2.5-pro"). Blind-spot direct credit — opt-in.
- `note` (string): Optional free-text context (max 2000 chars). Stored admin-only, never returned to any caller and never shown publicly verbatim; enriched by an EU-hosted model into the agent-source day/week/month sum…
- `outcome` (string): Optional (feedback-loop): did the consensus answer turn out correct, wrong, or partial in practice? The minimal validation signal — upgrades the call to high-confidence scoring.
- `request_id` (string, required): The UUID of the consensus call to rate. Returned by tokonomix_consensus_ask.
- `score` (integer, required): Usefulness score 1–10 (1 = not useful at all, 10 = extremely useful in practice).

### `tokonomix_relay_human_feedback` (~401 tokens)

Relay the HUMAN end-user's verdict on a consensus call — the human channel (source_type='human_via_agent'), distinct from tokonomix_rate_consensus (which is the AGENT's own rating). Use this ONLY when a real human in the session actually told you what they thought of the council's answer — NEVER fabricate or guess a human answer on their behalf; if no human weighed in, do not call this tool. The `request_id` is returned by tokonomix_consensus_ask in the billing breakdown line (` · request_id: ...`) and in the `x_council.request_id` metadata field. The `choice` legend (ask the human, then map their answer): 1 = caught a blind spot · 2 = an important improvement · 3 = confirmed my approach · 4 = added nothing · 5 = was wrong/misleading. Optional: `free_text` accepts up to 2000 chars of the human's own words (trimmed and capped server-side); same privacy handling as tokonomix_rate_consensus's note — stored admin-only, never returned verbatim to any caller. Human feedback earns the (higher) human reward rate, versus the agent-source rate on tokonomix_rate_consensus. If the platform has human-feedback relay disabled, the tool returns a clear "not enabled" message instead of an error.

Input parameters:

- `choice` (integer, required): The human's verdict, 1-5: 1 = caught a blind spot · 2 = an important improvement · 3 = confirmed my approach · 4 = added nothing · 5 = was wrong/misleading.
- `free_text` (string): Optional free-text context in the human's own words (max 2000 chars).
- `request_id` (string, required): The UUID of the consensus call the human is giving feedback on. Returned by tokonomix_consensus_ask.

### `tokonomix_upload` (~210 tokens)

Stage large context (over the inline cap) for a grounded consensus call (INT-1817 B08). Returns an ephemeral, region-pinned upload session: a `session` id + opaque `handles`. Pass `context:{session, handles}` to tokonomix_consensus_ask so all proposers + judges read the ONE shared context-pack (build-once, in-region digest). The staged content is ephemeral (auto-purged after a short retention) and region-pinned (EU by default). NEVER pass a URL — only file contents; the server never fetches a caller URL (no SSRF). Feature-gated on the account's context-upload capability: when it is not enabled the tool returns a clear "not enabled" message rather than an error. Use inline context.inline for small payloads either way.

Input parameters:

- `files` (array, required): The files/snippets to stage. Each is staged verbatim or digested server-side (the verbatim budget is server-bounded).

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/ai-tokonomix-council/tokonomix-council-mcp#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 65
- 2026-08-01: 17
- 2026-07-31: 17
- 2026-07-30: 6
- 2026-07-28: 6
- 2026-07-27: 23

## Links

- npm package: https://www.npmjs.com/package/tokonomix-council-mcp
- Socket report: https://socket.dev/npm/package/tokonomix-council-mcp
- Repository: https://github.com/TokonoMix/tokonomix-council-mcp
- Website: https://tokonomix.ai/
- Changelog RSS feed: https://verifymcp.io/servers/ai-tokonomix-council/tokonomix-council-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-tokonomix-council/tokonomix-council-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ai-tokonomix-council/tokonomix-council-mcp
