Git PR MCP服务器

一个用于Git和Pull Request操作的模型上下文协议(MCP)服务器,提供仓库管理和PR工作流工具。

  • by peterj
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 peterj/git-pr-mcp

使用说明

Git PR MCP服务器

用于Git和Pull Request操作的模型上下文协议(MCP)服务器,为存储库管理和PR工作流提供工具。

内置FastMCP,默认在SSE模式下运行 0.0.0.0:8000.

特性

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

核心Git操作(在指定的存储库路径上):

  • get_git_status:获取存储库的当前git状态。
  • list_brances:列出存储库中的所有分支(包括可选的远程分支)。
  • create_pr_summary:基于git diff为pull请求创建摘要。
  • get_commit_history:获取分支的提交历史记录。
  • 使用 get_git_diff:获取提交、分支或工作目录之间的git diff。

自动PR工作流(在内部管理的“活动”存储库上运行):

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

状态管理:

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

安装

  1. 克隆此存储库:
git clone <repository-url>
cd git-pr-mcp
  1. 使用紫外线进行安装:
uv sync

用法

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

FASTMCP_HOST=0.0.0.0
FASTMCP_PORT=9999
GITHUB_TOKEN=your_github_token

快速开始

# Run with defaults (0.0.0.0:8000)
uv run python main.py

# Or run the server module directly
uv run python -m src.git_pr_mcp.server

然后,您可以访问MCP服务器 http://localhost:9999/sse.