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 和类似工具的成功经验。
微信扫一扫