Install
$ agentstack add mcp-proofmath-owner-ai-filesystem-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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.
If your edit fits in one file, just use the agent's Edit. If it fits in one shell command, just use Bash. Reach for transaction only when "all or nothing" actually matters.
Install
Requires Node.js ≥ 18.
npm install -g ai-filesystem-mcp
Or from source:
git clone https://github.com/proofmath-owner/ai-filesystem-mcp.git
cd ai-filesystem-mcp
npm install
npm run build
node dist/index.js
Configure (Claude Code / Codex CLI / any MCP client)
{
"mcpServers": {
"ai-filesystem": {
"command": "node",
"args": ["/absolute/path/to/ai-filesystem-mcp/dist/index.js"]
}
}
}
Speaks stdio JSON-RPC. No network ports.
Trust model
Runs locally beside a trusted AI agent as the user that started it. There is no path sandbox; the trust boundary is your machine. Do not expose to untrusted clients.
Development
npm install
npm run dev # tsx watch on src/index.ts
npm run build # tsc -> dist/
npm run lint
npm run format
tsc errors fail the build. No tsc || true.
License
MIT
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: proofmath-owner
- Source: proofmath-owner/ai-filesystem-mcp
- License: MIT
- Homepage: https://github.com/proofmath-owner/ai-filesystem-mcp#readme
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.