Multi-Server FastMCP PR Reviewer
Provides containerized deployment of the MCP server suite via Docker and docker-compose files.
Provides tools for interacting with GitHub's API, enabling PR/issue/commit operations and automated PR review workflows through PyGithub.
Provides tools for static code analysis using Python's AST module and Radon for code complexity metrics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Multi-Server FastMCP PR Reviewerreview pull request #1 in my repository"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Multi-Server FastMCP PR Reviewer
Zero-cost, multi-server Model Context Protocol (MCP) suite with a unified gateway and a LangGraph automated PR-review agent. Every tool/API used is free-tier eligible (GitHub PAT, Groq LLM).
Architecture
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
Project layout
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.jsonSetup
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_KEYLoad the env vars before running anything locally, e.g.:
export $(grep -v '^#' .env | xargs) # macOS/LinuxRunning
Individual servers (stdio, for local testing)
python servers/code_server.py
python servers/github_server.py
python servers/doc_server.pyGateway
fastmcp run gateway/gateway.py:gatewayDocker
docker compose up --buildClaude Desktop integration
Copy claude_desktop_config.example.json into your Claude Desktop config
(claude_desktop_config.json), fix the absolute path to gateway/gateway.py,
and fill in real credentials. Restart Claude Desktop to pick it up.
Testing checklist
1. Schema verification
fastmcp inspect servers/code_server.py
fastmcp inspect servers/github_server.py
fastmcp inspect servers/doc_server.py2. Security / audit verification
# 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())
"Notes / things to double-check before you rely on this in production
core/security.py'sbucketis a single process-wideTokenBucket— every tool across a server shares the same 60/min budget. Split into per-tool or per-client buckets if you need finer-grained limits.secure_toolraises FastAPI'sHTTPException, which only maps cleanly to HTTP status codes if the FastMCP transport you're running actually sits behind FastAPI/ASGI. If you run a server over plain stdio, catch this at the MCP layer or replace it with a transport-appropriate exception.Rotate
MCP_API_KEY,GITHUB_TOKEN, andGROQ_API_KEYout of.envand into a real secrets manager before any non-local deployment —.envis fine for dev only.GitHub's code search API is capped much lower than the core API (30 req/min vs 5,000 req/hr) —
search_repo_codewill hit that ceiling first under load.
This server cannot be installed
Maintenance
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
- Alicense-qualityCmaintenanceMCP server that equips AI agents with dev workflow tools including GitHub project management, conventional commits, visual regression testing, Jira/Confluence integration, and a persistent memory knowledge graph.25MIT
- AlicenseBqualityAmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
- Flicense-qualityDmaintenanceAn MCP server that automates pull request reviews using multiple LLM providers (OpenAI, Claude, Gemini, Groq, Perplexity) and supports GitHub and Bitbucket with real-time webhook integration and interactive AI assistant commands.1
- Flicense-qualityCmaintenanceMulti-model agent orchestration MCP server that enables plan-code-review-deliver pipelines with configurable providers and models.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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