内容
# llm-provider-mcp
[](https://github.com/manishiitg/llm-provider-mcp/actions/workflows/ci.yml)
[](https://github.com/manishiitg/llm-provider-mcp/releases)
[](LICENSE)
在 Claude Code、Codex、Cursor Agent 和 Pi 之间分配编码工作。
`llm-provider-mcp` 是一个本地的 MCP 服务器,用于异步编码代理委托。Codex 或 Claude Code 会话可以开始在另一个编码 CLI 中工作,立即接收作业 ID,继续自己的工作,并在稍后收集委托结果。
委托代理在本地的分离 tmux 会话中运行,使用它们现有的登录、模型访问、文件系统权限和主机当前信任的项目目录。

在此实时烟雾测试中,Codex 使用 `llm-provider-mcp` 将工作委托给 Grok 4.5,通过 Cursor Agent,等待异步结果,并确认任务完成而未修改文件。

这是真正的 Claude Code 到 Cursor Composer 2.5 运行:作业在 28 秒内完成,Claude 独立验证了差异和未缓存的测试结果。[查看可复制的演示和净化的记录。](docs/demo.md)

第二次实际运行将 Claude Code 委托给带有 `gpt-5.6-sol` 的 Codex CLI。Codex 在 36 秒内完成了有界的修复,Claude 独立检查了差异并重新运行了测试。运行使用了 Codex CLI `0.145.0-alpha.4`;稳定的 `0.144.1` 在其推出期间拒绝了 Sol。
## 快速开始
要求:
- macOS 或 Linux
- tmux 3.x 或更新版本
- Codex 或 Claude Code 作为 MCP 主机
- 至少一个身份验证目标:Cursor Agent、Pi、Codex 或 Claude Code
从您要使用委托的项目中运行:
```bash
curl -fsSL https://raw.githubusercontent.com/manishiitg/llm-provider-mcp/main/scripts/install-mcp.sh | sh
```
交互式设置检测已安装的 CLI,允许您选择多个主机和目标,验证身份验证,仅为当前项目注册 MCP 服务器,并安装一个小的委托技能。
服务器也在[官方 MCP 注册表](https://registry.modelcontextprotocol.io/docs)中以 `io.github.manishiitg/llm-provider-mcp` 的身份发布。
在该项目中启动新的 Codex 或 Claude Code 会话,并自然地询问:
```text
将失败的身份验证测试委托给 Cursor,使用 composer-2.5。
继续在这里工作,并在作业准备好时检查委托的作业。
```
主机接收到如下所示的响应:
```json
{
"job_id": "job_03070f8a2626b50ace1a67a463db9b4d",
"provider": "cursor-cli",
"status": "queued",
"poll_after_seconds": 15,
"next_tool": "get_coding_agent_job"
}
```
参见[安装](docs/installation.md),了解手动和安全意识强的安装选项。
## 为什么使用它
- 使用更强大的模型进行独立审查或困难的实现。
- 将小工作路由到更快的或低成本的模型,而无需离开主机。
- 从 Codex 或 Claude Code 访问 Cursor、Gemini、OpenRouter、MiniMax、GLM 和 Kimi 模型。
- 并发运行独立的委托,而不阻塞主机会话。
- 检查实时终端尾部或直接附加到 tmux,当需要人工注意力时。
- 将凭证保留在原生 CLI 中,而不是将 API 密钥复制到 MCP 服务器中。
## 支持的编码 CLI
| CLI | MCP 主机 | 委托目标 | 模型选择 |
|---|---:|---:|---|
| Codex CLI | 是 | 是 | Codex 模型 ID 和推理级别 |
| Claude Code | 是 | 是 | Claude Code 模型选择器 |
| Cursor Agent | 手动注册 | 是 | Composer、Grok 和账户可见模型 |
| Pi CLI | 手动注册 | 是 | Gemini、OpenRouter、MiniMax、GLM 和 Kimi |
设置向导目前注册 Codex 和 Claude Code 作为主机。Cursor 和 Pi 可以通过手动项目配置使用相同的 stdio MCP 服务器。所有四个 CLI 都可以作为本地委托目标运行。
Antigravity CLI 仍然仅作为已弃用的 Go 库兼容性集成提供,不在新的 MCP 设置中提供。Gemini CLI 已被删除;请使用 Pi CLI 获取 Gemini 模型或 Vertex 获取直接 Gemini API 访问。
有关选择器、身份验证命令和提供者特定行为的信息,请参见[提供者和模型](docs/providers.md)。
## 委托工作原理
```mermaid
sequenceDiagram
participant H as Claude Code or Codex
participant M as llm-provider-mcp
participant J as Job worker
participant T as Cursor, Pi, Codex, or Claude
H->>M: delegate_coding_agent(task, provider, working_dir)
M->>J: Persist and queue job
M-->>H: job_id immediately
J->>T: Start detached tmux session
H->>H: Continue host work
H->>M: get_coding_agent_job(job_id)
M-->>H: Progress, terminal tail, or final result
```
1. 主机传递其当前信任的项目和有界任务。
2. 服务器验证提供者和工作区,然后在 SQLite 中持久化作业。
3. 分离的工作程序在 tmux 中启动目标 CLI。
4. 主机在推荐的间隔后轮询,同时继续其他工作。
5. 主机审查最终结果并验证任何工作区更改。
轮询是当前的完成机制。MCP 任务通知计划在行为在支持的主机上一致后推出。
有关完整的生命周期,请参见[委托工作流](docs/delegation.md)和[架构](docs/architecture.md)。
## MCP 工具
服务器公开了五个工具:
| 工具 | 目的 |
|---|---|
| `list_coding_agents` | 列出启用的委托目标和功能 |
| `list_coding_agent_models` | 发现精选的模型选择器 |
| `delegate_coding_agent` | 启动异步编码作业 |
| `get_coding_agent_job` | 读取状态、进度、终端输出或结果 |
| `cancel_coding_agent_job` | 停止排队或正在运行的作业 |
运行的作业包括用于直接人工检查的 tmux 附加命令。`get_coding_agent_job` 还可以返回有界、ANSI 清洁的终端尾部。
## CLI 命令
```bash
llm-provider-mcp setup
llm-provider-mcp doctor
llm-provider-mcp models cursor-cli
llm-provider-mcp models pi-cli --json
llm-provider-mcp uninstall
```
`setup`、`doctor` 和 `uninstall` 设计为无需额外参数即可运行。运行 `llm-provider-mcp --help` 获取自动化标志。
## 安全性和信任
- MCP 服务器和委托的 CLI 在本地机器上运行。
- 凭证由每个原生 CLI 拥有,设置时不会被收集。
- 设置仅在显示确切路径后写入项目本地的 MCP 和技能配置。
- 主机提供其当前信任的项目作为 `working_dir`;用户无需为每个作业输入它。
- 分离的代理使用无人值守的提供者特定策略,以免在不可见的批准提示上阻塞。
- `LLM_PROVIDER_MCP_WORKSPACE_ROOTS` 可以限制接受的工作目录,但它不是进程沙盒。
Pi 目前没有硬工作区沙盒,因此其 shell 和文件工具保留本地用户的权限。不要将不受信任的提示或存储库委托给 Pi。
在启用无人值守委托之前,请阅读[安全性和信任](docs/security-and-trust.md)。
## 当前限制
- 仅支持 macOS 和 Linux;Windows 当前不支持。
- tmux 委托执行和实时检查是必需的。
- 完成是基于轮询的,而不是推送到主机。
- 主机自动注册当前支持 Codex 和 Claude Code。
- 目标模型可用性取决于用户现有的 CLI 帐户。
- 委托代理可以修改工作树;主机必须在接受它们之前审查和测试这些更改。
## 文档
- [安装](docs/installation.md)
- [委托工作流](docs/delegation.md)
- [提供者和模型](docs/providers.md)
- [安全性和信任](docs/security-and-trust.md)
- [架构](docs/architecture.md)
- [故障排除](docs/troubleshooting.md)
- [Go 兼容性库](docs/go-provider-library.md)
- [路线图](ROADMAP.md)
## Go 兼容性库
此存储库还包含 MCP Agent 和 MCP Agent Builder 使用的 Go 提供者模块。其现有的模块路径保持不变:
```bash
go get github.com/manishiitg/multi-llm-provider-go@latest
```
一般提供者 API 保持支持以实现下游兼容性,但此存储库的主要产品表面是 `llm-provider-mcp`。请参阅[Go 兼容性库文档](docs/go-provider-library.md)。
## 开发
```bash
make build-mcp
go test ./...
golangci-lint run --timeout=5m ./...
```
CI 套件还编译检查 MCP Agent 和 MCP Agent Builder 以防止意外公开的 API 损坏。
在打开拉取请求之前,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。使用 [SECURITY.md](SECURITY.md) 而不是公共问题报告安全问题。
## 许可证
[MIT](LICENSE)