mcp-server-tree-sitter

mcp-server-tree-sitter

4.4

mcp-server-tree-sitter is hosted online, so all tools can be tested directly either in theTools tabor in theOnline Client.

If you are the rightful owner of mcp-server-tree-sitter and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcpreview.com.

The MCP Tree-sitter Server is a Model Context Protocol server that provides code analysis capabilities using tree-sitter, designed to give AI assistants intelligent access to codebases with appropriate context management.

The MCP Tree-sitter Server is a powerful tool designed to enhance code analysis capabilities for AI assistants by leveraging the tree-sitter parsing library. It provides a structured and efficient way to explore and analyze codebases, offering features such as flexible exploration, context management, and language agnosticism. The server supports a wide range of programming languages and is particularly useful for projects requiring detailed code structure analysis and symbol extraction. It is optimized for performance with features like caching and state persistence, ensuring that projects remain registered and data is cached between sessions. The server is secure, with built-in input validation and security boundaries, making it a reliable choice for developers looking to integrate advanced code analysis into their workflows.

Features

  • Flexible Exploration: Examine code at multiple levels of granularity.
  • Context Management: Provides just enough information without overwhelming the context window.
  • Language Agnostic: Supports many programming languages via tree-sitter-language-pack.
  • Structure-Aware: Uses AST-based understanding with efficient cursor-based traversal.
  • Secure: Built-in security boundaries and input validation.

Tools

  1. configure

    Configure the server.

        Args:
            config_path: Path to YAML config file
            cache_enabled: Whether to enable parse tree caching
            max_file_size_mb: Maximum file size in MB
            log_level: Logging level (DEBUG, INFO, WARNING, ERROR)
    
        Returns:
            Current configuration
        
    
  2. register_project_tool

    Register a project directory for code exploration.

        Args:
            path: Path to the project directory
            name: Optional name for the project (defaults to directory name)
            description: Optional description of the project
    
        Returns:
            Project information
        
    
  3. list_projects_tool

    List all registered projects.

        Returns:
            List of project information
        
    
  4. remove_project_tool

    Remove a registered project.

        Args:
            name: Project name
    
        Returns:
            Success message
        
    
  5. list_languages

    List available languages.

        Returns:
            Information about available languages
        
    
  6. check_language_available

    Check if a tree-sitter language parser is available.

        Args:
            language: Language to check
    
        Returns:
            Success message
        
    
  7. list_files

    List files in a project.

        Args:
            project: Project name
            pattern: Optional glob pattern (e.g., "**/*.py")
            max_depth: Maximum directory depth
            extensions: List of file extensions to include (without dot)
    
        Returns:
            List of file paths
        
    
  8. get_file

    Get content of a file.

        Args:
            project: Project name
            path: File path relative to project root
            max_lines: Maximum number of lines to return
            start_line: First line to include (0-based)
    
        Returns:
            File content
        
    
  9. get_file_metadata

    Get metadata for a file.

        Args:
            project: Project name
            path: File path relative to project root
    
        Returns:
            File metadata
        
    
  10. get_ast

    Get abstract syntax tree for a file.

        Args:
            project: Project name
            path: File path relative to project root
            max_depth: Maximum depth of the tree (default: 5)
            include_text: Whether to include node text
    
        Returns:
            AST as a nested dictionary
        
    
  11. get_node_at_position

    Find the AST node at a specific position.

        Args:
            project: Project name
            path: File path relative to project root
            row: Line number (0-based)
            column: Column number (0-based)
    
        Returns:
            Node information or None if not found
        
    
  12. find_text

    Search for text pattern in project files.

        Args:
            project: Project name
            pattern: Text pattern to search for
            file_pattern: Optional glob pattern (e.g., "**/*.py")
            max_results: Maximum number of results
            case_sensitive: Whether to do case-sensitive matching
            whole_word: Whether to match whole words only
            use_regex: Whether to treat pattern as a regular expression
            context_lines: Number of context lines to include
    
        Returns:
            List of matches with file, line number, and text
        
    
  13. run_query

    Run a tree-sitter query on project files.

        Args:
            project: Project name
            query: Tree-sitter query string
            file_path: Optional specific file to query
            language: Language to use (required if file_path not provided)
            max_results: Maximum number of results
    
        Returns:
            List of query matches
        
    
  14. get_query_template_tool

    Get a predefined tree-sitter query template.

        Args:
            language: Language name
            template_name: Template name (e.g., "functions", "classes")
    
        Returns:
            Query template information
        
    
  15. list_query_templates_tool

    List available query templates.

        Args:
            language: Optional language to filter by
    
        Returns:
            Available templates
        
    
  16. build_query

    Build a tree-sitter query from templates or patterns.

        Args:
            language: Language name
            patterns: List of template names or custom patterns
            combine: How to combine patterns ("or" or "and")
    
        Returns:
            Combined query
        
    
  17. adapt_query

    Adapt a query from one language to another.

        Args:
            query: Original query string
            from_language: Source language
            to_language: Target language
    
        Returns:
            Adapted query
        
    
  18. get_node_types

    Get descriptions of common node types for a language.

        Args:
            language: Language name
    
        Returns:
            Dictionary of node types and descriptions
        
    
  19. get_symbols

    Extract symbols from a file.

        Args:
            project: Project name
            file_path: Path to the file
            symbol_types: Types of symbols to extract (functions, classes, imports, etc.)
    
        Returns:
            Dictionary of symbols by type
        
    
  20. analyze_project

    Analyze overall project structure.

        Args:
            project: Project name
            scan_depth: Depth of detailed analysis (higher is slower)
            ctx: Optional MCP context for progress reporting
    
        Returns:
            Project analysis
        
    
  21. get_dependencies

    Find dependencies of a file.

        Args:
            project: Project name
            file_path: Path to the file
    
        Returns:
            Dictionary of imports/includes
        
    
  22. analyze_complexity

    Analyze code complexity.

        Args:
            project: Project name
            file_path: Path to the file
    
        Returns:
            Complexity metrics
        
    
  23. find_similar_code

    Find similar code to a snippet.

        Args:
            project: Project name
            snippet: Code snippet to find
            language: Language of the snippet
            threshold: Similarity threshold (0.0-1.0)
            max_results: Maximum number of results
    
        Returns:
            List of similar code locations
        
    
  24. find_usage

    Find usage of a symbol.

        Args:
            project: Project name
            symbol: Symbol name to find
            file_path: Optional file to look in (for local symbols)
            language: Language to search in
    
        Returns:
            List of usage locations
        
    
  25. clear_cache

    Clear the parse tree cache.

        Args:
            project: Optional project to clear cache for
            file_path: Optional specific file to clear cache for
    
        Returns:
            Status message
        
    
  26. diagnose_config

    Diagnose issues with YAML configuration loading.

        Args:
            config_path: Path to YAML config file
    
        Returns:
            Diagnostic information