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 上会允许未经身份验证的网络访问所有工具。

工作原理——高层流程

  1. LLM 客户端(Claude、Ollama、OpenAI 等)使用模型上下文协议向 MCP 服务器发送请求。
  2. 服务器将请求作为 HTTP 调用转发给运行在 JADX GUI 中的 JADX‑AI‑MCP 插件。
  3. 插件执行请求的操作(例如 fetch_current_class、rename_variable)。
  4. 结果被发送回服务器,服务器将其格式化为工具响应并返回给 LLM。
  5. 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;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目