返回 MCP 目录
public公开dns本地运行

editor-mcp

一个基于Python和FastMCP构建的文本编辑器服务器,提供强大的文件操作工具,通过标准化API实现文件读取、编辑和管理,特别优化了AI助手的代码编辑准确性和可靠性。

article

README

🚀 文本编辑器 MCP 用户指南

文本编辑器 MCP 借助 FastMCP 构建了一个功能强大的文本编辑服务器。它让 AI 助手能够以结构化的方式编辑代码及其他文本文件。与传统命令行工具相比,MCP 具备文件完整性验证、使用限制和交互式确认流程等更高级的功能。

🚀 快速开始

MCP 支持通过环境变量进行配置,以下是一些关键的环境变量及其使用示例:

最大选择行数

max_select_lines:该变量用于限制在 overwrite 操作中可以选中的最大行数,默认值为 50。示例代码如下:

export max_select_lines=100

启用统计收集

DUCKDB_USAGE_STATS:当启用此变量时,MCP 会将使用统计信息收集到 DuckDB 数据库中。

禁用 ID 验证

DISABLE_ID_VERIFICATION:将其设置为 true 可以禁用文件内容的完整性验证。示例代码如下:

export DISABLE_ID_VERIFICATION=true

✨ 主要特性

  • 结构化编辑:允许 AI 助手以结构化方式进行代码和其他文本文件的编辑。
  • 高级功能:提供文件完整性验证、使用限制和交互式确认流程等更高级的功能,优于传统命令行工具。
  • 环境变量配置:支持通过环境变量进行配置,方便灵活。
  • 使用统计收集:可收集使用统计信息,用于改进服务质量和分析系统性能。

📚 详细文档

🔧 环境变量

MCP 支持通过环境变量进行配置,以下是一些关键的环境变量: | 属性 | 详情 | |------|------| | 最大选择行数 | max_select_lines:限制在 overwrite 操作中可以选中的最大行数,默认为 50。例如:export max_select_lines=100 | | 启用统计收集 | DUCKDB_USAGE_STATS:启用时,MCP 将收集使用统计信息到 DuckDB 数据库。 | | 禁用 ID 验证 | DISABLE_ID_VERIFICATION:设置为 true 可以禁用文件内容的完整性验证。例如:export DISABLE_ID_VERIFICATION=true |

🔧 服务器实现细节

初始化

主类 TextEditorServer 在初始化时接收一个 FastMCP 实例,命名为 "text - editor"。

文件完整性验证系统

该系统使用 SHA - 256 来生成文件内容或选中行范围的唯一标识符。例如,针对特定行的修改操作,ID 会包含行范围前缀(如:"L10 - 15 - [哈希值]"),从而确保编辑操作应用于预期的内容。

注册的工具

服务器通过 FastMCP 注册了以下主要工具:

  • set_file:用于设置当前要编辑的文件路径。
  • skim:读取整个文件内容并返回行号到行文本的字典。
  • read:根据指定的行范围读取内容,返回结构化的字典。
  • select:选择后续 overwrite 操作中涉及的特定行(最多 50 行)。
  • overwrite:接收新的行列表,并生成 diff 格式的预览以显示将要进行的更改。
  • confirm:应用之前 overwrite 工具准备的更改。
  • cancel:放弃 overwrite 工具中的 pending 改变。
  • delete_file:删除当前文件。
  • new_file:创建新文件。
  • find_line:查找包含特定文本的行。
  • find_function:在 Python 和 JavaScript/JSX 文件中查找函数定义。
  • 其他工具...

🔧 系统提示的最佳实践

为了优化 AI 助手的行为,建议使用系统提示(system prompt)。例如:

mcp_server.set_system_prompt("作为经验丰富的软件工程师,你应当以严格和安全的方式执行编辑操作。")

这样可以确保助手在进行文件修改时更加谨慎,并遵循最佳的编程实践。

🔧 使用统计信息

数据收集

MCP 提供了使用 DuckDB 进行数据收集的功能,用于记录用户对服务器的使用情况。

记录的信息

包括但不限于:

  • 用户 ID
  • 操作类型(读取、写入等)
  • 操作时间戳
  • 文件大小变化
  • 错误日志

存储位置

统计数据存储在 mcp_usage.db 数据库文件中,位于当前工作目录下。

隐私考虑

所有收集的数据都是匿名化的,并且仅用于改进服务质量和分析系统性能。

🔧 故障排除

常见问题

  • 问题:无法连接到 MCP 服务器

    • 解决方法:检查服务器是否在运行,确认网络配置正确。
  • 问题:收到 ID 验证失败的错误

    • 解决方法:要么启用 ID 验证(默认启用),要么禁用该功能。

🔧 灵感来源

此项目受到开源社区的启发,特别是 FastMCP 和类似工具的成功经验。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端