The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the MCP Rubber Duck listing page.
An MCP (Model Context Protocol) server that acts as a bridge to query multiple LLMs -- both OpenAI-compatible HTTP APIs and CLI coding agents. Just like rubber duck debugging, explain your problems to various AI "ducks" and get different perspectives!
Why direct provider integration? MCP's
samplingprimitive -- a server borrowing the host's model -- was deprecated in the 2026-07-28 spec RC in favor of servers integrating directly with LLM provider APIs. Rubber Duck has always worked this way (it brings its own ducks), so it's aligned with where the protocol is heading -- no migration required.
outputSchema on tools returning structured JSON for client-side validation (Cursor, VS Code/Copilot)2026-07-28 spec recommends now that server-side sampling is deprecated (SEP-2577)Any provider with an OpenAI-compatible API endpoint, including:
Command-line coding agents that run as local processes:
claude) -- Codex (codex) -- Gemini CLI (gemini) -- Grok CLI (grok) -- Aider (aider) -- CustomSee CLI Providers for full setup and configuration.
Using Claude Desktop? Jump to Claude Desktop Configuration. Using Cursor, VS Code, Windsurf, or another tool? See the Setup Guide.
Create a .env file or config/config.json. Key environment variables:
| Variable | Description |
|---|---|
OPENAI_API_KEY | OpenAI API key |
GEMINI_API_KEY | Google Gemini API key |
GROQ_API_KEY | Groq API key |
DEFAULT_PROVIDER | Default provider (e.g., openai) |
DEFAULT_TEMPERATURE | Default temperature (e.g., 0.7) |
LOG_LEVEL | debug, info, warn, error |
MCP_SERVER | Set to true for MCP server mode |
MCP_BRIDGE_ENABLED | Enable MCP Bridge (ducks access external MCP servers) |
CUSTOM_{NAME}_* | Custom HTTP providers |
CLI_{AGENT}_ENABLED | Enable CLI agents (CLAUDE, CODEX, GEMINI, GROK, AIDER) |
Full reference: Configuration docs
Four tools -- compare_ducks, duck_vote, duck_debate, and get_usage_stats -- can render rich interactive HTML panels inside supported MCP clients via MCP Apps. Once this MCP server is configured in a supporting client, the UIs appear automatically -- no additional setup is required. Clients without MCP Apps support still receive the same plain text output (no functionality is lost). See the MCP Apps repo for an up-to-date list of supported clients.
Compare multiple model responses side-by-side, with latency indicators, token counts, model badges, and error states.
Have multiple ducks vote on options, displayed as a visual vote tally with bar charts, consensus badge, winner card, confidence bars, and collapsible reasoning.
Structured multi-round debate between ducks, shown as a round-by-round view with format badge, participant list, collapsible rounds, and synthesis section.
Usage analytics with summary cards, provider breakdown with expandable rows, token distribution bars, and estimated costs.
| Tool | Description |
|---|---|
ask_duck | Ask a single question to a specific LLM provider |
chat_with_duck | Conversation with context maintained across messages |
clear_conversations | Clear all conversation history |
list_ducks | List configured providers and health status |
list_models | List available models for providers |
compare_ducks | Ask the same question to multiple providers simultaneously |
duck_council | Get responses from all configured ducks |
get_usage_stats | Usage statistics and estimated costs |
duck_vote | Multi-duck voting with reasoning and confidence |
duck_judge | Have one duck evaluate and rank others' responses |
duck_iterate | Iteratively refine a response between two ducks |
duck_debate | Structured multi-round debate between ducks |
mcp_status | MCP Bridge status and connected servers |
get_pending_approvals | Pending MCP tool approval requests |
approve_mcp_request | Approve or deny a duck's MCP tool request |
Full reference with input schemas: Tools docs
| Prompt | Purpose | Required Arguments |
|---|---|---|
perspectives | Multi-angle analysis with assigned lenses | problem, perspectives |
assumptions | Surface hidden assumptions in plans | plan |
blindspots | Hunt for overlooked risks and gaps | proposal |
tradeoffs | Structured option comparison | options, criteria |
red_team | Security/risk analysis from multiple angles | target |
reframe | Problem reframing at different levels | problem |
architecture | Design review across concerns | design, workloads, priorities |
diverge_converge | Divergent exploration then convergence | challenge |
Full reference with examples: Prompts docs
| Topic | Link |
|---|---|
| Setup guide (all tools) | docs/setup.md |
| Full configuration reference | docs/configuration.md |
| Claude Desktop setup | docs/claude-desktop.md |
| All tools with schemas | docs/tools.md |
| Prompt templates | docs/prompts.md |
| CLI coding agents | docs/cli-providers.md |
| MCP Bridge | docs/mcp-bridge.md |
| Guardrails | docs/guardrails.md |
| Docker deployment | docs/docker.md |
| Provider-specific setup | docs/provider-setup.md |
| Usage examples | docs/usage-examples.md |
| Architecture | docs/architecture.md |
| Roadmap | docs/roadmap.md |
list_ducks({ check_health: true })max_retries and timeout settingsWe love contributions! Whether you're fixing bugs, adding features, or teaching our ducks new tricks, we'd love to have you join the flock.
Check out our Contributing Guide to get started.
Quick start for contributors:
MIT License - see LICENSE file for details
See CHANGELOG.md for a detailed history of changes and releases.
io.github.nesquikm/rubber-duckHappy Debugging with your AI Duck Panel!