Git工作区管理服务器

Workplane是一个基于Git工作树的MCP标准IO服务器,提供安全、可复现的多代理软件交付工作区管理。

  • by AnukaMithara
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 AnukaMithara/Workplane

使用说明

工作平面

工作平面是 MCP(模型上下文协议)stdio服务器 这提供了一个 基于Git工作树的工作区管理器 安全、可重复 多代理 软件交付。

关键词:MCP服务器、模型上下文协议、Git工作树、工作空间隔离、补丁应用程序、命令执行、证据捕获、工件存储、锁定、多代理开发。

第一阶段目标:

  • 使用隔离工作区 Git工作树
  • 集中式 状态+工件存储 在单个根目录下
  • 锁 防止并发工作区突变
  • 默认情况下,编排器和工作代理的工具界面是安全的

功能(第一阶段)

  • 创建、列出、检查和关闭由Git工作树支持的工作区
  • 使用以下命令在工作区内应用补丁 git apply (--check 支持)
  • 使用以下公式计算工作空间内的差异 git diff (可选工件存储)
  • 在工作区中使用以下命令运行命令:
    • denylist策略(可配置)
    • 超时强制
    • 有界stdout/stderr捕获(截断标志)
    • stdout/stderr作为单独的日志工件存储
  • 工件存储:按工作区放置/获取/列出
  • JSON持久性(state.json)使用原子写入(v0.1)

用例

  • 为每个代理/任务安排一个隔离的工作区,以协调多代理编码
  • 提供一个安全的控制平面,用于应用补丁和使用捕获的日志运行测试
  • 收集差异/日志/注释作为工件,以供审查、审计或CI移交

安全模型(第一阶段)

  • 所有状态都位于一个根目录下: WORKPLANE_ROOT (默认值 ~/.workplane)
  • 突变工具(workspace.apply_patch, workspace.run, workspace.close)强制锁
  • 命令执行使用 spawn 随着 shell:false、denylist策略、超时和有界输出捕获

工具状态

已实施的工具:

  • 工作区: workspace.create, workspace.get, workspace.list, workspace.close
  • 并发: workspace.lock, workspace.release
  • 代码操作: workspace.apply_patch, workspace.diff, workspace.run
  • 人工产品: artifact.put, artifact.get, artifact.list

可选(未实现):

  • workspace.note.add, workspace.note.list

快速链接

快速入门

前提条件:

  • Node.js(推荐LTS)
  • Git可在 PATH

安装和构建:

npm install
npm run build

运行服务器(dev):

npm run dev

运行服务器(prod):

npm start

运行烟雾检查:

npm run smoke

配置

环境变量:

  • WORKPLANE_ROOT:工作平面数据根目录(默认: ~/.workplane)
  • WORKPLANE_COMMAND_DENYLIST:逗号分隔的可执行文件denylist workspace.run

文件: docs/configuration.md

文档

例子

发展

脚本:

  • npm run dev (tsx)从以下位置启动MCP stdio服务器 src/
  • npm run build 构建到 dist/
  • npm start 运行内置服务器
  • npm run smoke 对以下对象进行端到端烟雾测试 dist/server.js

贡献: 贡献.md

许可证

许可证