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
Try it
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
Try it
list_projects_tool
List all registered projects.
Returns:
List of project information
Try it
remove_project_tool
Remove a registered project.
Args:
name: Project name
Returns:
Success message
Try it
list_languages
List available languages.
Returns:
Information about available languages
Try it
check_language_available
Check if a tree-sitter language parser is available.
Args:
language: Language to check
Returns:
Success message
Try it
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
Try it
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
Try it
get_file_metadata
Get metadata for a file.
Args:
project: Project name
path: File path relative to project root
Returns:
File metadata
Try it
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
Try it
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
Try it
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
Try it
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
Try it
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
Try it
list_query_templates_tool
List available query templates.
Args:
language: Optional language to filter by
Returns:
Available templates
Try it
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
Try it
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
Try it
get_node_types
Get descriptions of common node types for a language.
Args:
language: Language name
Returns:
Dictionary of node types and descriptions
Try it
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
Try it
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
Try it
get_dependencies
Find dependencies of a file.
Args:
project: Project name
file_path: Path to the file
Returns:
Dictionary of imports/includes
Try it
analyze_complexity
Analyze code complexity.
Args:
project: Project name
file_path: Path to the file
Returns:
Complexity metrics
Try it
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
Try it
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
Try it
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
Try it
diagnose_config
Diagnose issues with YAML configuration loading.
Args:
config_path: Path to YAML config file
Returns:
Diagnostic information
Try it