锁定MCP

Lockstep MCP是一个多代理协调服务器,使Claude、Codex和其他AI代理能够在同一项目上协同工作,而不会发生冲突。它提供共享状态(任务、锁、注释),以便代理可以协调他们的工作。
快速开始
# Install (one-time)
git clone https://github.com/Tmmoore286/lockstep-mcp.git ~/lockstep-mcp
cd ~/lockstep-mcp && npm install && npm run build && npm link
lockstep-mcp install --all
# Enable in your project
cd /path/to/your/project
lockstep-mcp init
# Start the dashboard (optional)
lockstep-mcp dashboard然后告诉克劳德“你是规划者”,告诉Codex“你是实施者”。
特性
- 任务管理 -创建、分配和跟踪具有复杂性级别的任务,并审查工作流程
- 文件锁定 -防止多个代理编辑相同文件时发生冲突
- Git工作树隔离 -用于复杂/并行工作的可选隔离分支
- 实时仪表盘 -监视web UI中的所有代理、任务和锁
- 讨论系统 -代理可以讨论架构决策
- 多平台发射器 -tmux和macOS终端启动器
对于AI代理:安装说明
如果您是人工智能代理(Claude、Codex或类似代理),并被要求安装lockstep mcp,请严格遵循以下步骤:
步骤1:克隆和构建
cd ~
git clone https://github.com/Tmmoore286/lockstep-mcp.git
cd lockstep-mcp
npm install
npm run build步骤2:全局安装(可选但推荐)
npm link这使得 lockstep-mcp 命令在系统范围内可用。
步骤3:添加到MCP配置
运行install命令自动配置lockstep mcp:
lockstep-mcp install --all这为Claude Code添加了lockstep mcp(~/.mcp.json 或项目 .mcp.json)食品法典委员会(~/.codex/config.toml).
替代方案:仅针对特定工具进行安装:
lockstep-mcp install --claude # Claude Code only
lockstep-mcp install --codex # Codex only步骤4:在项目中启用
导航到要使用协调的项目:
cd /path/to/your/project
lockstep-mcp init这为以下内容添加了协调说明 CLAUDE.md (如果文件不存在,则创建该文件)。说明书告诉代理商如何使用lockstep mcp。
步骤5:验证安装
lockstep-mcp status您应该看到如下输出:
Lockstep MCP Status
──────────────────────────────────────────────────
Global Installation:
Claude: ✓ Installed
Codex: ✓ Installed
Current Project (/path/to/your/project):
Coordination: ✓ Enabled步骤6:重新启动AI工具
安装后,重新启动Claude Code和/或Codex,以便他们获取新的MCP服务器配置。
______________________________________________________________________
对于AI代理:如何使用Lockstep
安装后,协调工作如下:
启动协调会话
当您开始在启用了lockstep的项目中工作时,请调用 coordination_init 工具与您的角色:
coordination_init({ role: "planner" }) // If you're planning/creating tasks
coordination_init({ role: "implementer" }) // If you're implementing tasks如果你是规划师
规划者会自动经历这些阶段:
第1阶段-收集信息:
- 呼叫
coordination_init({ role: "planner" }) - 如果不存在项目上下文,请询问用户:
- 这个项目是什么? - 理想的最终状态/目标是什么? - 正在使用哪些技术? - 是否有任何约束或要求? - 验收标准是什么? - 完成后应该通过哪些测试?
- 呼叫
project_context_set所有的细节
第2阶段-创建实施计划:
- 根据项目背景,制定详细的实施计划
- 呼叫
project_context_set再次与implementationPlan数组 - 将状态设置为“就绪”
第3阶段-创建任务:
- 使用创建具体、可操作的任务
task_create - 询问用户他们更喜欢哪种类型的实现器(Claude或Codex)
- 使用
launch_implementer生成workers(简单项目1-2个,复杂项目更多)
第4阶段-监控:
- 定期检查
task_list和note_list - 通过以下方式回答实施者的问题
note_append - 添加更多实施者
launch_implementer如有需要 - 所有任务完成后,致电
project_status_set状态为“完成” - 要停止所有工作,请致电
project_status_set状态为“已停止”
如果你是执行者
实施者在 连续循环 直到项目停止或完成:
CONTINUOUS WORK LOOP:
1. Call task_list to see available tasks (also returns projectStatus)
2. If projectStatus is "stopped" or "complete" -> STOP working
3. If tasks available, call task_claim to take a "todo" task
4. Call lock_acquire before editing any file
5. Do the work
6. Call lock_release when done with file
7. Call task_update to mark task "done"
8. REPEAT from step 1重要: 继续工作,直到所有任务都完成或项目停止。不要在任务之间等待用户输入。
项目状态
| 状态 | 含义 |
|---|---|
planning | 计划员正在收集信息并创建计划 |
ready | 计划已准备就绪,可以创建任务 |
in_progress | 实施者正在积极工作 |
complete | 所有工作都完成了 |
stopped | 计划员已暂停所有工作 |
禁用锁定步骤
如果用户说“不要使用锁步”或“独立工作”,请停止使用锁步工具并正常工作。
______________________________________________________________________
人类:快速入门
1.安装
git clone https://github.com/Tmmoore286/lockstep-mcp.git
cd lockstep-mcp
npm install
npm run build
npm link2.配置
lockstep-mcp install --all3.在项目中启用
cd /path/to/your/project
lockstep-mcp init4.开始协调
在您的项目中打开Claude和Codex。告诉其中一个“你是规划者”,另一个则是“你是实施者”。他们会自动协调。
______________________________________________________________________
CLI命令参考
| 命令 | 描述 |
|---|---|
lockstep-mcp install --all | 添加到Claude和Codex配置中 |
lockstep-mcp install --claude | 仅添加到Claude配置 |
lockstep-mcp install --codex | 仅添加到Codex配置 |
lockstep-mcp uninstall | 从所有配置中删除 |
lockstep-mcp init | 在当前项目中启用协调 |
lockstep-mcp disable | 禁用当前项目中的协调 |
lockstep-mcp enable | 重新启用当前项目中的协调 |
lockstep-mcp status | 显示安装和项目状态 |
lockstep-mcp dashboard | 启动web仪表板 |
lockstep-mcp tmux --repo /path | 在tmux中启动Claude+Codex |
lockstep-mcp macos --repo /path | 在macOS终端窗口中启动 |
lockstep-mcp server | 启动MCP服务器(由AI工具调用) |
lockstep-mcp help | 显示帮助 |
______________________________________________________________________
MCP工具参考
协调工具
| 工具 | 说明 | 必需参数 |
|---|---|---|
coordination_init | 初始化协调会话。返回特定阶段的指导。 | role:“规划者”或“实施者” |
project_context_set | 存储项目上下文,包括计划和验收标准 | description, endState |
project_context_get | 检索存储的项目上下文 | (无) |
project_status_set | 设置项目状态(已停止、已完成等) | status |
launch_implementer | 在终端窗口中启动新的实现者代理 | type (“克劳德”或“法典”), name |
implementer_list | 列出所有已注册的实施者 | (无) |
任务工具
| 工具 | 说明 | 必需参数 |
|---|---|---|
task_create | 创建新任务 | title |
task_claim | 声明任务(将状态设置为in_progress) | id, owner |
task_update | 更新任务 | id |
task_list | 列出带有可选筛选器的任务。也返回 projectStatus. | (无) |
task_submit_for_review | 提交已完成的任务供计划员审查 | id, owner, reviewNotes |
task_approve | 计划员批准任务 | id |
task_request_changes | 计划员请求对任务进行更改 | id, feedback |
任务复杂性级别:
simple-1-2个文件,明显修复,无架构决策medium-3-5个文件,有些模糊,需要验证complex-6+个文件、架构决策、跨系统影响critical-数据库模式、安全性会影响其他产品(需要计划员批准)
任务隔离模式:
shared(默认)-实现程序在主目录中使用文件锁工作worktree-实现者获得具有自己分支的隔离git工作树(适合复杂/并行工作)
锁定工具
| 工具 | 说明 | 必需参数 |
|---|---|---|
lock_acquire | 编辑前锁定文件 | path |
lock_release | 松开锁 | path |
lock_list | 列出活动锁 | (无) |
笔记工具
| 工具 | 说明 | 必需参数 |
|---|---|---|
note_append | 添加注释(用于代理间通信) | text |
note_list | 列出最近的笔记 | (无) |
文件工具
| 工具 | 说明 | 必需参数 |
|---|---|---|
file_read | 读取文件 | path |
file_write | 写入文件 | path, content |
artifact_read | 读取工件 | path |
artifact_write | 写一个工件 | path, content |
讨论工具
| 工具 | 说明 | 必需参数 |
|---|---|---|
discussion_start | 与另一个代理开始讨论 | topic, message, author, waitingOn |
discussion_reply | 对讨论的回复 | id, message, author |
discussion_resolve | 将讨论标记为已解决 | id |
discussion_inbox | 等待代理进行讨论 | agent |
工作树工具
| 工具 | 说明 | 必需参数 |
|---|---|---|
worktree_status | 获取实施者工作树的状态 | implementer |
worktree_merge | 将工作台更改合并回主 | implementer |
worktree_list | 列出所有活动工作树 | (无) |
worktree_cleanup | 清理孤立的工作树 | (无) |
其他工具
| 工具 | 说明 | 必需参数 |
|---|---|---|
status_get | 获取协调器状态和配置 | (无) |
command_run | 执行shell命令 | command |
tool_install | 通过包管理器安装工具 | manager |
log_append | 添加到事件日志 | event |
______________________________________________________________________
协调工作原理
共享数据库
所有代理都连接到相同的SQLite数据库 ~/.lockstep-mcp/data/coordinator.db。它们是这样共享状态的:
┌─────────────────────────────────────────────────────┐
│ lockstep-mcp │
│ (shared SQLite database) │
│ │
│ • Tasks (todo, in_progress, done) │
│ • Locks (which files are being edited) │
│ • Notes (inter-agent messages) │
│ • Project Context (description, goals) │
└─────────────────────────────────────────────────────┘
▲ ▲
│ │
┌────┴────┐ ┌────┴────┐
│ Claude │ │ Codex │
│(planner)│ │(implmtr)│
└─────────┘ └─────────┘角色分配
角色没有提前配置。当代理启动时,用户告诉它要扮演的角色:
- “你是策划者”→ 客服电话
coordination_init({ role: "planner" }) - “你是执行者”→ 客服电话
coordination_init({ role: "implementer" })
这意味着您可以使用任何组合:
- Claude担任策划人+Codex担任执行人
- Codex作为规划者+Claude作为实施者
- 两个Codex实例(一个规划者,一个实施者)
- 多个实施者
预防冲突
代理使用锁来防止同时编辑同一文件:
- 编辑前
src/app.ts:
lock_acquire({ path: "src/app.ts", owner: "codex" })- 编辑文件
- 编辑后:
lock_release({ path: "src/app.ts" })如果另一个代理试图获取已锁定文件的锁,他们将收到错误并应等待。
Git工作树隔离
对于复杂或并行工作,代理可以使用隔离的git工作树而不是文件锁:
# Planner creates a task with worktree isolation
task_create({
title: "Major refactor",
complexity: "complex",
isolation: "worktree"
})
# Launch implementer with worktree isolation
launch_implementer({
name: "impl-1",
type: "claude",
isolation: "worktree"
})使用工作台时:
- 每个实现者都有自己的分支(例如。,
lockstep/impl-1) - 无需文件锁-完全隔离
- 实施者经常提交更改
- 规划师使用
worktree_status检查进度 - 规划师使用
worktree_merge合并已批准的更改
最佳实践:
- 共享隔离 (默认):简单/中等任务,快速编辑
- 工作树隔离:复杂的重构、并行功能、涉及许多文件的任务
______________________________________________________________________
禁用锁定步骤
关闭锁步的多种方法:
| 方法 | 范围 | 方法 |
|---|---|---|
| 自然语言 | 此对话 | 告诉代理“不要使用锁步” |
| MCP命令 | 此会话 | /mcp disable lockstep |
| CLI命令 | 此项目 | lockstep-mcp disable |
| CLI命令 | 全局 | lockstep-mcp uninstall |
______________________________________________________________________
安全模型
锁步MCP被设计为 本地开发工具 在你的机器上运行。威胁模型是“防止代理逃离沙盒”,而不是“防御外部攻击者”
文件访问控制
| 模式 | 行为 |
|---|---|
open (默认) | 代理可以读取/写入进程可以访问的任何文件 |
strict | 文件操作仅限于指定 --roots 目录 |
# Restrict to specific directories
lockstep-mcp install --all --mode strict --roots /path/to/project,/tmp在严格模式下,任何超出允许根的文件操作都将失败。
命令执行控制
这 command_run 该工具执行shell命令。通过以下方式进行控制:
| 模式 | 行为 |
|---|---|
open (默认) | 可以执行任何命令 |
allowlist | 仅命令在 --command-allow 列表是允许的 |
# Only allow specific commands
lockstep-mcp install --all --command-mode allowlist --command-allow "npm,node,git,make"allowlist检查 第一个词 命令(例如。, npm install 检查 npm).
推荐的安全设置
对于类似生产的安全性:
lockstep-mcp install --all \
--mode strict \
--roots /path/to/project \
--command-mode allowlist \
--command-allow "npm,node,git,make,pytest"对于典型开发(默认):
lockstep-mcp install --all # Uses open mode, all commands allowedLockstep不能防止什么
- 恶意提示:如果你告诉代理删除文件,它会尝试
- 网络渗透:如果底层工具允许,代理可以发出网络请求
- 权限提升:Lockstep使用您的用户权限运行
______________________________________________________________________
配置选项
安装时,您可以自定义服务器:
lockstep-mcp install --all --mode strict --roots /path/to/project,/tmp| 选项 | 描述 | 默认值 | |
|---|---|---|---|
| `--mode open\ | strict` | 在严格模式下,文件访问仅限于root | open |
--roots /path1,/path2 | 允许的目录(用于严格模式) | 当前目录 | |
| `--storage sqlite\ | json` | 存储后端 | sqlite |
--db-path /path/to/db | 数据库文件位置 | ~/.lockstep-mcp/data/coordinator.db | |
| `--command-mode open\ | allowlist` | 命令执行策略 | open |
--command-allow cmd1,cmd2 | 允许的命令(用于满列表模式) | (无) |
______________________________________________________________________
仪表盘
实时查看协调状态:
lockstep-mcp dashboard然后打开http://127.0.0.1:8787在浏览器中。
仪表板显示:
- 项目状态 -动态状态(进行中、暂停、完成)
- 所有任务 -具有状态、复杂性、隔离模式和所有者
- 实施者 -包含当前任务、审核队列和完成统计信息
- 活动文件锁 -谁锁了什么
- 最近的笔记 -代理间通信
交互功能:
- 点击活动实施者卡以聚焦其终端窗口(macOS)
- 通过WebSocket实时更新
- 自动检测死执行器进程
______________________________________________________________________
tmux启动器
使用一个命令在tmux窗口中启动Claude和Codex:
lockstep-mcp tmux --repo /path/to/your/project这将创建:
- 窗口1:克劳德
- 窗口2:食品法典
- 窗口3:仪表板
切换窗口 Ctrl-b n (下一页)或 Ctrl-b p (以前)。
选项:
--session-tmux会话名称(默认值:lockstep)--layout windows|panes-单独的窗口或拆分窗格--no-dashboard-跳过启动仪表板--no-prompts-不自动注入协调提示
______________________________________________________________________
macOS终端启动器
在单独的macOS终端窗口中启动:
lockstep-mcp macos --repo /path/to/your/project为Claude、Codex和Dashboard打开三个终端窗口。
______________________________________________________________________
故障排除
“lockstep mcp:找不到命令”
跑 npm link 在lockstep mcp目录中,或使用完整路径:
node /path/to/lockstep-mcp/dist/cli.js statusSQLite安装失败(节点gyp错误)
Lockstep使用SQLite进行协调状态。预构建的二进制文件可用于大多数平台(macOS、Windows、x64上的Linux/arm64),但如果您看到编译错误:
选项1:安装构建工具
# macOS
xcode-select --install
# Ubuntu/Debian
sudo apt-get install build-essential python3
# Windows (run as admin)
npm install -g windows-build-tools选项2:改用JSON存储
lockstep-mcp install --all --storage jsonJSON存储在没有本机依赖的情况下工作,但对于大型项目来说速度稍慢。
特工看不到锁步工具
- 检查安装:
lockstep-mcp status - 重启人工智能工具(Claude/Codex)
- 在AI工具中,运行
/mcp查看已连接的服务器
代理人不协调
- 确保两者都在同一个项目目录中
- 检查一下
lockstep-mcp init在那个项目中运行 - 验证两个代理都可以呼叫
coordination_init
锁定冲突
如果代理在持有锁时崩溃:
# View locks
lockstep-mcp dashboard
# Or manually clear via the database
sqlite3 ~/.lockstep-mcp/data/coordinator.db "UPDATE locks SET status='resolved' WHERE status='active'"______________________________________________________________________
示例工作流程
1.设置(一次)
# Install lockstep-mcp
cd ~/lockstep-mcp
npm install && npm run build && npm link
# Add to AI tools
lockstep-mcp install --all2.启动项目
# Enable in your project
cd ~/my-project
lockstep-mcp init
# Start dashboard (optional)
lockstep-mcp dashboard &3.打开人工智能工具
1号航站楼(克劳德):
cd ~/my-project
claude然后告诉克劳德:“你是规划师。我们正在建设\[描述项目\]。”
2号航站楼(食品法典委员会):
cd ~/my-project
codex然后告诉Codex:“你是执行者。检查任务的锁步。”
4.看着他们合作
- Claude根据项目描述创建任务
- 食品法典委员会声称任务,执行任务,标记任务完成
- 两者都使用锁来避免文件冲突
- 两者都使用笔记进行交流
______________________________________________________________________
许可证
MIT。看 LICENSE.
