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 "Deploy 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 deployed
Maintenance
Related MCP Connectors
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP 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.1 npmMIT
- AlicenseBqualityCmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
- FlicenseNot gradedqualityCmaintenanceMulti-model agent orchestration MCP server that enables plan-code-review-deliver pipelines with configurable providers and models.-

ThinkReview MCPofficial
AlicenseNot gradedqualityAmaintenanceHosted MCP server that enables AI code reviews on GitHub, GitLab, Azure DevOps, and Bitbucket PR/MR URLs via a single tool (review_url_code), integrating with Cursor, Claude Code, Claude Desktop, and GitHub Copilot through OAuth or Bearer token authentication.1MIT