DiffChunk MCP 服务器

使用说明(简要概要,便于开发者快速理解与接入)

  • 项目简介 DiffChunk 是一个基于 MCP 的后端服务器,专注于对大规模 diff 文件的高效导航与分析。它将 diff 文件拆分为可管理的“ chunks”,并通过标准的 MCP 资源、工具与提示模板接口向 LLM 客户端暴露数据访问、外部工具调用和模板渲染能力,确保在上下文限制下仍能进行有效的代码变更分析与审查。

  • 主要功能点

    • 资源与工具暴露:提供 diffchunk://current 的资源,以及 load_diff、list_chunks、get_chunk、find_chunks_for_files 等工具。
    • 自动加载与多会话:支持对同一或不同 diff 文件的多会话管理,自动按默认设置或自定义参数加载 diff。
    • 分块与导航:将 diff 拆分成可管理的块,支持按文件模式查找块、获取块内容(可带头部上下文)等操作。
    • 编码与容错:对 diff 文件的编码进行检测与处理,支持异常情况的友好错误信息返回。
    • JSON 报文风格:工具调用结果以 JSON 形式返回,便于与 LLM 的上下文进行拼接与分析。
    • 基于 MCP 的标准对接:实现 MCP 的四大入口:列出资源、读取资源、列出工具、调用工具。
  • 安装步骤

    • 确保 Python 版本为 3.10 及以上。
    • 安装并准备好运行环境(Python 依赖通过项目的打包方式获取,服务器端直接运行即可)。
    • 以本仓库提供的入口启动服务:在项目根目录执行 Python 指令运行主入口(示例:python -m src.main)以启动 MCP 服务器。
    • 也可以通过 MCP 客户端启动方式接入,参照下述服务器配置搭配使用。
  • 服务器配置(MCP 客户端配置示例,供接入时参考) 为了让 MCP 客户端能够正确启动并连接 DiffChunk 服务器,需要在客户端配置中指定服务器启动命令及参数。以下为示例配置(请以实际部署环境为准): { "mcpServers": { "diffchunk": { "command": "uvx", "args": ["--from", "diffchunk", "diffchunk-mcp"] } // 如直接运行服务器二进制,可将 command 设置为可执行的启动命令及其参数 } } 注释:上述配置中的 command 与 args 仅用于 MCP 客户端启动 DiffChunk MCP 服务的示例。客户端读取该配置后会通过指定的命令和参数启动服务进程并建立通信。

  • 基本使用方法

    • 启动服务器 通过命令行直接启动 DiffChunk MCP 服务器(在项目根目录执行): python -m src.main
    • 与 LLM 客户端协作
      • 使用 list_resources 获取当前可用资源(DiffChunk 的 diff overview)。
      • 使用 load_diff 载入一个具体的 diff 文件(如 react、go 等版本升级的 diff)。
      • 使用 list_chunks 获取 diff 的块级概览(包括每块包含的文件、行数、简要摘要)。
      • 使用 get_chunk 按块号读取具体内容(可带 context 头部信息)。
      • 使用 find_chunks_for_files 按模式查找包含特定文件的块。
    • 注意事项
      • 传入的 diff 文件路径应为绝对路径,且目标文件应可访问。
      • 支持多会话并行加载不同的 diff 文件,便于并行分析。
      • 当需要对大规模 diff 进行分块分析时,尽量调整 max_chunk_lines、skip_trivial、skip_generated 等参数以获得更高的性能与准确性。

服务器信息