code-quorum
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GH_TOKEN | No | GitHub token for higher API limits. Alternative to GITHUB_TOKEN. | |
| HF_TOKEN | No | Hugging Face token for account-level Hub limits. Alternative to QUORUM_HF_TOKEN. | |
| GITHUB_TOKEN | No | GitHub token for higher API limits. Alternative to GH_TOKEN. | |
| GEMINI_API_KEY | No | Gemini API key for metered SDK backend, required only if CODE_QUORUM_GEMINI_BACKEND=sdk. | |
| QUORUM_HF_TOKEN | No | Hugging Face token for account-level Hub limits. Alternative to HF_TOKEN. | |
| CODE_QUORUM_HOST | No | Default host profile. Values: 'claude' or 'codex'. | |
| CONTEXT7_API_KEY | No | API key for Context7, recommended to avoid rate limits. | |
| OPENALEX_API_KEY | No | OpenAlex API key, required for normal OpenAlex use. Alternative to QUORUM_OPENALEX_API_KEY. | |
| OPENROUTER_API_KEY | Yes | API key for OpenRouter, required by the OpenCode seat. | |
| QUORUM_OPENALEX_EMAIL | No | Email identifier for OpenAlex requests. | |
| CODE_QUORUM_CODEX_MODEL | No | Codex seat model identifier. | |
| QUORUM_OPENALEX_API_KEY | No | OpenAlex API key, required for normal OpenAlex use. Alternative to OPENALEX_API_KEY. | |
| CODE_QUORUM_CLAUDE_MODEL | No | Claude seat model identifier. | |
| CODE_QUORUM_CODEX_EFFORT | No | Codex seat reasoning effort. | |
| CODE_QUORUM_GEMINI_MODEL | No | Gemini seat model identifier (from 'agy models'). | |
| CODE_QUORUM_CLAUDE_EFFORT | No | Claude seat reasoning effort. | |
| CODE_QUORUM_GEMINI_BACKEND | No | Gemini backend: 'cli' for subscription or 'sdk' for metered GEMINI_API_KEY. | |
| CODE_QUORUM_OPENCODE_DEBUG | No | Set to '0' to disable failed-run diagnostic capture for OpenCode. | |
| CODE_QUORUM_OPENCODE_MODEL | No | OpenCode seat model identifier. | |
| CODE_QUORUM_HELPER_ALLOWED_ROOTS | No | Additional allowed project root directories for the Codex helper. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| q_plan_startA | Start a q-plan run in the background. Returns {"job_id": str}
immediately. The current host's external seats run in parallel from a
structurally bias-free starting point. Retrieve results by
calling Between the start and the await, the caller is expected to form its own plan — this is the structural anti-bias gate. Optionally assign a cognitive stance per agent via
Expected wall-clock to completion: 30s-4min depending on the agents and codebase size. |
| q_brainstorm_startA | Start a q-brainstorm run in the background. Returns {"job_id":
str} immediately. Each agent contributes 3-5 distinct ideas with
rationale, trade-offs, and the cheapest test that would give signal;
no synthesis. Retrieve results by calling Between the start and the await, the caller is expected to list its own ideas — this is the structural anti-bias gate.
Optionally assign a cognitive stance per agent via
Expected wall-clock to completion: 30s-4min depending on the agents and topic complexity. |
| q_validate_startA | Start a q-validate run in the background. Returns {"job_id":
str} immediately. Each agent independently reviews the plan file,
then deliberates across rounds. Round 1 is structurally bias-free;
later rounds embed each agent's own prior plus peers' priors.
Retrieve results by calling Between the start and the await, the caller is expected to form its own review — this is the structural anti-bias gate.
Optionally assign stances per agent via
Expected wall-clock to completion: 1-8min default; 4-15min when extended=true. Pick extended deliberately. |
| q_review_startA | Start a q-review run in the background. Returns {"job_id": str}
immediately. Each agent independently reviews real code changes, then
converges across rounds. Round 1 is structurally bias-free; later rounds
embed each agent's own prior plus peers' priors so sustained agreement
becomes visible. Retrieve results by calling Between the start and the await, the caller is expected to form its own code review of the diff — this is the structural anti-bias gate.
Optionally assign stances per agent via
Expected wall-clock to completion: 1-8min default; 4-15min when extended=true. Pick extended deliberately. |
| q_researchA | Fetch prior art for a topic from arXiv + OpenAlex + Europe PMC (papers), Context7 (library docs), GitHub (repos), and HuggingFace (models), and return a markdown digest. Europe PMC covers the life-sciences preprint tier arXiv does not carry -- bioRxiv, medRxiv, Research Square -- so it is the source that earns its slot on biology/medicine topics and returns 0 on pure-software ones. Its hits are labelled by preprint server ("bioRxiv") and are NOT peer-reviewed; weigh them accordingly. Not subject to the council's anti-bias gate -- this is external prior art,
not peer output. Call it during the own-work window of a Query shaping matters: pass a query that is SHORT and distinctive --
short is not the same as generic. Anchor it in 2+ domain-specific terms (the
field PLUS the specific method/concept), never a bare common word ('data',
'model', 'network') or a token that doubles as an author surname -- those
keyword-match unrelated work (author names, generic surveys, stray docs) and
return non-zero but OFF-TOPIC noise -- sanity-check that returned titles
belong to your domain, and if they are off-topic the query was too generic:
re-anchor with more domain context and call q_research again rather than
leaning on them. (This same-domain check assumes you want grounding in
your own field -- if you are deliberately hunting cross-domain structural
analogies instead, judge a hit by structural kinship to the problem, not
literal subject-matter overlap; an off-domain hit is then the find, not
noise.) Not a full paragraph either. Per source: arXiv parses
Treat every other digest result as provisional until it earns trust: a 0 that is NOT one of the domain-legitimate cases above is not automatically "no prior art" either (it may just be a bad query), and non-zero hits that read scattered or off-topic are not evidence -- both are a signal to reframe (sharper domain anchor, fewer/different terms) and retry, not something to build a conclusion on. Failed sources are reported inline under 'Sources unavailable' rather than failing the call -- each with a retry hint, and the right move differs by error. An errored source is almost never a dead backend: an arXiv error (400) means YOUR query is too long or has boolean punctuation, so shorten it to a few keywords, strip operators, and call q_research again; a 401/403 or an OpenAlex 503 is a CONFIG case, not a flake -- the key was rejected, or OpenAlex is load-shedding anonymous search, so a bare retry just loops (set the source's key -- OPENALEX_API_KEY is free -- or lean on the other sources and say so); only a plain timeout/flake is transient and worth retrying as-is. Do NOT report a source unavailable, and do NOT fall back on your own knowledge, until a reworked retry has ALSO failed -- treating the first error as terminal is the failure to avoid. Bounded by per-request timeouts (~10-15s each); the GitHub and HuggingFace backends fan out one request per distinctive query term (up to 4), run sequentially, so those two sources' wall-clock can reach a few times that. The digest OPENS with a deterministic
|
| q_awaitA | Block until the background council run identified by This is the blocking completion notification for every council start. The orchestrating host must not end its turn with a live job outstanding; it calls q_await after its independent work and remains blocked until this tool returns a result or error. Errors:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sdewell/code-quorum'
If you have feedback or need assistance with the MCP directory API, please join our Discord server