mcpField
M
mcp-multi-edit

mcp-multi-edit

本地服务
github.com/eaisdevelopment开发工具037 周前更新

关于 mcp-multi-edit

mcp-multi-edit 是面向 Claude Code 和 Claude Desktop 的 MCP 服务,可批量处理一个或多个文件中的精确查找替换。其特点是原子化执行,跨文件操作失败时会回滚。

主要功能

  1. 01批量替换单个文件内容
  2. 02跨多个文件应用编辑
  3. 03原子编辑并支持回滚
  4. 04通过试运行预览变更
  5. 05自动创建备份文件
  6. 06报告结构化错误与冲突

适用场景

  1. 01在项目中重命名标识符
  2. 02更新文件中的重复文本
  3. 03协同重构相关文件
  4. 04应用前预览编辑结果

MCP 相关

它向 MCP 客户端提供 `multi_edit` 和 `multi_edit_files` 工具,用于批量替换文件内容并原子化应用跨文件变更。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"eaisdevelopment-mcp-multi-edit": {
"command": "npx",
"args": [
"-y",
"@essentialai/mcp-multi-edit"
]
}
}
}
启动命令npx -y @essentialai/mcp-multi-edit

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@essentialai/mcp-multi-edit0.2.7

工具

2

收录的工具列表 · 更新于 3 周前

参数类型必填说明
editsarray是编辑操作数组(按顺序应用)
backupboolean否编辑前创建 .bak 备份文件(默认:true)
dry_runboolean否预览更改但不应用(默认:false)
file_pathstring是要修改的文件的绝对路径
include_contentboolean否在响应中包含最终文件内容(默认:false,用于验证)

详细介绍

Multi Edit MCP 服务

npm version license tests coverage

一个 MCP 服务,让 Claude 能够在一次工具调用中执行多项查找和替换操作,并保证原子性——所有编辑要么全部成功,要么全部不生效。

由 Essential AI Solutions 为 Claude Code 和 Claude Desktop 构建。

为什么选择 Multi Edit?

Claude 内置的 Edit 工具每次调用只能处理一项查找和替换。重命名文件中的变量或重构多个文件时,就需要单独调用数十次工具——每次调用都会消耗上下文令牌并增加延迟。

Multi Edit 可将这些操作批量合并为一次调用:

Without multi_edit:      105 tool calls   |   15,750 tokens
With multi_edit:          21 tool calls   |    7,850 tokens   (-80% calls, -50% tokens)
With multi_edit_files:     6 tool calls   |    4,550 tokens   (-94% calls, -71% tokens)

基准测试采用真实场景(批量重命名、日志迁移、跨文件重构)。 完整详情请参阅 benchmarks/results/BENCHMARK-REPORT.md。

快速开始

Claude Code

在项目根目录中添加 .mcp.json:

{
  "mcpServers": {
    "Multi Edit from Essential AI Solutions (essentialai.uk)": {
      "command": "npx",
      "args": ["-y", "@essentialai/mcp-multi-edit"]
    }
  }
}

重启 Claude Code。然后将随附的 CLAUDE.md 添加到项目根目录,以便 Claude 自动优先使用 multi_edit,而不是内置的 Edit 工具:

## Editing Files

When making multiple edits to the same file or across multiple files,
prefer using the `multi_edit` and `multi_edit_files` MCP tools over
the built-in Edit tool. These batch edits atomically in a single call.

完成——此后,只要 multi_edit 是合适的工具,Claude 就会使用它。

显示名称: Claude Code 会使用 mcpServers 中的键名作为服务的显示名称。你可以将键名更改为任意名称。

替代方式: 通过 CLI 使用单行命令:

claude mcp add --transport stdio multi-edit -- npx -y @essentialai/mcp-multi-edit

注意: CLI 仅接受简单名称(字母、数字、连字符、下划线)。如需完整的品牌显示名称,请使用上述 .mcp.json 方式。

Claude Desktop

添加到配置文件中(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "Multi Edit from Essential AI Solutions (essentialai.uk)": {
      "command": "npx",
      "args": ["-y", "@essentialai/mcp-multi-edit"]
    }
  }
}

重启 Claude Desktop。

完整安装指南: docs/installation.md

工具

multi_edit —— 单个文件,多项编辑

在一个文件上批量执行多项查找和替换操作。编辑会按顺序以原子方式应用。

{
  "file_path": "/project/src/app.ts",
  "edits": [
    { "old_string": "const oldName = getValue()", "new_string": "const newName = getValue()" },
    { "old_string": "console.log", "new_string": "logger.info", "replace_all": true }
  ]
}
参数类型默认值说明
file_pathstring必填文件的绝对路径
editsarray必填查找和替换操作(按顺序应用)
edits[].old_stringstring必填要查找的文本(精确匹配)
edits[].new_stringstring必填替换文本
edits[].replace_allbooleanfalse替换所有匹配项
dry_runbooleanfalse预览更改,但不应用
backupbooleantrue编辑前创建 .bak 备份
multi_edit_files —— 多个文件,一次原子操作

协调多个文件的编辑。如果任何文件操作失败,所有文件都会自动回滚。

{
  "files": [
    {
      "file_path": "/project/src/types.ts",
      "edits": [
        { "old_string": "interface UserData {", "new_string": "interface UserProfile {" }
      ]
    },
    {
      "file_path": "/project/src/api.ts",
      "edits": [
        { "old_string": "UserData", "new_string": "UserProfile", "replace_all": true }
      ]
    }
  ]
}
参数类型默认值说明
filesarray必填文件编辑操作数组
files[].file_pathstring必填文件的绝对路径
files[].editsarray必填此文件的编辑操作(格式同上)
dry_runbooleanfalse预览更改,但不应用

完整用法指南及示例: docs/usage.md

功能

  • 原子操作 —— 所有编辑要么全部成功,要么全部不应用,不会产生部分状态
  • 多文件回滚 —— 如果任一文件失败,所有之前已更改的文件都会恢复
  • 试运行预览 —— 提交前准确查看将发生哪些更改
  • 自动备份 —— 每次编辑前都会创建 .bak 文件(使用 backup: false 禁用)
  • 结构化错误 —— 提供机器可读的错误代码和恢复提示,以便自动重试
  • 冲突检测 —— 当 old_string 匹配多个位置时发出警告
  • 路径验证 —— 强制使用绝对路径、解析符号链接并检查路径是否存在

错误代码

代码可重试描述
MATCH_NOT_FOUND是在文件中找不到 old_string
AMBIGUOUS_MATCH是old_string 匹配多个位置
VALIDATION_FAILED是输入架构无效
FILE_NOT_FOUND否文件不存在
PERMISSION_DENIED否文件权限不足
BACKUP_FAILED否无法创建备份文件

当 retryable 为 true 时,Claude 会读取响应中的 recovery_hints,调整输入并自动重试。

故障排除指南: docs/troubleshooting.md

要求

  • Node.js 20 或更高版本
  • Claude Code 或 Claude Desktop

开发

npm install           # Install dependencies
npm run build         # Compile TypeScript
npm test              # Run 264 tests
npm run test:coverage # Coverage report (90%+)
npm run benchmark     # Run benchmark suite
npm run dev           # Watch mode
项目结构
src/
  index.ts              # MCP server entry (stdio transport)
  server.ts             # Server factory and tool registration
  tools/
    multi-edit.ts       # multi_edit tool handler
    multi-edit-files.ts # multi_edit_files tool handler
  core/
    editor.ts           # File editing engine (atomic read-modify-write)
    validator.ts        # Zod input validation schemas
    reporter.ts         # Result formatting and diff generation
    errors.ts           # Error classification and envelope creation
  types/
    index.ts            # TypeScript type definitions

文档

文档描述
安装指南Claude Code 和 Claude Desktop 的所有设置选项
使用指南详细的工具参考和示例
故障排除常见问题及解决方案
变更日志版本历史
基准测试报告性能测量结果

许可证

PolyForm Noncommercial License 1.0.0

可免费用于个人和非商业用途。商业许可请联系 [email protected]。


由 Essential AI Solutions 构建

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。