Skip to main content

⚙️ Jadx MCP Plugin — Decompiler Access for Claude via MCP

This project provides a Jadx plugin written in Java, which exposes the Jadx API over HTTP — enabling live interaction through MCP clients like Claude via the Model Context Protocol (MCP). A lightweight FastMCP adapter in Python acts as a bridge between Claude and the plugin. This enables intelligent navigation and automation of reverse engineering workflows, ideal for AI-assisted security analysis of Android apps.


🧰 Setup Instructions

# Clone this repository
git clone https://github.com/mobilehackinglab/jadx-mcp-plugin.git
cd jadx-mcp-plugin

# Create and activate a virtual environment
python3 -m venv venv

# Activate:
source venv/bin/activate      # Linux/Mac
.\venv\Scripts\activate       # Windows

Install Python dependencies

pip install -r requirements.txt 

🧠 Setup Claude MCP CLient Integration

To use this adapter in Claude Desktop, go to File -> Settings -> Developer -> Edit Config -> claude_desktop_config.json and add an MCP server pointing to the Python executable in the venv (to prevent depedency issues) and the full adapter path following below examples:

Windows:

{
  "mcpServers": {
    "Jadx MCP Server": {
      "command": "C:\\Workset\\jadx-mcp-plugin\\venv\\Scripts\\python.exe",
      "args": ["C:\\Workset\\jadx-mcp-plugin\\fastmcp_adapter.py"]
    }
  }
}

MacOS / Linux:

{
  "mcpServers": {
    "Jadx MCP Server": {
      "command": "/Users/yourname/jadx-mcp-plugin/venv/bin/python",
      "args": ["/Users/yourname/jadx-mcp-plugin/fastmcp_adapter.py"]
    }
  }
}

Make sure to restart (Quit) Claude after editing the config. After restart it should look like this:

✅ Usage Flow

  1. Open Jadx with the latest plugin JAR from the releases placed in its plugins/ folder or load it via Plugins -> install plugin.

  2. Load an APK or DEX file

  3. (Optional) You can specify the HTTP interface address by launching Jadx with:

    jadx-gui -Pjadx-mcp.http-interface=http://localhost:8085
    

    This is useful if you want to change the default host/port (http://localhost:8085).

    Note: If you change the interface address here, make sure to also update the corresponding URL in fastmcp_adapter.py to match.

  4. Claude will detect and activate the Jadx MCP Server tools.

  5. You can now list classes, fetch source, inspect methods/fields, and extract code live.


🧪 Tools Provided

Tool Description
list_all_classes Get all decompiled class names
search_class_by_name Find classes matching a string
get_class_source Get full source of a given class
search_method_by_name Find methods matching a string
get_methods_of_class List all method names in a class
get_fields_of_class List all field names in a class
get_method_code Extract decompiled code for a method

🛠 Development

☕ Java Plugin

The Java plugin is located at:

plugin/src/main/java/com/mobilehackinglab/jadxplugin/McpPlugin.java

It uses the JadxPlugin API (jadx.api.*) to:

  • Load decompiled classes and methods
  • Serve structured data via an embedded HTTP server
  • Respond to /invoke and /tools endpoints

🚀 Automated Installation with Gradle Tasks

You can use the following Gradle task to build and install the plugin in one step:

./gradlew installPlugin

This uses the jadx plugins CLI. Make sure Jadx is installed and available in your PATH.

For other plugin-related tasks (uninstall, enable/disable), see the task definitions in plugin/build.gradle.

🔧 Manual Installation

To build the plugin:

./gradlew build
# Output: plugin/build/libs/jadx-mcp-plugin-<version>.jar

Install the plugin JAR using the jadx plugins CLI:

jadx plugins --install-jar path/to/jadx-mcp-plugin-<version>.jar

Alternatively, place the built .jar file into your Jadx plugins/ folder, typically located at: ~/.jadx/plugins/

If you place the JAR manually, you’ll also need to enable the plugin through the Jadx GUI or by running:

jadx plugins --enable jadx-mcp

Python FastMCP Adapter

The adapter file is:

fastmcp_adapter.py

It translates Claude’s MCP tool calls into HTTP POSTs to the running Jadx plugin server. Make sure Jadx is open before starting Claude.


🤝 Contributing

PRs, feature requests, and tool extensions are welcome!
This project is maintained by Mobile Hacking Lab.


🧩 Credits

Metadata

Release files for iflow-mcp_mobilehackinglab-jadx-mcp-plugin 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_mobilehackinglab-jadx-mcp-plugin 1.0.0
File Size Uploaded
iflow_mcp_mobilehackinglab_jadx_mcp_plugin-1.0.0.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_mobilehackinglab-jadx-mcp-plugin 1.0.0
File Interpreter ABI Platform
iflow_mcp_mobilehackinglab_jadx_mcp_plugin-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.5 kB

Release files / iflow_mcp_mobilehackinglab_jadx_mcp_plugin-1.0.0.tar.gz

Download URL iflow_mcp_mobilehackinglab_jadx_mcp_plugin-1.0.0.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
be0e7c448a93092ef994c610eef3a069f8ea92a1f88f996bfbe2434778075cb4
BLAKE2b-256 checksum
How to use checksums
ef967496785044b4a078b958d3b65e82967b9a96d82b977b858be939831b4700
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_mobilehackinglab_jadx_mcp_plugin-1.0.0-py3-none-any.whl

Download URL iflow_mcp_mobilehackinglab_jadx_mcp_plugin-1.0.0-py3-none-any.whl
Size 5.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
240533e17537a48f59961977edcb8fb9c7f07cd11777f2fd714053289718d311
BLAKE2b-256 checksum
How to use checksums
3140ff556474a9083d5c6150d1b94b4894429dc36c73664c7146eb42e3f9a9f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page