Jadx MCP Plugin

Um plugin Java que expõe a API do decompilador Jadx via HTTP para interação com clientes MCP.

Documentação

⚙️ Jadx MCP Plugin — Acesso ao Decompilador para Claude via MCP

Este projeto fornece um plugin Jadx escrito em Java, que expõe a API do Jadx via HTTP — permitindo interação ao vivo através de clientes MCP como Claude via Model Context Protocol (MCP). Um adaptador leve FastMCP em Python atua como ponte entre o Claude e o plugin. Isso permite navegação inteligente e automação de fluxos de trabalho de engenharia reversa, ideal para análise de segurança assistida por IA de aplicativos Android.


🧰 Instruções de Configuração

# 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

Instalar dependências Python

pip install -r requirements.txt 

🧠 Configurar Integração com o Cliente MCP do Claude

Para usar este adaptador no Claude Desktop, vá para File -> Settings -> Developer -> Edit Config -> claude_desktop_config.json e adicione um servidor MCP apontando para o executável Python no venv (para evitar problemas de dependência) e o caminho completo do adaptador, seguindo os exemplos abaixo:

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"]
    }
  }
}

Certifique-se de reiniciar (sair) o Claude após editar a configuração. Após reiniciar, deve ficar assim:

✅ Fluxo de Uso

  1. Abra o Jadx com o JAR do plugin mais recente de os lançamentos colocado na pasta plugins/ ou carregue-o via Plugins -> install plugin.

  2. Carregue um arquivo APK ou DEX

  3. (Opcional) Você pode especificar o endereço da interface HTTP iniciando o Jadx com:

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

    Isso é útil se você quiser alterar o host/porta padrão (http://localhost:8085).

    Nota: Se você alterar o endereço da interface aqui, certifique-se de também atualizar a URL correspondente em fastmcp_adapter.py para que corresponda.

  4. O Claude detectará e ativará as ferramentas do Servidor MCP do Jadx.

  5. Agora você pode listar classes, buscar código-fonte, inspecionar métodos/campos e extrair código ao vivo.


🧪 Ferramentas Fornecidas

ToolDescription
list_all_classesObter todos os nomes de classes descompiladas
search_class_by_nameEncontrar classes que correspondem a uma string
get_class_sourceObter o código-fonte completo de uma determinada classe
search_method_by_nameEncontrar métodos que correspondem a uma string
get_methods_of_classListar todos os nomes de métodos em uma classe
get_fields_of_classListar todos os nomes de campos em uma classe
get_method_codeExtrair código descompilado para um método

🛠 Desenvolvimento

☕ Plugin Java

O plugin Java está localizado em:

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

Ele usa a API JadxPlugin (jadx.api.*) para:

  • Carregar classes e métodos descompilados
  • Servir dados estruturados via um servidor HTTP embutido
  • Responder aos endpoints /invoke e /tools

🚀 Instalação Automatizada com Tarefas Gradle

Você pode usar a seguinte tarefa Gradle para compilar e instalar o plugin em uma única etapa:

./gradlew installPlugin

Isso usa a CLI jadx plugins. Certifique-se de que o Jadx esteja instalado e disponível no seu PATH.

Para outras tarefas relacionadas ao plugin (desinstalar, ativar/desativar), consulte as definições de tarefas em plugin/build.gradle.

🔧 Instalação Manual

Para compilar o plugin:

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

Instale o JAR do plugin usando a CLI jadx plugins:

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

Alternativamente, coloque o arquivo .jar compilado na pasta plugins/ do seu Jadx, normalmente localizada em: ~/.jadx/plugins/

Se você colocar o JAR manualmente, também precisará ativar o plugin através da GUI do Jadx ou executando:

jadx plugins --enable jadx-mcp

Adaptador Python FastMCP

O arquivo do adaptador é:

fastmcp_adapter.py

Ele traduz as chamadas de ferramentas MCP do Claude em POSTs HTTP para o servidor do plugin Jadx em execução. Certifique-se de que o Jadx esteja aberto antes de iniciar o Claude.


🤝 Contribuindo

PRs, solicitações de recursos e extensões de ferramentas são bem-vindos!
Este projeto é mantido por Mobile Hacking Lab.


🧩 Créditos