
Deliberation
@antonbabenko
About Deliberation
A second opinion in Claude Code or any MCP host, from GPT, Gemini, Grok, and 400+ OpenRouter models. Seven domain experts review plans, find bugs, and weigh tradeoffs - advisory by default, or implementing when you ask.
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"deliberation": {
"command": "npx",
"args": [
"-y",
"@antonbabenko/deliberation-mcp"
],
"env": {
"XAI_API_KEY": "<optional, for Grok>",
"OPENROUTER_API_KEY": "<optional, for OpenRouter>"
}
}
}
}Tools
20Fan out one question to GPT, Gemini, Grok, and any configured OpenRouter models in parallel for independent second opinions, then return all results (advisory, no cross-contamination). Pass `expert` to apply a persona to every delegate. Calls external LLM providers (each needs its key/CLI; provider rate limits apply); returns a text-wrapped JSON envelope { results[], omitted[] } and persists a session record only when sessions.persist is enabled (default off).
Run the FULL multi-round consensus convergence loop server-side with a provider arbiter (blind pass + peer fan-out -> adjudicate -> revise) and return the converged verdict. Default depth is `consensus.maxRounds` (config, default 5); pass `maxRounds` to override. Pass `synthesizeAlways:true` for a SINGLE arbiter synthesis pass instead of the loop (best for open questions, not plan convergence): it returns a free-text `synthesis` and `maxRounds` is ignored. Configure the arbiter via `consensus.arbiter` - a concrete provider/openrouter alias runs server-side; `host` mode returns the opinions for YOU to synthesize. Advisory; pass `expert` to apply a persona. Calls external providers (keys/CLI; rate limits apply); returns a text-wrapped JSON envelope (split verdict/synthesis, loop fields nullable) and persists a session record only when sessions.persist is enabled (default off). NOTE (Claude Code): use the `/consensus` slash command for the transcript-visible host-arbiter loop (it drives `consensus-step`); this tool is the provider-arbiter path for any host.
Client-driven consensus loop where YOU (the host model) are the arbiter, one action per call: init (returns sessionId + blind prompt) -> record_blind (your pre-commit verdict) -> dispatch_peers (server fans out to the providers) -> submit_adjudication (your verdict + per-issue accept/dismiss/defer) -> submit_revision (your revised plan), looping until converged or consensus.maxRounds rounds (default 5). Only the dispatch_peers action calls external providers; the others are local transitions on the ephemeral per-session loop store (keyed by sessionId, lost on server restart). Each call returns a text-wrapped JSON envelope with the next status/round (plus blindPrompt, opinions[], or finalReport by action). Advisory to the outside world, but mutates server loop state on every call.
Return the names of the providers `ask-all` WOULD dispatch for the current config + expert (enabled built-ins + eligible OpenRouter aliases, fanout cap applied), WITHOUT calling them. Use this to discover the panel, then issue one `ask-one` call per provider in parallel for visible per-provider progress. Local and read-only (no provider calls); returns a text-wrapped JSON envelope { providers[], omitted[] }.
Second opinion from ONE named provider in the active panel (e.g. `codex`, `gemini`, `grok`, `openrouter:<alias>` - get the names from `panel`). Issue N in parallel (one per panel name) so each renders independently as it lands. Calls one external LLM provider (needs its key/CLI; rate limits apply); returns a text-wrapped JSON envelope { result }, or { error, panel } when the name is not in the panel. Advisory, single-shot.
Analyze recent runs from the opt-in debug log (latency/tokens/reasoning-effort per model) plus the session store (verdict agreement rate), and return advisory tuning suggestions (disable a slow/redundant model in ask-all, lower an OpenRouter model's reasoning, adjust maxFanout). Two lenses reported side by side - timing and agreement are NOT joined (no shared run id). Requires `debug.enabled` for the timing lens. Local and read-only (no provider calls, writes nothing); returns a text-wrapped JSON envelope with the two lenses + suggestions. The `/deliberation:analyze` slash command renders this for humans.
Single-provider second opinion via codex (advisory, single-shot). Pass `expert` to apply one of the expert personas. Calls the external codex provider (via the Codex CLI; rate limits apply) and returns a text-wrapped JSON envelope { result }.
Single-provider second opinion via gemini (advisory, single-shot). Pass `expert` to apply one of the expert personas. Calls the external gemini provider (via the Gemini CLI; rate limits apply) and returns a text-wrapped JSON envelope { result }.
Single-provider second opinion via grok (advisory, single-shot). Pass `expert` to apply one of the expert personas. Calls the external grok provider (needs XAI_API_KEY; rate limits apply) and returns a text-wrapped JSON envelope { result }.
Single-provider second opinion via openrouter (advisory, single-shot). Pass `expert` to apply one of the expert personas. Calls the external openrouter provider (needs the OpenRouter API key env; rate limits apply) and returns a text-wrapped JSON envelope { result }.
Software architect for system design, tradeoff analysis, and complex decisions. Use for architecture, API/schema design, multi-service interactions, or when a fix has failed twice and needs a fresh perspective. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
Work-plan reviewer that verifies a plan is executable before anyone builds. Use to validate an implementation plan for clarity, completeness, and gaps before starting significant work. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
Pre-planning consultant that catches ambiguities, hidden requirements, and pitfalls before planning begins. Use when a request is vague or could be interpreted multiple ways. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
Senior engineer doing code review for bugs, security holes, and maintainability - not style nitpicks. Use to review a diff or file before merging. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
Security engineer for threat modeling and vulnerability assessment. Use for auth/authorization changes, untrusted input handling, new endpoints, or a focused security audit. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
Research specialist for external libraries, frameworks, APIs, and open-source code. Use for 'how do I use X', best-practice, or 'why does this dependency behave this way' questions, with evidence and honest unverified flags. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
Debugging specialist that produces ranked root-cause hypotheses and the smallest safe fix from a bug report, logs, and code - or says honestly that the evidence shows no bug. Use for crashes, failing tests, or wrong output. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
Fetch a persisted consensus/ask-all session record by id (opinions, verdict, arbiter, annotations). Requires sessions.persist; local and read-only (no provider calls). Returns a text-wrapped JSON envelope { session }, or { error } when persistence is off or the id is unknown.
Re-run a persisted session's ORIGINAL question with the CURRENT providers/config, linking the new run to its source by parentId. Requires sessions.persist; re-runs through the original tool path (which dispatches external providers) and persists a linked child record on success. Returns a text-wrapped JSON envelope (the re-run payload + parentId), or { error } when persistence is off or the id is unknown.
Append a freeform note to a persisted session's audit trail - an additive local write, no provider calls. Requires sessions.persist. Returns a text-wrapped JSON envelope { session } (the updated record), or { error } when persistence is off or the id is unknown.
Overview
What is Deliberation?
Deliberation is an MCP server that connects GPT (via the Codex CLI), Gemini (via the Antigravity CLI agy), Grok (xAI), and any OpenAI-compatible model through OpenRouter into a single interface. It routes a single question to whichever providers you have configured and synthesizes their answers instead of dumping raw output. It includes seven expert roles—Architect, Plan Reviewer, Scope Analyst, Code Reviewer, Security Analyst, Researcher, Debugger—with GPT and Gemini able to implement changes while Grok and OpenRouter advise only.
How to use Deliberation?
Install via any MCP host using stdio: add the server configuration with npx -y @antonbabenko/deliberation-mcp. For Claude Code, use the plugin marketplace: /plugin marketplace add antonbabenko/agent-plugins, then /plugin install deliberation@antonbabenko, and run /deliberation:setup. The server automatically detects which providers are configured and routes accordingly.
Key features of Deliberation
- Parallel multi-provider question routing (
ask-all) - Consensus tool for iterative blind voting and agreement
- Seven expert roles callable directly
- Single-provider second opinions (
ask-gpt,ask-gemini, etc.) - Plugin installation for Claude Code
- Zero runtime dependencies; bundled server
Use cases of Deliberation
- Compare architectural decisions from GPT, Gemini, and Grok simultaneously
- Get code review from multiple AI experts using consensus mode
- Debug complex issues by having each provider analyze separately
- Research and analyze security vulnerabilities across different models
- Plan and scope project requirements with expert role input
FAQ from Deliberation
Which AI providers does Deliberation support?
Deliberation supports GPT (via the Codex CLI), Gemini (via the Antigravity CLI agy), Grok (via XAI_API_KEY), and any OpenAI-compatible endpoint through OpenRouter.
Do I need to configure all providers?
No—Deliberation detects whichever providers you have set up and routes questions accordingly. You may use any subset.
Can Grok or OpenRouter implement changes?
No, Grok and OpenRouter are advisory only. Only GPT and Gemini can implement changes.
How do I install Deliberation in Claude Code?
Use the plugin marketplace: /plugin marketplace add antonbabenko/agent-plugins, then /plugin install deliberation@antonbabenko, and run /deliberation:setup.
What are the runtime requirements?
Node 18+ is required. For GPT, the Codex CLI must be installed (npm i -g @openai/codex) and logged in. For Gemini, the agy CLI must be installed and logged in. For Grok, an XAI_API_KEY is needed. For OpenRouter, an OPENROUTER_API_KEY and a configuration file at ~/.claude/deliberation/config.json are required.
Frequently asked questions
Which AI providers does Deliberation support?
Deliberation supports GPT (via the Codex CLI), Gemini (via the Antigravity CLI `agy`), Grok (via `XAI_API_KEY`), and any OpenAI-compatible endpoint through OpenRouter.
Do I need to configure all providers?
No—Deliberation detects whichever providers you have set up and routes questions accordingly. You may use any subset.
Can Grok or OpenRouter implement changes?
No, Grok and OpenRouter are advisory only. Only GPT and Gemini can implement changes.
How do I install Deliberation in Claude Code?
Use the plugin marketplace: `/plugin marketplace add antonbabenko/agent-plugins`, then `/plugin install deliberation@antonbabenko`, and run `/deliberation:setup`.
What are the runtime requirements?
Node 18+ is required. For GPT, the Codex CLI must be installed (`npm i -g @openai/codex`) and logged in. For Gemini, the `agy` CLI must be installed and logged in. For Grok, an `XAI_API_KEY` is needed. For OpenRouter, an `OPENROUTER_API_KEY` and a configuration file at `~/.claude/deliberation/config.json` are required.
Basic information
More AI & Agents MCP servers
Sphere
dtajitdinov-arisOpen marketplace where AI agents register, publish services, and transact via escrowed contracts. Live at starsphera.com.
Legion MCP
faulkjMCP-native LLM councils for debates, juries, blind panels, voting, refinement, and custom multi-model deliberation.
fhirHydrant
faulkjOpen-source Node.js FHIR MCP server with SMART Backend Services, metadata-aware search/CRUD tools, compact responses, FHIRPath filtering, safe pagination, audit events, and terminology lookup.
21st.dev Magic AI Agent
21st-devIt's like v0 but in your Cursor/WindSurf/Cline. 21st dev Magic MCP server for working with your frontend like Magic

Plainpaper
PlainpaperThe AI marketing canvas for Claude and MCP agents. Your agent drafts campaigns as cards on a shared board, briefed by your brand rules, approved by you.
Comments