GitHub MCP Pro🚀
用于GitHub工作流的MCP服务器:自动PR审查、存储库感知代码生成和问题分类。
特性
✅ 智能公关评论:在更改的代码中查找可操作的问题,并发布PR摘要评论\ ✅ 棉绒风格调查结果: critical/major/minor/info 严重性桶,包含每个发现的详细信息\ ✅ 可点击的代码链接:发现包括指向文件的直接GitHub链接+精确行\ ✅ 内联PR注释:Lint调查结果也以内联评论的形式发布在 Files changed\ ✅ 公关风险评分:每个PR的风险评分(0-100)、级别和合并清单\ ✅ PR自动执行:GitHub Actions在每次PR更新时都会运行审查+风险工具\ ✅ 提交自动执行:打开 push 要分支,如果存在打开的PR,工具会自动运行\ ✅ 无PR提交反馈:打开 push 没有PR,分支提交分析会自动发布\ ✅ 质量门:在以下情况下自动检查失败 critical 发现被发现\ ✅ 问题分类:使用关键字检测自动标记(错误/功能/文档/优先级)\ ✅ 代码模板:React组件、钩子、API路由生成
快速开始
本地开发
# Get GitHub token: https://github.com/settings/tokens (scopes: repo, workflow)
docker run -p 8000:8000 \
-e GITHUB_TOKEN=ghp_your_token_here \
stefanodo/github-mcp-pro
# Test with inspector
npx @modelcontextprotocol/inspector http://localhost:8000/mcpClaude桌面集成
增添 claude_desktop_config.json:
{
"mcpServers": {
"github-pro": {
"url": "https://stefano-mcp-pro.fly.dev/mcp",
"transport": "http"
}
}
}可用工具
review_pr
审查pull请求,发布摘要注释,并创建内联lint注释。
review_pr(repo="owner/repo", pr_id=123)
# Returns: "✅ PR #123 reviewed: ... suggestions and ... lint findings reported (... inline comments created)."自然语言提示示例:
Review PR 123 in owner/repo with github-pro.generate_code
根据提示关键字生成代码模板。
generate_code(repo="owner/repo", path="src/App.js", prompt="Create login form")
# Returns: Generated React component with validation自然语言提示示例:
With github-pro, generate code for owner/repo at src/App.js to create a login form with validation.triage_issue
根据内容对GitHub问题进行分类并应用标签。
triage_issue(repo="owner/repo", issue_id=45)
# Returns: "✅ Issue #45 triaged: Labels: bug, priority:high ..."自然语言提示示例:
Triage issue 45 in owner/repo using github-pro.assess_pr_risk
对拉取请求风险进行评分,并返回一份可操作的审查清单(聊天端输出)。
assess_pr_risk(repo="owner/repo", pr_id=123)
# Returns: "Risk score: 62/100 (high), key risk factors, and merge checklist"自然语言提示示例:
Assess risk for PR 123 in owner/repo with github-pro.端到端自然语言示例(无curl)
在启用MCP的聊天客户端中直接使用这些提示:
With github-pro, review PR 123 in owner/repo and then assess the PR risk.In owner/repo, triage issue 45 and then review PR 123 with github-pro.Use github-pro to generate a React login component at src/components/Login.tsx in owner/repo, then review PR 123 and evaluate its risk.Run the full flow with github-pro for owner/repo: triage issue 45, review PR 123, and assess PR risk.技术栈
- 框架:FastMCP(Python 3.11)
- API:PyGithub
- 部署:Fly.io(巴黎地区)
- 协议:MCP 2025-11-25
定价
- 免费层:具有速率限制的核心功能
- 优点:每月9欧元-无限通话、多组织支持、优先支持
发展
# Clone
git clone https://github.com/stefanodo/github-mcp-pro
cd github-mcp-pro
# Setup
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Run
python main.py安全加固
- 永远不要泄露秘密。仅将令牌保存在本地
.env或平台秘密商店。 - 旋转任何暴露的物体
GITHUB_TOKEN立即。 - 对于公共部署,需要MCP承载身份验证:
# required for GitHub API calls
GITHUB_TOKEN=
# enable MCP endpoint protection
MCP_AUTH_TOKEN=
REQUIRE_MCP_AUTH=true
# runtime bind (for containers/platforms)
HOST=0.0.0.0
PORT=8000- 然后,客户呼叫必须发送
Authorization: Bearer. - 使用
.env.example作为本地安全设置的模板。
冒烟测试
- 使用 SMOKE_TEST.md 用于以下内容的复制/粘贴检查
initialize,tools/list,triage_issue,以及review_pr.
安全测试覆盖率
- 在本地运行以安全为重点的回归测试:
python -m unittest discover -s tests -p 'test_*.py'- 这些测试涵盖了启动保护、令牌编校、静态令牌验证和
scripts/security_selfcheck.py执行。
本地质量门(预承诺)
- 安装本地挂钩工具:
python -m pip install pre-commit ruff bandit detect-secrets- 安装
gitleaks要么作为本地二进制文件,要么使用Docker回退:
# Option A: binary (if package manager available)
gitleaks version
# Option B: Docker fallback (no local gitleaks binary required)
docker --version- 安装挂钩:
pre-commit install- 在本地运行全闸门:
pre-commit run --all-files- 当添加有意的类似秘密的装置/模板时,刷新秘密基线:
detect-secrets scan > .secrets.baseline发布清单(README与代码)
在每次发布之前,验证此快速检查表:
- 端点路径与运行时匹配(
/mcp本地和生产)。 - 记录的工具匹配
tools/list准确输出。 - 工具描述/示例与实际行为相匹配
main.py(输入+输出)。 - 文档中的工作流触发器/权限匹配
.github/workflows/auto-pr-tools.yml. - 文档中的质量门规则和状态名称与工作流上下文匹配。
- 文档中的MCP协议版本匹配
initialize回应。 - 文档中的冒烟测试命令无需手动编辑即可运行。
PR自动化(无手动触发)
- 工作流程:
- 触发:
- pull_request (opened, reopened, synchronize, ready_for_review) - push 关于非-main 分支
- 行为:
- 自动跳过PR草稿 - 跑动 review_pr 自动(摘要+内联lint注释) - 跑动 assess_pr_risk 自动(发布/更新单个风险评论) - 开 push 没有打开的PR,运行提交范围检查并自动发布提交反馈 - 出版 github-mcp-pro/quality-gate 存在关键发现时的状态和失败工作流 - 出版 github-mcp-pro/branch-feedback 推送反馈状态
部署您自己的
# Install Fly CLI
curl -L https://fly.io/install.sh | sh
# Deploy
flyctl launch --no-deploy
flyctl secrets set GITHUB_TOKEN=ghp_xxx
flyctl deploy许可证
麻省理工学院-参见 许可证
支持
- 问题:
- 安全: 安全.md
- MCP注册表:即将推出
- MCPMarket:待批准
如果此项目有助于您的工作流程,请考虑在仓库中担任主角。
