原子化文件事务工具

一个为AI编程代理设计的原子化多文件变更管理工具,提供事务性文件操作和自动回滚功能,适用于跨文件重构、数据库迁移等需要原子性变更的场景。

  • by proofmath-owner
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 proofmath-owner/ai-filesystem-mcp

使用说明

ai文件系统mcp

你的AI代理的Edit不是原子的。这就是MCP。

用于自动进行原子多文件更改的单工具MCP服务器 回滚——为Claude Code、Codex CLI、Cursor代理和其他现代应用程序构建 编码剂。

这些代理附带了优秀的内置阅读、写作工具, 搜索、编辑和shell。他们不与原始船一起运输 “将这N个文件操作作为一个事务应用;如果其中任何一个失败, 恢复一切。" 这是MCP提供的唯一东西。

工具

transaction --以原子方式应用一批文件操作。

{
  "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
  }
}

如果操作4失败,则操作1-3将从调用前的备份中恢复 返回。如果一切顺利,备份将被清理。

操作种类

type 必填字段 它的作用
create path, content 创建一个新文件(创建父目录)。
write path, content 覆盖现有文件。
update path, updates[] 到位 String.replace(oldText, newText) 对于每次更新,按顺序。
move path, destination 重命名 path → destination.
delete path 删除文件或目录(递归)。

为什么一个工具

早期的2.x版本提供了39个命令:文件I/O、搜索、git、代码 分析、shell、存档、差异、元数据、加密、文件监视器。 现代编码代理已经用自己的编码代理做得更好了 读/编辑/写/Grep/Glob/Bash工具——将其封装在MCP中 只会增加延迟和新的故障面。

什么样的代理人 Edit 不能将多个文件更改视为一个 如果5个操作中的操作4失败,则操作1-3已在磁盘上。直到 代理生成了一个真正的事务原语,填补了这个空白 外部——这是此服务器的全部工作。

当你真正需要这个的时候

你可能不需要它来完成典型的“修复这个bug”的转变。你做到了 当一个逻辑更改必须将多个文件联系在一起时,需要它:

  • 数据库迁移:模式文件+匹配ORM模型+匹配测试 固定装置必须全部落地或全部归还。
  • 跨多个文件的交叉重命名/重构 如果代理在中途崩溃或上下文中断,则应用一半。
  • 生成的代码更新,其中生成器输出和手动编辑 胶水必须保持同步。
  • 配置+相应的代码更改(例如路由表条目+ 处理器),其中半状态被破坏。

如果你的编辑适合一个文件,只需使用代理的 Edit.如果 适合一个shell命令,只需使用 Bash.伸手去拿 transaction 只有当“全有或全无”真正重要的时候。

安装

需要Node.js≥18。

npm install -g ai-filesystem-mcp

或来源:

git clone https://github.com/proofmath-owner/ai-filesystem-mcp.git
cd ai-filesystem-mcp
npm install
npm run build
node dist/index.js

配置(克劳德代码/Codex CLI/任何MCP客户端)

{
  "mcpServers": {
    "ai-filesystem": {
      "command": "node",
      "args": ["/absolute/path/to/ai-filesystem-mcp/dist/index.js"]
    }
  }
}

使用标准JSON-RPC。没有网络端口。

信任模型

以启动它的用户身份在受信任的AI代理旁边本地运行 无路径沙盒;信任边界是你的机器。不要暴露于 不受信任的客户端。

发展

npm install
npm run dev      # tsx watch on src/index.ts
npm run build    # tsc -> dist/
npm run lint
npm run format

tsc 错误导致构建失败。不 tsc || true.

许可证

麻省理工学院