
Your AI agent's Edit isn't atomic. This MCP makes it so — atomic multi-file changes with rollback for Claude Code, Codex CLI, Cursor agents.
概览
A single-tool MCP server for atomic multi-file changes with automatic rollback — built for Claude Code, Codex CLI, Cursor agents, and other modern coding agents. Those agents ship with excellent built-in tools for reading, writing, searching, editing, and shell. They do not ship with a primitive for That is the one and only thing this MCP provides. transaction — apply a batch of file operations atomically. If operation 4 fails, operations 1-3 are restored from backup before the call returns. If everything succeeds, backups are cleaned up. Earlier 2.x versions shipped 39 commands: file I/O, search, git, code analysis, shell, archives, diffs, metadata, encryption, file watcher. Modern coding agents already do all of that better with their own Read / Edit / Write / Grep / Glob / Bash tools — wrapping those in MCP only adds latency and a new failure surface. What an agent's Edit cannot do is treat several file changes as one unit of work.
README
以下为原文 README 节选,完整内容请查看原文。
ai-filesystem-mcp
Your AI agent’s Edit isn’t atomic. This MCP makes it so.
A single-tool MCP server for atomic multi-file changes with automatic rollback — built for Claude Code, Codex CLI, Cursor agents, and other modern coding agents.
Those agents ship with excellent built-in tools for reading, writing, searching, editing, and shell. They do not ship with a primitive for “apply these N file operations as one transaction; if any of them fail, revert everything.” That is the one and only thing this MCP provides.
The tool
transaction — apply a batch of file operations atomically.
{
"name": "transaction",
"arguments": {
"operations": [
{ "type": "create", "path": "src/feature.ts", "content": "..." },
{ "type": "write", "path": "src/index.ts", "content": "..." },
{ "type": "update", "path": "src/lib/util.ts",
"updates": [{ "oldText": "foo()", "newText": "foo(arg)" }] },
{ "type": "move", "path": "src/old.ts", "destination": "src/legacy/old.ts" },
{ "type": "delete", "path": "src/dead.ts" }
],
"rollbackOnError": true
}
}
If operation 4 fails, operations 1-3 are restored from backup before the call returns. If everything succeeds, backups are cleaned up.
Operation kinds
type |
Required fields | What it does |
|---|---|---|
create |
path, content |
Make a new file (creates parent dirs). |
write |
path, content |
Overwrite an existing file. |
update |
path, updates[] |
In-place String.replace(oldText, newText) for each update, in order. |
move |
path, destination |
Rename path → destination. |
delete |
path |
Remove a file or directory (recursive). |
Why one tool
Earlier 2.x versions shipped 39 commands: file I/O, search, git, code analysis, shell, archives, diffs, metadata, encryption, file watcher. Modern coding agents already do all of that better with their own Read / Edit / Write / Grep / Glob / Bash tools — wrapping those in MCP only adds latency and a new failure surface.
What an agent’s Edit cannot do is treat several file changes as one
unit of work. If op 4 of 5 fails, ops 1-3 are already on disk. Until
the agent grows a real transaction primitive, that gap is filled
externally — which is the entire job of this server.
When you actually need this
You probably don’t need it for a typical “fix this bug” turn. You do need it when a single logical change must touch several files together:
- DB migration: schema file + matching ORM model + matching test fixtures must all land or all revert.
- Cross-cutting rename / refactor that spans many files and would half-apply if the agent crashes or runs out of context mid-stream.
- Generated-code updates where the generator output and the hand-edited glue must stay in sync.
- Config + corresponding code change (e.g. routing table entry + handler), where the half state is broken.
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"ai-filesystem": {
"command": "node",
"args": ["/absolute/path/to/ai-filesystem-mcp/dist/index.js"]
}
}
}