使用说明
项目简介
MCP Text Editor Server 是一个实现了 Model Context Protocol (MCP) 的服务器,专门为大型语言模型(LLM)工具设计,提供标准化的文本文件编辑能力。它以行操作为基础,支持高效的文件内容读取和修改,特别优化了部分文件访问,以减少 LLM 应用中的 token 消耗。此服务器旨在为 LLM 应用提供安全、可扩展的上下文服务框架,支持并发编辑和冲突检测,确保数据一致性。
主要功能点
- 行级文本编辑: 提供精确到行的文本文件编辑操作。
- 高效部分文件访问: 通过指定行范围,仅加载和处理文件的必要部分,节省 token 消耗,提升 LLM 应用效率。
- LLM 工具集成优化: 专为 LLM 工具设计,提供便捷的 API 接口。
- 安全并发编辑: 采用哈希验证机制,有效检测和处理并发编辑冲突,保障数据安全。
- 原子性多文件操作: 支持在单个操作中处理多个文件。
- 全面的编码支持: 支持 utf-8, shift_jis, latin1 等多种字符编码。
安装步骤
-
安装 Python 3.11+ 或 3.13+: 根据仓库 'README.md' 描述,推荐使用 Python 3.13+,您需要先安装 Python 3.13 或更高版本。
pyenv install 3.13.0 pyenv local 3.13.0如果您没有 'pyenv',请根据您的操作系统安装 Python 3.13+。
-
安装 uv: 推荐使用 'uv' 包管理器,以获得更快的安装速度。
curl -LsSf https://astral.sh/uv/install.sh | sh您也可以选择使用 'pip',但 'uv' 更快。
-
创建虚拟环境并安装依赖:
uv venv source .venv/bin/activate # Linux 或 macOS .venv\Scripts\activate # Windows uv pip install -e ".[dev]"这将创建一个虚拟环境并安装项目及其开发依赖。
服务器配置
MCP 客户端(例如 Claude.app)需要配置 MCP 服务器的启动命令和参数才能连接。以下是 'mcp-text-editor' 服务器的配置信息,请将以下 JSON 配置添加到您的 MCP 客户端配置文件中。
{ "server name": "text-editor", // 您可以自定义服务器名称,客户端用此名称来识别 "command": "uvx", // 启动服务器的命令,这里使用 uvx 运行 "args": [ // 启动命令的参数 "mcp-text-editor" // mcp-text-editor 是服务器的入口点 ] }
注意:
- '"server name"': 客户端用于识别和管理服务器连接的名称,您可以自定义。
- '"command"': 启动 MCP Text Editor Server 的命令。这里 'uvx mcp-text-editor' 是仓库推荐的启动方式,确保您的系统已安装 'uvx' 并且 'mcp-text-editor' 已正确安装。
- '"args"': 传递给启动命令的参数,'mcp-text-editor' 作为 'uvx' 的参数指明要运行的服务器。
基本使用方法
-
启动服务器: 在终端中运行以下命令启动 MCP Text Editor Server。
uvx mcp-text-editor或者
python -m mcp_text_editor -
客户端配置: 将上面提供的 JSON 配置添加到您的 MCP 客户端(如 Claude.app)的配置文件中。
-
使用 MCP 工具: 客户端连接到服务器后,您可以使用服务器提供的 MCP 工具,例如:
- 'get_text_file_contents': 获取文件内容及其哈希值,用于后续编辑操作的前置步骤。
- 'patch_text_file_contents': 应用补丁修改文件内容,需要提供文件哈希和范围哈希以进行冲突检测。
具体工具的使用方法和参数,请参考仓库 'README.md' 文档中 "MCP Tools" 章节的详细说明和示例。
通用使用流程示例:
- 使用 'get_text_file_contents' 工具获取您想要编辑的文件内容和哈希值。
- 在客户端根据获取的内容进行编辑操作。
- 使用 'patch_text_file_contents' 工具将编辑后的内容以补丁形式发送到服务器,应用更改。
- 服务器会进行哈希校验,如果哈希匹配则应用更改并返回新的文件哈希;如果哈希不匹配,则表示文件已被修改,服务器会返回错误信息,客户端需要重新获取最新文件内容和哈希值,再进行编辑和提交。
信息
分类
数据库与文件