LabscoMCP early access ↗
zinja-coderMCP SERVER

JADX-AI-MCP

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.

by zinja-coder ↗Code Intelligence & Repository IndexingCommunity

LABSCO 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 get_xrefs_to_class, get_xrefs_to_method and get_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

Follow the published steps — jadx plugins --install "github:zinja-coder:jadx-ai-mcp"