关于 JADX-AI-MCP (Part of Zin MCP Suite)
JADX-AI-MCP 将 JADX 插件与 Python MCP 服务连接,让 LLM 客户端实时访问反编译后的 Android APK 上下文。面向 APK 逆向分析和安全审查,可读取代码、资源与调试信息,也能重命名和添加注释。
主要功能
- 01获取类、方法与字段源码
- 02搜索类、方法及交叉引用
- 03读取 Manifest、字符串和资源文件
- 04重命名代码元素并添加注释
- 05获取调试器线程、变量和堆栈
- 06支持 stdio 与 HTTP 传输
适用场景
- 01分析 APK 代码与应用组件
- 02检查潜在安全问题和敏感信息
- 03追踪类、方法或字段的引用
- 04调试时查看线程、变量和堆栈
MCP 相关
Python MCP 服务通过 JADX 插件连接 JADX-GUI,向 MCP 客户端提供反编译代码、资源、交叉引用和调试器数据等工具。服务支持 stdio 或 HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
JADX-AI-MCP(Zin MCP Suite 的一部分)
⚡ 完全自动化的 MCP 服务 + JADX 插件,通过 MCP 与大模型通信,使用 Claude 等大模型分析 Android APK——轻松发现漏洞、分析 APK 并进行逆向工程。
⭐ 贡献者
感谢这些优秀贡献者的付出 ⭐
阅读文档
🤖 什么是 JADX-AI-MCP?
JADX-AI-MCP 是 JADX 反编译器的插件,可直接与 Model Context Protocol (MCP) 集成,为使用 Claude 等大模型进行实时逆向工程提供支持。
可以将其理解为:“反编译 → 上下文感知代码审查 → AI 建议”——全部实时完成。
高层级时序图
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 Agent
https://github.com/user-attachments/assets/6342ea0f-fa8f-44e6-9b3a-4ceb8919a5b0
- 使用你喜欢的大模型客户端运行
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
它由两个工具组成:
- JADX-AI-MCP
- JADX MCP SERVER
🤖 什么是 JADX-MCP-SERVER?
JADX MCP Server 是一个独立的 Python 服务,通过 MCP (Model Context Protocol) 与 JADX-AI-MCP 插件(参见:jadx-ai-mcp)交互。它可以让大模型实时获取反编译后的 Android 应用上下文。
Zin MCP 套件中的其他项目
当前 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()— 获取 jadx 从 AndroidManifest.xml 文件中提到的主 Activityget_main_application_classes_code()— 根据 AndroidManifest.xml 中定义的包名,获取所有主应用类的代码。get_main_application_classes_names()— 根据 AndroidManifest.xml 中定义的包名,获取所有主应用类的名称。get_android_manifest()— 检索并返回 AndroidManifest.xml 内容。get_manifest_component- 检索指定的 manifest 组件,而非整个 manifest 文件get_strings(): 获取 strings.xml 文件get_all_resource_file_names(): 检索应用中存在的所有资源文件名get_resource_file(): 获取资源文件内容rename_class(): 重命名类rename_method(): 重命名方法rename_field(): 重命名字段rename_package(): 重命名整个包rename_variable(): 重命名方法内的变量add_comment(): 为类、方法、字段或单行代码添加注释(line=表示反编译源码中从 1 开始计数的行号);注释会显示在 JADX-GUI 中并随项目保存(对同一目标重新添加注释会更新注释,空注释则会将其移除)list_comments(): 列出项目中存储的注释,可选择仅筛选一个类debug_get_stack_frames(): 从 jadx 调试器获取堆栈帧debug_get_threads(): 从 jadx 调试器获取线程信息debug_get_variables(): 从 jadx 调试器获取变量xrefs_to_class(): 查找对某个类的所有引用(返回方法级和类级引用,支持分页)xrefs_to_method(): 查找对某个方法的所有引用(包括与重写相关的方法,支持分页)xrefs_to_field(): 查找对某个字段的所有引用(返回访问该字段的方法,支持分页)
🗒️ 示例提示词
🔍 基础代码理解
"用一段话解释这个类的作用。"
"总结此方法的职责。"
"这个类中是否存在混淆?"
"列出此类可能需要的所有 Android 权限。"
🛡️ 漏洞检测
"此方法中是否存在不安全的 API 用法?"
"检查此类是否包含硬编码的密钥或凭据。"
"此方法在使用用户输入前是否对其进行了清理?"
"此代码可能引入哪些安全漏洞?"
🛠️ 逆向工程辅助
"对类和方法进行反混淆,并将其重命名为易读的名称。"
"你能推断出这个 smali 方法的原始用途吗?"
"这个类看起来属于哪些库或 SDK?"
"告诉我哪些类包含与“encryption”相关的代码?"
📦 静态分析
"列出此类中所有与网络相关的 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. 从 Releases 下载:https://github.com/zinja-coder/jadx-ai-mcp/releases
说明
同时下载
jadx-ai-mcp-<version>.jar和jadx-mcp-server-<version>.zip文件。
# 0. Download the jadx-ai-mcp-<version>.jar and jadx-mcp-server-<version>.zip
https://github.com/zinja-coder/jadx-ai-mcp/releases
# 1.
unzip jadx-mcp-server-<version>.zip
├jadx-mcp-server/
├── jadx_mcp_server.py
├── requirements.txt
├── README.md
├── LICENSE
├── src/
├── static/
├── examples/
└── test.sh
├jadx-ai-mcp-<version>.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:
## 3. GUI method, download the .jar file and follow below steps shown in images

# 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 文件:
nano ~/.config/Claude/claude_desktop_config.json
对应文件:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
并在其中添加以下内容:
{
"mcpServers": {
"jadx-mcp-server": {
"command": "/<path>/<to>/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 工具,可以参考以下配置。
- 类型:stdio
- command:uv
- 参数:
--directory
path/to/jadx-mcp-server
run
jadx_mcp_server.py
- 将
path/to/jadx-mcp-server替换为你克隆此代码库的绝对路径
4. 使用 LMStudio
你也可以通过配置 LM Studio 的 mcp.json 文件来使用 JADX AI MCP Server。以下是视频指南。
https://github.com/user-attachments/assets/b4a6b280-5aa9-4e76-ac72-a0abec73b809
5. 以 HTTP Stream 模式运行
你也可以使用 jadx_mcp_server.py 的 --http 选项,以 HTTP Stream 模式运行 Jadx,如下所示:
uv run jadx_mcp_server.py --http
OR
uv run jadx_mcp_server.py --http --port 9999
高级 CLI 选项 — 了解标志
这里有两个独立的连接,每个连接都有自己的主机和端口:
┌─────────────┐ --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 | 关闭 | 使用 HTTP 传输,而非 stdio |
--host | 127.0.0.1 | MCP 服务的监听地址(供大模型客户端连接的绑定地址) |
--port | 8651 | MCP 服务的监听端口 |
--jadx-host | 127.0.0.1 | JADX 插件的地址(目标 JADX-GUI 所在机器) |
--jadx-port | 8650 | JADX 插件所在的端口 |
使用示例
场景 1 — 所有组件都在同一台机器上(最常见):
# Default: MCP server on localhost:8651, connects to JADX plugin on localhost:8650
uv run jadx_mcp_server.py --http
场景 2 — Docker 容器或 WSL(MCP 服务可通过主机网络访问):
# 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 — JADX-GUI 在另一台机器上运行(例如远程 VM):
# 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 — 完全远程部署(所有组件都在不同机器上):
# 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
注意
⚠️ 安全警告 — 远程绑定
使用
--host 0.0.0.0(或任何非 localhost 地址)时,MCP 服务会通过不加密且无身份验证的纯 HTTP绑定到所有网络接口。这意味着:
- 网络上的任何人都可以连接并调用所有 MCP 工具
- 没有 TLS 加密——流量可能被拦截
- 攻击者可以利用该服务读取反编译代码、重命名类/方法以及访问调试信息
缓解措施:
- 仅在可信的隔离网络(例如 Docker 网桥、本地 VM)上绑定到
0.0.0.0- 使用防火墙限制对 MCP 端口的访问
- 考虑使用 SSH 隧道:
ssh -L 8651:127.0.0.1:8651 remote-host
Stdio 模式兼容性
说明
在 stdio 模式(默认模式,不带
--http)下,所有面向用户的输出(横幅、健康检查)都会写入 stderr,以便将 stdout 保留给 MCP JSON-RPC 流。这可确保与 Codex、Claude Desktop 及其他基于 stdio 的 MCP 客户端兼容。
6. JADX AI MCP 插件的自定义端口和主机配置
- 配置端口:配置 JADX AI MCP 插件的监听端口。
- 默认端口:还原更改并监听默认端口。
- 重启服务:强制重启 JADX AI MCP 插件服务。
- 服务状态:检查 JADX AI MCP 插件服务的状态。
要连接到运行在自定义端口上的 JADX AI MCP 插件,请按以下所示使用 --jadx-port 选项:
uv run jadx_mcp_server.py --jadx-port 8652
如果 JADX AI MCP 插件运行在另一台机器上(例如,JADX 在远程 VM 上运行,而 MCP 服务在本地主机上运行),请使用 --jadx-host 选项:
# Connect to JADX plugin on a remote host
uv run jadx_mcp_server.py --jadx-host 192.168.1.100 --jadx-port 8650
CLI 参考 — 了解标志
这里有两个独立的连接,每个连接都有自己的主机和端口:
┌─────────────┐ --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 | 关闭 | 使用 HTTP 传输,而非 stdio |
--host | 127.0.0.1 | MCP 服务的监听地址(供大模型客户端连接的绑定地址) |
--port | 8651 | MCP 服务的监听端口 |
--jadx-host | 127.0.0.1 | JADX 插件的地址(目标 JADX-GUI 所在机器) |
--jadx-port | 8650 | JADX 插件所在的端口 |
使用示例
场景 1 — 所有组件都在同一台机器上(最常见):
# Default: MCP server on localhost:8651, connects to JADX plugin on localhost:8650
uv run jadx_mcp_server.py --http
场景 2 — Docker 容器或 WSL(MCP 服务可通过主机网络访问):
# 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 — JADX-GUI 在另一台机器上运行(例如远程 VM):
# 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 — 完全远程部署(所有组件都在不同机器上):
# 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
Claude 的自定义 jadx 端口 MCP 配置如下:
{
"mcpServers": {
"jadx-mcp-server": {
"command": "/path/to/uv",
"args": [
"--directory",
"/path/to/jadx-mcp-server/",
"run",
"jadx_mcp_server.py",
"--jadx-port",
"8652"
]
}
}
}
试用一下
- 运行 jadx-gui 并加载任意 .apk 文件

- 启动 claude——你应该能看到锤子符号

- 点击
hammer符号,你应该会看到类似下面的内容:

- 运行以下提示词:
fetch currently selected class and perform quick sast on it

- 出现提示时允许访问:

- 开始折腾!

此插件可以完全控制 GUI 和内部项目模型,以支持更深入的大模型集成,包括:
- 将选定的类导出到 MCP
- 运行自动化的 Claude 分析
- 以内联方式接收建议
故障排除
贡献者须知
-
与 JADX-AI-MCP 相关的文件位于此仓库中。
-
与 jadx-mcp-server 相关的文件可在此处找到。
报告错误、问题、功能建议、性能问题、一般问题或文档问题
-
请使用相应模板提交 issue。
-
已在 Claude Desktop Client 上测试,很快会测试对其他 AI 的支持!
🙏 致谢
本项目是 JADX 的一个插件。JADX 是一款出色的开源 Android 反编译器,由 @skylot 创建并维护。所有核心反编译逻辑均归其所有。我只是在此基础上扩展了功能,使其支持带有 AI 能力的 MCP 服务。
此仓库中包含来自 jadx 的原始 README.md,供参考并致谢。
此 MCP 服务得益于 JADX-GUI 的可扩展性以及出色的 Android 逆向工程社区。
还要特别感谢 @aaddrick,他开发了适用于 Debian 系 Linux 的 Claude 桌面版。
最后,感谢 @anthropics 开发 Model Context Protocol,以及 @FastMCP 团队。
此外,还要特别感谢所有作为本项目依赖项、并促成本项目实现的开源项目。
依赖项
本项目使用了以下出色的库。
-
插件 - Java
- Javalin - https://javalin.io/ - Apache 2.0 许可证
- SLF4J - https://slf4j.org/ - MIT 许可证
- org.w3c.dom - https://mvnrepository.com/artifact/org.w3c.dom - W3C 软件和文档许可证
-
MCP 服务 - Python
- FastMCP - https://github.com/jlowin/fastmcp - Apache 2.0 许可证
- httpx - https://www.python-httpx.org - BSD-3-Clause(“BSD 许可”)
📄 许可证
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 的开发者概不负责。用户须对自己的行为及其造成的任何影响承担全部责任。
请负责任地使用。尊重知识产权。遵循符合伦理规范的黑客实践。
🙌 贡献或支持
- 觉得有用?点个 ⭐️
- 有想法?提交一个 问题或 PR
- 基于此项目构建了什么?给我发私信或提及我,我会把它添加到 README 中!
- 喜欢我的作品并希望它继续发展?请赞助此项目。
为逆向工程和 AI 社区倾情打造。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。