使用说明
项目简介
Editor MCP 是一个基于 Python 的文本编辑器服务器,它使用 FastMCP 框架实现了 Model Context Protocol (MCP)。该服务器提供了一系列工具,允许客户端通过标准化的 API 对服务器端的文件系统进行文本文件的读取、编辑和管理。其核心功能是作为一个 MCP 服务器,为 LLM 应用提供文件编辑的上下文服务。
主要功能点
- 文件管理:
- 设置当前工作文件(通过绝对路径)。
- 创建新文件。
- 删除文件。
- 读取操作:
- 读取整个文件内容(带行号)。
- 读取指定行范围的内容(带行号)。
- 在文件中查找包含特定文本的行。
- 编辑操作:
- 选择要编辑的行范围。
- 预览编辑更改的差异。
- 覆盖选定行的内容。
- 接受或取消编辑更改。
- 支持 Python 和 JavaScript/React 代码的语法检查(编辑时)。
- 安全特性:
- 内容ID验证,防止并发修改冲突。
- 编辑行数限制,防止资源耗尽。
- 语法检查,维护代码完整性。
安装步骤
-
克隆仓库
git clone https://github.com/danielpodrazka/editor-mcp.git cd editor-mcp -
运行安装脚本 (推荐)
chmod +x install.sh ./install.sh或者,您可以使用 'uvx', 'pip' 或 'uv pip' 手动安装,详细步骤请参考仓库 README.md 的 "Installation" 部分。
服务器配置
要将 Editor MCP 添加到 MCP 客户端的配置文件中,您需要配置 'mcpServers' 字段。以下是一个示例配置,展示了如何配置 'text-editor' 服务器:
{ "mcpServers": { "text-editor": { "command": "editor-mcp", "env": { "MAX_EDIT_LINES": "100", // (可选) 设置最大编辑行数,默认为 50 "ENABLE_JS_SYNTAX_CHECK": "0" // (可选) 禁用 JavaScript 语法检查,默认为启用 (1) } } } }
配置参数说明:
- 'command': 启动 Editor MCP 服务器的命令,通常为 'editor-mcp' (如果使用安装脚本安装) 或 'python -m text_editor.server' (如果手动安装)。
- 'env': (可选) 环境变量配置,用于自定义服务器行为:
- 'MAX_EDIT_LINES': 限制单次编辑操作的最大行数,防止资源滥用。
- 'ENABLE_JS_SYNTAX_CHECK': 控制是否启用 JavaScript/JSX 语法检查。设置为 "0"、"false" 或 "no" 可禁用。
基本使用方法
-
启动服务器
安装完成后,您可以使用以下命令启动 Editor MCP 服务器:
editor-mcp或者
python -m text_editor.server -
使用 MCP 客户端连接
配置您的 MCP 客户端,使其能够连接到名为 'text-editor' 的 MCP 服务器。客户端将通过 JSON-RPC 协议与服务器通信,调用服务器提供的工具来执行文件操作。
-
常用工具示例
-
'set_file': 设置要操作的文件
{ "tool_call": { "tool_name": "set_file", "parameters": { "absolute_file_path": "/path/to/your/file.txt" } } } -
'read': 读取文件指定范围的行
{ "tool_call": { "tool_name": "read", "parameters": { "start": 1, "end": 10 } } } -
'find_line': 在文件中查找包含特定文本的行
{ "tool_call": { "tool_name": "find_line", "parameters": { "search_text": "keyword" } } } -
'select' 和 'overwrite' 和 'decide': 编辑文件内容 (两步操作)
// 1. 选择要编辑的行范围 { "tool_call": { "tool_name": "select", "parameters": { "start": 5, "end": 8 } } } // 2. 获取 'select' 工具返回的 id,以及要替换的新内容后,调用 'overwrite' 工具 { "tool_call": { "tool_name": "overwrite", "parameters": { "new_lines": ["new line 1", "new line 2"] } } } // 3. 查看 'overwrite' 工具返回的 diff 预览,确认修改后,调用 'decide' 工具接受修改 { "tool_call": { "tool_name": "decide", "parameters": { "decision": "accept" } } }
更多工具的详细使用方法和参数,请参考仓库 README.md 的 "Available Tools" 部分。
-
信息
分类
开发者工具