Skip to main content
Glama
wrale

mcp-server-tree-sitter

by wrale

adapt_query

Transform a query from one programming language to another using tree-sitter-based code analysis. Ideal for adapting code queries across different languages with accurate context management.

Instructions

Adapt a query from one language to another.

    Args:
        query: Original query string
        from_language: Source language
        to_language: Target language

    Returns:
        Adapted query
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
from_languageYes
queryYes
to_languageYes

Implementation Reference

  • MCP tool handler and registration for 'adapt_query'. This decorated function executes the tool logic by importing and calling the helper adapt_query_for_language from query_builder, returning a dictionary with original and adapted query.
    @mcp_server.tool()
    def adapt_query(query: str, from_language: str, to_language: str) -> Dict[str, str]:
        """Adapt a query from one language to another.
    
        Args:
            query: Original query string
            from_language: Source language
            to_language: Target language
    
        Returns:
            Adapted query
        """
        from ..tools.query_builder import adapt_query_for_language
    
        adapted = adapt_query_for_language(query, from_language, to_language)
        return {
            "original_language": from_language,
            "target_language": to_language,
            "original_query": query,
            "adapted_query": adapted,
        }
  • Core helper function that performs the actual query adaptation using a dictionary of node type translations between languages, applying simple string replacements.
    def adapt_query_for_language(query: str, from_language: str, to_language: str) -> str:
        """
        Try to adapt a query from one language to another.
    
        Args:
            query: Original query
            from_language: Source language
            to_language: Target language
    
        Returns:
            Adapted query string
    
        Note:
            This is a simplified implementation that assumes similar node types.
            A real implementation would need language-specific translations.
        """
        translations = {
            # Python -> JavaScript
            ("python", "javascript"): {
                "function_definition": "function_declaration",
                "class_definition": "class_declaration",
                "block": "statement_block",
                "parameters": "formal_parameters",
                "argument_list": "arguments",
                "import_statement": "import_statement",
                "call": "call_expression",
            },
            # JavaScript -> Python
            ("javascript", "python"): {
                "function_declaration": "function_definition",
                "class_declaration": "class_definition",
                "statement_block": "block",
                "formal_parameters": "parameters",
                "arguments": "argument_list",
                "call_expression": "call",
            },
            # Add more language pairs...
        }
    
        pair = (from_language, to_language)
        if pair in translations:
            trans_dict = translations[pair]
            for src, dst in trans_dict.items():
                # Simple string replacement
                query = query.replace(f"({src}", f"({dst}")
    
        return query
  • Wrapper helper function in query_builder that calls adapt_query_for_language and formats the response dictionary, similar to the tool handler.
    def adapt_query(query: str, from_language: str, to_language: str) -> Dict[str, str]:
        """
        Adapt a query from one language to another.
    
        Args:
            query: Original query string
            from_language: Source language
            to_language: Target language
    
        Returns:
            Dictionary with adapted query and metadata
        """
        adapted = adapt_query_for_language(query, from_language, to_language)
        return {
            "original_language": from_language,
            "target_language": to_language,
            "original_query": query,
            "adapted_query": adapted,
        }

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