内容
# 多模型中转服务器
**将 Claude Code 的任务委托给其他公司的模型 — 无需离开应用程序**
这是一个小型 MCP(模型上下文协议)服务器,作为您主要编码代理和您访问的每个其他模型之间的“服务员”。Claude Code 仍然是编排器;服务员接收订单并将其发送到您指向的任何“厨房”:
- **Codex CLI** → GPT-5.6 Sol / Terra / Luna(通过您的 ChatGPT 订阅,无需 API 费用)
- **DeepSeek**(DS4 Flash / Pro)通过直接 API
- **z.ai**(GLM 5.2)通过编码计划订阅
- **OpenRouter** → 他们目录中的任何模型
- **LM Studio** → 您机器上的本地模型或局域网中的其他机器,免费
相同的模式适用于任何支持 MCP 的代理 — 这里除了注册之外,没有任何特定于 Claude 的内容。
## 工具列表
| 工具 | 功能 |
|---|---|
| `list_models` | 返回菜单:每个启用的模型及其确切的 ID 和提供商状态(缺少密钥、离线本地服务器等) |
| `delegate_task` | 将自包含的任务发送到选择的模型并返回其答案,标记为来源和令牌使用情况 |
委托的细节,均源自以下的基准测试:选择每次调用的 Codex 模型(`codex:gpt-5.6-luna`),设置每次调用的推理努力(`effort`适用于 Codex、z.ai 和 OpenRouter),**每个提供商的并发队列**(z.ai 和 LM Studio 静默地阻塞并行调用 — 服务器现在会排队),可配置的每个提供商的超时时间,以及**自动重试**网络中断 / 429 / 5xx(答案页脚显示 `repescada 1×`,当第二次尝试成功时)。
## 快速开始
```bash
git clone https://github.com/dpmadsen/multimodels-mcp.git
cd multimodels-mcp
npm install
npm run build
# 复制密钥模板并填写您使用的内容
cp .env.example .env
# 在 Claude Code 中注册(用户范围 = 在每个项目中可用)
claude mcp add --scope user multimodels -- node "$(pwd)/dist/index.js"
```
然后询问 Claude: *"使用 list_models 工具并给我展示菜单"*。
## 配置提供商
- **`config/models.json`** — 存在哪些提供商、它们的基准 URL 和哪些模型已启用。添加 OpenAI 兼容的提供商是一个 JSON 块;启用一个模型是其 `models` 数组中的一行。
- **`.env`** — 仅 API 密钥。永远不要放在 models.json 中,也不要放在代码中。服务器在每次调用时读取 models.json(编辑后立即生效);`.env` 在启动时读取(添加密钥后重启服务器)。
- **本地控制面板** — `npm run panel` 打开一个 localhost 页面(http://127.0.0.1:4747)来管理密钥和切换模型。密钥仅显示最后 4 位;面板绑定到 localhost。
- **Codex 通道** — 需要安装 [Codex CLI](https://github.com/openai/codex) 并登录。它使用您的 `~/.codex/config.toml` 设置的模型(CLI 接受 `-m gpt-5.6-luna` 等)。
- **z.ai 注意** — 编码计划订阅密钥仅适用于编码端点(`https://api.z.ai/api/coding/paas/v4`)。在通用端点上,它们会因“余额不足”而失败。默认配置已经指向正确的端点。
## 基准测试:你能真正信任谁来处理委托工作?
[`benchmark/`](benchmark/) 文件夹包含一个完整的评估运行通过此服务器:**6 个站点 × 11 个模型 × 3 轮 = 198 次运行**,由在任何模型看到任务之前编写的隐藏测试套件评分。站点:从规范构建、查找和修复错误、带有种子错误的 code review、严格的 JSON 提取、一个长期的复合交付和在缺少上下文时的诚实。

亮点:
- GPT-5.6 Codex 家族(包括 Luna,$1/M 输入)取得了 **54/54 完美运行**,并 9 次验证了不存在的幻觉文件而不是编造修复。
- Sonnet 5 和 Haiku 4.5 在 3 次运行中的 2 次失败了相同的分发合约 — 而每个廉价的委托都通过了 9/9。
- 严格的 JSON 提取:所有模型中 33/33。解决了问题。
- 单次运行的基准测试在两个方向上都失败了;三轮测试改变了半数的结论。
基准测试中需要的一切都在文件夹中:站点提示(`benchmark/estacoes/`,葡萄牙语)、自动化评分器(`benchmark/corretores/`)和每个原始响应(`benchmark/respostas/`)。

### 轮次 2 — 真实任务而非合成站点
七个实施者(Claude、GPT-5.6 和 GLM 通道,代理和纯文本)构建了**相同的真实功能**的此服务器,每个功能都在一个隔离的 git 分支上,通过 12 个隐藏的验收检查进行判断: [`benchmark/rodada2-implementacao/`](benchmark/rodada2-implementacao/)。Sonnet 5 在细粒度审查中获胜;纯文本通道揭示了它们的两个盲点(上下文和验证)。
### 轮次 3 — 知识截止轮次
由 Reddit 评论区设计:13 个通道 × 2 个站点 × 3 轮,推理努力受控,一个站点构建对抗 **实际安装的 zod v4**: [`benchmark/rodada3-esforco-e-cutoff/`](benchmark/rodada3-esforco-e-cutoff/)。廉价模型在推理方面没有失败 — 它们在知道年份方面失败了(0/14 九比九的陷阱,18/18 纯推理)。只有两种防御:文件访问或新鲜的训练数据。

还有一个交互式决策报告(葡萄牙语)整合了所有三轮: [`benchmark/relatorio-decisao.html`](benchmark/relatorio-decisao.html)。
## 仓库备注
- 该项目完全通过 vibecoding 构建,使用的语言是葡萄牙语。原件以葡萄牙语作为构建的一部分保留,每个文档都有英文版本: [CLAUDE.en.md](CLAUDE.en.md)(工作说明)、 [CHANGELOG.en.md](CHANGELOG.en.md)(项目日记)、 [benchmark/README.md](benchmark/README.md)(基准测试指南)和 [benchmark/estacoes/en/](benchmark/estacoes/en/)(站点提示)。
- 基准测试运行使用葡萄牙语提示; `benchmark/respostas/` 中的原始模型响应故意不翻译 — 它们是证据。评分器是语言独立的。
- 测试:`npm test`.
## 许可证
[MIT](LICENSE)