Workplane is an MCP (Model Context Protocol) stdio server that provides a Git worktree-based Workspace Manager for safe, reproducible Multi-agent software delivery.
Keywords: MCP server, Model Context Protocol, Git worktrees, workspace isolation, patch application, command execution, evidence capture, artifact store, locking, multi-agent development.
Phase 1 goals:
- Isolated workspaces using Git worktrees
- Centralized state + artifact store under a single root directory
- Locks to prevent concurrent workspace mutation
- Safe-by-default tool surface for orchestrators and worker agents
- Create, list, inspect, and close workspaces backed by Git worktrees
- Apply patches inside a workspace using
git apply(--checksupported) - Compute diffs inside a workspace using
git diff(optional artifact storage) - Run commands in a workspace with:
- denylist policy (configurable)
- timeout enforcement
- bounded stdout/stderr capture (truncation flags)
- stdout/stderr stored as separate log artifacts
- Artifact store: put/get/list per workspace
- JSON persistence (
state.json) with atomic writes (v0.1)
- Orchestrate multi-agent coding with one isolated workspace per agent/task
- Provide a safe control plane for applying patches and running tests with captured logs
- Collect diffs/logs/notes as artifacts for review, auditing, or CI handoff
- All state lives under one root directory:
WORKPLANE_ROOT(default~/.workplane) - Mutation tools (
workspace.apply_patch,workspace.run,workspace.close) enforce locks - Command execution uses
spawnwithshell:false, denylist policy, timeouts, and bounded output capture
Implemented tools:
- Workspace:
workspace.create,workspace.get,workspace.list,workspace.close - Concurrency:
workspace.lock,workspace.release - Code ops:
workspace.apply_patch,workspace.diff,workspace.run - Artifacts:
artifact.put,artifact.get,artifact.list
Optional (not implemented):
workspace.note.add,workspace.note.list
- Docs index: docs/README.md
- Tool schemas + examples: docs/tools.md
- Architecture + guardrails: docs/architecture.md
- Orchestrator initial system prompt: docs/prompts/workplane-orchestrator-initial-system-prompt.md
- Sample project prompts: docs/prompts/sample-project-prompts.md
- Two workspaces demo: examples/two-workspaces-demo/
Prereqs:
- Node.js (LTS recommended)
- Git available on
PATH
Install and build:
npm install
npm run buildRun the server (dev):
npm run devRun the server (prod):
npm startRun smoke checks:
npm run smokeEnvironment variables:
WORKPLANE_ROOT: Workplane data root directory (default:~/.workplane)WORKPLANE_COMMAND_DENYLIST: comma-separated executable denylist forworkspace.run
Docs: docs/configuration.md
- docs/README.md (start here)
- docs/tools.md (schemas + examples)
- docs/architecture.md (design + safety guardrails)
- docs/requirements.md (Phase 1 requirements)
- docs/roadmap.md (milestones)
- examples/phase1-smoke/ (end-to-end smoke test)
- examples/two-workspaces-demo/ (create two workspaces, patch/run/diff, list artifacts)
Scripts:
npm run dev(tsx) starts the MCP stdio server fromsrc/npm run buildbuilds todist/npm startruns the built servernpm run smokeruns an end-to-end smoke test againstdist/server.js
Contributing: CONTRIBUTING.md
