Skip to content

三种接口对比 ​

CLIAI CLIMCP

APKiD 提供三个等价的接口,背后共享同一套扫描引擎。本文帮你选对接口。

📊 一图看清 ​

维度经典 CLI apkidAI CLI apkid-ai-cliMCP apkid-mcp
框架argparsetyper + richFastMCP
输出彩色终端 / JSON结构化 JSON(默认)JSON 字符串(MCP 协议)
适合谁人类分析师终端用脚本 / AI 智能体MCP 客户端(Claude/Cursor)
schema_version无1.0.01.0.0
共享 make_scanner❌(独立路径)✅✅
进度条无rich Progress无
写多文件目录✅ --output-dir❌(单 -o)❌
安装pip install apkid同左pip install apkid[mcp]
入口apkid.main:mainapkid.cli:ai_cliapkid.mcp:run

🎯 怎么选 ​

用经典 CLI(apkid)当… ​

  • 你在终端手动分析样本,想看 彩色、人类可读 的输出。
  • 你要 批量写结果到目录(--output-dir 保留路径结构),做特征提取。
  • 你要兼容老脚本(经典 JSON schema)。

用 AI CLI(apkid-ai-cli)当… ​

  • 你在写脚本/流水线,要 结构化 JSON 好解析。
  • 你给 AI 智能体当工具——findings/summary/confidence 设计成 AI 友好。
  • 你要 diff/batch/type 等高级命令(经典 CLI 没有)。

用 MCP(apkid-mcp)当… ​

  • 你用 Claude Desktop、Cursor 等 MCP 客户端,想让 AI 直接调扫描。
  • 你想要 AI 在对话里"扫一下这个 APK"而不用切终端。
  • 你想要工具自描述(skills/info/list_tags 让 AI 自发现能力)。

🔁 三者等价性 ​

同一个 APK,三个接口的 检测结果一致(AI CLI 与 MCP 逐行共享代码,经典 CLI 走平行路径但用同一 Scanner + 同一 rules.yarc):

bash
# 三种方式扫同一个文件,findings 内容一致
apkid app.apk                          # 彩色终端
apkid-ai-cli scan app.apk              # 结构化 JSON
# MCP: scan_file({target: "app.apk"}) # 同样的 JSON

差别只在 输出格式 和 可选参数默认值(如 entry-max-scan-size:经典 100MB,AI/MCP 0 不限)。

📋 命令/工具对应表 ​

功能经典 CLIAI CLIMCP
扫单文件apkid app.apkscanscan_file
批量扫描apkid -r samples/batchbatch_scan
对比差异—diffdiff_files
文件类型—typetype_file
版本信息(横幅)infoinfo
列类别—list-tagslist-tags
规则管理—rulesrules
自发现—skillsskills

经典 CLI 功能最少(历史包袱),AI CLI 和 MCP 功能对等。

📚 各接口文档 ​

📍 相关 ​

基于 GPL & Commercial 双重许可发布