LabscoMCP early access ↗
nesquikmMCP SERVER

MCP Rubber Duck

Ask the same question to several LLMs at once — then have them vote on it, judge each other's answers, or run a structured debate.

by nesquikm ↗Model Routing, Multi-Model Consultation & Cost ControlCommunity

LABSCO SUMMARY

Several opinions, and machinery for reconciling them.

Asking three models the same thing is easy; deciding what to do with three different answers is the actual problem. The vote, judge, iterate and debate tools are that machinery — a tally with confidence scores, a ranking by one model of the others, or a multi-round argument with a synthesis at the end. It connects to provider APIs directly, which the README notes is the direction the spec now recommends after server-side sampling was deprecated.

What it is

A bridge from one MCP client to many models: any OpenAI-compatible HTTP endpoint, and local CLI coding agents like Claude Code, Codex, Gemini CLI, Grok and Aider running as processes. On top of plain multi-model querying it adds group behaviours — voting, judging, iterative refinement and debate.

What you get

  • A question sent to one provider, or to several at once, or to every configured provider — ask_duck, compare_ducks, duck_council
  • Conversations that keep context across messages, and a way to clear them — chat_with_duck, clear_conversations
  • Group decision tools: multi-model voting with reasoning and confidence scores, one model evaluating and ranking the others, two models iteratively refining an answer, and multi-round debate in Oxford, Socratic or adversarial formats — duck_vote, duck_judge, duck_iterate, duck_debate
  • Provider health and model discovery, plus request, token and estimated-cost tracking per provider — list_ducks, list_models, get_usage_stats
  • 8 reusable prompt templates for multi-model work — assigned-lens analysis, hidden assumptions, blindspots, tradeoff comparison, red teaming, reframing, architecture review and diverge-converge — perspectives, assumptions, blindspots, tradeoffs, red_team, reframe, architecture, diverge_converge
  • Rich interactive HTML panels for compare, vote, debate and usage in clients supporting MCP Apps — clients without it get the same plain text, losing nothing
  • An MCP bridge that lets the models reach other MCP servers, with per-server approval controls and session-based approvals — mcp_status, get_pending_approvals, approve_mcp_request
  • A pluggable guardrail layer with rate limiting, token limits, pattern blocking and PII redaction
  • Vision input for models that accept images, and automatic failover to another provider when the primary fails

Requirements

Node.js 20 or higher, and npm install -g mcp-rubber-duck or npx mcp-rubber-duck; a Docker image is published to ghcr.io. You need at least one API key for an HTTP provider or a CLI coding agent installed locally — OPENAI_API_KEY, GEMINI_API_KEY and GROQ_API_KEY are read from the environment, with DEFAULT_PROVIDER picking the fallback, and CLI_{AGENT}_ENABLED switching on local agents. Configuration lives in a .env file or config/config.json. Licensed MIT.

Setup effort

One command plus a key — npm install -g mcp-rubber-duck, then supply credentials