Skip to main content
Glama
sfncat
by sfncat

get_method_full_name_by_id

Retrieve the fully qualified name of a method using its unique identifier. This tool helps identify methods in code analysis by converting method IDs to complete method signatures.

Instructions

Retrieves the fully qualified name of a method by its ID

@param id: The unique identifier of the method, the id is a Long int string, like '111669149702L'
@return: The fully qualified name of the method (e.g., com.android.nfc.NfcService$6.onReceive:void(android.content.Context,android.content.Intent))

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
method_idYes

Implementation Reference

  • The handler function for the get_method_full_name_by_id tool. It uses the @joern_mcp.tool() decorator for automatic registration and schema inference from type hints and docstring. The logic queries the Joern server remotely and extracts the result.
    @joern_mcp.tool()
    def get_method_full_name_by_id(method_id:str) -> str:
        """Retrieves the fully qualified name of a method by its ID
        
        @param id: The unique identifier of the method, the id is a Long int string, like '111669149702L'
        @return: The fully qualified name of the method (e.g., com.android.nfc.NfcService$6.onReceive:void(android.content.Context,android.content.Intent))
        """
        response = joern_remote(f'get_method_full_name_by_id("{method_id}")')
        return extract_value(response)
  • server.py:32-32 (registration)
    Creation of the FastMCP server instance named 'joern_mcp' which is used to register all tools via decorators.
    joern_mcp = FastMCP("joern-mcp", log_level=log_level)
  • server.py:96-106 (registration)
    Dynamic registration of tools from server_tools.py by executing its code, which applies the @joern_mcp.tool() decorators to register get_method_full_name_by_id and others.
    def generate():
        """Generate and execute additional server tools from server_tools.py file.
        
        This function reads the content of server_tools.py and executes it to add
        more functionality to the server.
        """
        with open(GENERATED_PY, "r") as f:
            code = f.read()
            exec(compile(code, GENERATED_PY, "exec"))
    
    generate()
  • Helper function to send HTTP POST requests to the Joern server with the query and return cleaned stdout response, used by the tool handler.
    def joern_remote(query):
        """
        Execute remote query and return results
        
        Parameters:
        query -- The query string to execute
        
        Returns:
        Returns the server response stdout content on success
        Returns None on failure, error message will be output to stderr
        """
        data = {"query": query}
        headers = {'Content-Type': 'application/json'}
    
        try:
            response = requests.post(
                f'http://{server_endpoint}/query-sync',
                data=json.dumps(data),
                headers=headers,
                auth=basic_auth,
                timeout=timeout
            )
            response.raise_for_status()  
            
            result = response.json()
            return remove_ansi_escape_sequences(result.get('stdout', ''))
            
        except requests.exceptions.RequestException as e:
            sys.stderr.write(f"Request Error: {str(e)}\n")
        except json.JSONDecodeError:
            sys.stderr.write("Error: Invalid JSON response\n")
        
        return None
  • Helper utility to parse and extract the value from Joern query responses based on patterns, used in the tool handler to process the response.
    def extract_value(input_str: str) -> str:
        """Extract value from a string based on its pattern.
        
        This function automatically selects the appropriate extraction method based on
        the input string format:
        * If contains 'Long =', uses extract_long_value
        * If contains triple quotes, uses extract_code_between_triple_quotes
        * If contains single quotes, uses extract_quoted_string
        
        Args:
            input_str (str): Input string containing a value to extract
            
        Returns:
            str: Extracted value based on the detected pattern
        """
        if 'Long =' in input_str:
            return extract_long_value(input_str)
        elif 'String = """' in input_str:
            return extract_code_between_triple_quotes(input_str)
        elif 'String = "' in input_str:
            return extract_quoted_string(input_str)
        else:
            return input_str

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/sfncat/mcp-joern'

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