Back to MCP directory
publicPublicdnsLocal runtime

mcp-edit-file-lines

一个基于TypeScript的MCP服务器,提供精确的基于行的文本文件编辑工具,支持正则匹配和内容替换。

article

README

🚀 编辑文件工具使用文档

该工具遵循MCP协议,主要用于编辑文件。它能有效解决文件编辑过程中的安全、版本控制等问题,为用户提供安全、智能、便捷的文件编辑体验。

🚀 快速开始

启动服务器时需要指定一个或多个允许目录:

node build/index.js <允许目录> [额外目录...]

所有文件操作均限于这些指定的目录。

✨ 主要特性

  • 安全限制:所有文件操作均限于预先指定的允许目录。
  • 智能文本处理:支持正则表达式和字符串匹配。
  • 版本控制:支持保存和恢复编辑状态。
  • 校验机制:严格验证文件路径和修改内容。

📦 安装指南

安装依赖

运行以下命令安装所需依赖:

npm install

构建服务器

构建生产环境版本的服务器:

npm run build

开发模式

在开发环境中启用自动重建功能:

npm run watch

💻 使用示例

基础用法

示例1:替换特定行内容

{
  "path": "src/components/Button.tsx",
  "edits": [{
    "startLine": 5,
    "endLine": 5,
    "content": "export const Button = () => {"
  }]
}

高级用法

示例2:批量修改多个位置

{
  "operations": [
    {
      "path": "src/App.tsx",
      "edits": [{
        "startLine": 10,
        "endLine": 10,
        "content": "// 新注释"
      }]
    },
    {
      "path": "src/styles.css",
      "edits": [{
        "startLine": 20,
        "endLine": 20,
        "content": ".button { padding: 1rem; }"
      }]
    }
  ]
}

📚 详细文档

环境变量

  • MCP_EDIT_STATE_TTL:编辑状态的超时时间,单位为毫秒,默认值为60000。

错误处理

常见错误及解决方案:

  1. 未找到匹配项
Error: 没有找到字符串匹配项"oldValue"在第5行
  1. 无效正则表达式
Error: 无效的正则表达式模式"([": 未终止的分组
  1. 同一行被多次编辑
Error: 第5行受到多个编辑操作的影响

安全注意事项

  • 所有文件操作均限于预先指定的允许目录。
  • 禁止使用 symlink 来绕过路径限制。
  • 防护父目录遍历攻击。
  • 严格校验输入的文件路径和修改内容。
  • 编辑状态默认60秒后自动过期。

调试指南

推荐使用test:tools脚本对工具进行全面测试:

npm run test:tools

该脚本会:

  1. 重置测试用例到初始状态。
  2. 连接MCP服务器。
  3. 依次测试各个功能模块。
  4. 显示每项操作的输出结果。

配置示例

在Claude环境中的配置示例:

export MCP_EDIT_STATE_TTL=360000

📄 帮助与支持

如需帮助或发现任何问题,请联系技术支持团队。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client