mcp-server-tree-sitter

by wrale
MIT License
33
  • Apple
  • Linux

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Schema

Prompts

Interactive templates invoked by user choice

NameDescription
code_reviewCreate a prompt for reviewing a code file
explain_codeCreate a prompt for explaining a code file
explain_tree_sitter_queryCreate a prompt explaining tree-sitter query syntax
suggest_improvementsCreate a prompt for suggesting code improvements
project_overviewCreate a prompt for a project overview analysis

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
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
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
list_projects_tool

List all registered projects.

Returns: List of project information
remove_project_tool

Remove a registered project.

Args: name: Project name Returns: Success message
list_languages

List available languages.

Returns: Information about available languages
check_language_available

Check if a tree-sitter language parser is available.

Args: language: Language to check Returns: Success message
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
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
get_file_metadata

Get metadata for a file.

Args: project: Project name path: File path relative to project root Returns: File metadata
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
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
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
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
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
list_query_templates_tool

List available query templates.

Args: language: Optional language to filter by Returns: Available templates
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
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
get_node_types

Get descriptions of common node types for a language.

Args: language: Language name Returns: Dictionary of node types and descriptions
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
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
get_dependencies

Find dependencies of a file.

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

Analyze code complexity.

Args: project: Project name file_path: Path to the file Returns: Complexity metrics
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
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
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
diagnose_config

Diagnose issues with YAML configuration loading.

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