mcpField
M
MCP Chunk Editor

MCP Chunk Editor

本地服务
github.com/dwymark开发工具583 周前更新

关于 MCP Chunk Editor

MCP Chunk Editor 是面向 LLM 的 MCP 服务,使用 Universal CTags 识别文本文件中的语义片段。它可即时应用修改并生成预览,也支持按文件撤销最近一次修改。

主要功能

  1. 01语义代码分块
  2. 02读取指定片段及上下文
  3. 03替换片段并预览
  4. 04撤销文件最近修改
  5. 05创建和删除文件

适用场景

  1. 01无需行号即可编辑函数或类
  2. 02继续操作前检查已应用的修改
  3. 03撤销文件的最近一次编辑

MCP 相关

向 MCP 客户端提供文件读取、片段替换、撤销、创建和删除工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chunk-editor": {
"command": "uvx",
"args": [
"mcp-chunk-editor"
]
}
}
}
启动命令uvx mcp-chunk-editor

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-chunk-editor

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Chunk Editor

一个面向大模型提供分块文本文件编辑功能的 Model Context Protocol 服务。此服务支持大模型使用语义明确的代码块而非行号编辑文件,从而让编辑操作更自然、高效。

主要功能

  • 语义分块:使用 Universal CTags 识别函数、类和方法等有意义的代码结构
  • 立即应用:立即应用更改,并生成预览以供验证
  • 简单撤销:支持还原每个文件的最近一次更改
  • 高效:通过增量更新和延迟分块优化大模型的 token 使用

可用工具

  • read_chunks - 获取文件中的代码块,可以获取所有代码块或指定范围。

    • file_path(字符串,必需):要读取的文件路径
    • chunk_indices(整数数组,可选):要获取的代码块索引列表
    • include_adjacent(布尔值,可选):包含前后代码块作为上下文
    • encoding(字符串,可选):文件编码(默认值:utf-8)
  • replace_chunks - 替换一个或多个代码块的内容,并立即应用更改。

    • file_path(字符串,必需):要修改的文件路径
    • replacements(数组,必需):由 {index, new_content} 对象组成的列表
    • encoding(字符串,可选):文件编码(默认值:utf-8)
  • undo - 还原 replace_chunks 操作所做的上一次更改。

    • file_path(字符串,必需):要还原更改的文件路径
  • create_file - 使用给定内容创建新文件。

    • file_path(字符串,必需):要创建的文件路径
    • content(字符串,必需):要写入文件的内容
    • encoding(字符串,可选):文件编码(默认值:utf-8)
  • delete_file - 删除文件。

    • file_path(字符串,必需):要删除的文件路径

前提条件

  • Python 3.10 或 3.11(由于与 python-ctags3 的兼容性问题,暂不支持 Python 3.12+)
  • Universal CTags(在 Debian/Ubuntu 上运行 apt-get install universal-ctags 安装)

安装

使用 uv(推荐)

使用 uv 时,无需进行特定安装。我们将使用 uvx 直接运行 mcp-chunk-editor。

使用 PIP

也可以通过 pip 安装 mcp-chunk-editor:

pip install mcp-chunk-editor

安装后,可以通过以下命令将其作为脚本运行:

python -m mcp_chunk_editor

配置

为 Claude.app 配置

将以下内容添加到 Claude 设置中:

使用 uvx
"mcpServers": {
  "chunk-editor": {
    "command": "uvx",
    "args": ["mcp-chunk-editor"]
  }
}
使用 docker
"mcpServers": {
  "chunk-editor": {
    "command": "docker",
    "args": ["run", "-i", "--rm", "mcp/chunk-editor"]
  }
}
使用 pip 安装
"mcpServers": {
  "chunk-editor": {
    "command": "python",
    "args": ["-m", "mcp_chunk_editor"]
  }
}
自定义 - 最大代码块大小

默认情况下,服务使用的最大代码块大小为 100 行。可以在配置的 args 列表中添加参数 --max-chunk-size=200(例如,将大小设为 200 行)来自定义此值。

调试

可以使用 MCP inspector 调试此服务。对于 uvx 安装:

npx @modelcontextprotocol/inspector uvx mcp-chunk-editor

如果你已将软件包安装在特定目录中,或正在开发此软件包,也可以使用:

cd path/to/servers/src/chunk-editor
npx @modelcontextprotocol/inspector uv run mcp-chunk-editor

工作原理

Chunk Editor 首先使用 Universal CTags 解析文件,以识别函数、类和方法等有意义的语义单元。这些语义单元会成为大模型可以操作的代码块。

编辑文件时:

  1. 大模型请求文件中的代码块(read_chunks)
  2. 大模型修改指定的代码块(replace_chunks)
  3. 立即将更改应用到文件
  4. 返回更改预览以供验证
  5. 如有需要,大模型可以还原最近一次更改(undo)

与传统的基于行的编辑器相比,此工作流对大模型而言更加高效、自然;传统编辑器需要精确的行号和内容哈希值。

贡献

我们欢迎大家贡献力量,帮助扩展和改进 mcp-chunk-editor。无论是添加新工具、增强现有功能,还是改进文档,你的贡献都弥足珍贵。

如需了解其他 MCP 服务和实现模式的示例,请参阅: https://github.com/modelcontextprotocol/servers

欢迎提交拉取请求!欢迎贡献新想法、错误修复或功能增强,让 mcp-chunk-editor 更强大、更实用。

许可证

mcp-chunk-editor 根据 MIT License 获得许可。这意味着你可以自由使用、修改和分发本软件,但须遵守 MIT License 的条款和条件。详情请参阅项目仓库中的 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。