MCP Directory

How to add MCP Rubber Duck to Windsurf

Bridge to query multiple LLMs and CLI coding agents as AI "ducks" for diverse perspectives. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 168 · stdio · apikey

Windsurf config for MCP Rubber Duck

npm install -g mcp-rubber-duck
{
  "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"
      }
    }
  }
}

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the MCP Rubber Duck config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5MCP Rubber Duck's tools become available to Cascade.

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

What MCP Rubber Duck can do in Windsurf

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.

Security

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 + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the MCP Rubber Duck config there under the "mcpServers" key and restart the client.

Is MCP Rubber Duck safe to use with Windsurf?

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.

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".

View repo Full MCP Rubber Duck page