Batuta
FreeMaintainedMCP server that splits a task into plans with disjoint file boundaries and scaffolds a git worktree per plan — conflict-free parallel coding agents.
About
MCP server that splits a task into plans with disjoint file boundaries and scaffolds a git worktree per plan — conflict-free parallel coding agents.
README

batuta-mcp
Split a task into plans with disjoint file boundaries, then scaffold a git worktree per plan — so parallel agents never step on each other.
A stateless MCP server that turns a brain dump into conflict-free parallel work.
License: MIT Bun Model Context Protocol Built with Claude Code
Why
Running several coding agents in parallel is fast — until two of them edit the same file and silently clobber each other's work. The fix isn't live coordination; it's separation: give each agent a set of files that don't overlap, and the conflict can't happen by design.
batuta-mcp is the brain that does that split. You hand it a brain dump; it returns plans with disjoint file boundaries, and scaffolds an isolated git worktree for each one.
How it works
It's a stateless MCP server (stdio). No database, no daemon, no web UI — just three tools that compose:
- Decompose a brain dump into 2–5 plans whose
fileBoundariesdon't overlap (auto-corrects once if they do). - Check that the boundaries are truly disjoint.
- Scaffold a
git worktreeper plan, returning a ready-to-paste prompt for each — open them in separate terminals/tabs and let one agent work each, conflict-free.
The "muscle" (running the agents, the terminals) stays in your editor; batuta-mcp is just the planning brain.
Features
- 🧠 Disjoint decomposition — plans are generated so no file appears in two plans.
- ♻️ Auto-correction — if the model returns overlapping boundaries, it retries once to separate them.
- 🌳 Worktree scaffolding — one isolated
git worktreeper plan, with a ready-to-paste prompt. - 🔒 Safe by design — pre-flight checks (valid git repo, no overlaps, no path traversal) before touching disk;
dryRunpreviews without writing. - 🪶 Stateless — nothing persisted; uses your logged-in
claudeCLI (no API key needed).
Requirements
- Bun 1.3+
git2.x (forscaffold_worktrees)- The claude CLI, logged in (for
decompose_into_plans) - Claude Code or any MCP client
Installation
git clone https://github.com/vorluno/batuta-mcp.git
cd batuta-mcp
bun install
claude mcp add batuta -- bun run /absolute/path/to/batuta-mcp/src/index.ts
Configuration
Any MCP client works. The mcpServers entry:
{
"mcpServers": {
"batuta": {
"command": "bun",
"args": ["run", "/absolute/path/to/batuta-mcp/src/index.ts"]
}
}
}
For Claude Code, claude mcp add (above) writes this for you. For Warp or Cursor, paste the snippet into their MCP settings.
Tools
| Tool | Description |
|---|---|
decompose_into_plans |
{ brainDump, projectHint?, repoPath? } → { plans, overlapsResolved, attempts }. Splits the work into plans with disjoint boundaries (auto-corrects overlaps once). |
check_boundary_overlaps |
{ plans } → { overlaps, ok }. Pure check: do any plans share files? |
scaffold_worktrees |
{ repoPath, plans, dryRun? } → { results }. Pre-flight, then git worktree add per plan + a ready-to-paste prompt. |
Typical flow
decompose_into_plans→ plans with disjoint boundaries.check_boundary_overlaps→ confirmok: true(or adjust).scaffold_worktrees→ creates the worktrees; open each in its own terminal/tab and paste itssuggestedPrompt.
Development
bun test # full suite
bunx tsc --noEmit # type-check
Built test-first across 10 TDD tasks with per-task and whole-branch review.
License
MIT © 2026 Vorluno
Install Batuta in Claude Desktop, Claude Code & Cursor
unyly install batutaInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add batuta -- npx -y @vorluno/batuta-mcpStep-by-step: how to install Batuta
FAQ
Is Batuta MCP free?
Yes, Batuta MCP is free — one-click install via Unyly at no cost.
Does Batuta need an API key?
No, Batuta runs without API keys or environment variables.
Is Batuta hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Batuta in Claude Desktop, Claude Code or Cursor?
Open Batuta on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Batuta with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
