Sobre o projeto
Scantool é uma ferramenta de análise de estrutura de código projetada para ajudar agentes de codificação de IA (Claude Code, Cursor, VS Code Copilot e outros) a entender codebases de forma eficiente. Em vez de ler arquivos inteiros para encontrar uma função ou classe, os agentes recebem um mapa estrutural—cada classe, função, chamador e cabeçalho com números de linha—em uma única chamada.
Opera tanto como servidor MCP (Model Context Protocol) quanto como comando de shell (`sct`), então os agentes podem usá-lo por qualquer uma das interfaces. A ferramenta é alimentada por parsers tree-sitter para mais de 20 linguagens e não requer índice, chaves de API ou configuração além de um comando.
Recursos principais incluem: busca por estruturas com contexto envolvente e pistas de chamadores; varredura de diretório para pontos de entrada, funções quentes e arquivos centrais; foco em uma única função ou cabeçalho com seu código verbatim e esboço de um nível; cálculo de diffs estruturais entre refs git; descoberta de locais reais de chamada de uma função; detecção de sobreposição de ramos e conflitos de merge; verificação de mudanças na superfície da API pública; identificação de funções que divergem de padrões de chamada irmãos; e resolução de endereços entre refs git.
Além de código-fonte, o Scantool lida com documentos—cabeçalhos Markdown, tabelas e views SQL, chaves YAML/TOML/JSON, seletores CSS e mais—como estrutura endereçável com intervalos de linha.
A ferramenta analisa arquivos sob demanda e armazena em cache por ID de blob git, então os mesmos bytes em um ref, em stdin ou no próximo processo não são analisados duas vezes. Funções são mostradas como esqueletos condensados com fluxo de controle, chamadas e retornos mantidos, enquanto declarações triviais são dobradas. Cada resposta inclui uma linha de cobertura contando arquivos vistos, estruturas mostradas e o que foi excluído.
Medido em episódios reais de agentes, o Scantool reduziu o uso de tokens em 25x para buscas direcionadas (378 tokens vs 9.370 para grep) e 75% para leituras focadas (13.523 vs 54.337 tokens) com cobertura de fatos inalterada. Em 22 episódios, agentes com Scantool alcançaram 88% de cobertura de fatos versus 73% para agentes apenas com grep. Grep ainda vence em buscas literais simples e visões gerais de topo por 1,4x e 1,6x, respectivamente.
Linguagens suportadas incluem Python, JavaScript, TypeScript, Rust, Go, C, C++, Java, PHP, C#, Ruby, Zig, Swift, SQL, HTML, CSS, SCSS, YAML, Markdown, notebooks Jupyter, texto simples, JSON, TOML e imagens. Arquivos quebrados caem para extração por regex.
Comparado a outros servidores MCP de exploração de código: Repomix empacota o repositório inteiro em um arquivo; Serena usa servidores de linguagem símbolo por símbolo e pode editar código; claude-context usa um índice de embeddings com banco de dados vetorial e requer chaves de API. A abordagem do Scantool—análise sob demanda sem índice—evita esses custos enquanto também extrai estrutura de documentos que nenhum dos outros aborda.
A instalação requer uv, depois um único comando para registrar o servidor MCP. A ferramenta é licenciada sob MIT e construída sobre FastMCP, tree-sitter e uv.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.