Skip to main content
Glama
AmaimaKhalidSethi

Multi-Server FastMCP PR Reviewer

Multi-Server FastMCP PR-Reviewer

Kostenlose Suite mit mehreren Servern nach dem Model Context Protocol (MCP) mit einem einheitlichen Gateway und einem LangGraph-gestützten automatisierten PR-Review-Agenten. Jedes verwendete Tool/API ist im kostenlosen Tarif nutzbar (GitHub PAT, Groq LLM).

Architektur

Claude Desktop / Agent
        |
        v
  FastMCP Gateway  (namespaces: code., gh., doc. — dot-separated per MCP tool-naming spec)
   /      |       \
  v       v        v
Code    GitHub   Documentation
Intel   Server   Server (Groq)
(AST+Radon)(PyGithub)
   \       |       /
    Shared Security & Audit Layer
    (API key auth, SQLite WAL, rate limiting)

Related MCP server: GitHub MCP Agent Server

Projektaufbau

mcp-pr-reviewer/
├── core/
│   └── security.py        # auth + rate limit + SQLite audit decorator
├── servers/
│   ├── code_server.py      # AST/radon static analysis (no external API)
│   ├── github_server.py    # PyGithub-backed PR/issue/commit tools
│   └── doc_server.py       # Groq-backed docstring/README/API doc generation
├── gateway/
│   └── gateway.py          # unifies all three servers under code:/gh:/doc: namespaces
├── agent/
│   └── workflow.py         # LangGraph PR-review pipeline (fetch → analyze → doc → publish)
├── data/                    # SQLite audit_log.db lives here (gitignored)
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── .env.example
└── claude_desktop_config.example.json

Einrichtung

python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -r requirements.txt

cp .env.example .env
# edit .env with your real MCP_API_KEY, GITHUB_TOKEN, GROQ_API_KEY

Laden Sie die Umgebungsvariablen, bevor Sie lokal etwas ausführen, z. B.:

export $(grep -v '^#' .env | xargs)   # macOS/Linux

Ausführung

Einzelne Server (stdio, für lokale Tests)

python servers/code_server.py
python servers/github_server.py
python servers/doc_server.py

Gateway

fastmcp run gateway/gateway.py:gateway

Docker

docker compose up --build

Integration in Claude Desktop

Kopieren Sie claude_desktop_config.example.json in Ihre Claude Desktop-Konfiguration (claude_desktop_config.json), korrigieren Sie den absoluten Pfad zu gateway/gateway.py und tragen Sie echte Anmeldedaten ein. Starten Sie Claude Desktop neu, um die Änderungen zu übernehmen.

Test-Checkliste

1. Schema-Verifikation

fastmcp inspect servers/code_server.py
fastmcp inspect servers/github_server.py
fastmcp inspect servers/doc_server.py

2. Sicherheits-/Audit-Verifikation

# Should raise 401 Unauthorized
CLIENT_API_KEY=wrong_key python -c "from servers.code_server import analyse_code; analyse_code('x = 1')"

# Inspect the WAL SQLite audit log
sqlite3 data/audit_log.db "SELECT * FROM access_log ORDER BY id DESC LIMIT 5;"

3. End-to-End-PR-Review

python -c "
import asyncio
from agent.workflow import app

async def run():
    result = await app.ainvoke({
        'repo': 'your-username/your-repo',
        'pr_number': 1
    })
    print('Review published:', result['issue_url'])

asyncio.run(run())
"

Hinweise / Dinge, die Sie vor dem produktiven Einsatz noch einmal prüfen sollten

  • core/security.py verwendet einen prozessweiten TokenBucket – jedes Tool auf einem Server teilt sich dasselbe Budget von 60/Min. Teilen Sie es in pro-Tool- oder pro-Client-Buckets auf, wenn Sie feinere Limits benötigen.

  • secure_tool wirft FastAPIs HTTPException, die nur dann sauber auf HTTP-Statuscodes abgebildet wird, wenn der von Ihnen verwendete FastMCP-Transport tatsächlich hinter FastAPI/ASGI läuft. Wenn Sie einen Server über einfaches stdio betreiben, fangen Sie dies auf der MCP-Ebene ab oder ersetzen Sie es durch eine transportgerechte Ausnahme.

  • Rotieren Sie MCP_API_KEY, GITHUB_TOKEN und GROQ_API_KEY aus der .env-Datei heraus und in einen echten Secrets Manager, bevor Sie eine nicht-lokale Bereitstellung durchführen – .env ist nur für die Entwicklung geeignet.

  • Die Code-Suche-API von GitHub ist deutlich niedriger gedeckelt als die Kern-API (30 req/min gegenüber 5.000 req/h) – search_repo_code wird unter Last zuerst diese Grenze erreichen.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Hosted MCP server for structured code review passes on human- and AI-written code. Free tier.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • One PAT, any MCP agent: Vercel, GitHub, Cloudflare, Supabase, GCP — unified dev infra gateway.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AmaimaKhalidSethi/MCP-PR-REVIEWER'

If you have feedback or need assistance with the MCP directory API, please join our Discord server