返回市场
GitPRMCP

GitPRMCP

作者:peterj2 星标更新:2025-06-08

项目介绍

Git PR MCP 服务器

这是一个用于 Git 操作和拉取请求(Pull Request)的 Model Context Protocol (MCP) 服务器,提供仓库管理和 PR 工作流的工具。

基于 FastMCP 构建,默认在 0.0.0.0:8000 上以 SSE 模式运行。

功能

此 MCP 服务器提供了以下工具和功能:

核心 Git 操作(针对指定的仓库路径):

  • get_git_status:获取仓库的当前 Git 状态。
  • list_branches:列出仓库中的所有分支(可选包括远程分支)。
  • create_pr_summary:根据 Git diff 创建拉取请求的摘要。
  • get_commit_history:获取分支的提交历史。
  • get_git_diff:获取两个提交、分支或工作目录之间的 Git diff。

自动化 PR 工作流(操作内部管理的“活动”仓库):

  • clone_repository:将一个 GitHub 仓库克隆到一个受管理的临时目录中,使其成为后续操作的“活动”仓库。自动清理任何先前活动仓库的临时目录。
  • create_git_branch:在活动仓库中创建一个新的分支。
  • write_file_in_repo:在活动仓库中创建或覆盖文件。
  • git_commit_changes:暂存所有更改(git add .)并将其提交到活动仓库。
  • git_push_branch:将活动仓库中的指定分支推送到其远程源。
  • create_github_pr:使用 PyGithub 库为活动仓库在 GitHub 上创建拉取请求。需要 GITHUB_TOKEN

状态管理:

  • 服务器通过 active_repo_state.json 文件维护当前“活动”克隆仓库的状态(路径、URL、拥有者、名称)。这允许在服务器重启之间保持一些持久性,尽管临时克隆目录本身可能由操作系统管理。

安装

  1. 克隆此仓库:
git clone <repository-url>
cd git-pr-mcp
  1. 使用 uv 安装:
uv sync

使用

默认情况下,服务器在 0.0.0.0:9999 上以 SSE 模式运行,并通过环境变量进行配置。这里是一个示例 .env 文件:

FASTMCP_HOST=0.0.0.0
FASTMCP_PORT=9999
GITHUB_TOKEN=your_github_token

快速开始

# 使用默认设置运行(0.0.0.0:8000)
uv run python main.py

# 或直接运行服务器模块
uv run python -m src.git_pr_mcp.server

然后可以在 http://localhost:9999/sse 访问 MCP 服务器。