Skip to main content
Glama
bpinheiromg

DevReview MCP Server

by bpinheiromg

DevReview

Ferramenta de code review assistida por IA — projeto base do Curso 5: MCP, Conectando o Agent ao Mundo Real.

Stack

  • Frontend: React 18, TypeScript, Vite, TailwindCSS, shadcn/ui, Redux Toolkit

  • Backend (construído durante o curso): Node.js, @modelcontextprotocol/sdk, Zod

  • Banco de dados: Supabase (PostgreSQL)

Related MCP server: Azure DevOps MCP Server

Pré-requisitos

  • Node.js 20+

  • npm 10+

  • Supabase CLI (npm install -g supabase)

Como rodar

1. Frontend (React App)

# Instalar dependências
npm install

# Iniciar o Supabase local
npx supabase start

# Aplicar migrations e seed data
npx supabase db reset

# Copiar variáveis de ambiente
cp apps/web/.env.example apps/web/.env

# Iniciar o frontend
npm run dev

O app abre em http://localhost:5173. O Supabase Studio fica em http://localhost:54323.

2. MCP Server (DevReview MCP)

O MCP Server expõe ferramentas para code review via Model Context Protocol (STDIO).

# Entrar no diretório do MCP Server
cd apps/mcp-server

# Instalar dependências (se não feito via workspace)
npm install

# Build do TypeScript
npm run build

# Rodar o servidor manualmente (para testes)
node build/index.js

Variáveis de Ambiente (apps/mcp-server/.env)

SUPABASE_URL=http://localhost:54321
SUPABASE_SERVICE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Use as credenciais do npx supabase start (Service Role Key).


🔍 MCP Inspector

O MCP Inspector é uma UI web para explorar e testar tools, resources e prompts do servidor MCP.

Como rodar

# Na raiz do projeto
npm run inspector

# Ou diretamente no mcp-server
cd apps/mcp-server
npx @modelcontextprotocol/inspector build/index.js

Acesso

  • Abre automaticamente em http://localhost:6274

  • Permite:

    • Listar e chamar Tools (mock_code_review, supabase_health, create_review, get_review_rules, get_review_history, cache_review, get_pr_diff, post_comment)

    • Ler Resources (mock://repo/{owner}/{repo})

    • Executar Prompts (code_review_prompt)

    • Ver logs de debug em tempo real

Testando Tools no Inspector

  1. Aba Tools → selecione uma tool → clique Call

  2. Para tools que precisam de Supabase (create_review, get_review_rules, etc.):

    • Certifique-se que npx supabase start está rodando

    • O .env tem as credenciais corretas

  3. Tools mock (mock_code_review, get_pr_diff com mock=true) funcionam sem Supabase


🛠️ VS Code Integration

O projeto já inclui configuração para a extensão MCP do VS Code.

Setup

  1. Instale a extensão: MCP (Model Context Protocol)

  2. O arquivo .vscode/mcp.json já configura o servidor:

{
  "servers": {
    "devreview-mcp": {
      "command": "node",
      "args": ["apps/mcp-server/build/index.js"],
      "env": {
        "SUPABASE_URL": "http://localhost:54321",
        "SUPABASE_SERVICE_KEY": "${env:SUPABASE_SERVICE_KEY}"
      }
    }
  }
}
  1. No VS Code: Ctrl+Shift+PMCP: Restart Servers

  2. As tools ficam disponíveis no Copilot Chat / Agent Mode


Estrutura do Projeto

devreview/
├── apps/
│   ├── web/              # Frontend React
│   └── mcp-server/       # MCP Server (curso)
│       ├── build/        # Compilado (gitignored)
│       ├── src/
│       │   ├── core/     # config, logger, supabase client
│       │   ├── tools/    # 8 MCP Tools
│       │   ├── resources/# 1 Resource (mock repo)
│       │   ├── prompts/  # 1 Prompt (code review)
│       │   └── types/    # Tipos Supabase gerados
│       ├── .env          # Variáveis locais
│       ├── package.json
│       └── tsconfig.json
├── supabase/             # Migrations, seed, config
│   └── migrations/
│       └── 00001_init_schema.sql
├── .vscode/
│   └── mcp.json          # Config MCP para VS Code
├── PRD_MCP_SERVER_MINIMO.md
├── README.md
└── package.json          # Workspace root

MCP Tools Disponíveis

Tool

Descrição

Requer Supabase

mock_code_review

Code review simulado com achados pré-definidos

supabase_health

Health check da conexão Supabase

create_review

Insere registro no review_history

get_review_rules

Busca regras de review do time

get_review_history

Histórico de reviews com paginação

cache_review

Upsert de review (team_id+repo+pr_number)

get_pr_diff

Diff do PR (mock mode disponível)

❌ (mock)

post_comment

Comentário em PR (salvo no histórico)


Scripts Úteis

# Raiz do projeto
npm run dev              # Frontend
npm run inspector        # MCP Inspector
npm run build            # Build all workspaces

# apps/mcp-server
npm run build            # Compila TypeScript
npm run start            # Build + roda servidor
npm run dev              # Watch mode (tsx)
npm run test             # Vitest
npm run lint             # ESLint
npm run typecheck        # tsc --noEmit

Comandos Supabase Úteis

npx supabase start           # Inicia Supabase local
npx supabase stop            # Para Supabase local
npx supabase status          # Status + credenciais
npx supabase db reset        # Reset DB + migrations + seed
npx supabase studio          # Abre Studio no browser
npx supabase migration new   # Cria nova migration

Roadmap do Curso

  • Módulo 1-3: MCP Server mínimo (tools, resources, prompts, Inspector, VS Code)

  • Módulo 4: Supabase-backed tools (create_review, get_review_rules, get_review_history, cache_review, get_pr_diff, post_comment)

  • 🔄 Módulo 5: GitHub API integration, PR analysis pipeline

  • 🔄 Módulo 6: Real AI code review (OpenRouter + Nemotron)

  • 🔄 Módulo 7: Webhooks, CI/CD integration

  • 🔄 Módulo 8: Multi-repo, teams, advanced features

Related MCP Connectors

Related MCP Servers