文本编辑器 MCP 借助 FastMCP 构建了一个功能强大的文本编辑服务器。它让 AI 助手能够以结构化的方式编辑代码及其他文本文件。与传统命令行工具相比,MCP 具备文件完整性验证、使用限制和交互式确认流程等更高级的功能。
MCP 支持通过环境变量进行配置,以下是一些关键的环境变量及其使用示例:
max_select_lines:该变量用于限制在 overwrite 操作中可以选中的最大行数,默认值为 50。示例代码如下:
export max_select_lines=100
DUCKDB_USAGE_STATS:当启用此变量时,MCP 会将使用统计信息收集到 DuckDB 数据库中。
DISABLE_ID_VERIFICATION:将其设置为 true 可以禁用文件内容的完整性验证。示例代码如下:
export DISABLE_ID_VERIFICATION=true
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 进行数据收集的功能,用于记录用户对服务器的使用情况。
包括但不限于:
统计数据存储在 mcp_usage.db 数据库文件中,位于当前工作目录下。
所有收集的数据都是匿名化的,并且仅用于改进服务质量和分析系统性能。
问题:无法连接到 MCP 服务器
问题:收到 ID 验证失败的错误
此项目受到开源社区的启发,特别是 FastMCP 和类似工具的成功经验。