Server profile

JADX-AI-MCP

Connect an MCP assistant to JADX's live Android decompilation context. The Java plugin and companion Python server expose source inspection, resource access, cross-references, renaming, and debugger information.

Server facts

JADX-AI-MCP

Tech

Runtime / language
javaJava and Python
Transports
stdio
Remote available
No
Authentication
Not specified

Activity

GitHub stars
2,909
Last commit
Data as of

Tags

  • Android
  • Apk Analysis
  • Jadx
  • Reverse Engineering
  • Security Review

Overview

JADX-AI-MCP links assistant conversations to an Android application opened in the JADX decompiler. It is a two-part integration: a Java plugin inside JADX and a companion Python MCP server. The assistant calls the server, which forwards requests to the plugin and returns information from the live GUI context. This arrangement supports reverse engineering and security review without requiring every relevant class or resource to be copied manually into a conversation.

The available tools expose selected text, class and method source, fields, smali, application classes, and Android manifest content. Resource operations retrieve strings and other packaged files. Search and cross-reference tools help trace behavior across classes, methods, and fields, with pagination documented for several operations. Renaming tools cover packages, classes, methods, fields, and local variables. Debugger access adds stack frames, threads, and variable state, allowing the assistant to reason about runtime observations alongside decompiled code.

Setup requires both the JADX plugin and its companion server, not just the plugin artifact. The README documents release downloads, a plugin installation command, uv-based server execution, and an executable installation option. It lists Java 11 or newer and Python 3.10 or newer. Stdio is the basic client connection, with HTTP mode available separately. Client-facing listening settings and the target plugin address are independent, which matters when the server and JADX run on different machines.

Install & configure

Requirements

  • Java 11 or newer
  • Python 3.10 or newer
  • JADX with the JADX-AI-MCP plugin installed
  • Companion JADX MCP Server
  • uv
Documented launch / install command
uv --directory path/to/jadx-mcp-server run jadx_mcp_server.py

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.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.

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

Read the Claude Desktop setup guide

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.

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

Read the Cursor setup guide

Config file · Workspace: .vscode/mcp.json

For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.

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

Read the VS Code setup guide

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.

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

Read the Windsurf setup guide

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

The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.

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

Read the Claude Code setup guide

Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.

Tools

Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.

ToolWhat it does
fetch_current_classRead the selected class name and source from JADX.
get_selected_textRetrieve text highlighted in the decompiler.
get_all_classesEnumerate classes in the opened project.
get_class_sourceLoad decompiled source for a named class.
get_method_by_nameRead a method's decompiled source.
search_method_by_nameLocate matching methods across classes.
search_classes_by_keywordSearch class source for a keyword with paginated results.
get_methods_of_classEnumerate methods belonging to a class.
get_fields_of_classEnumerate a class's fields.
get_smali_of_classRetrieve a class's smali representation.
get_main_activity_classResolve the main activity declared in the Android manifest.
get_main_application_classes_codeRead source for application classes selected through the manifest package.
get_main_application_classes_namesList application class names associated with the manifest package.
get_android_manifestRetrieve the application's AndroidManifest.xml.
get_manifest_componentRead one manifest component rather than the full document.
get_stringsLoad the packaged strings.xml resource.
get_all_resource_file_namesEnumerate packaged resource filenames.
get_resource_fileRead a selected resource file.
rename_classChange a class's displayed name.
rename_methodAssign a clearer name to a method.
rename_fieldChange a field identifier.
rename_packageRename an application package.
rename_variableRename a local variable within a method.
debug_get_stack_framesInspect stack frames from the JADX debugger.
debug_get_threadsRetrieve thread information from the debugger.
debug_get_variablesRead debugger variable values.
xrefs_to_classFind class and method references targeting a class.
xrefs_to_methodFind method references, including override-related methods.
xrefs_to_fieldLocate methods that access a field.

Names, permissions, and defaults can change. Check the current upstream documentation before granting access.

Use cases

  • Review decompiled Android code for insecure API use or embedded secrets.
  • Follow references to understand an APK's behavior.
  • Rename obfuscated symbols during an investigation.
  • Inspect manifest entries, resources, and debugger state together.

Strengths

  • Connects directly to the current JADX context.
  • Combines source, resources, cross-references, and debugger information.
  • Supports both stdio and HTTP client connections.

Limitations

  • Requires a plugin plus a separate Python server.
  • Remote setups must distinguish the MCP listener from the JADX plugin connection.

Frequently asked questions

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

Yes. Tools expose strings.xml, resource filenames, individual resources, and manifest content.

Yes. The documented tools retrieve stack frames, threads, and variables from JADX's debugger.

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

Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.

Related MCP servers