我如何构建了一个 MCP 服务器,让 Claude Code 与我付费的所有 LLM 对话
Source: Dev.to
抱歉,我无法直接访问外部链接获取文章内容。请您提供需要翻译的完整文本(除代码块和 URL 之外),我将按照要求把它翻译成简体中文并保留原有的格式、Markdown 语法以及技术术语。
问题
你正在同时使用 四 个不同的 AI 生态系统:
- ChatGPT Plus
- Claude MAX
- Gemini
- 通过 Ollama 的本地模型
每个都需要单独的浏览器标签页,你不得不花费宝贵的时间 复制‑粘贴 提示、重新格式化,并且在比较答案时丢失上下文。一个简单的“每个模型怎么想?”会耗费几分钟,而不是几秒钟。
解决方案:HydraMCP
HydraMCP 是一个 MCP(模型控制协议)服务器,它将单个提示路由到您可以访问的任何云端或本地模型,并行执行它们,并将结果并排返回。
关键优势
- 统一接口,适用于所有模型
- 并行执行(一次可运行 2‑5 个模型)
- 再也不会出现上下文丢失或手动重新格式化
- 可在终端、IDE 或任何 Claude Code 环境中使用
Exposed Tools (Claude Code)
| Tool | Description |
|---|---|
list_models | 显示所有提供商中可用的每个模型,一条命令即可查看。 |
ask_model | 在不离开终端的情况下查询单个模型(例如,“给我 GPT‑5 对此的看法”)。 |
compare_models | 将 相同的提示 发送给 2‑5 个模型并行,并并排返回结果。 |
示例用法
# List everything you can query
list_models
# Ask a single model
ask_model gpt-5-codex "Explain the difference between supervised and unsupervised learning."
# Compare several models at once
compare_models gpt-5-codex, gemini-3, claude-sonnet, local-qwen \
"Review this function and suggest improvements:
def foo(bar):
return bar * 2"
结果(简化视图):
| 模型 | 响应 |
|---|---|
| GPT‑5 Codex | … |
| Gemini‑3 | … |
| Claude Sonnet | … |
| Local Qwen | … |
每个答案并排显示,轻松发现差异、优势或错误。
入门
-
安装 HydraMCP(通过 pip、Docker 或二进制文件)。
-
配置你的 OpenAI、Anthropic、Google 以及 Ollama 端点的 API 密钥。
-
启动服务器:
hydramcp serve -
使用 Claude Code、终端或 IDE 插件中的任意三种工具。
TL;DR
HydraMCP 让你 只用一个提示查询所有 AI 模型,获取 并行、并列的结果,最终摆脱无尽的复制‑粘贴舞蹈。 🚀
Model Comparison (4 models, 11 637 ms total)
| Model | Latency | Tokens |
|---|---|---|
| gpt-5-codex | 1 630 ms (fastest) | 194 |
| gemini-3-pro-preview | 11 636 ms | 1 235 |
| claude‑sonnet‑4‑5‑20250929 | 3 010 ms | 202 |
| ollama/qwen2.5-coder:14b | 8 407 ms | 187 |
四个模型均独立发现了相同的异步错误,随后各自捕获了其他模型遗漏的内容:
- GPT‑5 – 最快。
- Gemini – 最彻底。
- Claude – 修复最清晰。
- Qwen – 解释了根本原因。
训练数据不同,优势各异。
共识投票
“Consensus polls 3‑7 models on a question and has a separate judge model evaluate whether they actually agree. It returns a confidence score and groups responses by agreement.”
该工具将请求分发到多个模型,收集它们的响应,然后由 synthesiser model 将最佳见解合并为一个答案。结果通常优于任何单一模型的响应。
架构概览
Claude Code
|
HydraMCP (MCP Server)
|
Provider Interface
|-- CLIProxyAPI → cloud models (GPT, Gemini, Claude, …)
|-- Ollama → local models (your hardware)
HydraMCP 位于 Claude Code 与模型提供商之间。它通过 stdio 使用 JSON‑RPC(MCP 协议)进行通信,将请求路由到相应的后端,并对所有内容进行格式化,以保持你的上下文窗口可控。
Provider Interface
interface Provider {
name: string;
healthCheck(): Promise;
listModels(): Promise;
query(
model: string,
prompt: string,
options?: QueryOptions
): Promise;
}
每个后端只实现三个方法:healthCheck()、listModels() 和 query()。添加新提供商只需实现这三个函数并注册它。
- 云模型 –
CLIProxyAPI将已有订阅转换为本地兼容 OpenAI 的 API。你只需通过浏览器登录一次即可对每个提供商进行身份验证;无需按 token 计费——使用你已经付费的订阅。 - 本地模型 –
Ollama在localhost上运行,提供 Qwen、Llama、Mistral 等模型。零 API 密钥,除电费外无其他成本。
当你比较四个模型时,所有查询会使用 Promise.allSettled() 同时发起。
总时间 = 最慢模型的延迟,而不是所有延迟之和。
(上面的五模型比较总共用了 11.6 秒,而不是 > 25 秒。)
如果某个模型失败,仍然会收到其他模型的结果——实现了优雅降级,而不是全有或全无。
Source: …
协议检测
单纯的关键词匹配无法判断模型是否真正达成一致。
模型 A:“从单体开始。”
模型 B:“单体因为更简单。”
它们在语义上是一致的,但关键词重叠度很低。
解决方案: 共识工具挑选一个 judge model(不在投票列表中),让它评估一致性。评审模型会阅读所有回复并进行语义分组。
Three cloud models polled, local Qwen judging.
Strategy: majority (needed 2/3)
Agreement: 3/3 models (100%)
Judge latency: 686 ms
使用本地模型作为评审意味着 零云配额 用于评估步骤。
当没有评审模型可用时,基于关键词的回退方案在事实性问题上还能工作,但在主观性问题上会失效。LLM‑judge 方法显著更好,尽管仍有改进空间。
本地模型的冷启动惩罚
- 首次请求 Qwen 32B:约 24 秒(模型加载)。
- 到第四次请求时:约 3 秒——模型热启动后提升 8×。
如果您经常使用 HydraMCP,您的本地模型会保持热状态,体验会非常流畅。当天的第一次查询可能会较慢;其余的查询都很快。
合成工具
最雄心勃勃的功能:它收集多个模型的响应,然后将它们送入一个合成模型,并指示其结合最佳见解并去除冗余。
- 在可能的情况下,合成模型会特意从源列表之外的模型中挑选。
- 提示(简化版):
Here are responses from four models. Write one definitive answer.
Take the best from each.
实际上,合成后的结果通常比任何单一响应拥有更好的结构,并且能够捕捉到至少一个模型遗漏的细节。
实现细节
- 语言: TypeScript(约 1 500 行)
- 依赖:
@modelcontextprotocol/sdk– MCP 协议zod– 输入验证- Node 18+(无 Express、无数据库、无额外构建框架)
所有工具输入均使用 Zod schema 进行验证,所有日志输出到 stderr(stdout 保留给 JSON‑RPC 协议——向其发送其他内容会导致 MCP 出错)。
快速入门指南(≈ 5 分钟)
-
设置后端 – CLIProxyAPI 和/或 Ollama。
-
克隆、安装、构建 HydraMCP。
-
将后端 URL 添加到
.env。 -
使用 Claude Code 注册
claude mcp add hydramcp -s user -- node /path/to/dist/index.js -
重启 Claude Code,然后运行
list models。 -
从此以后只需自然对话:
- “让 GPT‑5 审核一下这个。”
- “比较三种模型在此方法上的表现。”
- “就这个是否线程安全达成共识。”
Claude Code 会自动通过 HydraMCP 路由所有请求。
扩展 Provider 接口
设计本身是有意可扩展的。我希望未来能看到的后端有:
- LM Studio – 另一个本地模型选项。
- OpenRouter – 按 token 付费访问您未订阅的模型。
- Direct API keys – OpenAI、Anthropic、Google(无需 CLIProxyAPI)。
每个新 provider 大约只有 100 行 TypeScript:实现三个接口方法,注册它,完成即可。
Bottom Line
真实的价值不在于任何单一功能,而在于 workflow change:不再只信任单个模型的意见,你可以低成本地将其与其他模型进行验证,获得共识,并合成更高质量的答案——全部在编辑器或终端中完成,无需离开。
多模型 AI 对比
与其纠结于 GPT 或 Claude 在特定任务上哪个更好,不如直接 并排比较它们,观察结果。
为什么使用多个模型?
-
不同的优势:
- GPT‑5 往往能捕捉到 Claude 漏掉的性能问题。
- Claude 能提出 GPT 未考虑的架构模式。
- Gemini 有时能提供最全面的分析。
- 本地 Qwen 在解释 为什么 出错方面出奇地好,而不仅仅是说明 出错的是什么。
-
统一的终端访问:
将所有模型集中在同一个终端中使用,支持并行执行和结构化对比,这会改变你使用 AI 编码的思维方式。它把工作流从“询问我偏好的模型”转变为 “为此任务挑选合适的模型”——或者直接“让所有模型都回答,看看会得到什么结果”。
HydraMCP
- Repository: HydraMCP on GitHub
- License: MIT 许可证
如果你有积灰的订阅或闲置的本地模型,HydraMCP 可以让它们发挥作用。如果你想添加新的提供商,接口已有文档并提供了示例。