使用说明

项目简介

Patche MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它专注于为大型语言模型(LLM)客户端提供补丁 (patch) 相关的上下文信息和功能。通过 Patche MCP Server,LLM 可以方便地获取补丁文件的信息,并将补丁应用到指定的文件目录中。

主要功能点

  • 查看 Patche 配置 (patche_config): 允许 LLM 客户端获取 Patche 服务器的当前配置信息,例如最大差异行数等。
  • 列出补丁文件 (patche_list): 允许 LLM 客户端列出指定目录下的所有补丁文件,方便用户了解可用的补丁资源。
  • 显示补丁内容 (patche_show): 允许 LLM 客户端查看指定补丁文件的详细信息,包括补丁的作者、提交信息以及影响的文件等。
  • 应用补丁 (patche_apply): 允许 LLM 客户端将指定的补丁文件应用到目标目录,并支持反向应用补丁。

安装步骤

  1. 确保你的环境中安装了 Python 和 PDM。 PDM 是一个 Python 包和依赖管理工具。如果未安装 PDM,请参考 PDM 官方文档 进行安装。
  2. 克隆 Patche 仓库到本地:
    git clone https://github.com/jingfelix/Patche
    cd Patche
  3. 使用 PDM 安装项目依赖:
    pdm install

服务器配置

MCP 客户端需要配置以下 JSON 格式的信息来连接 Patche MCP Server。

{
  "serverName": "PatcheMCP",
  "command": "python",
  "args": ["-m", "Patche.mcp", "--repository", "<your_repository_path>"]
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义,例如 "PatcheMCP"。
  • 'command': 启动 MCP 服务器的命令,这里使用 'python'。
  • 'args': 启动命令的参数列表。
    • '"-m", "Patche.mcp"': 指定运行 Patche MCP 服务器模块。
    • '"--repository", "<your_repository_path>"': 必填参数,指定你的代码仓库的根目录的路径。Patche MCP Server 将在该目录下执行补丁操作。请将 '<your_repository_path>' 替换为实际的仓库路径。

注意: 请将 '<your_repository_path>' 替换为你实际想要进行补丁操作的代码仓库的绝对路径。例如,如果你的代码仓库在 '/home/user/my_repo',则配置应为:

{
  "serverName": "PatcheMCP",
  "command": "python",
  "args": ["-m", "Patche.mcp", "--repository", "/home/user/my_repo"]
}

基本使用方法

  1. 确保 Patche MCP Server 已按照上述配置启动并运行。
  2. 在 MCP 客户端中,配置连接到 Patche MCP Server。
  3. 使用 MCP 客户端提供的界面或命令,调用 Patche MCP Server 提供的工具 (Tools),例如:
    • 调用 'patche_config' 工具可以获取服务器配置。
    • 调用 'patche_list' 工具并提供 'patche_dir' 参数(补丁文件所在的目录)可以列出补丁文件。
    • 调用 'patche_show' 工具并提供 'patch_path' 参数(补丁文件的路径)可以查看补丁详情。
    • 调用 'patche_apply' 工具并提供 'patch_path' (补丁文件路径) 和 'target_dir' (目标目录路径) 参数可以应用补丁。还可以使用 'reverse' 参数控制是否反向应用补丁。

示例 (假设使用 MCP 客户端调用 'patche_list' 工具):

客户端发送请求 (JSON-RPC 格式,此处仅为示例,具体格式请参考 MCP 协议文档):

{
  "jsonrpc": "2.0",
  "method": "call_tool",
  "params": {
    "name": "patche_list",
    "arguments": {
      "patche_dir": "/path/to/your/patches"
    }
  },
  "id": 1
}

服务器返回响应 (JSON-RPC 格式,示例):

{
  "jsonrpc": "2.0",
  "result": [
    {
      "type": "text",
      "text": "Patche list: patch1.patch\npatch2.patch\n..."
    }
  ],
  "id": 1
}

请参考 MCP 协议文档和 Patche MCP Server 的代码,了解更多工具的参数和使用方法。

信息

分类

开发者工具