Token导航 LogoToken导航TokenDH.com
MCP Pr Agent logo
开发工具stdio官方级别未说明来源级核验

MCP Pr Agent

MCP Server

一个帮助开发者通过分析Git仓库变更、管理PR模板、提供智能模板建议和监控GitHub Actions工作流来创建更好的Pull Request的全面模型上下文协议(MCP)服务器。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
开发工具PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

davidarce

提供方

davidarce

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run server.py

详细介绍

MCP公关代理

一个全面的模型上下文协议(MCP)服务器,通过分析git存储库更改、管理PR模板、提供智能模板建议和监控GitHub Actions工作流,帮助开发人员创建更好的pull请求。

特性

🔍 Git分析

  • 变化检测:自动检测修改、添加和删除的文件
  • Diff生成:通过智能截断提供完整的git差异
  • 提交历史记录:显示相关的提交消息和统计信息
  • 分支比较:将更改与任何基分支进行比较(默认值:main)

📝 模板管理

  • 多个模板:支持7种不同的PR模板类型
  • 模板类别:错误修复、功能、文档、重构、测试、性能和安全
  • 内容管理:存储和检索完整的模板内容
  • 可定制的:易于添加或修改模板

🤖 智能建议

  • 智能地图:根据变更分析自动建议适当的模板
  • 情境感知:考虑文件类型、更改模式和关键字
  • 灵活匹配:支持更改类型的多个别名

🚀 GitHub操作集成

  • Webhook 服务器:接收并存储GitHub Actions事件
  • 工作流监控:跟踪工作流状态和结果
  • CI/CD分析:提供部署和测试结果的见解
  • 事件历史:维护GitHub Actions事件的历史记录

安装

先决条件

  • Python 3.13+
  • 紫外线 (Python包管理器)
  • Git仓库
  • MCP兼容客户端(如Claude Code)
  • (可选)用于Actions集成的GitHub存储库

设置

  1. 克隆存储库:
   git clone 
   cd mcp-pr-agent
  1. 使用uv安装依赖项:
   uv sync
  1. 运行MCP服务器:
   uv run server.py
  1. (可选)运行GitHub webhook服务器以进行GitHub Actions集成:
   uv run webhook_server.py

默认情况下,webhook服务器在端口8000上运行,并接收GitHub Actions事件。

MCP工具

1. analyze_file_changes

分析git存储库的更改,并提供全面的差异信息。

参数:

  • base_branch (str,可选):要比较的基本分支(默认值:“main”)
  • include_diff (bool,可选):包含完整的差异内容(默认值:true)
  • max_diff_lines (int,可选):要包含的最大差异行数(默认值:500)
  • working_directory (str,可选):运行git命令的目录(默认:自动检测)

退货: JSON对象包含:

  • files_changed:已修改文件的状态列表
  • statistics:差异统计摘要
  • commits:最近的提交消息
  • diff:完整的差异内容(如果需要)
  • truncated:差异是否被截断
  • total_diff_lines:差异行总数

示例用法:

# Basic usage
result = await analyze_file_changes()

# Compare against develop branch
result = await analyze_file_changes(base_branch="develop")

# Get summary without full diff
result = await analyze_file_changes(include_diff=False)

# Limit diff size
result = await analyze_file_changes(max_diff_lines=100)

2. get_pr_templates

检索所有可用的PR模板及其内容。

参数:

退货: JSON模板对象数组,包含:

  • filename:模板文件名
  • type:模板类别/类型
  • content:完整的模板内容

可用模板:

  • bug.md:Bug修复模板
  • feature.md:新功能模板
  • docs.md:文档更新模板
  • 重构.md:代码重构模板
  • test.md:测试更新模板
  • performance.md:性能改进模板
  • security.md:安全更新模板

3. suggest_template

分析变更描述,并建议最合适的公关模板。

参数:

  • changes_summary (str):描述更改的作用
  • change_type (str):变更类型(bug、特性、文档、重构、测试等)

退货: JSON对象包含:

  • recommended_template:完整的模板对象
  • reasoning:建议说明
  • template_content:即用型模板内容
  • usage_hint:模板使用说明

支持的更改类型:

  • Bug/修复:映射到bug.md模板
  • 功能/增强:映射到feature.md模板
  • 文件/文档:映射到docs.md模板
  • 重构/清理:映射到reform.md模板
  • 测试/测试:映射到test.md模板
  • 性能/优化:映射到performance.md模板
  • 安全:映射到security.md模板

4. get_recent_actions_events

检索最近通过webhook收到的GitHub操作事件。

参数:

  • limit (int,可选):要返回的最大事件数(默认值:10)

退货: GitHub Actions事件的JSON数组,包含:

  • 事件类型和时间戳
  • 工作流运行信息
  • 存储库详细信息
  • 行动成果

5. get_workflow_status

获取GitHub Actions工作流的当前状态。

参数:

  • workflow_name (str,可选):要筛选的特定工作流名称

退货: 工作流程状态对象的JSON数组,包含:

  • name:工作流名称
  • status:当前状态(排队、正在进行、已完成)
  • conclusion:最终结果(成功、失败、取消等)
  • run_number:工作流运行编号
  • updated_at:上次更新时间戳
  • html_url:链接到工作流运行

模板结构

每个模板都遵循一致的结构:

## [Template Type]

### Description

### [Template-specific sections]

### Testing
- [ ] Relevant tests added/updated
- [ ] Manual testing completed

### [Additional sections as needed]

自定义模板

模板存储在 templates/ 目录。要添加或修改模板,请执行以下操作:

  1. 创建/编辑 .md 文件在 templates/ 目录
  2. 更新 DEFAULT_TEMPLATES 在……里面 server.py 如果添加新模板
  3. 更新 TYPE_MAPPING 用于新的更改类型别名

集成示例

使用克劳德代码

# Analyze current repository changes
result = mcp.call_tool("analyze_file_changes", {
    "base_branch": "main",
    "include_diff": True
})

# Get all available templates
templates = mcp.call_tool("get_pr_templates", {})

# Get template suggestion
suggestion = mcp.call_tool("suggest_template", {
    "changes_summary": "Added user authentication system",
    "change_type": "feature"
})

工作流示例

  1. 分析变化:使用 analyze_file_changes 了解修改的内容
  2. 获取建议:使用 suggest_template 获取适当的模板建议
  3. 创建PR:使用建议的模板内容创建全面的PR描述

GitHub操作集成

Webhook 设置

要启用GitHub操作监控,您需要在GitHub存储库中设置一个webhook:

  1. 启动webhook服务器:
   uv run webhook_server.py
  1. 配置 GitHub 网络挂钩:

- 转到您的存储库设置→ 网络钩子 - 使用URL添加webhook: http://your-server:8000/webhook - 选择“工作流运行”事件 - 将内容类型设置为“application/json”

  1. 访问GitHub操作数据:
   # Get recent events
   events = mcp.call_tool("get_recent_actions_events", {"limit": 5})

   # Check workflow status
   status = mcp.call_tool("get_workflow_status", {"workflow_name": "CI"})

MCP提示

该服务器包括几个用于GitHub Actions分析的预构建提示:

  • analyze_ci_results:综合CI/CD结果分析
  • create_deployment_summary:生成部署状态摘要
  • generate_pr_status_report:完整的PR状态,包括CI/CD
  • troubleshoot_workflow_failure:帮助调试失败的工作流

配置

环境变量

  • MCP_PR_AGENT_TEMPLATES_DIR:自定义模板目录路径
  • MCP_PR_AGENT_DEFAULT_BRANCH:默认基分支(默认:“main”)
  • WEBHOOK_PORT:webhook服务器的端口(默认值:8000)

MCP配置(.MCP.json)

该项目包括 .mcp.json 用于轻松设置MCP客户端的配置文件:

{
  "mcpServers": {
    "pr-agent-actions": {
      "command": "uv",
      "args": ["run", "server.py"],
      "cwd": "/Users/David/Dev/mcp/mcp-pr-agent"
    }
  }
}

Claude代码集成

使用以下命令将此MCP服务器添加到Claude Code中:

claude mcp add pr-agent -- uv --directory  run server.py

替换 `` 带有mcp pr代理目录的完整路径。

例子:

claude mcp add pr-agent -- uv --directory /Users/username/projects/mcp-pr-agent run server.py

手动MCP客户端配置

对于其他MCP客户端,请添加到您的配置中:

{
  "mcpServers": {
    "pr-agent": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-pr-agent", "run", "server.py"]
    }
  }
}

发展

运行测试

uv run pytest test_server.py -v

添加新模板

  1. 在中创建模板文件 templates/ 目录
  2. 增添 DEFAULT_TEMPLATES 词典
  3. 将类型映射添加到 TYPE_MAPPING
  4. 更新文档

错误处理

服务器包括全面的错误处理:

  • Git命令失败
  • 缺少存储库
  • 模板文件错误
  • 无效参数

故障排除

常见问题

“Git错误”响应:

  • 确保你在git仓库中
  • 检查基础分支是否存在
  • 验证git在PATH中是否可访问

空结果:

  • 检查您是否在正确的分支上
  • 确保有变化需要分析
  • 验证基础分支比较

找不到模板:

  • 确保模板目录存在
  • 检查模板文件权限
  • 验证模板文件的格式是否正确

调试信息

analyze_file_changes 工具中包含调试信息 _debug 字段:

  • 工作目录路径
  • MCP根检测
  • 服务器进程信息

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 使用适当的模板提交拉取请求!

许可证

\[在此处添加您的许可证信息\]

支持

\[在此处添加支持联系信息\]

目录标签

目录标签

开发工具PythonClaudeGit分析本地部署PR模板管理智能建议GitHub集成

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP