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

고장 복원력이 뛰어난 자동 GitHub Pull Request 보안 리뷰를 제공하는 범용 폴백 MCP 서버

Related MCP server: MCP Server PR Pilot

상태 및 최종 검증 날짜

상태: Active
최종 검증 날짜: 2026-08-21

제공 기능 / 미제공 기능

제공 기능:

  • AI 에이전트에 audit_pr 도구를 노출하는 MCP 서버를 구현합니다.

  • 코드 diff를 처리하고 구조화된 보안 취약점 및 아키텍처 피드백을 JSON 형식으로 반환합니다.

  • 14계층 장애 조치 파이프라인을 통해 LLM 요청을 자동으로 라우팅하고 캐스케이드하여 100% 가동 시간을 보장합니다.

  • Cloudflare Workers AI, Poolside Native, OpenRouter API 엔드포인트 간에 로드 밸런싱 및 장애 조치를 수행합니다.

미제공 기능:

  • PR을 자동으로 병합하거나 코드 자체에 조치를 취하지 않습니다(순수하게 분석적 감사자 역할만 수행).

  • 가져오기를 위한 GitHub API 토큰을 직접 관리하지 않으며, diff는 호출 에이전트가 제공할 것으로 예상합니다.

에이전트가 이 서버를 사용하는 이유

에이전트는 토큰 관리, 폴백 로직, 재시도 루프를 직접 처리하지 않고도 계산량이 많은 코드 리뷰 작업을 전문 외부 LLM에 오프로드하기 위해 이 MCP 서버를 사용합니다. 에이전트는 diff만 제공하면 MCP 서버가 고품질 리뷰를 보장합니다.

아키텍처 및 종속성

아키텍처:

  • 범용 폴백 엔진(Universal Fallback Engine): 구성된 모든 OpenAI 호환 LLM 엔드포인트와 키 풀을 순회하는 상태 머신(engine.py).

  • 공급자 파이프라인(구성 가능): FALLBACK_PROVIDERS 환경 변수(JSON 배열)를 사용하여 자체 캐스케이딩 공급자 파이프라인을 구성할 수 있습니다.

    • 구성 예시: 로컬 Ollama를 먼저 시도한 다음 DeepSeek, 마지막으로 OpenRouter를 시도합니다.

  • 레거시 랩 지원: FALLBACK_PROVIDERS가 비어 있으면 레거시 정규식 파싱을 사용하여 자동으로 TheNovaNodes 랩 기본값(Cloudflare -> Poolside -> OpenRouter)으로 대체됩니다.

  • MCP 프로토콜 계층: MCP 서버 실행을 위해 표준 stdio JSON-RPC를 사용합니다(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

이 명령은 서버를 MCP 클라이언트에 노출하지 않고 캐스케이드를 테스트하기 위해 시뮬레이션된 PR diff 감사를 트리거합니다.

구성 및 환경 변수

변수

설명

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

diff를 읽고 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 토큰보다 큰 diff는 LLM 공급자에 의해 잘릴 수 있습니다.

로드맵:

  • 기본 GitHub PR 가져오기 기능 추가(현재는 호출 에이전트가 diff를 제공하는 방식에 의존).

관련 TheNovaNodes 모듈

  • Antigravity Telegram Agent

  • Google Jules MCP 모듈

라이선스

MIT License

Related MCP Connectors

Related MCP Servers