项目简介
Apktool MCP服务器 是一个实现了 Model Context Protocol (MCP) 的服务器,它将强大的 Android 反编译工具 Apktool 的功能通过标准化的 MCP 协议暴露出来。借助此服务器,LLM(如 Claude)可以实时调用 Apktool 的功能,进行 APK 文件的反编译、代码分析、资源查看和修改等操作,从而实现上下文感知的 Android 逆向工程辅助。
主要功能点
- APK 反编译与构建: 支持使用 Apktool 反编译 APK 文件,将 DEX 文件、资源文件等提取出来,方便 LLM 进行分析;也支持将修改后的项目重新构建为 APK 文件。
- 项目管理: 提供工作空间管理,可以列出、创建和删除 Apktool 项目,方便 LLM 对多个 APK 项目进行管理。
- 清单文件和配置访问: 允许 LLM 获取 AndroidManifest.xml 文件和 apktool.yml 文件的内容,以便分析 APK 的配置信息。
- Smali 代码操作: 支持列出、读取和修改 Smali 目录和文件,使 LLM 能够深入分析和修改 APK 的 Dalvik 字节码。
- 资源文件操作: 支持列出和读取资源文件(如布局文件、Drawable 文件等),帮助 LLM 理解 APK 的资源结构和内容。
- 文件搜索: 允许 LLM 在项目文件中搜索指定的文本模式,快速定位关键代码或资源。
- APK 签名和安装: 提供 APK 签名和安装到 Android 设备的功能,方便 LLM 进行测试和部署。
- 设备信息获取: 支持获取连接的 Android 设备列表,方便 LLM 选择目标设备进行操作。
安装步骤
- 下载压缩包: 从 Releases 页面下载 'apktool-mcp-server-<version>.zip' 压缩包。
- 解压文件: 将下载的压缩包解压到本地目录。
- 进入目录: 打开终端,进入解压后的 'apktool-mcp-server' 目录。
- 安装依赖 (可选): 如果需要,可以设置 Python 虚拟环境并安装依赖。仓库推荐使用 'uv' 包管理器,可以执行以下命令 (如果 'uv' 未安装,请先根据 uv 安装指南 安装):
uv venv source .venv/bin/activate # 或 .venv\Scripts\activate 在 Windows 上 uv pip install httpx fastmcp
服务器配置
要将 Apktool MCP服务器 集成到 MCP 客户端(例如 Claude Desktop),您需要配置服务器的启动命令和参数。以下是一个配置示例,您需要根据实际情况修改路径:
{ "mcpServers": { "apktool-mcp-server": { "command": "/<path>/<to>/uv", // 请替换为 uv 的实际路径,如果使用虚拟环境,请使用虚拟环境中的 uv "args": [ "--directory", "</PATH/TO/>apktool-mcp-server/", // 请替换为 apktool-mcp-server 解压后的目录的实际路径 "run", "apktool_mcp_server.py" ] } } }
配置参数说明:
- 'server name': 服务器名称,例如 '"apktool-mcp-server"',在客户端中用于标识和选择服务器。
- 'command': 启动服务器的命令,这里示例中使用 'uv run apktool_mcp_server.py',你需要根据你的 uv 安装路径进行调整,如果使用虚拟环境,请确保 uv 命令指向虚拟环境中的 uv。
- 'args': 传递给命令的参数,'--directory' 指定了服务器脚本所在的目录, 'run apktool_mcp_server.py' 指示 uv 运行服务器脚本。
注意: 请确保 MCP 客户端(如 Claude Desktop)已启用 MCP 功能,并按照其文档说明配置 MCP 服务器。
基本使用方法
- 启动 MCP 客户端: 启动配置了 Apktool MCP服务器 的 MCP 客户端(如 Claude Desktop)。
- 连接服务器: 客户端会自动尝试连接到配置的 MCP 服务器。
- 使用工具: 在客户端中,您可以通过自然语言指令或图形界面调用 Apktool MCP服务器 提供的工具,例如:
- 反编译 APK 文件
- 查看 AndroidManifest.xml
- 列出 Smali 文件
- 搜索代码
- 构建 APK
具体工具的使用方法和参数,请参考仓库中 'apktool_mcp_server.py' 文件的代码注释和工具定义。LLM 客户端会根据服务器提供的工具描述和参数信息,引导用户进行操作。
信息
分类
开发者工具