hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Integrates with Git repositories by recognizing and excluding .git directories from analysis
Provides language-specific code parsing and analysis for JavaScript files, with symbol extraction and AST-based understanding
Enables analysis of Julia code with tree-sitter parsing, symbol extraction, and dependency analysis
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 brindarle a Claude acceso inteligente a las bases de código con administración de contexto adecuada.
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
- Windows:
%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:CopyNota: asegúrese de reemplazarCopy/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
:Copy - 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
Uso con el Inspector MCP
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:
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:
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
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)
This server cannot be installed
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.
- Features
- Installation
- Quick Start
- State Persistence
- Usage
- Direct Python Usage
- Configuration
- Available Resources
- Available Tools
- Available Prompts
- License