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
|