内容
# 代码桥接服务
**英文 · [土耳其语](README.tr.md)**
一个本地的MCP服务器,允许 **Codex** 和 **Claude Code** 通过共享的任务板和消息收件箱进行协调。
它使用标准的MCP stdio传输。不需要API密钥、网络服务器或云账户。两个客户端运行相同的服务器程序,并指向同一个本地数据目录。
> **范围:** 版本0.1.0适用于单台机器或受信任的共享文件系统。它不是一个安全的多用户或面向互联网的协作服务。
## 提供功能
- 创建、列出、认领、更新、阻止和完成共享任务。
- 发送一般消息或与任务相关的消息。
- 防止活跃任务被两个代理同时认领。
- 原子化地写入共享状态,并带有跨进程锁,用于并发客户端调用。
## 快速开始
### Windows (PowerShell)
```powershell
git clone https://github.com/nevzoom/codex-claude-bridge-mcp.git
cd codex-claude-bridge-mcp
npm install
npm run build
.\scripts\install.ps1
```
这将服务器注册到两个本地安装的CLI客户端,并将共享状态存储在`~/.codex-claude-bridge`中。之后,请重启Codex和Claude Code。
要注册只有一个客户端:
```powershell
.\scripts\install.ps1 -Codex
.\scripts\install.ps1 -Claude
```
### macOS / Linux
```bash
git clone https://github.com/nevzoom/codex-claude-bridge-mcp.git
cd codex-claude-bridge-mcp
npm install
npm run build
bash scripts/install.sh
```
使用`bash scripts/install.sh --codex`或`--claude`来注册只有一个客户端。要使用另一个共享目录,请传递`--data-dir /path/to/bridge-data`(或PowerShell中的`-DataDirectory`)。
## 手动MCP配置
安装程序为您运行官方CLI客户端。如果您更喜欢手动配置,请使用**相同**的数据目录将此stdio命令注册到**两个**客户端:
```text
node /absolute/path/to/codex-claude-bridge-mcp/dist/index.js
```
为两个注册设置以下环境变量:
```text
CODEX_CLAUDE_BRIDGE_DATA_DIR=/absolute/path/to/shared-bridge-data
```
Codex还支持在`config.toml`中进行项目/全局MCP配置;Claude Code支持项目/用户MCP注册。提供的安装程序使用用户级注册,以便桥接服务在项目之间可用。
当省略此变量时,服务器使用`~/.codex-claude-bridge`。当两个客户端在同一个操作系统用户下运行时,这很方便。请在客户端在不同用户或机器下运行时显式设置它。
## MCP工具
| 工具 | 用途 |
| --- | --- |
| `create_task` | 添加共享任务。 |
| `list_tasks` | 查看任务,可选按状态。 |
| `claim_task` | 将任务标记为Codex、Claude或人类所有。 |
| `update_task` | 更改其状态、所有者或结果。 |
| `post_message` | 发送一般或与任务相关的消息。 |
| `read_messages` | 读取代理或任务的消息。 |
## 建议的代理工作流程
1. 使用`create_task`创建离散任务。
2. 接收代理调用`list_tasks`,然后在工作前调用`claim_task`。
3. 使用`post_message`共享重要上下文。
4. 使用`status: "done"`和简洁的结果完成`update_task`;如果需要人类输入,请使用`blocked`。
## 开发
```bash
npm install
npm run check
npm run build
```
## 在GitHub和npm上发布
1. 创建一个名为`codex-claude-bridge-mcp`的空GitHub仓库,提交该项目并推送`main`分支。
2. 创建一个npm账户,然后运行`npm login`和`npm publish`。如果包名被占用,请将`name`字段重命名为你拥有的npm作用域,例如`@your-name/codex-claude-bridge-mcp`。
3. 创建一个GitHub发布并使用与`package.json`相同的语义版本号进行标记。
该包仅发布编译后的`dist`目录以及README和MIT许可证。CI类型检查并构建每个拉取请求。
发布到npm后,用户可以使用`npx -y <package-name>`_stdio命令直接将包注册到他们的MCP客户端。GitHub克隆安装程序仍然是支持的最简单的设置,因为它一步注册了两个客户端和一个共享数据目录。
## 安全性和隐私
任务文本和消息以明文存储在所选数据目录下的`state.json`中。不要将其指向不受信任的网络共享,不要在消息中放置秘密。数据目录被故意排除在Git之外。
## 许可证
[MIT](LICENSE)