Skip to main content
Glama
bartest5

JADX-MCP-SERVER

by bartest5

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
hostNoWhere the MCP server listens (bind address for LLM clients)127.0.0.1
httpNoUse HTTP transport instead of stdio (--http flag)false
portNoWhich port the MCP server listens on8651
jadx_hostNoWhere to find the JADX plugin (the target JADX-GUI machine)127.0.0.1
jadx_portNoWhich port the JADX plugin is on8650

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
fetch_current_classA

Fetch the currently selected class and its code from the JADX-GUI plugin.

get_selected_textB

Returns the currently selected text in the decompiled code view.

get_method_by_nameC

Fetch the source code of a method from a specific class.

get_all_classesC

Returns a list of all classes in the project with pagination support.

get_class_sourceC

Fetch the Java source of a specific class.

search_method_by_nameC

Search for a method name across all classes.

get_methods_of_classC

List all method names in a class.

search_classes_by_keywordB

Search for classes containing a specific keyword with flexible filtering options.

This tool performs a comprehensive search across decompiled Android code, allowing you to:

  1. Search within specific packages by providing a package name

  2. Target specific search scopes (class names, method names, fields, code content, comments)

  3. Combine multiple search scopes for precise results

get_fields_of_classC

List all field names in a class.

get_smali_of_classC

Fetch the smali representation of a class.

get_manifest_componentA

Retrieve specified component data from AndroidManifest.xml, support filter exported components. Support standard Android components: activity, provider, service, receiver.

get_android_manifestB

Retrieve and return the AndroidManifest.xml content.

get_stringsC

Retrieve contents of strings.xml files.

get_all_resource_file_namesC

Retrieve all resource files names.

get_resource_fileC

Retrieve resource file content.

get_main_application_classes_namesB

Fetch main application classes' names from Manifest package.

get_main_application_classes_codeC

Fetch main application classes' code with pagination.

get_main_activity_classA

Fetch the main activity class from AndroidManifest.xml.

get_package_treeA

Get all packages in the APK sorted by class count. Shows total_classes, total_packages, and per-package name, class_count, is_likely_library. Use this first to understand the APK structure before searching.

get_cache_statsA

Get decompilation cache statistics: hits, misses, hit_rate, cached_classes, compressed_mb, compression_ratio.

clear_cacheA

Clear the decompilation source cache and reset counters. Use when switching APKs or to free memory.

rename_classC

Renames a specific class.

rename_methodD

Renames a specific method.

rename_fieldC

Renames a specific field.

rename_packageC

Renames a package and all its classes.

rename_variableC

Renames a specific variable in a method.

debug_get_stack_framesB

Get current stack frames (call stack).

debug_get_threadsA

Get all threads in the debugged process.

debug_get_variablesA

Get current variables when process is suspended.

get_xrefs_to_classC

Find all references to a class.

get_xrefs_to_methodC

Find all references to a method.

get_xrefs_to_fieldC

Find all references to a field.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 32 tools

Disambiguation4/5

Most tools target a distinct resource plus action (class source vs. smali vs. methods vs. fields vs. xrefs), and the rename_* family is cleanly scoped per symbol. A few pairs are close: fetch_current_class vs. get_class_source, and get_method_by_name vs. search_method_by_name, but the descriptions (fetch one method by class/name vs. search names across all classes) resolve them adequately. get_main_application_classes_names vs. get_all_classes is also slightly fuzzy but the manifest-package scope distinguishes it.

Naming Consistency4/5

Predominantly consistent snake_case verb_noun (get_class_source, get_fields_of_class, search_classes_by_keyword, rename_method). Minor deviations: a fetch_ vs. get_ mix, and the debug tools use a debug_ prefix group rather than the verb_noun form used elsewhere. Still highly predictable overall.

Tool Count3/5

32 tools is on the heavy side and the surface spans four sub-domains (code retrieval, search, resources/manifest, rename refactoring, plus a debugger). There is some redundancy, e.g. get_android_manifest, get_manifest_component, get_main_activity_class, and get_main_application_classes_names/code all read from the same manifest and could be consolidated. Each area is individually justified, but the set feels broader than a single coherent scope.

Completeness4/5

Coverage is strong for reverse-engineering workflows: class/method/field retrieval, smali, three kinds of xrefs, keyword search, resources, manifest, rename refactoring, and cache management. Gaps exist in the debugger subset, which only exposes read-only inspection (stack frames, threads, variables) with no continue/step/breakpoint control, and there is no smali-for-method or export/dump operation. These are workable gaps rather than dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues