返回市场
编辑-MCP

编辑-MCP

作者:mixelpixx3 星标更新:2025-06-08

项目介绍

Edit-MCP: Microsoft Edit 的模型上下文协议服务器

Edit-MCP 是一个与 Microsoft 的 Edit 工具集成的模型上下文协议(MCP)服务器,为 AI 系统提供高级文件编辑能力。它采用混合架构,结合了直接文件系统操作以提高性能,并通过 Microsoft Edit 集成来处理复杂的编辑任务。

概述

Edit-MCP 服务器作为 AI 系统和文件编辑操作之间的复杂协调者。它暴露了一个标准化的 MCP 接口,允许 AI 模型进行以下操作:

  • 读取和写入文件
  • 查找和替换文本
  • 格式化代码
  • 执行复杂的编辑操作
  • 协调多文件编辑
  • 更多...

架构

Edit-MCP 采用混合架构,包括以下组件:

1. 核心 MCP 服务器

  • 处理 MCP 协议通信
  • 将操作路由到适当的子系统
  • 管理文件状态和元数据
  • 在多个 Edit 实例之间进行协调
  • 提供缓存和优化

2. 文件系统管理器

  • 对于简单任务执行直接文件操作
  • 处理基本的 CRUD 操作
  • 提供文本搜索和简单的查找/替换
  • 管理文件元数据操作
  • 支持跨多个文件的批处理操作

3. Edit 实例管理器

  • 管理用于复杂操作的 Microsoft Edit 进程
  • 处理复杂的编辑场景
  • 协调多文件操作
  • 编程地管理 Edit 的 TUI 交互

4. 操作路由器

  • 决定哪个子系统处理每个操作
  • 将简单操作路由到文件系统管理器
  • 将复杂操作路由到 Edit 实例管理器
  • 在两个子系统之间协调混合操作

安装

先决条件

  • Node.js 16 或更高版本
  • 已安装并添加到 PATH 中的 Microsoft Edit

从源码安装

# 克隆仓库
git clone https://github.com/mixelpixx/edit-mcp.git
cd edit-mcp

# 安装依赖
npm install

# 构建项目
npm run build

使用

启动服务器

您可以使用 stdio 或 HTTP 传输启动 Edit-MCP 服务器:

# 使用 stdio 传输启动(直接与 AI 系统集成)
npm run stdio

# 使用 HTTP 传输启动(基于 Web 的集成)
npm run http

命令行选项

用法:edit-mcp [选项]

选项:
  -V, --version                输出版本号
  -p, --port <port>            HTTP 传输监听的端口(默认:"3000")
  -e, --edit-path <path>       Edit 可执行文件的路径
  -m, --max-instances <number> 最大 Edit 实例数(默认:"5")
  -t, --timeout <milliseconds> Edit 实例超时时间(毫秒,默认:"300000")
  -c, --config <path>          配置文件路径
  -d, --debug                  启用调试日志
  -s, --stdio                  使用 stdio 传输而不是 HTTP
  -h, --help                   显示命令帮助

配置

您可以通过 JSON 配置文件配置 Edit-MCP:

{
  "editExecutable": "/path/to/edit",
  "maxEditInstances": 5,
  "instanceTimeout": 300000,
  "simpleOperationThreshold": 1000,
  "complexityFactors": {
    "fileSize": 0.3,
    "operationType":  0.4,
    "contextRequirement": 0.3
  }
}

可用工具

Edit-MCP 提供以下工具:

文件系统工具

  • read_file: 读取文件内容
  • write_file: 写入文件内容
  • list_files: 列出目录中的文件
  • find_in_file: 在文件中查找模式出现

编辑工具

  • format_code: 格式化文件中的代码
  • complex_find_replace: 执行高级查找和替换操作
  • interactive_edit_session: 开始交互式编辑会话

混合工具

  • smart_refactor: 跨多个文件智能重构代码
  • backup_and_edit: 在编辑文件之前创建备份

HTTP 传输

Edit-MCP 现在除了支持 stdio 之外还支持 HTTP 传输,允许远程访问和 REST API 端点。

使用 HTTP 传输启动

# 使用默认 HTTP 端口(3000)启动
edit-mcp

# 使用自定义端口启动
edit-mcp --port 8080

# 使用配置文件启动
edit-mcp --config config.http.example.json

REST API 端点

健康检查

GET /health

JSON-RPC 端点

POST /jsonrpc
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "read_file",
    "arguments": {
      "path": "example.txt"
    }
  },
  "id": 1
}

REST API 端点

  • GET /api/tools - 列出可用工具
  • POST /api/tools/:toolName - 调用特定工具
  • GET /api/files/:path - 读取文件内容
  • PUT /api/files/:path - 写入文件内容
  • GET /api/list/:directory - 列出目录中的文件
  • POST /api/search - 在文件中搜索模式
  • POST /api/format - 格式化代码
  • POST /api/refactor - 跨文件重构符号
  • GET /api/docs - API 文档

认证

通过在配置中设置 authEnabled: true 来启用 API 密钥认证:

{
  "authEnabled": true,
  "apiKey": "your-secure-api-key"
}

在请求中包含 API 密钥:

  • 头部:X-API-Key: your-secure-api-key
  • 查询参数:?apiKey=your-secure-api-key

CORS 配置

在配置文件中配置允许的来源:

{
  "corsOrigins": ["http://localhost:*", "https://yourdomain.com"]
}

速率限制

配置速率限制以防止滥用:

{
  "rateLimitWindowMs": 900000,  // 15 分钟
  "rateLimitMax": 100           // 每窗口 100 请求
}

开发

构建项目

# 构建项目
npm run build

# 监视更改并重新构建
npm run watch

在开发模式下运行

# 使用热重载运行
npm run dev

许可证

MIT

致谢

  • Microsoft 提供的 Edit 工具
  • 模型上下文协议社区