合并转发助手
一个模型上下文协议(MCP)服务器,它使用合并转发策略帮助跨发布分支安全地进行错误修复。
概述
此工具通过将旧分支的修复安全地合并到新分支中,帮助团队维护多个发布分支,遵循明确的策略,以避免在冲突解决过程中删除错误修复。
这个工具做什么
此MCP服务器旨在 促进和减少瓶颈时间 在合并转发操作期间,通过以下方式:
- 通过合并转发工作流提供结构化指导
- 提供一致的冲突解决策略
- 跨多个项目类型自动化项目构建验证
- 减少重复性体力劳动和认知负荷
- 展示常见的冲突模式和故障排除技巧
这个工具是什么
此工具将 非:
- 自动解决所有冲突,无需人工监督
- 保证零合并冲突或问题
- 取代开发人员的判断和专业知识
- 消除所有合并转发的复杂性
- 在第一天就完美地适用于每个边缘案例
这是一个生产力工具,可以帮助和加速这一过程,但开发人员仍负责:
- 审查冲突解决方案的正确性
- 了解正在合并的更改
- 对复杂冲突做出最终决定
- 验证合并的代码是否符合要求
主要特点
- 具有智能冲突解决功能的自动合并转发工作流
- 内置的剧本优先考虑bug修复而不是重构
- 多项目构建验证(npm、.NET Core、.NET Framework)
- 全面的文档工具(核心工作流程、详细程序、故障排除模式)
- 交互式公关与用户批准的直接合并决策
- 尽最大努力验证(构建/测试),但失败率很高
- 团队审查的顺序公关工作流程
- Git安全约束(无强制推送,无破坏性命令)
安装
1.构建MCP服务器
npm install
npm run build2.使用AI工具注册MCP
Claude代码示例:
claude mcp add merge_forward --scope user -- node "/path/to/merge-forward-mcp/dist/index.js"注: 将路径替换为实际安装目录。
3.验证安装
claude mcp list你应该看看 merge_forward 在已配置的MCP服务器列表中。
用法
在Claude Code中,导航到您的git存储库并运行:
合并前\\\[to_branch2\]
工作流程
- 计划 -分析提交和潜在冲突
- 合并 -对目标分支执行合并
- 解决 -应用剧本规则来解决冲突
- 构建 -构建所有受冲突影响的项目以验证解决方案
- 验证 -运行额外的构建/测试检查(如果可用)
- 问 -提示:“创建PR以供审查还是继续直接合并?”
- 公共关系: 创造 merge-forward/-to- 分支、推送、创建PR, 停止 - 直接: 提交到目标分支,推送,继续到下一个分支
合并列车(a→ b → c)
如果您为第一次合并创建PR(a→ b) ,工作流程 停止 -您必须先合并PR,然后才能继续下一个分支(b→ c).这可以防止级联错误,并允许团队审查。
了解公关工作流程
当您选择“创建PR”时:
- Claude创建了一个分支
merge-forward/-to-从目标分支 - 在该PR分支上执行合并和冲突解决
- 提交合并并推动PR分支
- 创建拉取请求以供团队审核
- PR已包含完整合并 -无需再次合并!
要完成合并,请执行以下操作:
- 只需正常审查和合并PR
- PR分支的合并提交将被添加到目标分支
- 对于合并列车,运行
/merge-forward在合并PR后,再次使用下一个分支对
合并列车示例2408.0.4→ 2503.0.1 → 2509.0.0:
# Step 1: Start merge-forward
/merge-forward 2408.0.4 2503.0.1 2509.0.0
# Step 2: Choose "Create PR" → PR created, workflow STOPS
# Step 3: Review and merge the PR (2408.0.4 → 2503.0.1)
# Step 4: Continue with next merge
/merge-forward 2503.0.1 2509.0.0重新运行正向合并(增量合并)
您可以在相同的分支上多次安全地重新运行合并前进。
Git仅通过合并智能地处理此问题 新提交 这些尚未在目标分支中。
示例场景:
- 您已合并
2408.0.4 → 2503.0.1(3次承诺) - 新的错误修复已添加到
2408.0.4(再提交2次) - 跑
/merge-forward 2408.0.4 2503.0.1再次 - Git将 只合并2个新提交,跳过已合并的3个
如果不存在新的提交:
- Git报告“已更新”
- 不需要或不执行合并
这是预期的工作流程 为了维护发布分支,请在将新修复添加到旧分支时继续提出!
支持的项目类型
这 build_affected_projects 该工具支持多种项目类型:
- npm -使用package.json的Node.js项目
- .net核心 - .NET 5+项目(.csproj)
- .net框架 - .NET Framework 4.x项目(.csproj)
- 混合的 - .具有npm依赖关系的.NET Framework项目
该工具会自动检测构建命令,并为每种项目类型运行适当的验证。
冲突解决手册
剧本优先考虑 保留错误修复和行为更改 结构重构:
- Bug修复优先 -决不放过任何机会
- 行为改变必须生存 -始终保留安全性、验证和错误处理
- 参考与修复 -将修复逻辑应用于新结构
- 代码结构 -使用目标分支的较新架构
- 测试与验证 -保留和更新测试覆盖率
- 文档 -记录所有非琐碎的解决方案
看 src/data/playbook.ts 完整的规则。工作流指令被拆分到多个文件中:
src/data/instructions-core.md-核心工作流程和快速参考src/data/instructions-detailed.md-详细的程序和验证步骤src/data/instructions-patterns.md-常见的冲突模式和故障排除
MCP服务器工具
服务器提供了Claude在合并操作中使用的九个工具:
文档工具:
get_merge_forward_instructions-核心工作流程说明,包括快速参考和飞行前检查表get_detailed_procedures-详细的分步程序和验证检查get_common_patterns-常见冲突模式和故障排除指南get_playbook-冲突解决规则和指导方针
工作流工具:
plan_merge_forward-计划合并多个分支机构的远期运营gather_merge_context-在合并之前分析提交和潜在冲突run_validation-在尽力而为的自动模式下运行构建/测试检查build_affected_projects-构建受冲突影响的特定项目(npm、.NET Core、.NET Framework)decide_pr_or_merge-提示用户在创建PR或直接合并之间进行选择
安全约束条件
- 仅向前合并(无重基)
- 没有破坏性的git命令
- 主/主分支无强制推动
- 保存所有承诺和历史
- 记录所有冲突解决方案
- 在完成合并之前构建受影响的项目
- PR与直接合并决策需要用户批准
- 构建/验证失败时停止
发展
本地运行
cd merge-forward-mcp
npm run dev建筑
cd merge-forward-mcp
npm run build测试MCP工具
您可以使用MCP CLI测试单个MCP工具:
# Test planning a merge
npx @modelcontextprotocol/cli call merge_forward plan_merge_forward \
'{"from_branch": "main", "to_branches": ["release-1.0"]}'
# Get workflow instructions
npx @modelcontextprotocol/cli call merge_forward get_merge_forward_instructions '{}'
# Get playbook rules
npx @modelcontextprotocol/cli call merge_forward get_playbook '{}'故障排除
未找到MCP服务器:
- 验证中的路径
claude mcp add命令是绝对正确的 - 检查一下
dist/index.js建筑后存在 - 跑
claude mcp list查看已配置的服务器
Slash命令不可用:
- 验证
merge-forward.md在...里~/.claude/commands/(或%USERPROFILE%\.claude\commands\在Windows上) - 重新启动Claude代码
构建失败:
- 这
build_affected_projects如果构建失败,该工具将停止合并 - 修复构建错误并重新运行合并转发命令
- 模式指南中列出了常见问题(使用
get_common_patterns工具)
跳过验证:
- 如果您的存储库没有标准的构建/测试命令,这是正常的
- 验证是尽最大努力,并优雅地跳过不可用的工具
合并过程中需要帮助:
- 使用
get_common_patterns用于排除常见冲突情况 - 使用
get_detailed_procedures有关特定工作流程步骤的分步指导 - 使用
get_playbook查看冲突解决规则
许可证
麻省理工学院
