Skip to main content
Glama
AmaimaKhalidSethi

Multi-Server FastMCP PR Reviewer

Revisor de PR Multi-Servidor FastMCP

Suite de Protocolo de Contexto de Modelo (MCP) multi-servidor sin costo, con una puerta de enlace unificada y un agente automatizado de revisión de PR basado en LangGraph. Cada herramienta/API utilizada es elegible para el nivel gratuito (PAT de GitHub, LLM de Groq).

Arquitectura

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

Estructura del proyecto

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

Configuración

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

Carga las variables de entorno antes de ejecutar cualquier cosa localmente, por ejemplo:

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

Ejecución

Servidores individuales (stdio, para pruebas locales)

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

Puerta de enlace

fastmcp run gateway/gateway.py:gateway

Docker

docker compose up --build

Integración con Claude Desktop

Copia claude_desktop_config.example.json en la configuración de tu Claude Desktop (claude_desktop_config.json), corrige la ruta absoluta a gateway/gateway.py y completa las credenciales reales. Reinicia Claude Desktop para que lo detecte.

Lista de verificación de pruebas

1. Verificación de esquema

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

2. Verificación de seguridad/auditoría

# 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. Revisión de PR de extremo a extremo

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())
"

Notas / aspectos a verificar antes de confiar en esto en producción

  • El bucket de core/security.py es un TokenBucket único a nivel de proceso — cada herramienta en un servidor comparte el mismo presupuesto de 60/min. Divídelo en buckets por herramienta o por cliente si necesitas límites más detallados.

  • secure_tool lanza HTTPException de FastAPI, que solo se asigna correctamente a códigos de estado HTTP si el transporte FastMCP que estás ejecutando realmente está detrás de FastAPI/ASGI. Si ejecutas un servidor sobre stdio simple, captura esto en la capa MCP o reemplázalo con una excepción adecuada para el transporte.

  • Rota MCP_API_KEY, GITHUB_TOKEN y GROQ_API_KEY fuera de .env y colócalos en un gestor de secretos real antes de cualquier implementación no local — .env está bien solo para desarrollo.

  • La API de búsqueda de código de GitHub tiene un límite mucho más bajo que la API principal (30 solicitudes/min frente a 5,000 solicitudes/hora) — search_repo_code alcanzará ese límite primero bajo carga.

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