mcpField
M
Mcp Rubber Duck

Mcp Rubber Duck

本地服务
github.com/nesquikmAI 与智能体1802 周前更新

关于 Mcp Rubber Duck

一个 MCP 桥接服务,可将请求发送给多个 OpenAI 兼容的 LLM 以及 Claude Code、Codex 等命令行编码 Agent,并汇总不同视角的回答。适合希望比较或投票多个模型结果的开发者。

主要功能

  1. 01兼容任意 OpenAI 兼容 API 端点
  2. 02支持 Claude Code、Codex、Gemini CLI 等命令行 Agent
  3. 03多模型对比、投票与评审
  4. 04提供对话上下文管理与自动故障转移
  5. 05包含护栏、用量统计与 MCP 桥接功能

适用场景

  1. 01同时向多个模型提出同一问题并比较回答
  2. 02通过多模型辩论或迭代改进方案
  3. 03在设计评审中由多个模型分析风险与权衡

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 ask_duck、duck_council 等工具与多个提示词模板,并可通过 MCP 桥接让各模型访问其他 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"rubber-duck": {
"command": "npx",
"args": [
"-y",
"mcp-rubber-duck"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"GROQ_API_KEY": "<GROQ_API_KEY>",
"DEFAULT_PROVIDER": "<DEFAULT_PROVIDER>"
}
}
}
}
启动命令npx -y mcp-rubber-duck
需要配置的环境变量
OPENAI_API_KEY密钥OpenAI API key (starts with sk-)
GEMINI_API_KEY密钥Google Gemini API key
GROQ_API_KEY密钥Groq API key (starts with gsk_)
DEFAULT_PROVIDERDefault LLM provider to use

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-rubber-duck1.18.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Rubber Duck

一个 MCP(Model Context Protocol)服务,可作为桥梁查询多个大模型,包括兼容 OpenAI 的 HTTP API 和 CLI 编码 Agent。就像橡皮鸭调试法一样,向不同的 AI「鸭子」解释问题,获取不同的观点!

npm version Docker Image MCP Registry

MCP Rubber Duck - AI 鸭子协助调试代码

为什么要直接集成提供商? MCP 的 sampling 原语——由服务借用主机的大模型——已在 2026-07-28 规范候选版本中弃用,转而支持服务直接集成大模型提供商 API。Rubber Duck 一直采用这种方式(自带鸭子),因此符合协议的发展方向,无需迁移。

功能

  • 通用 OpenAI 兼容性 —— 适用于任何兼容 OpenAI 的 API 端点
  • CLI Agent 支持 —— 使用 CLI 编码 Agent(Claude Code、Codex、Gemini CLI、Grok、Aider)作为鸭子
  • 多只鸭子 —— 同时配置和查询多个大模型提供商
  • 对话管理 —— 在多条消息间保留上下文
  • 鸭子议会 —— 一次获取所有已配置大模型的回复
  • 共识投票 —— 多鸭投票,并提供推理过程和置信度分数
  • LLM 评审 —— 让鸭子评估并排列彼此的回复
  • 迭代优化 —— 两只鸭子协作改进回复
  • 结构化辩论 —— 牛津式、苏格拉底式和对抗式辩论格式
  • MCP 提示词 —— 用于多大模型工作流的 8 个可复用提示词模板
  • 视觉输入 —— 发送图片及提示词给支持视觉的模型(文档)
  • 自动故障转移 —— 首选提供商失败时自动切换到其他提供商
  • 健康监控 —— 实时检查所有提供商的运行状况
  • 用量跟踪 —— 按提供商跟踪请求、令牌和预估费用
  • MCP 桥接 —— 将鸭子连接到其他 MCP 服务以扩展功能(文档)
  • 防护机制 —— 可插拔安全层,支持速率限制、令牌限制、模式拦截和 PII 脱敏(文档)
  • 细粒度安全控制 —— 按服务设置审批控制,并支持基于会话的审批
  • 交互式界面 —— 为比较、投票、辩论和用量工具提供丰富的 HTML 面板(通过 MCP Apps)
  • 工具注解 —— 符合 MCP 规范的工具行为提示(只读、破坏性等)
  • 结构化输出 —— 为返回结构化 JSON 的工具设置 outputSchema,以便客户端验证(Cursor、VS Code/Copilot)
  • 设计上符合规范 —— 直接连接提供商 API;由于服务端 sampling 已弃用,这也是 MCP 2026-07-28 规范目前推荐的方式(SEP-2577)

支持的提供商

HTTP 提供商(兼容 OpenAI 的 API)

任何提供兼容 OpenAI 的 API 端点的提供商,包括:

  • OpenAI
  • Google Gemini
  • Anthropic(通过兼容 OpenAI 的端点)
  • Groq(为开放权重模型提供快速推理)
  • Together AI(提供丰富的开放权重模型目录)
  • Perplexity(支持联网搜索的在线模型)
  • Anyscale、Azure OpenAI、Ollama、LM Studio、自定义
CLI 提供方(编码 Agent)

作为本地进程运行的命令行编码 Agent:

  • Claude Code(claude)-- Codex(codex)-- Gemini CLI(gemini)-- Grok CLI(grok)-- Aider(aider)-- 自定义

完整的设置和配置说明,请参阅 CLI 提供方。

快速开始

# Install globally
npm install -g mcp-rubber-duck

# Or use npx directly in Claude Desktop config
npx mcp-rubber-duck

使用 Claude Desktop? 请跳转至 Claude Desktop 配置。 使用 Cursor、VS Code、Windsurf 或其他工具? 请参阅设置指南。

安装

前提条件
  • Node.js 20 或更高版本
  • npm 或 yarn
  • 至少一个 HTTP 提供方的 API 密钥,或在本地安装的命令行编码 Agent
从 NPM 安装
npm install -g mcp-rubber-duck
从源代码安装
git clone https://github.com/nesquikm/mcp-rubber-duck.git
cd mcp-rubber-duck
npm install
npm run build
npm start

配置

创建 .env 文件或 config/config.json。关键环境变量:

变量说明
OPENAI_API_KEYOpenAI API 密钥
GEMINI_API_KEYGoogle Gemini API 密钥
GROQ_API_KEYGroq API 密钥
DEFAULT_PROVIDER默认提供方(例如,openai)
DEFAULT_TEMPERATURE默认温度(例如,0.7)
LOG_LEVELdebug、info、warn、error
MCP_SERVER设置为 true 以启用 MCP 服务模式
MCP_BRIDGE_ENABLED启用 MCP Bridge(让 duck 访问外部 MCP 服务)
CUSTOM_{NAME}_*自定义 HTTP 提供方
CLI_{AGENT}_ENABLED启用 CLI Agent(CLAUDE、CODEX、GEMINI、GROK、AIDER)

完整参考:配置文档

交互式 UI(MCP Apps)

四个工具——compare_ducks、duck_vote、duck_debate 和 get_usage_stats——可通过 MCP Apps 在受支持的 MCP 客户端中呈现丰富的交互式 HTML 面板。在支持 MCP Apps 的客户端中配置好此 MCP 服务后,UI 将自动显示,无需额外设置。不支持 MCP Apps 的客户端仍会收到相同的纯文本输出(不会损失任何功能)。受支持客户端的最新列表请参阅 MCP Apps 仓库。

比较鸭子

并排比较多个模型的响应,并显示延迟指示器、Token 数量、模型徽章和错误状态。

比较鸭子的交互式 UI

鸭子投票

让多个鸭子对选项进行投票,并以可视化投票统计的形式展示,包括条形图、共识徽章、获胜者卡片、置信度条和可折叠的推理过程。

鸭子投票交互式 UI

鸭子辩论

鸭子之间进行结构化的多轮辩论,并以逐轮视图展示,包括格式徽章、参与者列表、可折叠的轮次和综合总结部分。

鸭子辩论交互式 UI

使用统计

使用情况分析,包括摘要卡片、可展开行的提供方细分、Token 分布条和预估费用。

使用统计交互式 UI

## 可用工具
工具描述
ask_duck向指定的大模型提供商提问一次
chat_with_duck在多条消息间保留上下文的对话
clear_conversations清除所有对话历史记录
list_ducks列出已配置的提供商及其健康状态
list_models列出各提供商可用的模型
compare_ducks同时向多个提供商提问同一个问题
duck_council获取所有已配置的 duck 的回复
get_usage_stats使用统计和预估费用
duck_vote多个 duck 进行投票,并提供推理过程和置信度
duck_judge让一个 duck 评估并排列其他 duck 的回复
duck_iterate在两个 duck 之间迭代优化回复
duck_debate由多个 duck 进行结构化、多轮辩论
mcp_statusMCP Bridge 状态及已连接的服务
get_pending_approvals待处理的 MCP 工具审批请求
approve_mcp_request批准或拒绝 duck 的 MCP 工具请求

包含输入架构的完整参考文档:工具文档

可用提示词

提示词用途必需参数
perspectives通过分配不同视角进行多角度分析problem、perspectives
assumptions揭示计划中的隐含假设plan
blindspots寻找被忽略的风险和缺漏proposal
tradeoffs结构化比较选项options、criteria
red_team从多个角度进行安全/风险分析target
reframe从不同层面重新审视问题problem
architecture从多个方面进行设计评审design、workloads、priorities
diverge_converge先发散探索,再收敛得出结论challenge

包含示例的完整参考文档:提示词文档

开发

npm run dev        # Development with watch mode
npm test           # Run all tests
npm run lint       # ESLint
npm run typecheck  # Type check without emit

文档

主题链接
设置指南(所有工具)docs/setup.md
完整配置参考docs/configuration.md
Claude Desktop 设置docs/claude-desktop.md
所有工具及其架构docs/tools.md
提示词模板docs/prompts.md
CLI 编码 Agentdocs/cli-providers.md
MCP Bridgedocs/mcp-bridge.md
防护措施docs/guardrails.md
Docker 部署docs/docker.md
提供商专属设置docs/provider-setup.md
使用示例docs/usage-examples.md
架构docs/architecture.md
路线图docs/roadmap.md

故障排除

提供商无法正常工作
  1. 检查 API 密钥是否设置正确
  2. 确认端点 URL 是否正确
  3. 运行健康检查:list_ducks({ check_health: true })
  4. 查看日志中的详细错误消息
连接问题
  • 对于本地提供商(Ollama、LM Studio),请确保其正在运行
  • 检查本地端点的防火墙设置
  • 确认与云提供商的网络连接正常
速率限制
  • 配置故障转移至其他提供商
  • 调整 max_retries 和 timeout 设置
  • 请参阅防护措施,了解速率限制配置

贡献

     __
   <(o )___
    ( ._> /
     `---'  Quack! Ready to debug!

我们欢迎大家贡献!无论你是在修复错误、添加功能,还是教我们的鸭子新把戏,都欢迎加入我们的鸭群。

请查看贡献指南,开始参与。

贡献者快速入门:

  1. Fork 此仓库
  2. 创建一个功能分支
  3. 遵循我们的约定式提交指南
  4. 为新功能添加测试
  5. 提交 Pull Request

许可证

MIT License - 详情请参阅 LICENSE 文件

致谢

  • 灵感来自橡皮鸭调试法
  • 基于 Model Context Protocol(MCP)构建
  • 使用 OpenAI SDK 以兼容 HTTP 提供方
  • 支持 CLI 编码 Agent(Claude Code、Codex、Gemini CLI、Grok、Aider)

更新日志

详细的更改和发布历史请参阅 CHANGELOG.md。

注册表与目录

支持


祝你和 AI 鸭子面板调试愉快!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。