PR Guardian MCP
Analyzes GitHub Pull Request diffs for security vulnerabilities and data leakage, with deterministic filtering for non-code changes to save costs.
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., "@PR Guardian MCP analyze PR #42 diff for security issues"
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.
PR Guardian MCP
Servidor Model Context Protocol (MCP) open-source que analisa diffs de Pull Requests do GitHub com foco em segurança e vazamento de dados.
A arquitetura prioriza economia de tokens: a maioria dos PRs (docs, CSS, formatação) é aprovada por lógica nativa TypeScript, sem chamar a LLM. Apenas mudanças em arquivos de lógica disparam análise via LangGraph + Claude 3.5 Haiku.
Arquitetura
flowchart TD
A[MCP Tool: analyze_pr_diff] --> B[LangGraph: classify]
B --> C{Filtro Determinístico}
C -->|docs / css / formatação| D[auto_approve]
C -->|.ts / .tsx / outros riscos| E[ai_analyze]
E --> F[Claude 3.5 Haiku]
F --> G[Zod Validation]
D --> G
G --> H[Resposta MCP estruturada]
subgraph Observabilidade
F -.->|trace| LS[LangSmith]
end1. Filtro Determinístico (custo zero)
Antes de qualquer chamada à API da Anthropic, o nó classify executa regras nativas em TypeScript:
Condição | Ação |
Apenas | Aprovação automática |
Diff altera somente whitespace (formatação) | Aprovação automática |
Presença de | Encaminha para IA |
Outros arquivos fora do escopo seguro | Encaminha para IA |
Por que isso importa? Em repositórios reais, uma parcela significativa dos PRs altera apenas documentação, estilos ou formatação. Enviar esses diffs para uma LLM gera:
Custo desnecessário — tokens de entrada/saída cobrados sem valor de segurança
Latência — 1–3s adicionais por PR trivial
Ruído — falsos positivos em conteúdo que não executa código
O filtro determinístico responde em microssegundos, com custo $0.00.
2. Filtro de IA (LangGraph)
Quando arquivos de lógica são detectados, o grafo aciona o nó ai_analyze:
Modelo: Claude 3.5 Haiku (
claude-3-5-haiku-20241022)Escopo: apenas riscos de segurança e vazamento de dados
Saída: JSON estruturado via
withStructuredOutput
Categorias analisadas: secret_leak, injection, auth_bypass, data_exposure, dependency_risk.
3. Validação (Zod)
Toda resposta — determinística ou da LLM — passa pelo nó validate_result e é parseada com PrAnalysisResultSchema antes de retornar ao cliente MCP. Respostas malformadas da LLM são rejeitadas com erro explícito.
4. Observabilidade (LangSmith)
Chamadas LLM são rastreadas automaticamente quando:
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=lsv2_...
LANGCHAIN_PROJECT=pr-guardian-mcpNo dashboard do LangSmith você visualiza latência, tokens consumidos e custo estimado por execução do grafo.
Related MCP server: gitlumen-mcp
Estrutura do Projeto
pr-guardian-mcp/
├── src/
│ ├── index.ts # Servidor MCP (stdio)
│ ├── graph.ts # LangGraph: classify → auto_approve | ai_analyze → validate
│ ├── schema.ts # Schemas Zod (input, output, LLM)
│ ├── deterministic-filter.ts # Lógica de filtro nativo (custo zero)
│ └── langsmith.ts # Configuração de observabilidade
├── Dockerfile
├── docker-compose.yml
├── .env.example
├── package.json
└── tsconfig.jsonPré-requisitos
Node.js ≥ 20
Chave da API Anthropic (apenas para PRs com arquivos de lógica)
Chave do LangSmith (opcional, recomendado)
Instalação
git clone https://github.com/seu-usuario/pr-guardian-mcp.git
cd pr-guardian-mcp
npm install
cp .env.example .env
# Edite .env com suas chavesUso Local
# Desenvolvimento
npm run dev
# Build + produção
npm run build
npm startConfiguração no Cursor / Claude Desktop
Adicione ao arquivo de configuração MCP:
{
"mcpServers": {
"pr-guardian-mcp": {
"command": "node",
"args": ["/caminho/absoluto/pr-guardian-mcp/dist/index.js"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-...",
"LANGCHAIN_TRACING_V2": "true",
"LANGCHAIN_API_KEY": "lsv2_...",
"LANGCHAIN_PROJECT": "pr-guardian-mcp"
}
}
}
}Ferramenta MCP
analyze_pr_diff
Parâmetro | Tipo | Obrigatório | Descrição |
|
| Sim | Diff unified do PR (formato git) |
|
| Não | Título do PR para contexto |
|
| Não | Número do PR |
Exemplo de resposta:
{
"approved": true,
"path": "deterministic",
"reason": "Alterações exclusivas em documentação (.md) ou estilos (.css) — aprovado sem chamada à LLM.",
"findings": [],
"metadata": {
"analyzedAt": "2026-07-15T18:00:00.000Z",
"filesChanged": ["README.md", "docs/guide.md"],
"tokenCostSaved": true
}
}Docker
Build e execução
docker build -t pr-guardian-mcp .
docker run -i --rm \
-e ANTHROPIC_API_KEY=sk-ant-... \
-e LANGCHAIN_TRACING_V2=true \
-e LANGCHAIN_API_KEY=lsv2_... \
-e LANGCHAIN_PROJECT=pr-guardian-mcp \
pr-guardian-mcpDocker Compose
cp .env.example .env
docker compose up --buildO container expõe o servidor via stdio (-i), compatível com clientes MCP que lançam processos filhos.
Stack
Pacote | Papel |
| Servidor MCP |
| Orquestração do fluxo Determinístico vs IA |
| Integração Claude 3.5 Haiku |
| Validação estrita de input/output |
| Tracing de custo e latência |
Licença
MIT
Available Tools
1 toolanalyze_pr_diffAnalisar diff de Pull RequestA
Analisa um diff de PR do GitHub focando em riscos de segurança e vazamento de dados. Aplica filtro determinístico (custo zero) para docs/estilos/formatação antes de acionar a LLM.
Inputs: diff (required), prTitle, prNumber. Returns: path, reason, approved, findings, +1 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
Only one tool exists, so there is no ambiguity in tool selection.
With a single tool, naming consistency is perfect as there is no pattern to compare.
The server has only one tool, which is on the low end for typical MCP servers. However, the narrow focus on PR diff analysis justifies the minimal count.
The single tool fully covers its stated purpose of analyzing PR diffs for security risks, but the server lacks additional tools for follow-up actions like reporting or issue creation.
Maintenance
Related MCP Connectors
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Risk-scan a diff, flag AI-generated-code tells, find secrets. 5 of 7 tools need no account.
Code review for diffs: rule-based checks for leaked secrets, unsafe migrations and more.
Security reviews for coding agents: diffs checked against your org policy and live infrastructure.
Related MCP Servers
AlicenseAqualityDmaintenanceEnables AI agents to review code diffs for bugs, security issues, and bad patterns, and generate fixes.4MIT
gitlumen-mcpofficial
AlicenseAqualityDmaintenanceEnables AI agents to screen GitHub repositories and pull requests for risk analysis, generating risk scores, findings, and merge-readiness signals.5MIT- AlicenseDqualityDmaintenanceEnables AI agents to perform security audits on pull request diffs by detecting secrets, dangerous code patterns, and new dependencies, outputting structured JSON for generating PR review comments.1MIT
- FlicenseNot gradedqualityBmaintenanceAutomated AI pull request code review, zero-day secret leak scanner, SQL injection detector, and 1-click suggested diff fixes for Claude Desktop & Cursor IDE.-