Pull Request分析工具

一个基于Model Context Protocol (MCP)的服务器,用于分析git仓库的变化,通过对比基础分支来提供文件变更分析、差异统计和提交历史等功能。

  • by mfrancisc
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 mfrancisc/pull-request-mcp-server

使用说明

拉取请求分析器MCP服务器

一种模型上下文协议(MCP)服务器,通过与基础分支进行比较来分析git存储库的更改。

特性

  • 文件更改分析:列出所有修改、添加和删除的文件
  • 差异统计:显示更改的摘要统计信息
  • 提交历史:显示基和当前分支之间的提交
  • 全差分输出:可选的带有智能截断的详细差异
  • 可配置基础分支:与任何分支进行比较(默认:main)
  • 工作目录支持:分析任何目录中的存储库

建筑

推荐:使用Makefile

# Build with timestamp version (builds to bin/pull-request-analyzer)
make build

# Clean build artifacts
make clean

# See all available targets
make help

用法

运输方式

服务器支持多种传输模式:

# HTTP mode (default) - Best for web applications and API access
./bin/pull-request-analyzer -transport http -addr :8080

# SSE mode - Server-Sent Events for real-time updates
./bin/pull-request-analyzer -transport sse -addr :8080

# stdio mode - For MCP client integration (Claude Desktop, etc.)
./bin/pull-request-analyzer -transport stdio

可用的MCP工具

服务器提供以下工具:

工具名称 描述 关键参数
analyze-file-changes 通过与基本分支进行比较来分析git存储库中的文件更改 baseBranch (默认:“main”), includeDiff (默认值:false), maxDiffLines (默认值:500), workingDirectory (可选)
list-pr-templates 列出可用的PR模板及其内容 无
suggest-template 根据变更分析和变更类型建议最合适的PR模板 changes_summary (必填), change_type (必填)

使用示例

HTTP模式(默认)

# Start HTTP server
./bin/pull-request-analyzer -transport http -addr :8080

# The server will be accessible at http://localhost:8080
# Use with MCP clients that support HTTP transport

SSE模式

# Start SSE server
./bin/pull-request-analyzer -transport sse -addr :8080

# Connect with SSE clients at http://localhost:8080
# Provides real-time streaming updates

标准模式

# Start stdio server (for MCP clients like Claude Desktop)
./bin/pull-request-analyzer -transport stdio

# Add to your MCP client configuration:
# {
#   "mcpServers": {
#     "pull-request-analyzer": {
#       "command": "/path/to/bin/pull-request-analyzer",
#       "args": ["-transport", "stdio"]
#     }
#   }
# }

需求

  • 转到1.25或更高版本
  • Git已安装并在PATH中可用
  • 存储库必须是有效的git存储库
  • 存储库中必须存在基本分支

全部

计划在未来版本中推出的功能:

  • 自定义模板文件夹:能够为本地文件夹提供自定义模板
  • Git回购模板:支持基于git repo的模板
  • GitHub公关集成:在GitHub上打开PR的工具