使用说明

项目简介

Git 变更助理 MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端。它旨在通过标准化的方式向 LLM 客户端(如 Claude.app, Inspector 等)提供您当前 Git 仓库的变更信息,并暴露用于生成 PR 描述、提交信息和进行代码评审的工具。LLM 客户端可以调用这些工具获取数据和指令,从而自动化或辅助完成与代码变更相关的文档和分析工作。

主要功能点

  • 获取 Git 变更差异 (Diff): 能够获取工作目录、暂存区或指定分支与主分支之间的代码变更差异。
  • 提供 PR 摘要工具: 为 LLM 提供生成 Pull Request 描述所需的 Git Diff 数据及相应的格式化指令。
  • 提供提交信息生成工具: 为 LLM 提供生成遵循 Conventional Commits 规范的提交信息所需的 Git Diff 数据及相应的格式化指令。
  • 提供代码评审工具: 为 LLM 提供进行代码评审所需的 Git Diff 数据及详细的评审指令,侧重于性能、安全和代码质量。
  • 通过 MCP 协议与 LLM 客户端通信: 以标准化的方式响应 LLM 客户端的请求,传输数据和工具能力声明。

安装步骤

本项目推荐使用 'uv' 工具进行安装和运行。

  1. 安装 'uv': 如果您尚未安装 'uv',请根据 uv 官方文档 的指引进行安装。
  2. 克隆仓库: 将 'mcp-pr-pilot' 仓库克隆到您的本地机器上。
    git clone https://github.com/0010aor/mcp-pr-pilot.git
    cd mcp-pr-pilot
  3. 运行服务器: 在仓库根目录下使用 'uv' 命令直接运行服务器脚本。'uv' 会自动创建虚拟环境并安装依赖。
    uv run mcp-server-pr-pilot

服务器配置 (用于 MCP 客户端)

MCP 服务器需要由 MCP 客户端(如 Claude.app 或 MCP Inspector)来启动和通信。您需要在您的 MCP 客户端配置中添加一个条目,指向这个服务器的可执行命令及其参数。具体的配置格式和位置取决于您的 MCP 客户端。

配置通常包含服务器的名称(您可以自定义,例如 '"pr-pilot"')、启动服务器所需的 'command' (命令) 和 'args' (参数列表)。

  • 'command': 用于启动服务器的命令,例如 'uv' 或 'python',取决于您的安装方式。如果您在 Windows 上通过 WSL 运行服务器,可能需要使用 'wsl.exe' 作为命令。
  • 'args': 传递给 'command' 的参数列表。对于本项目,核心参数包括:
    • '--directory /path/to/mcp-servers/mcp-pr-pilot': 指定项目根目录的路径。请将 '/path/to/mcp-servers/mcp-pr-pilot' 替换为您实际克隆仓库的路径。 这个路径的格式取决于您的操作系统和运行环境(Unix/Windows/WSL)。
    • 'run mcp-server-pr-pilot': 告诉 'uv' 运行项目内定义的 'mcp-server-pr-pilot' 入口点。
    • 或者如果您使用 'python -m' 方式,args 可能是 '-m mcp_pr_pilot'。

重要提示:

  • 请根据您实际运行服务器的环境(例如 Linux/macOS/WSL 或 Windows)调整 '--directory' 参数中的路径格式(使用 '/' 或 '')。
  • 如果在 Windows 上通过 WSL 运行服务器,'command' 应是 'wsl.exe','uv' 的路径(如果不在 WSL 的 PATH 中)和 '--directory' 的路径都应是 WSL 环境下的路径(例如 '/mnt/c/users/...' 或 '/home/user/...')。
  • 如果在使用过程中遇到 '.venv' 相关的环境冲突问题(特别是在 Windows 和 WSL 之间切换时),可以尝试删除项目根目录下的 '.venv' 文件夹,让 'uv run' 重新创建。

配置完成后,您的 MCP 客户端将能够检测到这个 MCP 服务器,并可以使用其提供的工具。

基本使用方法

一旦 MCP 服务器在客户端中成功配置并启动,LLM 客户端(例如 Claude.app)就能够“发现”服务器提供的工具('summarize_pr', 'generate_commit', 'review_changes')。

当您在 LLM 客户端中进行与当前 Git 仓库变更相关的对话或任务时,LLM 可以自动识别并调用这些工具。例如,您可以向 LLM 提出类似“帮我写一个这个分支的 PR 描述”或“请评审一下我暂存区的代码”的请求。LLM 会根据对话意图和服务器提供的工具能力,自动调用相应的工具(如 'summarize_pr' 或 'review_changes'),服务器将获取 Git Diff 数据并返回给 LLM。LLM 再利用这些数据和服务器提供的指令来生成最终的文本(PR 描述、提交信息或评审意见)。用户直接与 LLM 交互即可,无需手动执行 Git 命令或处理 Diff 数据。

信息

分类

开发者工具