Codex Code Review MCP
Allows manual review of GitHub Pull Requests: loads PR context, analyzes diffs and discussions, presents previews of comments, and, after explicit user confirmation, publishes review comments/replies or creates fix commits on allowlisted GitHub repositories.
Allows manual review of GitLab Merge Requests: loads MR context, analyzes diffs and discussions, presents previews of comments, replies, and fix commits, and, after explicit confirmation, publishes comments/replies or creates commits on the originating branch via the GitLab REST API, restricted to allowlisted projects.
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., "@Codex Code Review MCPRevise o PR 42 emacme/web, conexãogithub"
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.
Codex Code Review MCP
Servidor MCP local e interface web para revisar Merge Requests do GitLab e Pull Requests do GitHub. O projeto concentra a coleta de contexto, a preparação de comentários, respostas e correções, e só publica uma alteração remota após uma prévia e confirmação explícita da pessoa usuária.
O que o projeto faz
Conecta-se a instâncias GitLab (SaaS ou self-managed) e GitHub (incluindo GitHub Enterprise Server).
Restringe o acesso a conexões e repositórios previamente autorizados em uma allowlist.
Carrega PRs/MRs abertas, branches, diff, arquivos alterados e discussões.
Detecta a stack alterada e exige a skill de revisão correspondente: Laravel/PHP, Node.js ou React.
Prepara comentários de review, comentários gerais, respostas a threads e commits de correção.
Oferece a mesma operação por MCP (stdin/stdout JSON-RPC) e por uma UI React servida apenas em localhost.
Não é um bot de revisão autônomo: não executa polling, webhooks ou publicação automática.
Related MCP server: Code Review MCP Server
Salvaguardas de publicação
O fluxo de escrita foi desenhado para ser deliberado e verificável:
A conexão precisa existir no arquivo de configuração e o repositório precisa constar na sua allowlist.
Uma prévia cria um
actionIdtemporário, válido por 30 minutos.A publicação requer
confirmedByUser: true; oactionIdé consumido uma única vez.Antes de publicar, o servidor consulta novamente a PR/MR e bloqueia a ação se o SHA da branch de origem mudou.
Respostas e correções só são aceitas para threads ainda abertas. O estado é revalidado imediatamente antes do envio.
Correções e respostas a observações são limitadas a PRs/MRs cujo autor é o usuário autenticado pelo token.
O servidor não realiza merge, aprovação formal, encerramento de discussão ou exclusão automática.
Arquitetura
Componente | Responsabilidade |
| Adaptador MCP JSON-RPC por stdin/stdout; expõe as ferramentas ao Codex. |
| Orquestra configuração, carregamento de contexto, validações, prévias e publicação. |
| Armazena ações pendentes em memória, com expiração e consumo único. |
| Integra REST e GraphQL do GitHub para PRs, threads, comentários e commits. |
| Integra API v4 do GitLab para MRs, discussões, comentários e commits. |
| API HTTP local em |
| Inicializa a API e Vite; a UI React fica em |
| Testes nativos do Node para configuração, clientes, API HTTP e regras do fluxo. |
As ações pendentes existem somente em memória. Reiniciar o processo invalida prévias que ainda não foram publicadas.
Compatibilidade e requisitos
Node.js 20 ou superior.
Um token GitLab ou GitHub acessível por variável de ambiente.
Acesso de rede à instância configurada.
Para uma revisão feita pelo Codex, o repositório deve estar no workspace; se não estiver, a instrução MCP determina cloná-lo antes da análise.
Instale as dependências:
npm installConfiguração de conexões
Copie connections.example.json para um dos locais abaixo:
padrão:
~/.config/codex-code-review-mcp/connections.json;personalizado: defina a variável
CODE_REVIEW_CONNECTIONS_FILEcom o caminho absoluto do arquivo.
O arquivo contém URLs, identificadores, allowlists e o nome da variável de ambiente do token. Nunca inclua tokens nele.
{
"connections": [
{
"id": "gitlab-corporativo",
"provider": "gitlab",
"baseUrl": "https://gitlab.example.com",
"tokenEnv": "CODE_REVIEW_GITLAB_CORPORATIVO_TOKEN",
"allowedRepositories": ["grupo/api-exemplo"]
},
{
"id": "github",
"provider": "github",
"baseUrl": "https://api.github.com",
"tokenEnv": "CODE_REVIEW_GITHUB_TOKEN",
"allowedRepositories": ["organization/*"]
}
]
}allowedRepositories aceita o nome exato do repositório (owner/repository ou grupo/projeto). Apenas no GitHub, owner/* autoriza os repositórios diretamente pertencentes a esse owner; outros curingas são rejeitados ao iniciar.
Para GitLab self-managed, informe a URL raiz da instância; o cliente acrescenta /api/v4 quando necessário. Para GitHub Enterprise Server, informe normalmente a URL da API, como https://github.empresa.com/api/v3.
Exemplos de variáveis de ambiente:
$env:CODE_REVIEW_GITLAB_CORPORATIVO_TOKEN = "glpat-..."
$env:CODE_REVIEW_GITHUB_TOKEN = "github_pat_..."export CODE_REVIEW_GITLAB_CORPORATIVO_TOKEN='glpat-...'
export CODE_REVIEW_GITHUB_TOKEN='github_pat_...'Reinicie o processo do MCP após alterar variáveis ou a configuração. Em macOS, aplicações abertas pelo Finder podem não herdar variáveis exportadas pelo shell.
Permissões recomendadas
GitLab
O cliente usa o cabeçalho PRIVATE-TOKEN e a API REST. Prefira Project Access Token para um projeto ou Group Access Token para um conjunto limitado de projetos.
Operação | Escopo | Papel mínimo | Observação |
Ler MR, diff, discussões e criar prévia |
| Reporter | Não publica. |
Publicar comentário ou resposta |
| Reporter | O comentário é atribuído ao dono do token. |
Criar commit na branch de origem |
| Developer | Exige permissão de push; em branch protegida, configure a regra apropriada. |
Para cobrir todas as operações com um único token, use api e papel Developer. write_repository não é necessário, pois os commits são criados pela API REST, não por Git-over-HTTP.
GitHub
O token deve poder ler repositórios, Pull Requests, arquivos/diffs e comentários. Para publicar, também deve ter permissão de escrever comentários de issue/review; para correções, precisa poder atualizar a branch de origem. Em GitHub Enterprise Server, confirme que a API GraphQL está disponível: ela é consultada para verificar se uma review thread foi resolvida.
Use tokens de menor privilégio, com validade curta e rotação regular.
Registro como MCP no Codex
No macOS/Linux, ajuste o caminho do projeto e execute:
codex mcp add code-review \
--env CODE_REVIEW_GITLAB_CORPORATIVO_TOKEN="$CODE_REVIEW_GITLAB_CORPORATIVO_TOKEN" \
--env CODE_REVIEW_GITHUB_TOKEN="$CODE_REVIEW_GITHUB_TOKEN" \
-- node /caminho/para/codex-code-review-mcp/src/server.mjsNo Windows PowerShell:
codex mcp add code-review `
--env CODE_REVIEW_GITLAB_CORPORATIVO_TOKEN="$env:CODE_REVIEW_GITLAB_CORPORATIVO_TOKEN" `
--env CODE_REVIEW_GITHUB_TOKEN="$env:CODE_REVIEW_GITHUB_TOKEN" `
-- node C:\caminho\para\codex-code-review-mcp\src\server.mjsInclua um --env para cada tokenEnv existente no arquivo de conexões. Abra uma nova sessão e use /mcp para confirmar que o servidor está disponível.
Ferramentas MCP
Ferramenta | Tipo | Finalidade |
| Leitura | Lista conexões sem expor tokens. |
| Leitura | Lista repositórios permitidos/visíveis para uma conexão. |
| Leitura | Carrega PR/MR, branches, arquivos, diff e instruções de revisão. |
| Prévia | Monta comentários inline ou gerais sem publicar. |
| Prévia | Monta respostas para observações de uma thread aberta. |
| Prévia | Mostra commit de correção e respostas antes do envio. |
| Escrita | Publica exatamente uma prévia já confirmada. |
Uma revisão é bloqueada quando a alteração não corresponde a uma stack suportada. A detecção é feita pelos arquivos modificados:
Laravel/PHP: arquivos
.php,artisan,composer.*ou diretórios Laravel usuais;React:
.jsx,.tsxou caminhos com@presentation;Node.js:
.js,.ts,.mjs,.cjsou caminhos com@server/@worker.
Comentários de achados no diff precisam ser inline e apontar para uma linha efetivamente modificada, do lado RIGHT (novo) ou LEFT (anterior). Achados fora do diff devem ser comentários gerais.
Fluxo de uso
Carregue o contexto, por exemplo: “Revise o PR 42 em
acme/web, na conexãogithub”.O Codex identifica a skill exigida, compara a branch de origem com a de destino e monta uma prévia de comentários.
Revise a prévia e confirme explicitamente nesta conversa.
O Codex chama
code_review_executecom oactionIdeconfirmedByUser: true.
Para uma observação existente, primeiro solicite a avaliação técnica. Antes de preparar uma resposta ou correção, o Codex deve apresentar separadamente um plano de correção e um plano de resposta. Quando a observação for válida, a correção é publicada antes da resposta, que recebe o SHA efetivo do commit. Quando for inválida, apenas a justificativa técnica é publicada na mesma thread.
Interface web local
Com os tokens e o arquivo de conexões já configurados:
npm run start:webO comando inicia conjuntamente:
API HTTP:
http://localhost:9898;interface React:
http://localhost:5599.
A API escuta apenas em 127.0.0.1 e aceita CORS somente das origens locais da interface. A UI nunca recebe o token; ela chama a API local, que preserva allowlist, prévia, expiração e confirmação. Use npm run start:web:client quando a API já estiver ativa e npm run build:web para gerar os arquivos estáticos em dist/.
Endpoints locais disponíveis:
Método | Rota | Finalidade |
|
| Health check. |
|
| Conexões públicas, sem tokens. |
|
| Repositórios permitidos/visíveis. |
|
| PRs/MRs abertas. |
|
| Contexto de uma PR/MR. |
|
| Prévia de review. |
|
| Prévia de resposta. |
|
| Prévia de correção e resposta. |
|
| Executa uma prévia confirmada. |
Desenvolvimento e validação
Comando | Descrição |
| Inicia o servidor MCP. |
| Inicia somente a API HTTP local. |
| Inicia API e interface local. |
| Inicia somente o Vite em |
| Gera a interface estática em |
| Executa a suíte de testes com |
Os testes cobrem expiração e confirmação de ações, allowlist, configuração, clientes GitHub/GitLab, detecção de stack, validação de comentários inline, proteção contra atualização remota, estado de threads e API HTTP.
Limitações atuais
As prévias pendentes não sobrevivem ao reinício do processo.
A interface permite preparar uma entrada por vez; a API e o MCP aceitam lotes de comentários.
A listagem de arquivos da PR/MR usa páginas de até 100 itens conforme a API remota; para mudanças maiores, valide se a instância fornece todos os arquivos necessários à análise.
Somente Laravel/PHP, Node.js e React são elegíveis para o fluxo de revisão automatizado pelo MCP.
This server cannot be deployed
Maintenance
Related MCP Connectors
Versioned artifact review for people and AI agents, with contextual comments and human control.
Operate GitHub from your AI assistant: repos, PRs, issues, Actions. Previews and read-only mode.
Writes your daily standup from GitLab or GitHub merge request state: what's ready, blocked or waiting on your review, and why a pipeline is red, read from the failing job log. OAuth sign-in, no API keys; can post the note to Slack, Discord or Google Chat on a schedule.
Agentic code review, no signup to try: reality gates + frontier-model review, with veto.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to review GitLab merge requests by fetching changes, analyzing diffs, adding comments, and managing approvals through the GitLab API. Supports complete merge request analysis, file-specific reviews, and version comparisons.124MIT
- AlicenseBqualityCmaintenanceConnects LLMs to GitHub and GitLab to analyze pull and merge requests for logic, security, and architectural alignment. It provides tools for fetching diffs, file contents, and project metadata, alongside guided prompts for professional code reviews.108 npmISC
- FlicenseNot gradedqualityCmaintenanceEnables agents to review GitLab merge requests by fetching MR metadata and diff SHAs, reading changed files and raw diffs, and posting inline comments on specific lines of a merge request diff via the GitLab REST API. Works with self-hosted or gitlab.com instances using an environment-provided personal access token.-
- AlicenseAqualityAmaintenanceEnables an MCP-capable assistant to review GitLab merge requests, GitHub pull requests, and pre-push local branches against ticket requirements, domain rubrics, compiler/lint pre-passes, blast-radius analysis, and SonarQube findings, and to draft inline comments or follow-up tasks in the user's chosen language. Nothing reaches a remote host until a human approves the exact content in an interactive terminal.3MIT