克劳德码MCP桥
一个MCP(模型上下文协议)服务器,连接到Claude Code的无头模式,使AI代理能够将编码任务委托给Claude Code进行自主实现、构建、linting和测试。
建筑
Tasklet Agent (Kai)
|
| MCP Protocol (HTTP + SSE)
|
Claude Code MCP Bridge (Railway)
|
| claude -p (headless mode)
|
Claude Code CLI
|
| Git operations + code changes
|
GitHub Repos工具
| 工具 | 说明 |
|---|---|
code_task | 向Claude Code发送编码任务。克隆仓库,无头运行任务,返回输出+更改的文件。 |
build_check | 快跑 tsc --noEmit + npm run build 并返回有错误的通过/失败。 |
lint_fix | 使用以下命令运行ESLint --fix 在指定的文件或整个仓库中。 |
run_tests | 执行 npm test 并返回完整结果。 |
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
MCP_API_KEY | 是 | 用于验证MCP客户端的API密钥 |
ANTHROPIC_API_KEY | 是 | Claude Code CLI的Anthropic API密钥 |
GITHUB_TOKEN | 否 | 用于克隆私有仓库的GitHub PAT |
TASK_TIMEOUT_MS | 否 | 每个任务的最大执行时间(默认值:300000=5分钟) |
PORT | 无 | 服务器端口(默认值:3000) |
部署(铁路)
- 将此仓库推送到GitHub
- 创建一个新的铁路项目并连接仓库
- 在铁路仪表板中设置环境变量:
- MCP_API_KEY =生成一个安全的随机字符串 - ANTHROPIC_API_KEY =您的Anthropic API密钥 - GITHUB_TOKEN =具有仓库访问权限的GitHub PAT
- Railway将使用Dockerfile自动构建和部署
连接到Tasklet
- 在Tasklet中,创建新的MCP连接
- 服务器URL:
https://your-railway-url.up.railway.app/sse - 添加
Authorization: Bearer头球
本地开发
# Install dependencies
npm install
# Set environment variables
export MCP_API_KEY=test-key
export ANTHROPIC_API_KEY=sk-ant-...
export GITHUB_TOKEN=ghp_...
# Run in development mode
npm run dev
# Build for production
npm run build
npm start运作原理
- 凯 (Tasklet代理)调用
code_task通过带有回购和任务描述的MCP - 大桥 克隆 将repo保存到临时目录
- 克劳德代码 无头运行(
claude -p)在repo上下文中执行任务 - Claude Code读取代码库,进行更改,根据需要运行命令
- 桥捕捉 输出、错误和更改的文件
- 临时目录为 清理
- Kai接收结构化结果,并可以通过GitHub API推送更改
响应格式
所有工具都返回具有以下形状的JSON:
{
"success": true,
"output": "Claude Code output or command output",
"errors": "Error details if any",
"files_changed": ["src/foo.ts", "src/bar.ts"],
"duration_ms": 45000
}安全
- 所有端点(除
/health)需要承载令牌身份验证 - 将repo克隆到隔离的临时目录中
- 每次操作后都会清理临时目录
- 输出上限为50KB,以防止内存问题
- 任务超时可防止进程失控
