Sobre el proyecto
Scantool es una herramienta de análisis de estructura de código diseñada para ayudar a los agentes de codificación de IA (Claude Code, Cursor, VS Code Copilot y otros) a comprender bases de código de manera eficiente. En lugar de leer archivos completos para encontrar una función o clase, los agentes obtienen un mapa estructural (cada clase, función, llamador y encabezado con números de línea) en una sola llamada.
Funciona tanto como servidor MCP (Model Context Protocol) como comando de shell (`sct`), por lo que los agentes pueden usarlo a través de cualquiera de las dos interfaces. La herramienta está impulsada por analizadores tree-sitter para más de 20 lenguajes y no requiere índice, ni claves API, ni configuración más allá de un comando.
Las capacidades clave incluyen: búsqueda de estructuras con contexto circundante y pistas de llamadores; escaneo de un directorio para puntos de entrada, funciones calientes y archivos centrales; enfoque en una sola función o encabezado con su código verbatim y un esquema de un nivel; cálculo de diferencias estructurales entre referencias git; localización de sitios de llamada reales de una función; detección de solapamiento de ramas y conflictos de fusión; verificación de cambios en la superficie de la API pública; identificación de funciones que divergen de patrones de llamada hermanos; y resolución de direcciones entre referencias git.
Más allá del código fuente, Scantool maneja documentos (encabezados de Markdown, tablas y vistas SQL, claves YAML/TOML/JSON, selectores CSS y más) como estructura direccionable con rangos de línea.
La herramienta analiza archivos bajo demanda y guarda en caché por ID de blob git, de modo que los mismos bytes en una referencia, en stdin o en el siguiente proceso no se analicen dos veces. Las funciones se muestran como esqueletos condensados con flujo de control, llamadas y retornos conservados, mientras que las declaraciones triviales se pliegan. Cada respuesta incluye una línea de cobertura que cuenta archivos vistos, estructuras mostradas y lo que se excluyó.
Medido en episodios reales de agentes, Scantool redujo el uso de tokens 25 veces en búsquedas específicas (378 tokens frente a 9,370 con grep) y 75% en lecturas enfocadas (13,523 frente a 54,337 tokens) con cobertura de hechos sin cambios. En 22 episodios, los agentes con Scantool lograron una cobertura de hechos del 88% frente al 73% de los agentes solo con grep. Grep sigue ganando en búsquedas literales simples y vistas generales de nivel superior por 1.4x y 1.6x, respectivamente.
Los lenguajes soportados incluyen Python, JavaScript, TypeScript, Rust, Go, C, C++, Java, PHP, C#, Ruby, Zig, Swift, SQL, HTML, CSS, SCSS, YAML, Markdown, cuadernos Jupyter, texto plano, JSON, TOML e imágenes. Los archivos rotos recurren a extracción con regex.
En comparación con otros servidores MCP de exploración de código: Repomix empaqueta todo el repositorio en un solo archivo; Serena utiliza servidores de lenguaje símbolo por símbolo y puede editar código; claude-context usa un índice de embeddings con una base de datos vectorial y requiere claves API. El enfoque de Scantool (análisis bajo demanda sin índice) evita esos costos mientras también extrae estructura de documentos que ninguno de los otros aborda.
La instalación requiere uv, y luego un solo comando para registrar el servidor MCP. La herramienta tiene licencia MIT y está construida sobre FastMCP, tree-sitter y uv.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.