Data as of

JADX-AI-MCP for Claude Code: Setup & Config

Claude Code: Connect an MCP assistant to JADX's live Android decompilation context.

What you can do with JADX-AI-MCP in Claude Code

Choose it for assistant-assisted Android reverse engineering inside an active JADX session.

  • Review decompiled Android code for insecure API use or embedded secrets.
  • Inspect manifest entries, resources, and debugger state together.

Before you start: JADX-AI-MCP in Claude Code

  • Java 11 or newer
  • Python 3.10 or newer
  • JADX with the JADX-AI-MCP plugin installed
  • Companion JADX MCP Server
  • uv

This follows the README's Cherry Studio configuration. Replace the directory with the companion server checkout. The plugin and server are separate components; uv venv alone does not start the MCP server.

JADX-AI-MCP Claude Code configuration

  1. Choose Claude Code configuration scope

    For JADX-AI-MCP, open Project scope: .mcp.json at the repository root. Project JSON: merge into mcpServers; user scope: use the CLI.

  2. Add JADX-AI-MCP to Claude Code

    Use the jadx-ai-mcp entry below in mcpServers. Keep JADX-AI-MCP's documented stdio connection fields and your other Claude Code entries.

  3. Check JADX-AI-MCP in Claude Code

    JADX-AI-MCP: Inspect claude mcp list and /mcp status.

Config file · Project scope: .mcp.json at the repository root

JSON
{
  "mcpServers": {
    "jadx-ai-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "path/to/jadx-mcp-server",
        "run",
        "jadx_mcp_server.py"
      ],
      "env": {}
    }
  }
}

CLI (POSIX shell)
claude mcp add-json --scope project 'jadx-ai-mcp' '{"type":"stdio","command":"uv","args":["--directory","path/to/jadx-mcp-server","run","jadx_mcp_server.py"],"env":{}}'

JADX-AI-MCP tools available to Claude Code

JADX-AI-MCP's stored tool list documents 29 tools; compare it with Claude Code's connected tool list, because the stored list is not a live check.

fetch_current_class

For JADX-AI-MCP's fetch_current_class, review the permission request and arguments in Claude Code before approval.

get_selected_text

For JADX-AI-MCP's get_selected_text, review the permission request and arguments in Claude Code before approval.

get_all_classes

For JADX-AI-MCP's get_all_classes, review the permission request and arguments in Claude Code before approval.

Enumerate classes in the opened project.

get_class_source

For JADX-AI-MCP's get_class_source, review the permission request and arguments in Claude Code before approval.

Load decompiled source for a named class.

get_method_by_name

For JADX-AI-MCP's get_method_by_name, review the permission request and arguments in Claude Code before approval.

Read a method's decompiled source.

search_method_by_name

For JADX-AI-MCP's search_method_by_name, review the permission request and arguments in Claude Code before approval.

Locate matching methods across classes.

search_classes_by_keyword

For JADX-AI-MCP's search_classes_by_keyword, review the permission request and arguments in Claude Code before approval.

Search class source for a keyword with paginated results.

get_methods_of_class

For JADX-AI-MCP's get_methods_of_class, review the permission request and arguments in Claude Code before approval.

Enumerate methods belonging to a class.

get_fields_of_class

For JADX-AI-MCP's get_fields_of_class, review the permission request and arguments in Claude Code before approval.

Enumerate a class's fields.

get_smali_of_class

For JADX-AI-MCP's get_smali_of_class, review the permission request and arguments in Claude Code before approval.

Retrieve a class's smali representation.

get_main_activity_class

For JADX-AI-MCP's get_main_activity_class, review the permission request and arguments in Claude Code before approval.

get_main_application_classes_code

For JADX-AI-MCP's get_main_application_classes_code, review the permission request and arguments in Claude Code before approval.

get_main_application_classes_names

For JADX-AI-MCP's get_main_application_classes_names, review the permission request and arguments in Claude Code before approval.

get_android_manifest

For JADX-AI-MCP's get_android_manifest, review the permission request and arguments in Claude Code before approval.

get_manifest_component

For JADX-AI-MCP's get_manifest_component, review the permission request and arguments in Claude Code before approval.

get_strings

For JADX-AI-MCP's get_strings, review the permission request and arguments in Claude Code before approval.

get_all_resource_file_names

For JADX-AI-MCP's get_all_resource_file_names, review the permission request and arguments in Claude Code before approval.

get_resource_file

For JADX-AI-MCP's get_resource_file, review the permission request and arguments in Claude Code before approval.

rename_class

For JADX-AI-MCP's rename_class, review the permission request and arguments in Claude Code before approval.

rename_method

For JADX-AI-MCP's rename_method, review the permission request and arguments in Claude Code before approval.

rename_field

For JADX-AI-MCP's rename_field, review the permission request and arguments in Claude Code before approval.

rename_package

For JADX-AI-MCP's rename_package, review the permission request and arguments in Claude Code before approval.

rename_variable

For JADX-AI-MCP's rename_variable, review the permission request and arguments in Claude Code before approval.

Rename a local variable within a method.

debug_get_stack_frames

For JADX-AI-MCP's debug_get_stack_frames, review the permission request and arguments in Claude Code before approval.

Inspect stack frames from the JADX debugger.

debug_get_threads

For JADX-AI-MCP's debug_get_threads, review the permission request and arguments in Claude Code before approval.

Retrieve thread information from the debugger.

debug_get_variables

For JADX-AI-MCP's debug_get_variables, review the permission request and arguments in Claude Code before approval.

Read debugger variable values.

xrefs_to_class

For JADX-AI-MCP's xrefs_to_class, review the permission request and arguments in Claude Code before approval.

Find class and method references targeting a class.

xrefs_to_method

For JADX-AI-MCP's xrefs_to_method, review the permission request and arguments in Claude Code before approval.

Find method references, including override-related methods.

xrefs_to_field

For JADX-AI-MCP's xrefs_to_field, review the permission request and arguments in Claude Code before approval.

Locate methods that access a field.

JADX-AI-MCP: full stored tool descriptions

Troubleshooting JADX-AI-MCP in Claude Code

  • If JADX-AI-MCP fails to start, check uv, the working directory, and Claude Code's selected scope; inspect claude mcp list and /mcp.
  • JADX-AI-MCP uses stdio here: Claude Code must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Requires a plugin plus a separate Python server.
  • Known limitation: Remote setups must distinguish the MCP listener from the JADX plugin connection.
  • General Claude Code troubleshooting lives in the /clients/claude-code guide.

JADX-AI-MCP — details. Claude Code guide

Frequently asked questions

Register JADX-AI-MCP with the displayed claude mcp add-json --scope project command, or merge the JSON into .mcp.json at the repository root.

Claude Code's jadx-ai-mcp example uses stdio.

JADX-AI-MCP's Claude Code configuration invokes uv.

JADX-AI-MCP's stored list contains 29 tools, including fetch_current_class, get_selected_text, get_all_classes. Compare those names with Claude Code's connected tool list; the stored list is not a live check.

No. The integration also uses a standalone Python MCP server that communicates with the plugin.

No. The MCP listener has its own host and port, while separate JADX host and port flags identify the plugin.