Labsco
MCP SERVER

JADX-AI-MCP

by zinja-coder

Ask about the APK you already have open in JADX-GUI — the selected class, the manifest, the smali, the debugger's variables — and rename things back into readable names as you go.

Code Intelligence & Repository IndexingOfficial source
Summary
Reverse-engineer an Android app by talking to the decompiler you already have open.

Instead of copying decompiled classes into a chat, the agent reads them from your live JADX session — and can rename classes, methods and fields back, so the deobfuscation survives in the project rather than in the transcript.

What it is

A plugin that runs inside JADX-GUI plus a companion Python server that speaks MCP. Every call is forwarded over HTTP into the running GUI, so answers come from the project you actually have open rather than from a copy you pasted somewhere.

What you get
  • The class you have selected right now with its full source, or just the text you highlighted, via `fetch_current_class` and `get_selected_text`
  • Whole-project navigation: `get_all_classes`, `get_class_source`, `get_methods_of_class`, `get_fields_of_class`, `get_smali_of_class`, `get_method_by_name`
  • Search across the decompiled code with `search_method_by_name` and `search_classes_by_keyword`, both paginated
  • The manifest and resources: `get_android_manifest`, `get_manifest_component`, `get_strings`, `get_all_resource_file_names`, `get_resource_file`, plus `get_main_activity_class`, `get_main_application_classes_names` and `get_main_application_classes_code`
  • Deobfuscation in place — `rename_class`, `rename_method`, `rename_field`, `rename_package` and `rename_variable` write back into the open project
  • Cross-references with `xrefs_to_class`, `xrefs_to_method` and `xrefs_to_field`, including override-related methods
  • Live debugger state through `debug_get_stack_frames`, `debug_get_threads` and `debug_get_variables`
Requirements

Java 11+ and Python 3.10+, with `uv` for the server. Install the plugin with `jadx plugins --install "github:zinja-coder:jadx-ai-mcp"`, then run `uv run jadx_mcp_server.py`. Two connections are involved: the server listens for your client on 8651 and looks for the JADX plugin on 8650, both on 127.0.0.1 by default, and `--jadx-host` / `--jadx-port` point it elsewhere. Add `--http` for HTTP transport instead of stdio. Binding with `--host 0.0.0.0` puts every tool on the network over plain HTTP with no authentication, so keep it to a trusted network or tunnel over SSH.

Setup effort

One command — jadx plugins --install "github:zinja-coder:jadx-ai-mcp"