Skip to main content
Glama
TheNovaNodes

MCP GitHub PR Reviewer

by TheNovaNodes

module_type: MCP Server status: Active protocol: MCP / JSON-RPC / stdio primary_capability: Automated security reviews for GitHub PR diffs with deep fallback redundancy requires: python 3.12+, Cloudflare Workers AI token, Poolside token works_with: Google Antigravity, Telegram Agent, Cloudflare, Poolside, OpenRouter last_verified: 2026-08-21

MCP GitHub PR Reviewer

一个通用回退 MCP 服务器,提供高弹性的自动化 GitHub 拉取请求安全审查。

Related MCP server: MCP Server PR Pilot

状态与最后验证日期

状态: Active
最后验证日期: 2026-08-21

功能与不涉及的功能

功能:

  • 实现了一个暴露 audit_pr 工具给 AI 代理的 MCP 服务器。

  • 处理代码差异,并以 JSON 格式返回结构化的安全漏洞和架构反馈。

  • 自动将 LLM 请求路由并级联到 14 层故障转移管道,确保 100% 正常运行时间。

  • 在 Cloudflare Workers AI、Poolside Native 和 OpenRouter API 端点之间进行负载均衡和故障转移。

不涉及的功能:

  • 不会自动合并 PR 或对代码本身采取措施(它纯粹作为分析审计器运作)。

  • 不直接管理用于获取的 GitHub API 令牌;差异由调用代理提供。

代理为何会使用它

代理使用此 MCP 服务器,将计算量大的代码审查任务卸载给专门的外部 LLM,而无需自行管理令牌、回退逻辑或重试循环。代理只需提供差异,MCP 服务器就能保证高质量的审查结果。

架构与依赖项

架构:

  • 通用回退引擎: 一个状态机(engine.py),遍历任何配置的兼容 OpenAI 的 LLM 端点和密钥池。

  • 提供方管道(可配置): 您可以使用 FALLBACK_PROVIDERS 环境变量(JSON 数组)配置自己的级联提供方管道。

    • 示例配置: 先尝试本地 Ollama,然后是 DeepSeek,最后是 OpenRouter。

  • 旧版实验室支持: 如果 FALLBACK_PROVIDERS 为空,它会自动降级到 TheNovaNodes 实验室默认值(Cloudflare -> Poolside -> OpenRouter),使用旧版正则表达式解析。

  • MCP 协议层: 使用标准的 stdio JSON-RPC 执行 MCP 服务器(server.py)。

依赖项:

  • mcp(官方 Python SDK)

  • 标准 Python urllib(无需第三方 HTTP 客户端)

  • pytest(用于测试)

兼容性

  • Python 3.12+

  • Linux/Unix 环境

快速入门和健康检查

快速入门:

git clone https://github.com/TheNovaNodes/mcp-gh-pr-reviewer.git
cd mcp-gh-pr-reviewer
python3 -m venv .venv
source .venv/bin/activate
pip install mcp
# Ensure vault tokens are populated in /dev/shm/agent_vault/
./run_mcp.sh

健康检查: 要验证引擎初始化和 API 连接,请运行:

python3 test_fallback.py

这会触发一次模拟的 PR 差异审计,以测试级联,而不将服务器暴露给 MCP 客户端。

配置和环境变量

变量

描述

FALLBACK_PROVIDERS

提供方的 JSON 数组。示例:[{"name": "Local", "url": "http://127.0.0.1:11434/v1/chat/completions", "model": "qwen2.5-coder", "keys_env": "LOCAL_TOKENS"}]

CF_TOKENS

(旧版模式)Cloudflare 令牌和账户 ID。

PS_TOKENS

(旧版模式)Poolside API 密钥。

OR_TOKENS

(旧版模式)OpenRouter API 密钥。

完整的 MCP 工具/API 表及副作用

服务器密钥

名称

类型

平面

副作用 / 操作

universal-pr-auditor

PR 审计器(通用)

audit

data

读取差异,通过 HTTP 查询外部 LLM,返回 JSON。

安全模型与信任边界

  • 机密管理: 服务器通过 run_mcp.sh 包装脚本从 RAM 磁盘(/dev/shm/agent_vault/)动态读取机密。任何机密都不会硬编码在 Python 源代码或 git 历史中。

  • 执行: 作为标准本地进程运行,通过 stdio 通信。不会在本地暴露任何开放的网络端口。

测试与精确命令

要使用 pytest 运行测试:

python3 -m pytest test_engine.py

该测试套件测试密钥提取、解析和引擎路由逻辑,而不会消耗实际的 LLM 令牌。

操作、日志、备份/恢复、回滚

  • 操作: 服务器由 antigravity-telegram-agent 通过 run_mcp.sh 按上下文执行。

  • 日志: 引擎日志(回退、HTTP 错误)打印到 stderr,并由代理的 MCP 管理器截获。

  • 备份/恢复: 此服务器不存储任何持久状态。

  • 回滚: git checkout main && git reset --hard <hash>

通用 MCP 客户端示例

触发审计的示例 JSON-RPC 负载:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "callTool",
  "params": {
    "name": "audit_pr",
    "arguments": {
      "diff_content": "+ def bypass_auth():\n+    return True"
    }
  }
}

限制与路线图

限制:

  • OpenRouter 免费模型有严格的速率限制,可能频繁失败(引擎会优雅处理)。

  • 大于 128K 令牌的差异可能会被 LLM 提供方截断。

路线图:

  • 添加原生 GitHub PR 获取功能(目前依赖调用代理提供差异)。

相关 TheNovaNodes 模块

  • Antigravity Telegram Agent

  • Google Jules MCP modules

许可证

MIT License

Related MCP Connectors

Related MCP Servers