zinja-coder/jadx-mcp-server
MCP server for JADX-AI Plugin
什么是 JADX‑MCP‑SERVER?
JADX‑MCP‑SERVER 是一个小型 Python 服务,位于本地 LLM(例如 Claude Desktop)和 JADX 反编译器 GUI 之间。它实现了 模型上下文协议(MCP)——一种简单的请求/响应协议,允许 LLM 向反编译器询问有关 Android APK 的信息,甚至指示反编译器进行更改(重命名变量、添加注释等)。
该服务器与一个名为 JADX‑AI‑MCP 的配套插件(安装在 JADX GUI 内)通信。插件接收来自服务器的 HTTP 调用,在 JADX 中执行请求的操作,并返回结果。从 LLM 的角度来看,整个链路看起来像是一组可以通过 OpenAI 风格函数调用调用的 工具。
核心功能(如 README 所述)
| 功能 | 作用 |
|---|---|
| 实时反编译访问 | 获取当前选中类的源码、任意类(按名称)、方法、smali、AndroidManifest、资源等。 |
| 搜索工具 | 按关键字查找类、方法或字段,列出所有类,列出类的方法,分页结果。 |
| 代码编辑辅助 | 重命名变量,添加或删除注释(这些注释会出现在 JADX GUI 中并随项目保存)。 |
| 调试集成 | 从 JADX 调试器提取堆栈帧、线程和变量值。 |
| 交叉引用查询 | 获取类、方法或字段的 X‑refs(谁调用了什么)。 |
| LLM 友好输出 | 诸如 slim=True 之类的选项会去除 Kotlin 元数据以保持负载较小;行号标志帮助模型引用精确行。 |
| OpenAI 兼容客户端 | 示例 examples/openai_compatible_client.py 将 MCP 工具列表转换为 OpenAI 函数调用模式,因此任何支持 OpenAI 聊天 API 的模型都可以使用该服务器。 |
| 可配置网络 | MCP 服务器的主机/端口(--host、--port)以及 JADX 插件的主机/端口(--jadx-host、--jadx-port)。支持纯 HTTP(--http)以便于本地测试。 |
| 安全警告 | README 明确警告,将服务器暴露在 0.0.0.0 上会允许未经身份验证的网络访问所有工具。 |
工作原理——高层流程
- LLM 客户端(Claude、Ollama、OpenAI 等)使用模型上下文协议向 MCP 服务器发送请求。
- 服务器将请求作为 HTTP 调用转发给运行在 JADX GUI 中的 JADX‑AI‑MCP 插件。
- 插件执行请求的操作(例如
fetch_current_class、rename_variable)。 - 结果被发送回服务器,服务器将其格式化为工具响应并返回给 LLM。
- LLM 随后可以决定调用另一个工具、修改代码或生成最终答案。
快速开始(快速步骤)
# 1. 使用 uv(或 pip)安装 Python 依赖
uv sync # 或:pip install -r requirements.txt
# 2. 运行服务器(默认端口 8651 → LLM,8650 → JADX 插件)
uv run jadx_mcp_server.py --http
如果带有 JADX‑AI‑MCP 插件的 JADX GUI 在同一台机器上,则无需额外标志。
要将服务器暴露给其他机器(例如 Docker、WSL),请使用:
uv run jadx_mcp_server.py --http --host 0.0.0.0
⚠️ README 强调这会将服务器开放给网络上的任何人;请使用防火墙或 SSH 隧道。
与 OpenAI 兼容模型的使用示例
pip install -r examples/requirements.txt # 安装 openai SDK
# 简单的一次性查询
OPENAI_API_KEY=sk-... python examples/openai_compatible_client.py \
--prompt "com.example.app 需要哪些权限?"
该客户端将提示转换为一系列 MCP 工具调用,通过服务器获取 AndroidManifest,并返回简洁的答案。
谁可能觉得这有用?
- 安全研究人员希望使用 LLM 自动化 APK 中的漏洞挖掘。
- 逆向工程爱好者寻求“与反编译器聊天”的体验。
- 工具构建者需要在 LLM 和现有 Android 分析工具之间建立程序化桥梁。
路线图(如所列)
- 添加对 apktool 的支持(已完成)。
- 添加 Hermes(React‑Native)代码处理。
- Docker 打包。
- 更多 MCP 工具和提示模板。
- 完整的本地 LLM 客户端。
- 最终目标:一个可以驱动任何 Android RE 工具的 MCP 服务器。
结论
该仓库是一个真正的软件项目,在大语言模型和 Android 逆向工程工具之间架起了一座桥梁。它完全属于 AI 增强工具领域,因此 off_topic = false。
以上所有信息均直接取自 README;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目