アップデート一覧に戻る
New releaseAug 6, 2026

jadx-ai-mcp V6.4.1

JADXにMCPサーバーを統合するためのプラグイン

共有

JADX-AI-MCP (Zin MCP Suite の一部)

⚡ Claude などの LLM を使用して Android APK を解析するために、MCP を介して LLM と通信するよう構築された、完全自動化された MCP サーバー + JADX プラグイン。脆弱性の発見、APK の解析、リバースエンジニアリングを簡単に実行できます。

GitHub contributors JADX-AI-MCP GitHub contributors JADX-MCP-SERVER GitHub all releases GitHub release (latest by SemVer) Latest release Java 11+ Python 3.10+ License

⭐ コントリビューター

これらの素晴らしい人々の貢献に感謝します ⭐

banner

Read The Docs


🤖 JADX-AI-MCP とは?

JADX-AI-MCP は、JADX デコンパイラ 用のプラグインで、Model Context Protocol (MCP) と直接統合し、Claude などの LLM によるリアルタイムのリバースエンジニアリング支援を提供します。

「逆コンパイル → コンテキストを考慮したコードレビュー → AI による推奨事項」— すべてリアルタイムで実現すると考えてください。

高レベルシーケンス図```mermaid

sequenceDiagram LLM CLIENT->>JADX MCP SERVER: INVOKE MCP TOOL JADX MCP SERVER->>JADX AI MCP PLUGIN: INVOKE HTTP REQUEST JADX AI MCP PLUGIN->>REQUEST HANDLERS: INVOKE HTTP REQUEST HANDLER REQUEST HANDLERS->>JADX GUI: PERFORM ACTION/GATHER DATA JADX GUI->>REQUEST HANDLERS: ACTION PERFORMED/DATA GATHERED REQUEST HANDLERS->>JADX AI MCP PLUGIN: CRAFT HTTP RESPONSE JADX AI MCP PLUGIN->>JADX MCP SERVER:HTTP RESPONSE JADX MCP SERVER->>LLM CLIENT: MCP TOOL RESULT

### デモを見る!

- **クイック分析を実行**
  
https://github.com/user-attachments/assets/b65c3041-fde3-4803-8d99-45ca77dbe30a

- **脆弱性を素早く見つける**

https://github.com/user-attachments/assets/c184afae-3713-4bc0-a1d0-546c1f4eb57f

- **複数のAIエージェントをサポート**

https://github.com/user-attachments/assets/6342ea0f-fa8f-44e6-9b3a-4ceb8919a5b0

- **お気に入りのLLMクライアントで実行**

https://github.com/user-attachments/assets/b4a6b280-5aa9-4e76-ac72-a0abec73b809

- **APKリソースを分析**

https://github.com/user-attachments/assets/f42d8072-0e3e-4f03-93ea-121af4e66eb1

- **JADXを使用したAPKデバッグ中のAIアシスタント**

https://github.com/user-attachments/assets/2b0bd9b1-95c1-4f32-9b0c-38b864dd6aec

これは2つのツールの組み合わせです:
1. JADX-AI-MCP
2. [JADX MCP SERVER](https://github.com/zinja-coder/jadx-mcp-server)

## 🤖 JADX-MCP-SERVERとは?

**JADX MCP Server** は、MCP(Model Context Protocol)を介して `JADX-AI-MCP` プラグイン(参照: [jadx-ai-mcp](https://github.com/zinja-coder/jadx-ai-mcp))と連携するスタンドアロンのPythonサーバーです。LLMが逆コンパイルされたAndroidアプリのコンテキストとライブで通信できるようにします。

---

## Zin MCP Suiteの他のプロジェクト
 - **[APKTool-MCP-Server](https://github.com/zinja-coder/apktool-mcp-server)**
 - **[JADX-MCP-Server](https://github.com/zinja-coder/jadx-mcp-server)**
 - **[ZIN-MCP-Client](https://github.com/zinja-coder/zin-mcp-client)**

## 現在のMCPツール

以下のMCPツールが利用可能です:

- `fetch_current_class()` — 選択したクラスのクラス名と完全なソースを取得します
- `get_selected_text()` — 現在選択されているテキストを取得します
- `get_all_classes()` — プロジェクト内のすべてのクラスを一覧表示します
- `get_class_source()` — 指定されたクラスの完全なソースを取得します
- `get_method_by_name()` — メソッドのソースを取得します
- `search_method_by_name()` — クラスを横断してメソッドを検索します
- `search_classes_by_keyword()` — ソースコードに特定のキーワードが含まれるクラスを検索します(ページネーション対応)
- `get_methods_of_class()` — クラス内のメソッドを一覧表示します
- `get_fields_of_class()` — クラス内のフィールドを一覧表示します
- `get_smali_of_class()` — クラスのsmaliを取得します
- `get_main_activity_class()` — AndroidManifest.xmlファイルに記載されているjadxのメインアクティビティを取得します
- `get_main_application_classes_code()` — AndroidManifest.xmlで定義されているパッケージ名に基づいて、メインアプリケーションクラスのコードをすべて取得します
- `get_main_application_classes_names()` — AndroidManifest.xmlで定義されているパッケージ名に基づいて、メインアプリケーションクラスの名前をすべて取得します
- `get_android_manifest()` — AndroidManifest.xmlのコンテンツを取得して返します
- `get_manifest_component` - マニフェストファイル全体ではなく、特定のマニフェストコンポーネントを取得します
- `get_strings()` : strings.xmlファイルを取得します
- `get_all_resource_file_names()` : アプリケーション内に存在するすべてのリソースファイル名を取得します
- `get_resource_file()` : リソースファイルのコンテンツを取得します
- `rename_class()` : クラス名を変更します
- `rename_method()` : メソッド名を変更します
- `rename_field()` : フィールド名を変更します
- `rename_package()` : パッケージ全体の名前を変更します
- `rename_variable()` : メソッド内の変数の名前を変更します
- `debug_get_stack_frames()` : jadxデバッガーからスタックフレームを取得します
- `debug_get_threads()` : jadxデバッガーからスレッドの詳細情報を取得します
- `debug_get_variables()` : jadxデバッガーから変数を取得します
- `xrefs_to_class()` : クラスへのすべての参照を検索します(メソッドレベルとクラスレベルの参照を返します。ページネーション対応)
- `xrefs_to_method()` : メソッドへのすべての参照を検索します(オーバーライド関連のメソッドを含みます。ページネーション対応)
- `xrefs_to_field()` : フィールドへのすべての参照を検索します(フィールドにアクセスするメソッドを返します。ページネーション対応)

---

## 🗒️ サンプルプロンプト

🔍 基本的なコード理解

    "このクラスが何をするのかを1段落で説明してください。"

    "このメソッドの役割を要約してください。"

    "このクラスに難読化はありますか?"

    "このクラスが必要とする可能性のあるAndroid権限をすべて一覧表示してください。"

🛡️ 脆弱性の検出

    "このメソッドに安全でないAPIの使用はありますか?"

    "このクラスにハードコードされたシークレットや認証情報がないか確認してください。"

    "このメソッドはユーザー入力を使用する前にサニタイズしていますか?"

    "このコードによってどのようなセキュリティ脆弱性がもたらされる可能性がありますか?"

🛠️ リバースエンジニアリングのヘルパー

    "クラスとメソッドの難読化を解除し、読みやすい名前に変更してください。"

    "このsmaliメソッドの元の目的を推測できますか?"

    "このクラスはどのライブラリまたはSDKに属しているように見えますか?"

    "'暗号化'に関連するコードが含まれているクラスを教えてください。"

📦 静的解析

    "このクラス内のすべてのネットワーク関連API呼び出しを一覧表示してください。"

    "ファイルI/O操作とその潜在的なリスクを特定してください。"

    "このメソッドはデバイス情報や個人情報(PII)を漏洩しますか?"

🤖 AIコード修正

    "読みやすさを向上させるためにこのメソッドをリファクタリングしてください。"

    "各ステップを説明するコメントをこのコードに追加してください。"

    "分析用にこのJavaメソッドをPythonで書き直してください。"

📄 ドキュメントとメタデータ

    "すべてのメソッドにJavadocスタイルのコメントを生成してください。"

    "このクラスはどのパッケージまたはアプリコンポーネントに属している可能性が高いですか?"

    "Androidコンポーネントのタイプ(Activity、Serviceなど)を特定できますか?"

🐞 デバッガーアシスタント```
   "Fetch stack frames, varirables and threads from debugger and provide summary"

   "Based the stack frames from debugger, explain the execution flow of the application"

   "Based on the state of variables, is there security threat?"

🛠️ はじめに

1. リリースからダウンロード: https://github.com/zinja-coder/jadx-ai-mcp/releases

[!NOTE]

jadx-ai-mcp-<version>.jarjadx-mcp-server-<version>.zip の両方のファイルをダウンロードしてください。```bash

0. Download the jadx-ai-mcp-.jar and jadx-mcp-server-.zip

https://github.com/zinja-coder/jadx-ai-mcp/releases

1.

unzip jadx-ai-mcp-.zip

├jadx-mcp-server/ ├── jadx_mcp.py ├── requirements.txt ├── README.md ├── LICENSE

├jadx-ai-mcp-.jar

2. Install the plugin

For this you can follow two approaches:

1. One liner - execute below command in your shell

jadx plugins --install "github:zinja-coder:jadx-ai-mcp"

The above one line code will install the latest version of the plugin directly into the jadx, no need to download the jadx-ai-mcp's .jar file.

2. Or you can use JADX-GUI to install it by following images as shown below:

<div align="center">
    <img alt="バナー" height="480px" widht="620px" src="https://assets.kitploit.com/production/public/readmes/6657/1c2660639daf7352d2bdeafeb7b5e0846e3c0bed45846ee52256b7bf3d316386.png">
</div>

<div align="center">
    <img alt="バナー" height="480px" widht="620px" src="https://assets.kitploit.com/production/public/readmes/6657/ccc2cc3566566517abad1097711afad3c668a999dc105d82686c4ffb791eba3b.png">
</div>

<div align="center">
    <img alt="バナー" height="480px" widht="620px" src="https://assets.kitploit.com/production/public/readmes/6657/0f9770bc38f4234826a661e6d37bc205a801ad38380363fd4394a903bd35ff94.png">
</div>```bash
## 3. GUI method, download the .jar file and follow below steps shown in images

img.png img_1.png img_2.png img_3.png```bash

3. Navigate to jadx-mcp-server directory

cd jadx-mcp-server

4. This project uses uv - https://github.com/astral-sh/uv instead of pip for dependency management.

## a. Install uv (if you dont have it yet)

curl -LsSf https://astral.sh/uv/install.sh | sh ## b. OPTIONAL, if for any reasons, you get dependecy errors in jadx-mcp-server, Set up the environment uv venv source .venv/bin/activate # or .venv\Scripts\activate on Windows ## c. OPTIONAL Install dependencies uv pip install httpx fastmcp

The setup for jadx-ai-mcp and jadx_mcp_server is done.

## 🤖 2. Claude Desktop を使う

Claude Desktop が MCP を有効にして実行されていることを確認してください。

例えば、Kali Linux では以下を使用しました: https://github.com/aaddrick/claude-desktop-debian

MCP サーバーを設定して LLM ファイルに追加します:```bash
nano ~/.config/Claude/claude_desktop_config.json

対象:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

そして、その中に以下の内容を記述します:```json { "mcpServers": { "jadx-mcp-server": { "command": "///uv", "args": [ "--directory", "</PATH/TO/>jadx-mcp-server/", "run", "jadx_mcp_server.py" ] } } }

置換:

- `path/to/uv` を、実際の `uv` 実行可能ファイルへのパスに置き換えてください
- `path/to/jadx-mcp-server` を、このリポジトリをクローンした
絶対パスに置き換えてください

次に、内蔵の統合機能を使用して、コードをナビゲートし、リアルタイムのコードレビュープロンプトを介して対話します。

**または**

または、以下のコマンドを使用して、jadx_mcp_server を実行可能ファイルとして直接インストールすることもできます:```
uv tool install git+https://github.com/zinja-coder/jadx-mcp-server

そして、MCP設定のcommandセクションにjadx_mcp_serverを指定するだけです。

3. Cherry Studio を使用する

Cherry Studio で MCP ツールを設定したい場合は、次の設定を参照してください。

  • Type: stdio
  • command: uv
  • argument:```bash --directory path/to/jadx-mcp-server run jadx_mcp_server.py
- `path/to/jadx-mcp-server` に、このリポジトリをクローンした絶対パスを指定します

## 4. LMStudioの使用

JADX AI MCP Server は、LM Studio の mcp.json ファイルを設定することで使用することもできます。ビデオガイドはこちらです。

https://github.com/user-attachments/assets/b4a6b280-5aa9-4e76-ac72-a0abec73b809

## 5. HTTPストリームモードでの実行

Jadx は、`jadx_mcp_server.py` で `--http` オプションを使用すると、HTTPストリームモードでも使用できます。次に示すとおりです。```bash
uv run jadx_mcp_server.py --http

OR

uv run jadx_mcp_server.py --http --port 9999

高度なCLIオプション — フラグを理解する

2つの別々の接続があり、それぞれに独自のホスト/ポートがあります:``` ┌─────────────┐ --host / --port ┌──────────────────┐ --jadx-host / --jadx-port ┌──────────────────┐ │ LLM Client │ ◄──────────────────► │ jadx-mcp-server │ ──────────────────────────► │ JADX-GUI Plugin │ │ (Claude, │ Where the MCP server │ │ Where the MCP server looks │ (jadx-ai-mcp) │ │ Codex..) │ LISTENS for clients │ │ for the JADX plugin │ │ └─────────────┘ └──────────────────┘ └──────────────────┘

| フラグ | デフォルト | 制御内容 |
|------|---------|----------|
| `--http` | off | stdio の代わりに HTTP トランスポートを使用 |
| `--host` | `127.0.0.1` | **MCP サーバーが待ち受ける場所** (LLM クライアント用のバインドアドレス) |
| `--port` | `8651` | **MCP サーバーが待ち受けるポート** |
| `--jadx-host` | `127.0.0.1` | **JADX プラグインの場所** (対象の JADX-GUI マシン) |
| `--jadx-port` | `8650` | **JADX プラグインが待ち受けるポート** |

### 使用例

**シナリオ 1 — すべてを同じマシン上で実行 (最も一般的):**```bash
# Default: MCP server on localhost:8651, connects to JADX plugin on localhost:8650
uv run jadx_mcp_server.py --http

シナリオ 2 — DockerコンテナまたはWSL(ホストネットワークからアクセス可能なMCPサーバー):```bash

MCP server listens on ALL interfaces so the host can reach it

JADX plugin is still on the same machine

uv run jadx_mcp_server.py --http --host 0.0.0.0

**シナリオ 3 — 別のマシン(例:リモートVM)で実行されている JADX-GUI:**```bash
# MCP server runs locally, but connects to JADX plugin on a remote machine
uv run jadx_mcp_server.py --http --jadx-host 192.168.1.100

シナリオ4 — 完全リモート構成(すべてが異なるマシン上にある場合):```bash

MCP server listens on all interfaces on port 9999

JADX plugin is on a different machine at 192.168.1.100:8652

uv run jadx_mcp_server.py --http --host 0.0.0.0 --port 9999 --jadx-host 192.168.1.100 --jadx-port 8652

> [!CAUTION]
> ### ⚠️ セキュリティ警告 — リモートバインド
>
> `--host 0.0.0.0`(または非localhostアドレス)を使用する場合、MCPサーバーは **認証なしの平文HTTP** で **すべてのネットワークインターフェース** にバインドされます。つまり:
>
> - **ネットワーク上の誰でも**接続して、すべてのMCPツールを呼び出すことができます
> - **TLS暗号化はありません** — 通信は傍受される可能性があります
> - 攻撃者はサーバーを利用して **逆コンパイルされたコードの読み取り**、**クラス/メソッドの名前変更**、**デバッグ情報へのアクセス** を行うことができます
>
> **緩和策:**
> - `0.0.0.0` へのバインドは **信頼できる隔離されたネットワーク**(例:Dockerブリッジ、ローカルVM)のみにしてください
> - **ファイアウォール** を使用してMCPポートへのアクセスを制限してください
> - 代わりに **SSHトンネル** を検討してください: `ssh -L 8651:127.0.0.1:8651 remote-host`

### Stdioモードの互換性

> [!NOTE]
> **stdio** モード(デフォルトであり、`--http` なし)で実行する場合、人間が読める出力(バナー、ヘルスチェック)はすべて **stderr** に書き込まれ、**stdout** はMCP JSON-RPCストリーム用に確保されます。これにより、Codex、Claude Desktop、その他のstdioベースのMCPクライアントとの互換性が保証されます。

## 6. JADX AI MCPプラグインのカスタムポートとホスト設定

<img width="800" height="335" alt="image" src="https://assets.kitploit.com/production/public/readmes/6657/34e13964afba1fa722733838892491b2ec9ea2d11f2dfd4e8612aa62817dfa41.png" />

1. ポートの設定: JADX AI MCPプラグインが待ち受けるポートを設定します。
2. デフォルトポート: 変更を元に戻し、デフォルトポートで待ち受けます。
3. サーバーの再起動: JADX AI MCPプラグインサーバーを強制再起動します。
4. サーバーステータス: JADX AI MCPプラグインサーバーの状態を確認します。

カスタムポートで実行中のJADX AI MCPプラグインに接続するには、以下のように `--jadx-port` オプションを使用します:```
uv run jadx_mcp_server.py --jadx-port 8652

JADX AI MCP Plugin が別のマシンで実行されている場合(例:JADX がリモート VM 上、MCP サーバーがローカルホスト上)は、--jadx-host オプションを使用してください:```bash

Connect to JADX plugin on a remote host

uv run jadx_mcp_server.py --jadx-host 192.168.1.100 --jadx-port 8650

### CLIリファレンス — フラグを理解する

**2つの別々の接続**があり、それぞれに独自のホスト/ポートがあります:```
┌─────────────┐    --host / --port     ┌──────────────────┐   --jadx-host / --jadx-port   ┌──────────────────┐
│  LLM Client │ ◄──────────────────►   │  jadx-mcp-server │ ──────────────────────────►   │  JADX-GUI Plugin │
│  (Claude,   │   Where the MCP server │                  │   Where the MCP server looks  │  (jadx-ai-mcp)   │
│   Codex..)  │   LISTENS for clients  │                  │   for the JADX plugin         │                  │
└─────────────┘                        └──────────────────┘                               └──────────────────┘
フラグデフォルト説明
--httpoffstdio の代わりに HTTP トランスポートを使用
--host127.0.0.1MCP サーバーがリッスンする場所 (LLM クライアント用のバインドアドレス)
--port8651MCP サーバーがリッスンするポート
--jadx-host127.0.0.1JADX プラグインの場所 (対象の JADX-GUI マシン)
--jadx-port8650JADX プラグインが使用するポート

使用例

シナリオ 1 — すべて同じマシン上に配置 (最も一般的):```bash

Default: MCP server on localhost:8651, connects to JADX plugin on localhost:8650

uv run jadx_mcp_server.py --http

**シナリオ2 — DockerコンテナまたはWSL(MCPサーバーがホストネットワークからアクセス可能):**```bash
# MCP server listens on ALL interfaces so the host can reach it
# JADX plugin is still on the same machine
uv run jadx_mcp_server.py --http --host 0.0.0.0

シナリオ 3 — 別のマシン(例:リモート VM)で実行中の JADX-GUI:```bash

MCP server runs locally, but connects to JADX plugin on a remote machine

uv run jadx_mcp_server.py --http --jadx-host 192.168.1.100

**シナリオ4 — フルリモートセットアップ(すべてが別々のマシン上にある):**```bash
# MCP server listens on all interfaces on port 9999
# JADX plugin is on a different machine at 192.168.1.100:8652
uv run jadx_mcp_server.py --http --host 0.0.0.0 --port 9999 --jadx-host 192.168.1.100 --jadx-port 8652

カスタムjadxポート用のMCP設定は、claudeでは以下のようになります:``` { "mcpServers": { "jadx-mcp-server": { "command": "/path/to/uv", "args": [ "--directory", "/path/to/jadx-mcp-server/", "run", "jadx_mcp_server.py", "--jadx-port", "8652" ] } } }

## 試してみる

1. jadx-gui を実行し、任意の .apk ファイルを読み込みます

![img_1.png](https://assets.kitploit.com/production/public/readmes/6657/57512ca023da5fdca0cc3fac791a68e1c76c9ff4e97d9391ca6fdcf8b6e34bff.png)

2. claude を起動します - ハンマーのシンボルが表示されるはずです

![img2.png](https://assets.kitploit.com/production/public/readmes/6657/18d5936ea3d66f3667e827f2b757926f56230f5b0a150eb0077414cca550009e.png)

3. `hammer` シンボルをクリックすると、次のような画面が表示されます:

![img3.png](https://assets.kitploit.com/production/public/readmes/6657/ce4c8a048d32bb1f5a16fed73153b83ec78c3253a0109fb7aa064f064b34fc34.png)

4. 次のプロンプトを実行してください:```text
fetch currently selected class and perform quick sast on it

img4.png

  1. プロンプトが表示されたらアクセスを許可します:

img_1.png

  1. ハック!

img_2.png

このプラグインは、GUIと内部プロジェクトモデルを完全に制御して、より深いLLM統合をサポートします。以下を含みます:

  • 選択したクラスをMCPにエクスポート
  • 自動化されたClaude分析の実行
  • インラインで提案を受け取る

トラブルシューティング

こちらを確認

コントリビューターへの注意

  • JADX-AI-MCPに関連するファイルはこのリポジトリ内にあります。

  • jadx-mcp-server に関連するファイルはこちらにあります。

バグ、問題、機能提案、パフォーマンスの問題、一般的な質問、ドキュメントの問題を報告するには

  • それぞれのテンプレートを使用してissueを開いてください。

  • Claude Desktop Clientでテスト済みです。他のAIのサポートは近日中にテストされる予定です!

🙏 クレジット

このプロジェクトは、@skylot によって作成・保守されている素晴らしいオープンソースのAndroidデコンパイラであるJADXのプラグインです。すべてのコアな逆コンパイルロジックは彼らに帰属します。私はAI機能を備えたMCPサーバーをサポートするために拡張しただけです。

📎 オリジナルREADME (JADX)

jadxの元のREADME.mdは、参考とクレジットのためにこのリポジトリに含まれています。

このMCPサーバーは、JADX-GUIの拡張性と素晴らしいAndroidリバースエンジニアリングコミュニティによって実現されています。

また、DebianベースのLinux向けにClaudeデスクトップを開発してくれた@aaddrickに多大な感謝を捧げます。

最後に、Model Context Protocolを開発してくれた@anthropicsと、@FastMCP チームに感謝します。

これとは別に、このプロジェクトの依存関係として機能し、これを可能にしたすべてのオープンソースプロジェクトに多大な感謝を捧げます。

依存関係

このプロジェクトは以下の素晴らしいライブラリを使用しています。

📄 ライセンス

JADX-AI-MCPおよび関連するすべてのプロジェクトは、元のJADXリポジトリからApache 2.0ライセンスを引き継いでいます。

⚖️ 法的警告

免責事項

ツール jadx-ai-mcp および jadx_mcp_server は、教育、研究、および倫理的なセキュリティ評価の目的のみを意図しています。これらは、明示的または黙示的な保証なしに「現状のまま」提供されます。ユーザーは、これらのツールの使用が適用されるすべての法律、規制、および倫理的ガイドラインに準拠していることを確認する単独の責任を負います。

jadx-ai-mcp または jadx_mcp_server を使用することにより、あなたがテストを許可されている環境(所有しているアプリケーションや明示的な許可を得て解析するアプリケーションなど)でのみ使用することに同意したものとみなされます。許可されていないリバースエンジニアリング、知的財産権の侵害、または悪意のある活動のためにこれらのツールを誤用することは固く禁じられています。

jadx-ai-mcp および jadx_mcp_server の開発者は、これらのツールの使用または誤用によって生じたいかなる損害、データ損失、法的結果、またはその他の結果についても責任を負いません。ユーザーは、自身の行動とその使用によって引き起こされる影響に対して全責任を負います。

責任を持って使用してください。知的財産を尊重してください。倫理的なハッキングの慣行に従ってください。


🙌 貢献またはサポート

  • 役に立ちましたか? ⭐️ を付けてください
  • アイデアがありますか? issue を開くか、PRを提出してください
  • 何か構築しましたか? DMまたはメンションしてください。READMEに追加します!
  • 私の仕事を気に入って継続させたいですか? このプロジェクトをスポンサーしてください。

リバースエンジニアリングとAIコミュニティのために❤️を込めて作られました。

カテゴリ