Skip to main content
Glama
wrale

mcp-server-tree-sitter

by wrale

get_node_types

Retrieve detailed descriptions of node types for a specified programming language, enabling structured code analysis and context management using tree-sitter.

Instructions

Get descriptions of common node types for a language.

    Args:
        language: Language name

    Returns:
        Dictionary of node types and descriptions
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
languageYes

Implementation Reference

  • MCP tool handler and registration for 'get_node_types'. This decorated function defines the tool's input (language: str) and output (Dict[str, str]), and delegates execution to describe_node_types.
    @mcp_server.tool()
    def get_node_types(language: str) -> Dict[str, str]:
        """Get descriptions of common node types for a language.
    
        Args:
            language: Language name
    
        Returns:
            Dictionary of node types and descriptions
        """
        from ..tools.query_builder import describe_node_types
    
        return describe_node_types(language)
  • Core implementation providing hardcoded descriptions of common Tree-sitter node types for supported languages (Python, JavaScript).
    def describe_node_types(language: str) -> Dict[str, str]:
        """
        Get descriptions of common node types for a language.
    
        Args:
            language: Language identifier
    
        Returns:
            Dictionary of node type -> description
        """
        # This would ideally be generated from tree-sitter grammar definitions
        descriptions = {
            "python": {
                "module": "The root node of a Python file",
                "function_definition": "A function definition with name and params",
                # Shortened for line length
                "class_definition": "A class definition with name and body",
                "import_statement": "An import statement",
                "import_from_statement": "A from ... import ... statement",
                "assignment": "An assignment statement",
                "call": "A function call with function name and arguments",
                "identifier": "An identifier (name)",
                "string": "A string literal",
                "integer": "An integer literal",
                "float": "A floating-point literal",
                "block": "A block of code (indented statements)",
                "if_statement": "An if statement with condition and body",
                "for_statement": "A for loop with target, iterable, and body",
                "while_statement": "A while loop with condition and body",
            },
            "javascript": {
                "program": "The root node of a JavaScript file",
                "function_declaration": "A function declaration with name and params",
                "arrow_function": "An arrow function with parameters and body",
                "class_declaration": "A class declaration with name and body",
                "import_statement": "An import statement",
                "export_statement": "An export statement",
                "variable_declaration": "A variable declaration",
                "call_expression": "A function call with function and arguments",
                "identifier": "An identifier (name)",
                "string": "A string literal",
                "number": "A numeric literal",
                "statement_block": "A block of statements",
                "if_statement": "An if statement with condition and consequence",
                "for_statement": "A for loop",
                "while_statement": "A while loop with condition and body",
            },
            # Add more languages...
        }
    
        return descriptions.get(language, {})

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wrale/mcp-server-tree-sitter'

If you have feedback or need assistance with the MCP directory API, please join our Discord server