Projeto pessoal · código aberto
Cast Review
Desenvolvimento de uma plataforma de revisão de PRs que indexa o repositório como grafo no Neo4j e expõe indexação, contexto e análise por um servidor MCP.
Problema
Revisar só o diff deixa passar o impacto fora dele: quem chama a função alterada, quais testes a cobrem, que fronteira de arquitetura foi cruzada.
Dados disponíveis
O próprio repositório: arquivos, símbolos e as relações entre eles. O diff diz o que mudou; o grafo diz o que essa mudança toca.
Decisões de arquitetura
Código como grafo
O tree-sitter extrai símbolos e relações (defines, references, imports, tests). O Neo4j persiste o grafo por repositório e commit, com lock no Redis e reindexação incremental. A indexação roda fora do request, em fila BullMQ.
Contexto com orçamento
Para os arquivos alterados, o serviço de IA monta o contexto relacionado a partir do grafo, dentro de um orçamento de tokens, antes de acionar os revisores.
Humano no loop
O grafo de revisão em LangGraph gera um PRD e uma especificação da mudança, cada um com aprovação humana. Aprovados, os revisores de testes e de arquitetura rodam em paralelo e um report builder consolida os achados.
MCP como fronteira
Servidor MCP separado (Streamable HTTP): o token opaco é trocado por um JWT de ação de dois minutos via introspecção, com rate limit. As tools são um proxy fino para o backend e o serviço de IA.
Implementação
Tools do servidor MCP
index_repository— dispara a indexação incremental de um repositório.get_index_status— informa se o repositório está indexado e qual o último commit indexado.get_related_context— devolve o contexto do grafo ligado aos arquivos alterados, com orçamento de tokens.run_pr_analysis— inicia a análise assíncrona de uma PR e devolve o analysisId.get_analysis— consulta o estado de uma análise em andamento.- Fora do MCP: chat sobre o repositório com ferramentas de navegação no grafo (search_symbols, read_symbol, neighbors, list_endpoints, cross_repo_links) e publicação dos achados como comentários inline na PR, com progresso via SSE.
Resultado
- 5tools MCP
- 2revisores em paralelo
Fluxo completo, do índice ao comentário na PR, disponível pela interface web e por qualquer cliente MCP — Claude Code, Cursor e outros.
Limitações e aprendizados
- Projeto pessoal em desenvolvimento ativo.
- Os revisores atuais cobrem testes e arquitetura; outros domínios ainda não existem.
- O servidor MCP não edita código: expõe indexação, contexto e análise.