multi-llm-mcp

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 7 GitHub stars
Code Gecti
  • Code scan — Scanned 3 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

一个让 Claude Code 调用 Codex 干活,并可以同时调用多个模型(GPT、Kimi、DeepSeek 等)的 MCP 工具。

README.md

multi-llm-mcp

一个用于 Claude Code 的 MCP 工具,支持通过 MCP 调用 Codex CLI 执行任务,并支持多个模型(GPT、Kimi、DeepSeek、Qwen 等)并行调用。

本项目基于 FastMCP 开发,主要解决两个问题:

  1. 让 Claude Code 可以把任务交给 Codex CLI 执行,例如查看代码、修改文件、重构项目等。
  2. 让 Claude Code 可以同时调用多个大模型,从不同模型获得回答,便于对比、补充和交叉参考。

功能特点

  1. Codex CLI 异步任务执行:通过 MCP 工具调用 Codex CLI,并使用 job_id + wait_codex 的方式等待长任务完成,避免 MCP 客户端单次工具调用超时。
  2. 支持 Codex 沙盒模式read-onlyworkspace-writedanger-full-access 三种级别。
  3. 单模型会话调用:调用指定模型,并通过 session_id 保持多轮上下文。
  4. 多模型并行调用:把同一个问题同时发送给多个模型(GPT、Kimi、DeepSeek、Qwen、Claude)。
  5. 长任务轮询机制:对耗时较长的 Codex 任务或多模型调用,先返回 job_id,后续继续通过 wait_* 工具等待结果。
  6. 环境检查工具health_check 用于检查运行环境、Codex CLI 是否可用、各模型 API Key 是否配置等(不返回任何 key 内容)。

工具列表

工具名 作用
ask 调用单个模型,支持多轮会话
ask_many 同时调用多个模型
wait_many 继续等待多模型并行调用任务
review 让多个模型同时分析同一段内容
ask_codex 调用 Codex CLI 执行任务
wait_codex 继续等待 Codex CLI 任务
clear_session 清除指定会话
clear_all_sessions 清除全部会话
list_sessions 查看当前内存中的会话
health_check 检查 MCP 服务运行状态

环境要求

  1. Python 3.10+
  2. FastMCP
  3. OpenAI Python SDK
  4. 可选:OpenAI Codex CLI

安装依赖:

pip install fastmcp openai

如果需要使用 ask_codex,还需确保本机已安装 Codex CLI,并能在命令行直接运行:

codex

另外,在用 ask_codex 调度 Codex 之前,确保 Codex CLI 已经登录过账号(首次使用前先在命令行运行 codex 完成登录),否则任务会因为未认证而失败。

模型配置

项目中通过 PROVIDERS 配置不同模型服务,例如 DeepSeek、Kimi、Qwen、GPT 等。推荐使用环境变量保存模型密钥:

模型 环境变量
DeepSeek DEEPSEEK_API_KEY
Kimi(Moonshot) MOONSHOT_API_KEY
Qwen(DashScope) DASHSCOPE_API_KEY
GPT(OpenAI) OPENAI_API_KEY
Claude(Anthropic,可选) ANTHROPIC_API_KEY

在 Windows 上可以用 setx 把这些设为用户级环境变量(设完需重开终端 / 重启 Claude Code 才生效),按你要用的模型设即可:

setx OPENAI_API_KEY "your-key"
setx DEEPSEEK_API_KEY "your-key"

MOONSHOT_API_KEY / DASHSCOPE_API_KEY / ANTHROPIC_API_KEY 同理。)

如果只是自己本地快速验证,也可以临时把 key 写到代码里的 PROVIDERS 中,方便测试。但不要把包含 key 的代码上传到 GitHub,也不要发给别人。准备开源或分享前,应改成环境变量方式,或确认代码中已经没有真实 key。

启用 Claude(可选)

代码里 PROVIDERSclaude 块默认是注释状态。要启用 Claude:

  1. 取消注释 PROVIDERS 中的 claude 块;
  2. "claude" 加进 ModelName
  3. 配置 ANTHROPIC_API_KEY

它走的是 Anthropic 的 OpenAI 兼容端点(base_url="https://api.anthropic.com/v1/"),模型名填 Claude 的名称即可(如 claude-opus-4-7claude-sonnet-4-6claude-haiku-4-5)。

小技巧:服务本身跑在 Claude Code 里,所以你可以反过来调度别的 Claude——比如用更便宜的 Haiku 去跑并行的苦力活,或者要一个干净上下文、不被当前对话带偏的 Claude 来做二次判断。

MCP 配置示例(Claude Code)

在 Claude Code 中,推荐直接用 claude mcp add 命令添加本项目。基本格式:

claude mcp add --scope user llm-mix -- python /absolute/path/to/LLM_MIX.py

其中:

  1. llm-mix 是这个 MCP 服务的名字,可以自己改。
  2. --scope user 表示该 MCP 对当前用户全局可用,不只限于某一个项目。
  3. python 是 Python 启动命令。
  4. /absolute/path/to/LLM_MIX.py 替换成你本地 LLM_MIX.py 的绝对路径。

Windows 示例:

claude mcp add --scope user llm-mix -- python "C:\path\to\LLM_MIX.py"

如果上面那条添加后用不了(通常是 python 不在 PATH 上,或指向了别的 Python 环境),改用下面这条、写上 Python 解释器的完整路径:

claude mcp add --scope user llm-mix -- "C:\path\to\python.exe" "C:\path\to\LLM_MIX.py"

添加完成后,可以用下面的命令查看是否添加成功:

claude mcp list

进入 Claude Code 后,也可以输入 /mcp 查看 MCP 服务是否已连接。

使用示例

连接 MCP 后,可以直接让 Claude Code 使用这些能力:

用 Codex 查看当前项目结构。
让 Codex 在当前目录创建一个测试文件。
让 Codex 修改这个 Python 文件,修复明显的异常处理问题。
把这个问题同时发给 GPT、Kimi、DeepSeek 和 Qwen。
让多个模型一起分析这个方案有没有明显问题。
让 DeepSeek 单独解释这段代码。

如果任务较长,工具可能会返回:

{
  "success": true,
  "status": "running",
  "job_id": "xxxx",
  "message": "任务仍在运行,使用 wait_codex 继续等待"
}

这时继续调用对应的 wait_codexwait_many 即可。

Codex 沙盒使用建议

  1. 一般查看代码、分析项目时,优先使用 read-only
  2. 需要 Codex 修改文件时,使用 workspace-write
  3. 不建议随意使用 danger-full-access,因为这个模式会给 Codex 更高的本机权限。

注意事项

  1. ask_codex 依赖本机 Codex CLI。
  2. 多模型调用是否可用,取决于你是否配置了对应模型服务(可用 health_check 查看)。
  3. 长任务建议使用 job_id + wait_* 的方式继续等待。
  4. 个人本地调试可以图方便,但公开仓库前要检查是否包含真实密钥、私人路径或其他敏感信息。

社区 / 致谢

本项目在 LINUX DO 社区分享与讨论,感谢社区佬友的反馈与建议。

License

MIT License

Yorumlar (0)

Sonuc bulunamadi