AI编程代理协调服务器

Plan Bridge是一个MCP服务器,用于在两个AI编程代理之间建立结构化的计划→实施→审查→修复工作流程,通过本地存储和自动化协调机制提高开发效率。

  • by amartinawi
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 amartinawi/plan-bridge

使用说明

规划桥梁

一个MCP服务器,支持结构化 plan → 实施→ 回顾→ fix 两个AI编码代理之间的工作流。一个代理创建计划并审查代码。另一个执行计划并修复审查结果。他们通过磁盘上的共享计划文件进行协调。

专为 克劳德代码 + 开源代码,但MCP工具与代理无关。

为什么?

在使用人工智能构建时,您通常希望一个代理进行规划和审查,而另一个代理则进行实施。但是,在两个终端之间进行协调是乏味的——您需要不断地来回切换、复制粘贴计划ID和手动触发命令。

Plan Bridge通过以下方式解决了这个问题:

  • 本地存储 --存储在项目中的计划 <project>/.plans/,不是全局目录
  • 内联计划创建 --在对话中直接创建计划,无需计划模式
  • 自动分相 --复杂的计划分为可管理的阶段,具有独立的审查周期
  • 共享MCP服务器 --两个代理读取/写入相同的计划文件
  • 自动审查循环 --代理轮询状态更改,无需人工干预
  • 分阶段编排 — /plan-bridge:full-cycle 独立实施和审查每个阶段
  • 单终端模式 --从一个终端运行所有内容
  • 令牌优化 --信任+验证评论(节省56%)+安静输出模式(节省96%)=总减少68%

快速开始

1.建造

cd plan-bridge-mcp
npm install
npm run build

2.配置克劳德代码

全局注册MCP服务器(或通过以下方式按项目注册 .mcp.json):

claude mcp add plan-bridge -- node /path/to/plan-bridge-mcp/build/index.cjs

或手动添加到 ~/.claude/settings.json:

{
  "mcpServers": {
    "plan-bridge": {
      "command": "node",
      "args": ["/path/to/plan-bridge-mcp/build/index.cjs"]
    }
  }
}

安装斜线命令:

cp commands/claude-code/*.md ~/.claude/commands/

3.配置OpenCode

增添 ~/.config/opencode/opencode.json:

{
  "mcp": {
    "plan-bridge": {
      "type": "local",
      "command": ["node", "/path/to/plan-bridge-mcp/build/index.cjs"]
    }
  },
  "command": {
    "plan-bridge:get-plan": {
      "description": "Retrieve a plan and implement it",
      "template": "< contents of commands/opencode/plan-bridge:get-plan.md >"
    },
    "plan-bridge:claude-review": {
      "description": "Get review findings and fix them (auto-loops)",
      "template": "< contents of commands/opencode/plan-bridge:claude-review.md >"
    },
    "plan-bridge:mark-done": {
      "description": "Force-mark a plan as completed",
      "template": "< contents of commands/opencode/plan-bridge:mark-done.md >"
    }
  }
}

看 commands/opencode/opencode-config-example.json 对于完整的示例。

用法

全周期(全自动-单终端!)

Claude Code的TRUE单终端自动化:

  1. 描述你想在对话中构建什么(或使用计划模式)
  2. 跑 /plan-bridge:full-cycle
  3. 就是这样! 克劳德代码自动:
    • 分析计划复杂性(0-100分)
    • 如果复杂,则分为多个阶段(得分≥50或5+个文件)
    • 将计划提交到本地存储(<project>/.plans/<id>/)
    • 对于每个阶段(或单个实施,如果简单的话):
      • 运行OpenCode以实现(同步)
      • 自动审核代码
      • 运行OpenCode以修复发现的问题
      • 循环直到阶段批准
      • 进入下一阶段
    • 报告完成

OpenCode工作时对话暂停 (每步最多10分钟)-这是预期的。无需人工干预!

复杂的计划 自动分为几个阶段:

  • 每个阶段都是独立实施、审查和批准的
  • 减少压倒性的审查周期
  • 可管理的增量进展

双终端模式

为了获得更多控制,请在单独的终端中运行代理:

Terminal 1 (Claude Code):    /plan-bridge:send-plan → /plan-bridge:review-plan
Terminal 2 (OpenCode):       /plan-bridge:get-plan <id> → /plan-bridge:claude-review

两个自动循环通过 wait_for_status --不需要进一步干预。

命令

克劳德代码(~/.claude/commands/)

命令 描述
/plan-bridge:send-plan [name] 提交计划 ~/.claude/plans/ 或对话
/plan-bridge:review-plan [id] 审查实施情况,自动循环直至批准
/plan-bridge:full-cycle [name] 全自动化:提交+实施+审查循环

OpenCode(内联) opencode.json)

命令 描述
/plan-bridge:get-plan [id] 制定并实施计划
/plan-bridge:claude-review [id] 获取发现,修复它们,自动循环直到获得批准
/plan-bridge:mark-done [id] 强制完成计划

MCP工具

两个代理都可以使用15个工具:

核心工作流工具

工具 目的
submit_plan 创建一个简单的计划(遗留)
submit_phased_plan 创建具有自动复杂性分析和阶段划分的计划(推荐)
get_plan 按ID获取计划或按状态获取最新计划
list_plans 列出计划(按状态、项目路径、存储模式筛选)
update_plan_status 更改计划状态
submit_review 提交调查结果(空=批准,阶段意识)
get_review 获取计划或当前阶段的最新审核
submit_fix_report 报告修复(自动设置review_requested,阶段感知)
mark_complete 强制完成计划
wait_for_status 轮询,直到达到目标状态

复杂性和阶段管理

工具 目的
analyze_plan_complexity 分析计划内容并获得阶段建议
get_current_phase 为分阶段计划获取活动阶段
list_plan_phases 列出所有阶段及其状态摘要
advance_to_next_phase 标记当前阶段完成并前进到下一阶段
migrate_plan_to_local 将全局计划迁移到本地存储

运作原理

                    ┌─────────────┐
                    │  Plan File  │
                    │  (JSON on   │
                    │   disk)     │
                    └──────┬──────┘
                           │
              ┌────────────┼────────────┐
              │            │            │
        ┌─────┴─────┐     │     ┌──────┴─────┐
        │ Claude    │     │     │  OpenCode  │
        │ Code      │     │     │            │
        │           │     │     │            │
        │ submit    │────►│     │            │
        │ review    │◄────│────►│ implement  │
        │ approve   │────►│     │ fix        │
        └───────────┘     │     └────────────┘
                          │
              Plan status transitions:
              submitted → in_progress →
              review_requested → needs_fixes →
              review_requested → ... → completed

储存:

  • 新计划 (默认):本地存储在 <project>/.plans/<plan-id>/
    • plan.json --元数据、评论、修复
    • plan.md --原始降价内容
    • CLAUDE.md --自动生成的项目上下文
    • phases/ --单个阶段文件(如果分阶段)
  • 遗留计划:全球存储 ~/.plan-bridge/plans/ (向后兼容)

每个代理生成自己的MCP服务器进程(stdio传输),但它们通过文件系统共享状态。

本地存储和阶段管理

本地存储

计划现在存储在项目的本地:

<project>/
  .plans/
    <plan-id>/
      ├── plan.json          # Full plan metadata
      ├── plan.md            # Original content
      ├── CLAUDE.md          # Auto-generated context
      └── phases/            # Phase files (if complex)
          ├── phase-1.json
          ├── phase-1.md
          ├── phase-2.json
          └── phase-2.md

优点:

  • 计划遵循其描述的代码
  • 易于在git中检查和跟踪(添加 .plans/ 到 .gitignore)
  • 无全球污染
  • 多项目支持

自动相位分割

在以下情况下,复杂计划会自动分为多个阶段:

  • 复杂性得分≥50,OR
  • 计划中引用了5+个文件

复杂性指标:

  • 文件数
  • 预计实施步骤
  • 明确的阶段标记(##阶段1,##步骤1)
  • 依赖关系关键字

阶段工作流程:

  1. 第一阶段已实施→ 审阅→ 固定的→ 批准
  2. 进入第二阶段
  3. 第二阶段已实施→ 审阅→ 固定的→ 批准
  4. …重复直到所有阶段完成
  5. 标记为已完成的计划

为什么是阶段?

  • 减少压倒性的审查周期
  • 将实施重点放在可管理的块上
  • 每个阶段都有独立的审查
  • 清晰的进度跟踪

项目结构

plan-bridge/
├── README.md                    # This file
├── CLAUDE.md                    # Project instructions for Claude Code
├── AGENTS.md                    # Agent interaction guide
├── LICENSE
├── commands/
│   ├── claude-code/             # Slash commands for Claude Code
│   │   ├── plan-bridge:send-plan.md
│   │   ├── plan-bridge:review-plan.md
│   │   └── plan-bridge:full-cycle.md
│   └── opencode/                # Slash commands for OpenCode
│       ├── plan-bridge:get-plan.md
│       ├── plan-bridge:claude-review.md
│       ├── plan-bridge:mark-done.md
│       └── opencode-config-example.json
└── plan-bridge-mcp/             # MCP server source
    ├── src/
    │   ├── index.ts             # Entry point
    │   ├── tools.ts             # 9 tool definitions
    │   ├── storage.ts           # File-based CRUD
    │   └── types.ts             # TypeScript interfaces
    ├── package.json
    └── tsconfig.json

需求

  • Node.js 18+
  • 克劳德代码 支持MCP
  • 开源代码 支持MCP(用于两个代理工作流)
  • opencode 命令行界面 在PATH(for /full-cycle 单终端模式)

许可证

麻省理工学院