MCP橡胶鸭
一个MCP(模型上下文协议)服务器,充当查询多个LLM的桥梁,包括与OpenAI兼容的HTTP API和CLI编码代理。就像橡皮鸭调试一样,向各种AI“鸭子”解释你的问题,得到不同的观点!
](https://www.npmjs.com/package/mcp-rubber-duck) ](https://github.com/nesquikm/mcp-rubber-duck/pkgs/container/mcp-rubber-duck) 
特性
- 通用OpenAI兼容性 --适用于任何与OpenAI兼容的API终结点
- CLI代理支持 --使用CLI编码代理(Claude Code、Codex、Gemini CLI、Grok、Aider)作为鸭子
- 多只鸭子 --同时配置和查询多个LLM提供程序
- 对话管理 --维护多条消息的上下文
- 鸭议会 --一次从所有配置的LLM获取响应
- 共识投票 --具有推理和信心评分的多鸭投票
- 法学硕士作为法官 --让鸭子对彼此的反应进行评估和排名
- 迭代优化 --两只鸭子协同提高反应
- 结构化辩论 --牛津、苏格拉底和对抗式辩论形式
- MCP提示 --8个可重复使用的提示模板,用于多LLM工作流
- 视觉输入 --将图像与提示一起发送给具有视觉能力的模型(文档)
- 自动故障切换 --如果主服务器失败,则回退到其他提供商
- 健康监测 --对所有提供者进行实时健康检查
- 使用跟踪 --跟踪每个提供者的请求、令牌和估计成本
- MCP电桥 --将鸭子连接到其他MCP服务器以扩展功能(文档)
- 护栏 --具有速率限制、令牌限制、模式阻塞和PII编辑功能的可插拔安全层(文档)
- 精细安全 --具有基于会话的审批的每服务器审批控制
- 交互式用户界面 --用于比较、投票、辩论和使用工具的丰富HTML面板(通过 MCP应用程序)
- 工具注释 --符合MCP的工具行为提示(只读、破坏性等)
- 结构化输出 --
outputSchema关于返回结构化JSON进行客户端验证的工具(游标、VS代码/副本)
支持的提供商
HTTP提供程序(与OpenAI兼容的API)
具有与OpenAI兼容的API终结点的任何提供程序,包括:
- 开放人工智能 (GPT-5.1、o3、o4 mini)
- 谷歌双子座 (双子座3,双子座2.5 Pro/Flash)
- Anthropic (通过OpenAI兼容端点)
- Groq (《骆驼4》、《骆驼3.3》)
- 共同AI (《Llama 4》、《Qwen》等)
- 困惑度 (带网络搜索的在线模型)
- 任何尺寸, Azure OpenAI, 奥拉玛, LM 工作室, 自定义
CLI提供程序(编码代理)
作为本地进程运行的命令行编码代理:
- 克劳德代码 (
claude) -- 法典 (codex) -- 双子星命令行工具 (gemini) -- Grok CLI (grok) -- 教唆者 (aider) -- 自定义
看 CLI提供商 用于完整的设置和配置。
快速开始
# Install globally
npm install -g mcp-rubber-duck
# Or use npx directly in Claude Desktop config
npx mcp-rubber-duck使用克劳德桌面? 跳转到 Claude桌面配置. 使用游标、VS代码、Windsurf或其他工具? 请参阅 安装指南.
安装
先决条件
- Node.js 20或更高版本
- npm或纱线
- 用于HTTP提供者的至少一个API密钥, 或 本地安装的CLI编码代理
从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_KEY | OpenAI API密钥 |
GEMINI_API_KEY | Google Gemini API密钥 |
GROQ_API_KEY | Groq API密钥 |
DEFAULT_PROVIDER | 默认提供者(例如。, openai) |
DEFAULT_TEMPERATURE | 默认温度(例如。, 0.7) |
LOG_LEVEL | debug, info, warn, error |
MCP_SERVER | 设置为 true 用于MCP服务器模式 |
MCP_BRIDGE_ENABLED | 启用MCP网桥(鸭子访问外部MCP服务器) |
CUSTOM_{NAME}_* | 自定义HTTP提供程序 |
CLI_{AGENT}_ENABLED | 启用CLI代理(CLAUDE, CODEX, GEMINI, GROK, AIDER) |
完整参考: 配置文档
交互式用户界面(MCP应用程序)
比较鸭子
并排比较多个模型响应,包括延迟指示器、令牌计数、模型徽章和错误状态。
鸭子投票
让多只鸭子对选项进行投票,以条形图、共识徽章、获胜者卡片、置信条和可折叠推理的视觉投票结果显示。
鸭子辩论
鸭子之间的结构化多轮辩论,显示为逐轮视图,带有格式徽章、参与者列表、可折叠回合和综合部分。
使用情况统计
使用汇总卡进行使用分析,使用可扩展行进行提供商细分,使用代币分发栏和估计成本。
可用工具
| 工具 | 说明 |
|---|---|
ask_duck | 向特定的法学硕士提供者提出一个问题 |
chat_with_duck | 在消息中保持上下文对话 |
clear_conversations | 清除所有对话历史记录 |
list_ducks | 列出已配置的提供程序和运行状况 |
list_models | 列出供应商的可用型号 |
compare_ducks | 同时向多个提供者提出同一问题 |
duck_council | 从所有已配置的鸭子中获取响应 |
get_usage_stats | 使用统计和估计成本 |
duck_vote | 理性和自信的多鸭投票 |
duck_judge | 让一只鸭子评估并排名其他鸭子的反应 |
duck_iterate | 迭代优化两只鸭子之间的响应 |
duck_debate | 鸭子之间的结构化多轮辩论 |
mcp_status | MCP网桥状态和连接的服务器 |
get_pending_approvals | 等待MCP工具批准请求 |
approve_mcp_request | 批准或拒绝鸭子的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桌面设置 | docs/claude-desktop.md |
| 所有带有模式的工具 | docs/tools.md |
| 提示模板 | docs/prompts.md |
| CLI编码代理 | docs/cli-providers.md |
| MCP电桥 | docs/mcp-bridge.md |
| 护栏 | docs/guardails.md |
| Docker部署 | |
| 特定于提供商的设置 | docs/provider-setup.md |
| 使用示例 | docs/usage-examples.md |
| 建筑 | docs/architecture.md |
| 路线图 | docs/roadmap.md |
故障排除
提供商不工作
- 检查是否正确设置了API密钥
- 验证端点URL是否正确
- 运行健康检查:
list_ducks({ check_health: true }) - 检查日志以获取详细的错误消息
连接问题
- 对于本地供应商(Ollama、LM Studio),确保他们正在运行
- 检查本地端点的防火墙设置
- 验证与云提供商的网络连接
速率限制
- 配置故障转移到备用提供程序
- 调整
max_retries和timeout设置 - 看 护栏 用于速率限制配置
贡献
__
/
`---' Quack! Ready to debug!我们热爱贡献!无论你是在修复bug、添加功能,还是教我们的鸭子新把戏,我们都很乐意让你加入我们的行列。
查看我们的 贡献指南 开始吧。
贡献者快速入门:
- 分叉存储库
- 创建要素分支
- 关注我们 常规提交指南
- 添加新功能的测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
致谢
- 受橡皮鸭调试方法启发
- 基于模型上下文协议(MCP)构建
- 使用OpenAI SDK实现HTTP提供者兼容性
- 支持CLI编码代理(Claude Code、Codex、Gemini CLI、Grok、Aider)
更新日志
看 更改日志.md 查看更改和发布的详细历史记录。
注册表和目录
- NPM包:
- Docker镜像: ghcr.io/nesquikm/cp-rubber-duck
- MCP注册表:官方MCP服务器
io.github.nesquikm/rubber-duck - Glama目录: glama.ai/mcp/servers/@nesquikm/mcp橡皮鸭
- 出色的MCP服务器:列在 社区目录
支持
- 报告问题:https://github.com/nesquikm/mcp-rubber-duck/issues
- 文档:https://github.com/nesquikm/mcp-rubber-duck/wiki
- 讨论:https://github.com/nesquikm/mcp-rubber-duck/discussions
______________________________________________________________________
用你的AI鸭子面板调试快乐!

