内容
# 代理程序管理
**用于监控和控制编码代理的MCP服务器。**
一个统一的MCP接口,用于监控和管理三个编码代理工具链中的会话:
- [开放代码](https://opencode.ai) — 通过HTTP服务器API(`opencode serve`)
- [克劳德代码](https://code.claude.com) — 通过CLI和会话文件
- [Codex CLI](https://github.com/openai/codex) — 通过CLI
## 功能
### 监控
- **列出所有代理** — 运行中、空闲、停止或需要输入
- **查看代理详情** — 模型、成本、持续时间、消息数、工作目录
- **查看待处理权限** — 等待工具审批的代理
### 管理
- **发送消息** — 同步(等待响应)、队列(即发即弃)或引导(重定向)
- **恢复停止的代理** — 可选的新消息
- **停止代理** — 终止正在运行的会话
- **响应权限请求** — 允许或拒绝工具调用(开放代码)
- **设置权限** — 配置允许的工具和权限模式
## 先决条件
至少以下之一:
- 安装了`opencode`并运行`opencode serve`
- 安装了`claude`(克劳德代码CLI)
- 安装了`codex`(OpenAI Codex CLI)并设置了`OPENAI_API_KEY`
## 安装
```bash
npm install
npm run build
```
## 配置
### 环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
| `ENABLE_OPENCODE` | `true` | 启用开放代码适配器 |
| `ENABLE_CLAUDE` | `true` | 启用克劳德代码适配器 |
| `ENABLE_CODEX` | `true` | 启用Codex适配器 |
| `OPENCODE_URL` | `http://127.0.0.1:4096` | 开放代码服务器URL |
| `OPENCODE_SERVER_PASSWORD` | | 开放代码服务器认证密码 |
| `OPENCODE_SERVER_USERNAME` | `opencode` | 开放代码服务器认证用户名 |
| `CLAUDE_BIN` | `claude` | 克劳德代码CLI二进制文件路径 |
| `CODEX_BIN` | `codex` | Codex CLI二进制文件路径 |
| `CODEX_DATA_DIR` | `~/.codex` | Codex数据目录 |
### 添加到您的MCP客户端
**克劳德代码:**
```bash
claude mcp add agent-herder -- node /path/to/agent-herder/dist/index.js
```
**光标/其他MCP客户端** — 添加到您的MCP配置:
```json
{
"mcpServers": {
"agent-herder": {
"command": "node",
"args": ["/path/to/agent-herder/dist/index.js"],
"env": {
"ENABLE_OPENCODE": "true",
"ENABLE_CLAUDE": "true",
"ENABLE_CODEX": "false"
}
}
}
}
```
**开放代码** — 添加到`opencode.json`:
```json
{
"mcp": {
"agent-herder": {
"command": "node",
"args": ["/path/to/agent-herder/dist/index.js"]
}
}
}
```
## 可用工具
| 工具 | 描述 |
|---|---|
| `list_agents` | 列出所有会话,按工具链或状态过滤 |
| `agent_info` | 获取特定会话的详细信息 |
| `send_message` | 发送消息(同步/队列/引导) |
| `resume_agent` | 恢复停止的会话 |
| `stop_agent` | 终止正在运行的会话 |
| `respond_permission` | 允许/拒绝待处理的权限请求 |
| `set_permissions` | 设置允许的工具和权限模式 |
## 架构
```
┌─────────────────┐
│ MCP 客户端 │ (克劳德代码,光标,开放代码等)
└────────┬────────┘
│ 标准输入输出(MCP协议)
┌────────▼────────┐
│ 代理程序管理 │ (此服务器)
│ ┌───────────┐ │
│ │ MCP 工具 │ │ 7个统一工具
│ └─────┬─────┘ │
│ │ │
│ ┌─────▼──────┐ │
│ │ 适配器 │ │
│ ├────────────┤ │
│ │ 开放代码 │──┼── HTTP → 本地主机:4096
│ │ 克劳德 │──┼── CLI + ~/.claude/sessions
│ │ Codex │──┼── CLI + ~/.codex/sessions
│ └────────────┘ │
└─────────────────┘
```
## 工具链特定说明
### 开放代码
- 最佳支持 — 完整的HTTP API,会话管理,权限,SSE事件
- 需要运行`opencode serve`(自动启动TUI端口4096)
- 支持远程权限响应和实时状态
### 克劳德代码
- 会话从`~/.claude/projects/*/sessions/*.jsonl`读取
- 发送消息使用`claude -p --resume <id>`
- 权限必须在启动时通过`--allowedTools`标志设置
- 运行进程检测通过`pgrep`
### Codex CLI
- 会话从`~/.codex/sessions/`读取
- 发送消息会启动新的`codex`调用
- 使用`--full-auto`模式进行无人值守操作
- 权限在启动时通过`--full-auto`,`--approve-tools`标志设置
## 开发
```bash
npm run dev # TypeScript 监视模式
npm run build # 编译
npm run inspect # 打开MCP检查器进行交互式测试
```
## 许可证
MIT