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

Pr Agent MCP Server

MCP Server

一个帮助开发者分析代码变更、推荐PR模板并与GitHub Actions和Slack集成的开发工具。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
代码分析CI/CDPythonClaudeGitHubClaude

安装说明

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

作者 / 组织

Devpatel1901

提供方

Devpatel1901

最后核验

2026/5/17 20:22

运行时

Python

快速接入

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

命令预览

uv run pytest test_server.py -v

详细介绍

模块1:基本MCP服务器 - 起始代码

欢迎来到模块1!在本模块中,你将构建一个基本的MCP服务器,它通过分析代码更改并建议合适的模板,帮助开发者创建更优质的拉取请求。

你的任务

使用三个工具实现一个MCP服务器:

  1. 分析文件更改 - 获取git diff信息和已更改的文件
  2. 获取采购请求模板 - 列出可用的PR模板
  3. 建议模板 - 允许克劳德建议最合适的模板

设置

1. 安装 uv

请按照官方安装指南进行操作,指南地址为:https://docs.astral.sh/uv/getting-started/installation/

2. 安装依赖项

# Install all dependencies
uv sync

# Or install with dev dependencies for testing
uv sync --all-extras

3. 开始实施!

开放 server.py 并按照TODO注释来实现每个工具。

起始代码包含返回“未实现”错误的存根实现。这使您能够:

  • 立即运行服务器
  • 用Claude测试你的设置
  • 将每个存根替换为您的实际实现
  • 查看有关每个工具应执行任务的有用提示

设计理念

您的工具不应基于文件扩展名或模式使用僵化的规则,而应向Claude提供原始的git数据,让Claude的智能来决定:

  • 正在做出什么样的改变
  • 哪个模板最合适
  • 如何根据特定更改自定义模板

测试您的实现

  1. 运行单元测试:
   uv run pytest test_server.py -v
  1. 在Claude代码中配置MCP服务器:
   # Add the MCP server
   claude mcp add pr-agent -- uv --directory /absolute/path/to/module1/starter run server.py

   # Verify it's configured
   claude mcp list
  1. 在Git仓库中做一些更改,然后请Claude分析你的更改并建议一个PR(Pull Request)模板

需要帮助吗?

  • 检查解决方案中的内容 ../solution/ 如果你遇到难题
  • 记住:目标是为Claude提供它所需的数据,而不是自己实现复杂的逻辑

模块2:GitHub Actions 集成

此模块为PR Agent增加了GitHub Actions webhook集成以及MCP提示功能,以实现标准化的CI/CD工作流。

模块2中新增的功能

  1. GitHub Actions 工具

- get_recent_actions_events() - 查看最近的Webhook事件 - get_workflow_status() - 检查工作流程状态

  1. MCP 提供 CI/CD 提示/引导:

- analyze_ci_results - 全面的CI/CD分析 - create_deployment_summary - 便于团队部署的更新 - generate_pr_status_report - 组合代码和CI/CD报告 - troubleshoot_workflow_failure - 系统化的调试指南

  1. Webhook 服务器

- 在端口8080上运行的独立脚本 - 接收 GitHub Actions 事件 - 存储事件于 github_events.json 以便MCP服务器读取

安装

# From the solution directory
uv sync

设置 Cloudflare 隧道

要在本地接收GitHub的webhooks,您需要设置Cloudflare Tunnel(cloudflared):

步骤1:安装cloudflared

macOS:

brew install cloudflared

Windows: 从以下地址下载Windows安装程序: https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.msi 的中文翻译可以是:“https://github.com/cloudflare/cloudflared 发布的最新版本下载地址:cloudflared-windows-amd64.msi”。不过,通常我们不会直接翻译网址,而是说明其含义或用途。所以,也可以简化为:“Cloudflare 的 cloudflared 工具的最新 Windows AMD64 位 MSI 安装包下载链接”

Linux:

# For Debian/Ubuntu (amd64)
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

# For other Linux distros, download the appropriate binary:
# https://github.com/cloudflare/cloudflared/releases/latest

步骤2:启动隧道

# This creates a public URL that forwards to your local webhook server
cloudflared tunnel --url http://localhost:8080

你会看到类似这样的输出:

Your quick tunnel has been created! Visit it at:
https://random-name-here.trycloudflare.com

步骤3:配置GitHub Webhook

  1. 前往你的GitHub仓库 → 设置 → 通知(或“网络钩子”)
  2. 点击“添加Webhook”
  3. 设定 有效载荷URL 收件人: https://your-tunnel-url.trycloudflare.com/webhook/github
  4. 设定;套装;一组 内容类型 收件人: application/json
  5. 选择事件:

- 工作流运行 - 检查运行情况 - 或者选择“发送给我全部内容”

  1. 点击“添加Webhook”

运行服务器

用于开发

# Terminal 1: Start the webhook server
python webhook_server.py

# Terminal 2: Start Cloudflare Tunnel (if testing with real GitHub)
cloudflared tunnel --url http://localhost:8080

# Terminal 3: Start the MCP server
uv run server.py

与克劳德·科德一起

  1. 添加到Claude代码设置中:
{
  "pr-agent-actions": {
    "command": "uv",
    "args": ["run", "server.py"],
    "cwd": "/path/to/github-actions-integration/solution"
  }
}
  1. 重启Claude代码
  2. 在另一个终端中,启动 webhook 服务器: python webhook_server.py
  3. (可选)如果使用真实的GitHub webhooks进行测试,则启动Cloudflare Tunnel

测试Webhooks

手动测试

# Send a test webhook
curl -X POST http://localhost:8080/webhook/github \
  -H "Content-Type: application/json" \
  -H "X-GitHub-Event: workflow_run" \
  -d '{
    "action": "completed",
    "workflow_run": {
      "id": 123456789,
      "name": "CI Tests",
      "head_branch": "main",
      "run_number": 42,
      "status": "completed",
      "conclusion": "success",
      "html_url": "https://github.com/user/repo/actions/runs/123456789",
      "updated_at": "2024-01-01T10:00:00Z"
    },
    "repository": {
      "full_name": "user/repo"
    },
    "sender": {
      "login": "test-user"
    }
  }'

与克劳德·科德一起

设置好webhooks并推送提交后:

  1. 查看最近的事件:

- 问:“我们收到了哪些 GitHub Actions 事件?” - 克劳德将使用 get_recent_actions_events()

  1. 分析CI状态

- 使用提示:“分析CI结果” - 克劳德将检查工作流程并提供见解

  1. 创建部署概要:

- 使用提示:“创建部署摘要” - 克劳德将进行一次团队友好的更新格式调整

模块结构

  • server.py - 主MCP服务器,配备工具和提示
  • webhook_server.py - 用于存储事件的独立Webhook服务器
  • github_events.json - 存储webhook事件的文件(自动创建)
  • pyproject.toml - 两台服务器的依赖项
  • README.md - 这个文件

下一步行动

  • 完成模块中的练习
  • 尝试不同的提示工作流程
  • 继续进入模块3,了解Hugging Face Hub的集成

模块3:Slack通知 - 完整解决方案

这是模块3的完整实现,展示了如何通过Slack集成MCP工具和提示来促进团队沟通。

这实现了什么

此解决方案对模块1和模块2进行了扩展,增加了:

  1. send_slack_notification 工具 - 通过Webhook向Slack发送格式化消息,并进行适当的错误处理
  2. format_ci_failure_alert 提示 - 使用Slack Markdown创建丰富的失败警报
  3. format_ci_success_summary 提示 - 创建成功部署的庆祝信息

设置与使用

  1. 安装依赖项:
   uv sync
  1. 设置Slack Webhook:
   export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
  1. 启动服务:
   # Terminal 1: Webhook server
   python webhook_server.py

   # Terminal 2: MCP server
   uv run server.py

   # Terminal 3: Cloudflare tunnel (optional)
   cloudflared tunnel --url http://localhost:8080

测试

看见 manual_test.md 用于使用curl命令全面测试GitHub webhook事件的模拟指南。

关键学习成果

此解决方案展示了所有MCP(机器控制协议)原语如何协同工作,以实现现实世界中的团队自动化。

目录标签

目录标签

代码分析CI/CDPythonClaudeGitHub本地部署PR模板GitHub集成Slack通知

支持客户端

Claude

接入字段

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

stdio

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

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP