protogrid

Search / io.github.omarkeshk/council-ai

council-ai

R1· needs a key

Multi-LLM council: 25+ frontier models in parallel, consensus scoring, verdict-first code review.

v1.0.1 · active · website · descriptor JSON · versions

An agent can connect on its own if it already holds COUNCIL_AI_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality88good
Trust77of 100
Uptime, 30 days100%
Latency p50478 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "council-ai": {
      "type": "http",
      "url": "https://mcp.council-ai.app/mcp",
      "headers": {
        "Authorization": "Bearer ${COUNCIL_AI_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http council-ai https://mcp.council-ai.app/mcp --header "Authorization: Bearer ${COUNCIL_AI_TOKEN}"
[mcp_servers.council-ai]
url = "https://mcp.council-ai.app/mcp"
bearer_token_env_var = "COUNCIL_AI_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "council-ai": {
      "type": "remote",
      "url": "https://mcp.council-ai.app/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:COUNCIL_AI_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "council-ai": {
      "type": "http",
      "url": "https://mcp.council-ai.app/mcp",
      "headers": {
        "Authorization": "Bearer ${COUNCIL_AI_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=council-ai&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmNvdW5jaWwtYWkuYXBwL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke0NPVU5DSUxfQUlfVE9LRU59In19"
}
{
  "servers": {
    "council-ai": {
      "type": "http",
      "url": "https://mcp.council-ai.app/mcp",
      "headers": {
        "Authorization": "Bearer ${COUNCIL_AI_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "council-ai": {
      "httpUrl": "https://mcp.council-ai.app/mcp",
      "headers": {
        "Authorization": "Bearer ${COUNCIL_AI_TOKEN}"
      }
    }
  }
}
extensions:
  "council-ai":
    enabled: true
    name: "council-ai"
    type: streamable_http
    uri: "https://mcp.council-ai.app/mcp"
    headers:
      "Authorization": "Bearer ${COUNCIL_AI_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${COUNCIL_AI_TOKEN}. The registry never accepts secret values.

Quality 88 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations10 of 10 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 3,343 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

10 tools, about 3,343 tokens to load them all · tool set ee8191516d6a · tools last changed 2026-10-11 · checked 2026-10-20 10:35 UTC

Tool changes

  • council_querychangedinput schema

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 77 / 100

no-repository
provenance45
liveness100
freshness85
hygiene80

+website +reachable +uptime-100% ~updated-73d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.council-ai.app/mcp streamable-httpapi_key ${COUNCIL_AI_TOKEN}yes100%478 ms2025-11-252026-10-20

Tools (10)

council_modelsread-onlyList the AI models available to the current user. Returns ID, provider, tier, context window, and capability flags (web search, vision, streaming). Use the IDs returned here as the `models` array argument to council_query / council_query_with_rag.
council_queryread-onlySend a prompt to a council of frontier AI models across 9 labs (Anthropic, OpenAI, Google, xAI, DeepSeek, Qwen, Mistral, Moonshot, z.ai). Returns each model's independent response plus a moderator-synthesized consensus answer with an agreement score and the key point of disagreement, when one exists. Use when a single-model answer might hallucinate or when verification across labs matters (research, contracts, architecture, legal, medical, code review). Adaptive-cost pattern: for a quick check, call with 2-3 models; if consensusScore comes back low (or keyDisagreement matters to the decision), escalate by re-running with more models — easy questions stay cheap, disputed ones get more compute. TIMEOUTS: a full council can run for minutes. If your MCP client has a fixed tool-call timeout, set async=true — you get a queryId back immediately and fetch the finished result with council_result. Call council_models first to pick specific model IDs, and council_usage to check remaining budget. Bills against the user's Council AI monthly budget.
council_query_with_ragread-onlyLike council_query, but first retrieves the most relevant passages from the user's personal Council RAG library (uploaded PDFs, Word docs, contracts, research papers, codebases) and injects them into every model's prompt. Use when the question is about content the user has uploaded — contract review, research synthesis across a paper library, code review against an architecture doc, etc. Ultra-tier only.
council_resultread-onlyFetch the result of a council_query started with async=true. Returns status "running" while the council is still working (wait 30-60 seconds and call again), the full synthesis + per-model responses once complete, or status "failed" with the error. Polling is free — the council run itself was already billed by council_query.
council_reviewread-onlyMulti-model code review. Sends a unified diff (or code snippet) to multiple frontier AI models from different labs in parallel, each acting as an independent reviewer with an explicit verdict + findings contract. Returns a verdict-first synthesis: overall SHIP/NO-SHIP, consensus score, confirmed findings (flagged by 2+ models), then dissents (single-model findings with reasoning), then each reviewer's verdict. Diffs are capped at 14,000 characters — split larger changes by file or hunk and call once per chunk. Bills against the user's Council AI monthly budget like any council query.
council_usageread-onlyReturn the user's current monthly cost-budget consumption (current spend, budget cap, percentage used, days until reset). Use to decide whether to warn the user before invoking another council_query, or to suggest using cheaper models. Per Council's rule: never show dollar amounts to the user in the response — use percentages.
library_deletedestructivePermanently delete a document from the user's Council RAG library — the record, every indexed chunk, AND the stored file are removed. This cannot be undone; re-adding the document requires uploading it again. Get document IDs from library_list. Use when the user asks to remove a document or when the 200-document library cap blocks an upload. Confirm with the user before deleting anything they did not explicitly name. No model call, no budget consumption.
library_listread-onlyList the documents in the user's Council RAG library. Returns id, filename, source type, ingestion status, chunk count, and upload date for each document. No retrieval, no budget consumption.
library_searchread-onlySemantic search over the user's Council RAG library (uploaded PDFs, Word docs, contracts, research papers, codebases). Returns top-K chunks with source filename and page number. No model call, no budget consumption. Use to find direct quotes, check what the library contains, or scope a follow-up council_query_with_rag call.
library_uploadUpload a document into the user's Council RAG library so future council_query_with_rag and library_search calls can retrieve it. Accepts PDF, Word (docx), text, and markdown files as base64 — images are not supported. Max 10MB per file via MCP (the web library at https://council-ai.app/settings?tab=library takes up to 50MB); libraries hold up to 200 documents. Ingestion (chunking + embedding) runs in the background: the returned document starts in "pending" status — check library_list for it to reach "ready" before querying against it. No model call, no budget consumption.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.omarkeshk/council-ai",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.council-ai.app/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer csa_<PAT> — mint a Personal Access Token at https://council-ai.app/settings?tab=mcp (Ultra tier)"
        }
      ]
    }
  ],
  "version": "1.0.1",
  "websiteUrl": "https://council-ai.app/mcp",
  "description": "Multi-LLM council: 25+ frontier models in parallel, consensus scoring, verdict-first code review."
}