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