Sobre o projeto

Scantool é um servidor MCP (Model Context Protocol) projetado para melhorar as interações de agentes de IA com bases de código, fornecendo análise estruturada em vez de despejos de arquivos brutos. Alimentado por Tree-sitter, ele suporta mais de 20 linguagens de programação, incluindo Python, JavaScript, TypeScript, Rust, Go, C/C++, Java, PHP, C#, Ruby, Zig, Swift, SQL, HTML, CSS e Markdown. A ferramenta extrai classes, métodos, funções, importações, gráficos de chamada e funções quentes com números de linha exatos, permitindo que os agentes entendam a arquitetura do código com eficiência. Principais recursos incluem: - **Zero Infraestrutura**: Não há necessidade de indexação, chaves de API, bancos de dados vetoriais ou downloads de modelos. Ele varre diretórios sob demanda. - **Suporte a Múltiplas Linguagens**: Analisa tanto código quanto documentos (Markdown, HTML, CSS, SQL, config) por meio de uma lente unificada. - **Integração CLI**: Instala automaticamente um comando de shell `sct` junto com o servidor MCP, permitindo que os agentes usem as mesmas ferramentas de análise diretamente no terminal. Isso inclui comandos para varredura, foco em nós específicos, busca, comparação de diferenças e resolução de referências entre branches do git. - **Ferramentas de Análise Avançadas**: - `preview_directory`: Fornece visões gerais de alto nível com pontos de entrada, gráficos de importação e funções quentes. - `scan_file`: Oferece análise estrutural detalhada com assinaturas, decoradores e docstrings. Suporta um parâmetro `focus` para ler nós específicos literalmente. - `scan_directory`: Gera árvores de diretório compactas com nomes de classe/função embutidos. - `search_structures`: Filtra código por tipo, padrão de nome, decorador ou complexidade. - `find_divergence`: Audita diretórios em busca de funções que quebram padrões de chamada esperados. - **Formatos de Saída**: Suporta visualizações em formato de árvore com caracteres de desenho de caixa e JSON para uso programático. A saída é otimizada para consumo por LLM, com melhorias mensuráveis na eficiência de tokens em comparação com abordagens tradicionais baseadas em grep. - **Compatibilidade**: Funciona perfeitamente com Claude Code, Claude Desktop, Cursor, Windsurf, VS Code (modo agente Copilot) e Cline.