Skip to main content
Glama
AmaimaKhalidSethi

Multi-Server FastMCP PR Reviewer

Multi-Server FastMCP PR Reviewer

Бесплатный набор серверов Model Context Protocol (MCP) с единым шлюзом и автоматизированным агентом ревью PR на LangGraph. Все используемые инструменты/API доступны на бесплатном тарифе (GitHub PAT, Groq LLM).

Архитектура

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

Структура проекта

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

Настройка

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

Загрузите переменные окружения перед локальным запуском, например:

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

Запуск

Отдельные серверы (stdio, для локального тестирования)

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

Шлюз

fastmcp run gateway/gateway.py:gateway

Docker

docker compose up --build

Интеграция с Claude Desktop

Скопируйте claude_desktop_config.example.json в конфиг Claude Desktop (claude_desktop_config.json), исправьте абсолютный путь до gateway/gateway.py и укажите реальные учётные данные. Перезапустите Claude Desktop, чтобы изменения вступили в силу.

Чек-лист тестирования

1. Проверка схемы

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

2. Проверка безопасности / аудит

# 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. Сквозное ревью PR

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

Примечания / что стоит перепроверить перед использованием в продакшене

  • bucket в core/security.py — это единый для процесса TokenBucket: все инструменты на сервере делят один лимит 60/мин. Разделите на отдельные корзины для каждого инструмента или клиента, если нужны более точные ограничения.

  • secure_tool вызывает HTTPException из FastAPI, которая корректно отображается в HTTP-статусы только если используемый транспорт FastMCP работает поверх FastAPI/ASGI. Если сервер запущен через обычный stdio, перехватывайте это исключение на уровне MCP или замените его на подходящее для транспорта.

  • Вынесите MCP_API_KEY, GITHUB_TOKEN и GROQ_API_KEY из .env в настоящий менеджер секретов перед любым нелокальным развёртыванием — .env подходит только для разработки.

  • API поиска кода GitHub имеет гораздо более низкий лимит, чем основной API (30 запросов/мин против 5 000 запросов/ч) — search_repo_code упрётся в этот потолок первым при нагрузке.

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