Servidor Tree-sitter de MCP
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona capacidades de análisis de código mediante tree-sitter, diseñado para brindar a los asistentes de IA acceso inteligente a las bases de código con una gestión de contexto adecuada. Claude Desktop es el objetivo de implementación de referencia.
Características
- 🔍 Exploración flexible : Examine el código en múltiples niveles de granularidad
- 🧠 Gestión de contexto : proporciona la información justa sin saturar la ventana de contexto
- 🌐 Agnóstico del lenguaje : admite muchos lenguajes de programación, incluidos Python, JavaScript, TypeScript, Go, Rust, C, C++, Swift, Java, Kotlin, Julia y APL a través de tree-sitter-language-pack
- 🌳 Consciente de la estructura : utiliza comprensión basada en AST con un recorrido eficiente basado en cursor
- 🔎 Buscable : encuentre patrones específicos usando la búsqueda de texto y consultas de treesitter
- 🔄 Almacenamiento en caché : rendimiento optimizado mediante el almacenamiento en caché del árbol de análisis
- 🔑 Extracción de símbolos : extrae y analiza funciones, clases y otros símbolos de código
- 📊 Análisis de dependencias : identificar y analizar las dependencias y relaciones del código
- 🧩 Persistencia del estado : mantiene los registros del proyecto y los datos almacenados en caché entre invocaciones
- 🔒 Seguro : límites de seguridad integrados y validación de entrada
Para obtener una lista completa de todos los comandos disponibles, su estado de implementación actual y una matriz de características detallada, consulte el documento FEATURES.md .
Instalación
Prerrequisitos
- Python 3.10+
- Analizadores de idiomas Tree-sitter para tus idiomas preferidos
Instalación básica
Instalación de desarrollo
Inicio rápido
Ejecutando con Claude Desktop
Puede hacer que el servidor esté disponible en Claude Desktop a través de la CLI de MCP o configurando manualmente Claude Desktop.
Uso de la CLI de MCP
Registrar el servidor con Claude Desktop:
Configuración manual
Alternativamente, puede configurar manualmente Claude Desktop:
- Abra el archivo de configuración de Claude Desktop:
- macOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Ventanas:
%APPDATA%\Claude\claude_desktop_config.json
Crea el archivo si no existe.
- macOS/Linux:
- Agregue el servidor a la sección
mcpServers
:Alternativamente, si usa uv u otro administrador de paquetes:Nota: asegúrese de reemplazar/ABSOLUTE/PATH/TO/YOUR/PROJECT
con la ruta absoluta real al directorio de su proyecto. - Guarde el archivo y reinicie Claude Desktop.
El icono de herramientas MCP (martillo) aparecerá en la interfaz de Claude Desktop una vez que haya configurado correctamente al menos un servidor MCP. A continuación, podrá acceder a las funciones del servidor tree_sitter
haciendo clic en este icono.
Configuración con la versión lanzada
Si prefiere no instalar manualmente el paquete desde PyPI (versión lanzada) o clonar el repositorio, simplemente use la siguiente configuración para Claude Desktop:
- Abra el archivo de configuración de Claude Desktop (la misma ubicación que arriba).
- Agregue el servidor tree-sitter a la sección
mcpServers
: - Guarde el archivo y reinicie Claude Desktop.
Este método utiliza uvx
para ejecutar directamente el paquete PyPI instalado, lo cual es el enfoque recomendado para la versión publicada. El servidor no requiere parámetros adicionales para funcionar con su configuración básica.
Persistencia del Estado
El servidor Tree-sitter de MCP mantiene el estado entre invocaciones. Esto significa:
- Los proyectos permanecen registrados hasta que se eliminen explícitamente o se reinicie el servidor
- Los árboles de análisis se almacenan en caché según la configuración
- La información del idioma se conserva durante toda la vida útil del servidor.
Esta persistencia se mantiene en la memoria durante la vida útil del servidor utilizando patrones singleton para componentes clave.
Ejecutándose como un servidor independiente
Hay varias formas de ejecutar el servidor:
Usando la CLI de MCP directamente:
Usando objetivos Makefile:
Usando el script instalado:
Uso con el Inspector MCP
Usando la CLI de MCP directamente:
O usando el objetivo Makefile:
También puedes pasar argumentos:
Uso
Registrar un proyecto
Primero, registre un proyecto para analizar:
Explorar archivos
Lista de archivos en el proyecto:
Ver el contenido del archivo:
Analizar la estructura del código
Obtener el árbol de sintaxis:
Extraer símbolos:
Código de búsqueda
Buscar texto:
Ejecutar consultas de tree-sitter:
Analizar la complejidad
Uso directo de Python
Si bien el uso principal previsto es a través del servidor MCP, también puedes usar la biblioteca directamente en el código Python:
Configuración
Crear un archivo de configuración YAML:
Cargarlo con:
Configuración de registro
El nivel de detalle del registro del servidor se puede controlar mediante variables de entorno:
Para obtener información completa sobre la configuración del registro, consulte la documentación de registro . Para obtener más información sobre la interfaz de línea de comandos, consulte la documentación de la CLI .
Acerca de preferred_languages
La configuración preferred_languages
controla qué analizadores de idiomas se precargan al iniciar el servidor en lugar de cuando se solicitan. Esto ofrece varias ventajas:
- Análisis inicial más rápido : no hay demora al analizar por primera vez un archivo de un idioma precargado
- Detección temprana de errores : los problemas con los analizadores se descubren al inicio, no durante el uso
- Asignación de memoria predecible : la memoria para los analizadores utilizados con frecuencia se asigna por adelantado
De forma predeterminada, todos los analizadores se cargan bajo demanda cuando se necesitan. Para un rendimiento óptimo, especifique los idiomas que usa con más frecuencia en sus proyectos.
También puedes configurar ajustes específicos:
O utilice variables de entorno:
Las variables de entorno utilizan el formato MCP_TS_SECTION_SETTING
(por ejemplo, MCP_TS_CACHE_MAX_SIZE_MB
) para configuraciones de sección, o MCP_TS_SETTING
(por ejemplo, MCP_TS_LOG_LEVEL
) para configuraciones de nivel superior.
Los valores de configuración se aplican en este orden de precedencia:
- Variables de entorno (más altas)
- Valores establecidos mediante llamadas
configure()
- Archivo de configuración YAML
- Valores predeterminados (más bajos)
El servidor buscará la configuración en:
- Ruta especificada en la llamada
configure()
- Ruta especificada por la variable de entorno
MCP_TS_CONFIG_PATH
- Ubicación predeterminada:
~/.config/tree-sitter/config.yaml
Para desarrolladores
Capacidades de diagnóstico
El servidor MCP Tree-sitter incluye un marco de diagnóstico para ayudar a identificar y solucionar problemas:
Las pruebas de diagnóstico proporcionan información detallada sobre el comportamiento del servidor y pueden ayudar a identificar problemas específicos. Para obtener más información sobre el marco de diagnóstico, consulte la documentación de diagnóstico .
Consideraciones de seguridad de tipos
El servidor MCP Tree-sitter mantiene la seguridad de tipos al interactuar con bibliotecas de Tree-sitter mediante patrones y protocolos de diseño rigurosos. Si amplía el código base, consulte la guía de seguridad de tipos para obtener información importante sobre el manejo de las variaciones de la API de Tree-sitter.
Recursos disponibles
El servidor proporciona los siguientes recursos MCP:
project://{project}/files
- Lista todos los archivos de un proyectoproject://{project}/files/{pattern}
- Lista de archivos que coinciden con un patrónproject://{project}/file/{path}
- Obtener el contenido del archivoproject://{project}/file/{path}/lines/{start}-{end}
- Obtener líneas específicas de un archivoproject://{project}/ast/{path}
- Obtener el AST de un archivoproject://{project}/ast/{path}/depth/{depth}
- Obtener el AST con profundidad personalizada
Herramientas disponibles
El servidor proporciona herramientas para:
- Gestión de proyectos:
register_project_tool
,list_projects_tool
,remove_project_tool
- Gestión de idiomas:
list_languages
,check_language_available
- Operaciones de archivo:
list_files
,get_file
,get_file_metadata
- Análisis AST:
get_ast
,get_node_at_position
- Búsqueda de código:
find_text
,run_query
- Extracción de símbolos:
get_symbols
,find_usage
- Análisis del proyecto:
analyze_project
,get_dependencies
,analyze_complexity
- Creación de consultas:
get_query_template_tool
,list_query_templates_tool
,build_query
,adapt_query
,get_node_types
- Detección de código similar:
find_similar_code
- Gestión de caché:
clear_cache
- Diagnóstico de configuración:
diagnose_config
Consulte FEATURES.md para obtener información detallada sobre el estado de implementación, las dependencias y los ejemplos de uso de cada herramienta.
Indicaciones disponibles
El servidor proporciona las siguientes indicaciones MCP:
code_review
- Crea un mensaje para revisar el códigoexplain_code
- Crea un mensaje para explicar el códigoexplain_tree_sitter_query
- Explica la sintaxis de la consulta del cuidador de árbolessuggest_improvements
- Crea un mensaje para sugerir mejoras en el códigoproject_overview
- Crea una solicitud para un análisis general del proyecto
Licencia
Instituto Tecnológico de Massachusetts (MIT)
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona capacidades de análisis de código mediante tree-sitter, diseñado para brindarle a Claude acceso inteligente a las bases de código con administración de contexto adecuada.
- Características
- Instalación
- Inicio rápido
- Persistencia del Estado
- Uso
- Uso directo de Python
- Configuración
- Para desarrolladores
- Recursos disponibles
- Herramientas disponibles
- Indicaciones disponibles
- Licencia
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAn implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.Last updated -886JavaScriptMIT License
- -security-license-qualityA specialized server that helps users create new Model Context Protocol (MCP) servers by providing tools and templates for scaffolding projects with various capabilities.Last updated -1TypeScript
- -securityAlicense-qualityAn implementation of the Model Context Protocol (MCP) that enables interaction with debug adapters, allowing language models to control debuggers, set breakpoints, evaluate expressions, and navigate source code during debugging sessions.Last updated -2PythonAGPL 3.0
- -securityAlicense-qualityA Model Context Protocol server that enables IDEs like Cursor and Windsurf to analyze large codebases using Gemini's extensive context window.Last updated -17PythonMIT License