article
README
🚀 Edit-MCP:适用于微软Edit的模型上下文协议服务器
Edit-MCP是一个模型上下文协议(MCP)服务器,它与微软的Edit工具集成,为人工智能系统提供高级文件编辑功能。它采用混合架构,将直接的文件系统操作以提高性能,与微软Edit集成以处理复杂的编辑任务相结合。
🚀 快速开始
Edit-MCP服务器在人工智能系统和文件编辑操作之间充当精密的协调者。它公开了一个标准化的MCP接口,允许人工智能模型执行以下操作:
- 读写文件
- 搜索和替换文本
- 格式化代码
- 执行复杂的编辑操作
- 协调多文件编辑
- 以及更多...
✨ 主要特性
Edit-MCP采用混合架构,包含以下组件:
1. 核心MCP服务器
- 处理MCP协议通信
- 将操作路由到适当的子系统
- 管理文件状态和元数据
- 在多个Edit实例之间进行协调
- 提供缓存和优化
2. 文件系统管理器
- 为简单任务执行直接的文件操作
- 处理基本的CRUD操作
- 提供文本搜索和简单的查找/替换功能
- 管理文件元数据操作
- 支持跨多个文件的批量操作
3. Edit实例管理器
- 管理用于复杂操作的微软Edit进程
- 处理复杂的编辑场景
- 协调多文件操作
- 以编程方式管理Edit的TUI交互
4. 操作路由器
- 决定哪个子系统处理每个操作
- 将简单操作路由到文件系统管理器
- 将复杂操作路由到Edit实例管理器
- 协调两个子系统之间的混合操作
📦 安装指南
前提条件
- Node.js 16或更高版本
- 已安装微软Edit并将其添加到系统路径中
从源码安装
# 克隆仓库
git clone https://github.com/mixelpixx/edit-mcp.git
cd edit-mcp
# 安装依赖
npm install
# 构建项目
npm run build
💻 使用示例
启动服务器
你可以使用stdio或HTTP传输来启动Edit-MCP服务器:
# 使用stdio传输启动(用于与人工智能系统直接集成)
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:在文件中查找模式的出现位置
Edit工具
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许可证。
致谢
- 感谢微软提供Edit工具
- 感谢模型上下文协议社区
微信扫一扫