项目简介

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 选择目标设备进行操作。

安装步骤

  1. 下载压缩包:Releases 页面下载 'apktool-mcp-server-<version>.zip' 压缩包。
  2. 解压文件: 将下载的压缩包解压到本地目录。
  3. 进入目录: 打开终端,进入解压后的 'apktool-mcp-server' 目录。
  4. 安装依赖 (可选): 如果需要,可以设置 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 服务器。

基本使用方法

  1. 启动 MCP 客户端: 启动配置了 Apktool MCP服务器 的 MCP 客户端(如 Claude Desktop)。
  2. 连接服务器: 客户端会自动尝试连接到配置的 MCP 服务器。
  3. 使用工具: 在客户端中,您可以通过自然语言指令或图形界面调用 Apktool MCP服务器 提供的工具,例如:
    • 反编译 APK 文件
    • 查看 AndroidManifest.xml
    • 列出 Smali 文件
    • 搜索代码
    • 构建 APK

具体工具的使用方法和参数,请参考仓库中 'apktool_mcp_server.py' 文件的代码注释和工具定义。LLM 客户端会根据服务器提供的工具描述和参数信息,引导用户进行操作。

信息

分类

开发者工具