MCP Directory

MCP Rubber Duck

Bridge to query multiple LLMs and CLI coding agents as AI "ducks" for diverse perspectives.

Unverified
stdio (local)
API key
TypeScript

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
npm install -g mcp-rubber-duck

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mcp-rubber-duck": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-rubber-duck"
      ],
      "env": {
        "MCP_SERVER": "true",
        "OPENAI_API_KEY": "sk-your-key-here",
        "DEFAULT_PROVIDER": "openai"
      }
    }
  }
}

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Node.js 20 or higher
  • npm or yarn
  • At least one API key for an HTTP provider, OR a CLI coding agent installed locally

About MCP Rubber Duck

An MCP server that bridges to multiple LLMs -- OpenAI-compatible HTTP APIs and local CLI coding agents -- letting you query several AI "ducks" simultaneously to compare answers, hold debates, vote on options, and get diverse perspectives, just like rubber duck debugging.

Tools & capabilities (15)

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.

When to use it

  • Compare answers from multiple LLMs side-by-side to get diverse perspectives on a problem
  • Run a 'Duck Council' to query all configured providers at once and synthesize a consensus
  • Hold structured debates (Oxford, Socratic, adversarial) or have ducks vote and rank each other's responses
  • Use automatic failover across providers so a query still succeeds if the primary provider is down
  • Bridge ducks to other MCP servers so LLMs can research and use external tools with approval controls

Security notes

Requires at least one provider API key (or a locally installed CLI coding agent). Keys are passed via the env block of the MCP client config; for Windsurf and VS Code use ${env:VAR_NAME} and set keys in your shell profile rather than hardcoding them. Avoid committing API keys in project-scoped configs (.mcp.json, .cursor/mcp.json) -- use shell environment variables instead. Includes a pluggable Guardrails safety layer (rate limiting, token limits, pattern blocking, PII redaction) and granular per-server approval controls for the MCP Bridge.

MCP Rubber Duck FAQ

Which LLM providers are supported?

Any provider with an OpenAI-compatible API endpoint, including OpenAI, Google Gemini, Anthropic (via OpenAI-compatible endpoints), Groq, Together AI, Perplexity, Anyscale, Azure OpenAI, Ollama, LM Studio, and custom providers. It also supports CLI coding agents (Claude Code, Codex, Gemini CLI, Grok, Aider) running as local processes.

Why does it integrate directly with provider APIs instead of using MCP sampling?

MCP's sampling primitive (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 brought its own ducks, so it is already aligned with the protocol's direction.

Why aren't the MCP tools appearing in my client?

Ensure MCP_SERVER is set to "true" in the env block of your client config -- this tells rubber-duck to run as an MCP server. Also confirm your API keys are valid, then run list_ducks with check_health: true to verify provider health. Note that VS Code uses the "servers" key rather than "mcpServers".

Alternatives to MCP Rubber Duck

Compare all alternatives →

Official MCP server providing persistent, file-backed knowledge-graph memory across sessions.

Verified
stdio (local)
No auth
TypeScript
9 tools
Updated 5 months agoRepo

Structured step-by-step reasoning tool for breaking problems into revisable thought sequences.

Verified
stdio (local)
No auth
TypeScript
1 tool
Updated 6 months agoRepo

Fully managed remote server for AWS docs, blogs, What's-New and Well-Architected guidance — no key.

Verified
HTTP (remote)
No auth
Hosted
6 tools
Updated 5 months agoRepo