better-code-review-graph
Grafo de conhecimento para revisões de código com eficiência de tokens, utilizando parsing Tree-sitter, incorporação de modo duplo (ONNX + LiteLLM) e análise de raio de impacto via ferramentas MCP.
Documentação
Better Code Review Graph
Renomeado (2026-09-13): o repositório agora é
crg— prioridade para CLI (comandocrg). O pacote PyPI permanecebetter-code-review-graph; o servidor MCP é uma superfície secundária.
mcp-name: io.github.n24q02m/better-code-review-graph
Grafo de conhecimento para revisões de código eficientes em tokens — busca semântica e resolução de grafo de chamadas em todo o seu código.
Projetos irmãos de n24q02m (clique para expandir)
| Projeto | Tagline | Tag |
|---|---|---|
| agent-chat-plugin | Agentes de IA pares conversam em uma pasta compartilhada — sem retransmissão humana, sem orquestrador, fun... | Ferramenta |
| better-code-review-graph | Grafo de conhecimento para revisões de código eficientes em tokens — busca semântica e resolução de cha... | MCP |
| better-drive | Sincronização bidirecional com Google Drive com filtro .driveignore — mecanismo rclone, bandeja do Windows | Ferramenta |
| better-email-mcp | E-mail IMAP/SMTP para agentes de IA — ler, enviar, organizar pastas e gerenciar anex... | MCP |
| better-godot-mcp | Servidor MCP composto para Godot Engine — 17 ferramentas compostas para jogos assistidos por IA... | MCP |
| better-notion-mcp | Notion com prioridade para Markdown para agentes de IA — páginas, bancos de dados, blocos e comentários... | MCP |
| better-semantic-release | Fork substituto do python-semantic-release com proteções de segurança de release integradas (orp...) | Ferramenta |
| better-telegram-mcp | Telegram para agentes de IA — mensagens, conversas, mídia e contatos em ambos os bo... | MCP |
| better-workspace-mcp | Servidor MCP do Google Workspace (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch...) | MCP |
| claude-plugins | Marketplace de plugins do Claude Code para os servidores MCP da n24q02m — instale busca we... | Marketplace |
| imagine-mcp | Compreensão de imagem e vídeo + geração para agentes de IA — em Gemini, Op... | MCP |
| jules-task-archiver | Extensão do Chrome para operações em lote em tarefas do Jules via API batchexecute — a... | Ferramenta |
| mcp-core | Fundação compartilhada para construir servidores MCP — transporte HTTP Streamable, OAut... | MCP |
| mnemo-mcp | Memória persistente de IA com busca híbrida e sincronização incorporada. Aberto, gratuito, ilimit... | MCP |
| fastretrieval | Runtime rápido de recuperação multimodelo para embeddings ONNX e GGUF, reordenação e contratos de modelo | Biblioteca |
| skret | Segredos sem o servidor. | CLI |
| tacet | Uma cascata neuro-simbólica autodestilante que amortiza o custo de LLM em conheci... | Ferramenta |
| web-core | Pacote compartilhado de infraestrutura web para busca, raspagem, segurança HTTP e st... | Biblioteca |
| wet-mcp | Servidor MCP de código aberto para agentes de IA: busca web, extração de conteúdo e lib... | MCP |
Um servidor MCP que analisa seu código com Tree-sitter, constrói um grafo estrutural de funções/classes/importações e dá ao Claude (ou a qualquer cliente MCP) contexto preciso para que ele leia apenas o que importa, em vez da árvore inteira. A busca semântica é executada por meio do registro local de modelos ONNX do fastretrieval por padrão (zero configuração, sem chave de API), com uma cadeia opcional de embeddings em nuvem. Fork do code-review-graph com busca multipalavra corrigida, resolução qualificada de chamadas, embeddings de modo duplo, paginação de saída e CI/CD de produção.
Migração v2.0 (QUEBRA)
A v2.0 adiciona colunas temporais (valid_from_sha / valid_to_sha em cada nó + aresta) e um scanner de segurança opcional. A migração de esquema é aplicada automaticamente na primeira abertura do GraphStore, e um backup do banco de dados pré-2.0 é salvo em <graph_db>.pre-2.0.bak para que você possa reverter. Consulte BREAKING_CHANGES.md para a lista completa de mudanças de esquema, mudanças de comportamento, requisitos de ambiente e o procedimento de downgrade (CRG_DOWNGRADE_TO_1_X=1 uv run better-code-review-graph).
Sumário
- Migração v2.0 (QUEBRA)
- Instalação
- Smithery
- Configuração
- Ferramentas
- CLI
- Recursos
- Comparação
- Segurança
- Compilar a partir do código-fonte
- Modelo de confiança
- Migração e changelog
- Documentação
- Licença
Instalação
Para OMP e outros harnesses locais de codificação, a superfície principal é o CLI do pacote
mais os fluxos de trabalho skills/ incluídos. As skills invocam o CLI diretamente e
não exigem um mapeamento de servidor MCP.
# Run without a persistent install (short `crg` script; PyPI package name stays
# better-code-review-graph, so `uvx` needs the explicit --from form)
uvx --python 3.13 --from better-code-review-graph crg graph build --full-rebuild \
--repo-root /path/to/repo
uvx --python 3.13 --from better-code-review-graph crg graph stats \
--repo-root /path/to/repo
# Or install the console scripts (installs both `crg` and the legacy long name)
pip install better-code-review-graph
crg query search --search-query "authentication" \
--repo-root /path/to/repo
O mecanismo opcional Semgrep para varreduras de segurança mais profundas é um extra separado:
pip install 'better-code-review-graph[security]'
O MCP stdio permanece um adaptador de protocolo secundário para clientes que o exigem:
{
"mcpServers": {
"better-code-review-graph": {
"command": "uvx",
"args": ["--python", "3.13", "better-code-review-graph"],
"env": { "MCP_TRANSPORT": "stdio" }
}
}
}
Matriz de instalação (stdio, salvo indicação em contrário; o uso com prioridade para CLI acima permanece a superfície principal):
| Cliente | Instalação |
|---|---|
| Claude Code (plugin) | /plugin marketplace add n24q02m/claude-plugins e depois /plugin install better-code-review-graph@n24q02m-plugins |
| Claude Code (stdio) | claude mcp add better-code-review-graph -- uvx --python 3.13 better-code-review-graph |
| Codex | registre o comando stdio uvx --python 3.13 better-code-review-graph em mcp_servers no ~/.codex/config.toml |
| Gemini CLI | adicione o JSON mcpServers acima em ~/.gemini/settings.json |
| Cursor / Windsurf | adicione o JSON mcpServers acima por meio das configurações de MCP do cliente (mcp.json) |
| Qualquer cliente (HTTP self-host) | aponte o cliente para https://<your-host>/mcp (MCP_TRANSPORT=http) — somente self-host, sem endpoint hospedado |
Instale com um agente de IA — cole isto no seu agente de codificação de IA:
Instale o servidor MCP
better-code-review-graphseguindo os passos em https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/better-code-review-graph/setup-with-agent.md
O uso completo do CLI está em CLI. A configuração opcional de MCP por cliente está em mcp.n24q02m.com/servers/better-code-review-graph/setup/.
Limite local-first
O CRG é local-first para fluxos de trabalho de codificação:
- CLI e Skills incluídas são as superfícies principais para construção/consulta de grafo, análise de impacto, contexto de revisão, varreduras de segurança e integração de repositório.
- MCP stdio é o adaptador de protocolo secundário sobre os mesmos serviços locais de domínio; ele não mantém uma implementação de grafo separada.
- O estado do grafo permanece em
<repo>/.better-code-review-graph/graph.dba menos que uma configuração explícita multiusuário/self-host selecione outro diretório de dados. - PyPI, CI, varredura de segurança, releases do GitHub e publicação elegível de MCP Registry estável permanecem ativos. Tags OCI públicas históricas são mantidas, mas novas imagens públicas do Docker Hub/GHCR não são mais publicadas.
- O CRG não tem runtime Cloudflare hospedado na topologia alvo.
Smithery
O repositório inclui um smithery.yaml para que o servidor possa ser compilado e
executado por meio do Smithery. Ele é implantado via stdio e não
precisa de configuração de inicialização — o esquema de configuração está vazio, e quaisquer chaves
opcionais de embedding/resumo em nuvem são fornecidas em tempo de execução por meio do fluxo de configuração
do próprio servidor (consulte Configuração abaixo). O comando de inicialização é a mesma
invocação uvx de uma instalação local:
startCommand:
type: stdio
commandFunction: |-
(config) => ({ command: 'uvx', args: ['--python', '3.13', 'better-code-review-graph'] })
Configuração
Tudo funciona pronto para uso com zero configuração — a busca semântica
usa o registro local ONNX do fastretrieval
(Qwen3-Embedding-0.6B é a entrada de referência integrada atual, ~570 MB
baixados na primeira graph embed). Esta entrada de referência não é um limite exclusivo do Qwen:
qualquer ID de registro integrado ou manifesto de artefato não-Qwen válido segue
o mesmo resolvedor. Todas as variáveis de ambiente abaixo são opcionais e só são necessárias
para embeddings em nuvem, resumos de LLM ou um artefato local BYO explícito.
Seleção de modelo
Embeddings selecionam a primeira entrada provider/model em EMBEDDING_MODELS; entradas
posteriores são mantidas como configuração, mas não são fallbacks em tempo de execução. Resumos
selecionam a primeira entrada SUMMARY_MODELS também, sem fallback em tempo de execução. Provedores
são inferidos a partir de prefixos de modelo e usam o <PROVIDER>_API_KEY correspondente.
| Variável | Finalidade | Vazio (padrão) |
|---|---|---|
EMBEDDING_MODELS | Seleção de embedding em nuvem; a primeira entrada está ativa | Registro local fastretrieval |
SUMMARY_MODELS | Seleção de modelo de conclusão para graph(action="summarize") | Resumos desativados |
Cohere embed-v4.0 solicita e armazena 1024 dimensões; outros backends mantêm
armazenamento de 768 dimensões. O CRG nunca divide, preenche ou aceita silenciosamente uma largura
diferente de provedor. O modelo e a largura em bytes da linha de embedding devem corresponder antes da reutilização.
Execute graph(action="embed") após alterar modelos ou atualizar um índice Cohere antigo de 768 de largura.
Buscas rejeitam larguras incompatíveis antes de uma chamada de provedor; nós
do grafo são mantidos e o re-embedding substitui apenas vetores obsoletos.
Chaves de API do provedor
Modelos em nuvem precisam da chave do provedor para o prefixo de modelo selecionado. Chaves sozinhas nunca selecionam modelos: uma cadeia de embeddings vazia permanece local, e uma cadeia de resumos vazia permanece desativada. Um erro de nuvem configurado não faz fallback para local ou outro provedor. Sumarizadores exigem um modelo de conclusão de chat.
| Prefixo de modelo | Variável de env da chave de API | Obter uma chave |
|---|---|---|
jina_ai/ | JINA_AI_API_KEY | https://jina.ai/api-key |
gemini/ | GEMINI_API_KEY (ou GOOGLE_API_KEY) | https://aistudio.google.com/apikey |
openai/ (ou text-embedding-* simples) | OPENAI_API_KEY | https://platform.openai.com/api-keys |
cohere/ | COHERE_API_KEY | https://dashboard.cohere.com/api-keys |
openrouter/ | OPENROUTER_API_KEY | https://openrouter.ai/settings/keys |
vertex_express/ | GOOGLE_VERTEX_EXPRESS_API_KEY | https://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview |
Avançado
| Variável | Finalidade |
|---|---|
EMBEDDING_API_BASE | Endpoint compatível com provedor para embedding em nuvem, incluindo CF AI Gateway (protegido contra SSRF) |
LLM_API_BASE | URL base compatível com provedor para o sumarizador, incluindo CF AI Gateway (protegido contra SSRF) |
DISABLE_LOCAL_EMBED | Pular o download local do ONNX; embedding fica indisponível a menos que uma cadeia em nuvem esteja configurada |
LOCAL_EMBEDDING_MODEL | ID de modelo integrado fastretrieval, ou um diretório local contendo fastretrieval-manifest.json |
LOCAL_RERANK_MODEL | ID de modelo TextCrossEncoder do Fastretrieval para reordenação semântica limitada |
LOCAL_EMBEDDING_DIM | Dimensão necessária para um ID de modelo externo sem manifesto |
LOCAL_EMBEDDING_MODEL_FILE | Caminho do arquivo ONNX dentro de um diretório de artefato com manifesto |
LOCAL_EMBEDDING_POOLING | Pooling explícito para um ID externo sem manifesto: CLS, MEAN, LAST_TOKEN ou DISABLED |
LOCAL_EMBEDDING_NORMALIZE | Normalização L2 explícita para um ID externo sem manifesto |
CRG_DATA_DIR | Substituir o diretório de dados por usuário (padrão ~/.crg) usado para grafos e credenciais por usuário no modo HTTP multiusuário |
EMBEDDING_BACKEND / EMBEDDING_MODEL / SUMMARY_MODEL | Obsoletas variáveis singulares, honradas por um release com aviso — migre para as cadeias *_MODELS |
Quando LOCAL_RERANK_MODEL está configurado, a busca vetorial semântica recupera um | |
pool candidato limitado de min(max(limit * 4, limit), 100) linhas, aplica os | |
filtros existentes de kind, repo e linhas ativas, depois reordena esse pool e retorna | |
no máximo limit linhas. A resposta usa search_mode="semantic_reranked" e | |
adiciona rerank_score preservando similarity_score. Em branco mantém o | |
caminho vetorial existente de limit * 2 e search_mode="semantic". Falhas | |
| configuradas no reordenador retornam um erro explícito; o CRG não faz fallback silencioso para | |
resultados vetoriais ou de palavras-chave. Buscas por palavras-chave, incluindo snapshots de as_of, não | |
| invocam o reordenador. |
Exemplo -- embeddings em nuvem + resumos
{
"mcpServers": {
"better-code-review-graph": {
"command": "uvx",
"args": ["--python", "3.13", "better-code-review-graph"],
"env": {
"MCP_TRANSPORT": "stdio",
"EMBEDDING_MODELS": "cohere/embed-v4.0",
"SUMMARY_MODELS": "openrouter/minimax/minimax-m3:free",
"EMBEDDING_API_BASE": "https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/cohere/v2/embed",
"LLM_API_BASE": "https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/openrouter/v1",
"COHERE_API_KEY": "<cohere-key>",
"OPENROUTER_API_KEY": "<openrouter-key>"
}
}
}
}
O embedding da Cohere é pago. Autorize um orçamento limitado antes de um índice/consulta ao vivo; a escolha de conclusão sem Minimax não torna os embeddings gratuitos. Este exemplo não adiciona uma substituição de modelo em todo o processo: credenciais de assunto ausentes falham de forma fechada em vez de herdar o ambiente do servidor.
O CRG atualmente não tem chamada de reordenação em nuvem: LOCAL_RERANK_MODEL é seu único
caminho de reordenação. Definir RERANK_MODELS ou RERANK_API_BASE não habilita uma.
Ferramentas
Seis ferramentas, cada uma agrupando ações relacionadas para manter a superfície de ferramentas pequena.
graph -- Ciclo de vida do grafo
Ações: build | update | stats | embed | export | summarize
| Ação | Descrição |
|---|---|
build | Construção de grafo completa ou incremental. Defina full_rebuild=true para reanalisar todos os arquivos; passe roots para federar diretórios de repositório extras em um único grafo. |
update | Alias para build com full_rebuild=false (incremental). |
stats | Tamanho do grafo, idiomas, detalhamento de nós/arestas, contagem de embeddings. |
embed | Calcula embeddings vetoriais para busca semântica. Modo duplo: ONNX local ou cadeia em nuvem. |
export | Exporta o grafo como graphml / json-ld / dot / cypher. Em linha ou para output_path. |
summarize | Docstrings de um parágrafo geradas por LLM para nós de Function (via a primeira entrada explícita de SUMMARY_MODELS; sem operação quando nenhum modelo é selecionado). Chamadas limitadas por max_nodes. |
query -- Consultas ao grafo
Ações: query | search | impact | large_functions | spot_check | renamed_in_diff | diff
| Ação | Descrição |
|---|---|
query | Padrões predefinidos: callers_of, callees_of, imports_of, importers_of, children_of, tests_for, inheritors_of, file_summary. |
search | Busca entidades de código por nome/palavra-chave ou similaridade semântica. |
impact | Raio de impacto de arquivos alterados. Detecta automaticamente a partir do git diff. Paginado com max_results. |
large_functions | Encontra funções/classes que excedem um limite de contagem de linhas. |
spot_check | Trechos aleatórios de locais de chamada do último resultado de callers_of/callees_of/inheritors_of/importers_of. |
renamed_in_diff | Símbolos cuja linha de local de chamada mudou em relação a uma referência base. |
diff | Nós adicionados/removidos/modificados entre dois SHAs de commit (from_sha, to_sha). |
A maioria das ações de leitura aceita as_of=<sha> para snapshots temporais (ponto no tempo)
e repo=<repo_id> para escopar um grafo federado de múltiplos repositórios.
review -- Contexto de revisão de código
Ações: context (padrão) | delta
Contexto de revisão otimizado para tokens com resumo estrutural, nós impactados, trechos
de código e orientação de revisão. context detecta automaticamente arquivos alterados a partir do
git diff; delta (com from_sha/to_sha, show_line_shifts opcional)
superficializa movimentos de refatoração entre dois commits.
config -- Configuração do servidor e configuração de credenciais
Ações: status | set | cache_clear | setup_status | setup_start | setup_skip | setup_reset | setup_complete
| Ação | Descrição |
|---|---|
status | Informações do servidor: versão, caminho do grafo, contagens de nós/arestas, backend de embeddings, contagem de embeddings. |
set | Atualiza uma configuração de tempo de execução (key=log_level). |
cache_clear | Remove todos os embeddings calculados. |
setup_status | Mostra o estado atual das credenciais e quais células de modelo têm chaves. |
setup_start | Explica onde o host configura chaves de API (células de modelo de propriedade do host). |
setup_skip | Define o modo local (embedding ONNX local, sem células em nuvem). |
setup_reset | Redefine o estado para local; a configuração do host é re-resolvida na próxima chamada. |
setup_complete | Re-resolve o estado das credenciais a partir da configuração do host. |
security -- Varredura de segurança
Ações: scan | report | suppress | rule_list
| Ação | Descrição |
|---|---|
scan | Executa uma varredura de segurança (engine='heuristic' padrão = 5 regras regex, ou 'semgrep'). Descobertas persistem em nodes.security_tags. |
report | Reemite descobertas em cache como JSON (format='json') ou SARIF v2.1.0 (format='sarif'). |
suppress | Suprime uma descoberta por rule_id (ou remove=true para desfazer a supressão). |
rule_list | Lista as regras disponíveis para um mecanismo. |
O mecanismo semgrep requer o extra [security] e executa o
pacote de registro p/auto do Semgrep mais uma sobreposição curada de 3 regras.
help -- Documentação completa
Tópicos: graph | query | review | config | security | recipes
Retorna documentação completa para cada ferramenta. Use quando as descrições comprimidas acima forem insuficientes.
CLI
O pacote instala dois scripts de console: crg (principal) e
better-code-review-graph (nome longo legado). Executar qualquer um deles sem
argumentos inicia o servidor MCP via stdio; um argumento posicional inicial
roteia para um subcomando CLI local que chama os mesmos serviços de domínio usados pelo
adaptador MCP. Execute-os diretamente após pip install, ou sem uma
instalação persistente via uvx --python 3.13 --from better-code-review-graph crg ....
# Start the MCP server over stdio (default -- no subcommand)
crg
# Build, inspect, and embed the local graph
crg graph build
crg graph stats
crg graph embed
# Query relationships and impact
crg query query \
--pattern callers_of --target "path/to/module.py::function"
crg query search --search-query "authentication"
crg query impact --changed-files src/app.py
# Produce review context and run a local security scan
crg review context --base HEAD~1
crg security scan --engine heuristic
| Comando | Descrição |
|---|---|
graph build | Construção de grafo completa ou incremental. --full-rebuild reanalisa cada arquivo; --base <ref> define a referência de diff incremental; --repo-root <path> substitui a detecção automática. |
graph embed | Calcula embeddings vetoriais usando ONNX local ou a cadeia em nuvem configurada. |
graph stats / graph export / graph import / graph summarize | Inspeciona, exporta/importa um grafo portátil de crg ou resume funções. |
query query / query search | Executa padrões de relacionamento ou busca por palavra-chave/semântica. |
query impact / query large_functions | Analisa o raio de impacto de arquivos alterados ou encontra nós superdimensionados. |
query spot_check / query renamed_in_diff / query diff | Inspeciona locais de chamada, mudanças de linha ou mudanças de grafo entre commits. |
review context / review delta | Gera contexto de revisão ou buckets de diff para uma mudança de código. |
security scan / security report / security suppress / security rule_list | Executa e gerencia descobertas de segurança heurísticas/Semgrep. |
Subcomandos CLI imprimem JSON estruturado e saem com código não zero em caso de erro.
Recursos
O que este fork corrige em relação ao upstream code-review-graph:
| Recurso | code-review-graph | better-code-review-graph |
|---|---|---|
| Busca multi-palavra | Quebrada (substring literal) | Divisão de palavras com lógica AND |
| callers_of/callees_of | Resultados vazios (alvos de nome simples) | Resolução de nome qualificado + fallback simples |
| Embedding | sentence-transformers + torch (1,1 GB) | fastretrieval ONNX + nuvem (200 MB), modo duplo |
| Tamanho da saída | Ilimitado (500K+ caracteres) | Paginado (max_results, flag truncado) |
| Design de ferramentas | 9 ferramentas individuais | 6 ferramentas agrupadas: grafo + consulta + revisão + configuração + segurança + ajuda |
| Hooks de plugin | PostEdit/PostGit inválidos | PostToolUse válido |
Comparação
Como o better-code-review-graph se compara aos concorrentes diretos em cada pilar:
| Capacidade | better-code-review-graph | Greptile | Sourcegraph (Cody / MCP) | CodeGraph (colbymchenry) |
|---|---|---|---|---|
| Grafo de conhecimento do código | Sim (Tree-sitter, 14 idiomas, SQLite) | Sim (funções/classes/deps) | Sim (indexação precisa de código) | Sim (Tree-sitter, 20+ idiomas, SQLite) |
| Atualizações incrementais persistentes | Sim (git-diff + reanálise por hash de arquivo) | ? | Sim (indexação contínua) | Sim (observador de arquivos do SO com debounce) |
| Resolução qualificada de chamadas (callers/callees) | Sim (resolução de chamadas simples no mesmo arquivo + fallback) | ? | Sim (ir para definição / encontrar referências) | Sim (callers / callees / impacto) |
| Busca semântica / embeddings | Sim (registro local fastretrieval + Jina/Gemini/OpenAI/Cohere em nuvem) | ? | Sim (semântica + palavra-chave + regex) | Não (somente texto completo FTS5) |
| Contexto de revisão otimizado para tokens | Sim (ferramenta review, escopo por git-diff) | Sim (comentários de revisão de PR) | Não (assistente de contexto de código) | Não (camada de contexto, não revisão) |
| Varredura de segurança | Sim (Semgrep p/auto + sobreposição de 3 regras, SARIF) | ? | ? | Não |
| Auto-hospedável | Sim (stdio padrão, vinculado à máquina) | Sim (Docker / K8s / air-gapped) | Sim (instância auto-hospedada) | Sim (100% local, sem chaves de API) |
| Gratuito / código aberto | Sim (Apache-2.0) | Não (SaaS proprietário; camada OSS gratuita) | Não (licença Enterprise, código privado) | Sim (MIT) |
Fontes: Greptile · Preços do Greptile · Sourcegraph MCP · CodeGraph. Células marcadas com ? são capacidades que o concorrente não documenta publicamente, não ausências confirmadas.
Segurança
- Seleção explícita -- Erros de embedding em nuvem são relatados; o tempo de execução não troca silenciosamente de modelo nem faz fallback para ONNX local.
- Tratamento de erros -- Ferramentas retornam strings de erro com sugestões de correção, nunca travam.
- Montagem somente leitura -- O modo Docker monta o repositório como
:ro(somente leitura). - Endpoints protegidos contra SSRF -- URLs personalizadas de
EMBEDDING_API_BASE/LLM_API_BASEsão validadas antes de qualquer chamada de saída.
Para relatar uma vulnerabilidade, consulte SECURITY.md.
Compilar a partir do código-fonte
git clone https://github.com/n24q02m/crg
cd better-code-review-graph
uv sync --group dev
uv run pytest
uv run better-code-review-graph
Requisitos: Python 3.13, uv.
Modelo de confiança
Este plugin implementa TC-Local (vinculado à máquina, principal de confiança único). Consulte o modelo de confiança do mcp-core para a classificação completa.
| Modo | Banco de dados do grafo | Credenciais em nuvem | Quem pode ler seus dados? |
|---|---|---|---|
| stdio (padrão) | <repo>/.better-code-review-graph/graph.db (ignorado pelo git) | ~/.better-code-review-graph-mcp/config.json (AES-GCM, chave vinculada à máquina) | Somente seu usuário do SO |
| HTTP auto-hospedado (multi-usuário) | ~/.crg/subs/<sub>/graph.db por usuário | ~/.crg/subs/<sub>/config.json por usuário | Somente o usuário autenticado |
Migração e changelog
O grafo, o cache de varredura de segurança e o estado de supressão agora usam o diretório
.better-code-review-graph/ de propriedade do pacote. Execute graph(action="build", full_rebuild=true)
uma vez após a atualização, seguido por graph(action="embed") se a busca semântica for
necessária. Os caminhos antigos ambíguos .code-review-graph/ e .code-review-graph.db
e seus sidecars SQLite são deixados intocados: eles podem pertencer ao pacote
upstream separado. Revise e reaplique quaisquer regras de supressão desejadas explicitamente.
O lançamento v2.0 adicionou colunas temporais (valid_from_sha / valid_to_sha
em cada nó e aresta) além de um scanner de segurança opcional. A migração de esquema
é aplicada automaticamente na primeira abertura de GraphStore, e um backup do banco de dados pré-2.0 é
gravado em <graph_db>.pre-2.0.bak. Para fazer downgrade e restaurá-lo:
CRG_DOWNGRADE_TO_1_X=1 uvx better-code-review-graph
Lista completa de mudanças de esquema, mudanças de comportamento e procedimento de rollback: BREAKING_CHANGES.md. Histórico de lançamentos: CHANGELOG.md.
Documentação
Documentação completa em mcp.n24q02m.com/servers/better-code-review-graph/setup/:
- Configuração -- métodos de instalação para Claude Code, Codex, Gemini CLI, Cursor, Windsurf, mcp.json
- Visão geral dos modos -- stdio / local-relay / remote-relay / remote-oauth
- Configuração multiusuário -- modelo de credenciais por sub do JWT
Use a ferramenta help de qualquer cliente MCP para referência inline por ferramenta.
Licença
Apache-2.0 -- Consulte LICENSE.