# MCP 服务

MCP 服务可以让支持 MCP 的 AI 工具连接 MT,通过对话分析和修改 APK,也可以读取、编辑和管理手机上的文件。你负责描述需求,AI 调用 MT 提供的工具完成操作。

MT 提供文件和 APK 的处理能力,AI 模型由你使用的 AI 工具提供。使用前,需要在 AI 工具中配置好模型,并添加 MT 的 MCP 服务。

# MCP 服务能做什么

能力 可以让 AI 帮你做什么
分析 APK 查看应用信息、权限、资源、布局、Dex/Smali 代码和 so 库,追踪功能逻辑
修改 APK 修改受支持的资源、代码或 so 内容,重新打包并按需签名,生成新的 APK
查找和阅读文件 浏览目录,按文件名、内容、大小或修改时间查找文件,分析日志和配置
编辑和管理文件 修改文本或二进制内容,创建目录,复制、移动、重命名和删除文件

例如,你可以让 AI“分析这个 APK 的启动流程”“找出日志中的连接错误”,或者“备份配置文件后修改服务器地址”。不需要记住具体的工具名,直接说清楚目标和范围即可。

APK 编辑功能目前有 VIP 会员要求,具体以 MT 内的提示为准。通用文件功能不需要 VIP。

# 快速开始

# 1. 准备 AI 工具

选择支持 MCP Streamable HTTP 连接方式的 AI 工具,并完成模型配置。所选模型需要支持工具调用;仅能进行普通文字聊天的工具无法直接操作 MT。

# 2. 启动 MT 的 MCP 服务

在 MT 主界面打开侧拉栏,进入工具分组,点击 MCP 服务,再点击启动

MCP 服务启动后的连接地址

根据 AI 工具运行的位置复制地址:

AI 工具运行在哪里 使用哪个地址
与 MT 在同一台手机上 本机地址,通常为 http://127.0.0.1:8787/mcp
电脑或另一台手机上 局域网地址,两台设备需要处于可以互相访问的同一局域网

请复制自己设备上显示的完整地址,包括末尾的 /mcp。截图中的地址仅作演示,不要直接照抄。

建议在设置 → 通用中启用悬浮球,并按提示授予悬浮窗权限,有助于 MT 在后台保持服务运行。

# 3. 在 AI 工具中添加连接

打开 AI 工具的 MCP 设置,添加一个服务:

配置项 填写内容
名称 自行命名,例如 MT
地址 / URL 刚刚从 MT 复制的完整地址
传输类型 Streamable HTTP
认证 MT 默认不开启认证;如果已经开启,需填写对应令牌,见连接认证

保存后,确认连接成功并能读取可用工具。有些 AI 工具还需要在当前聊天中手动启用 MCP 服务,启用后 AI 才能调用 MT。

# 4. 完成第一次文件读取

打开 MT 的 MCP 服务 → 设置 → 通用,查看 Home 文件夹。这是 AI 处理文件的默认目录,通常为 /storage/emulated/0/MT2/mcp

Home 文件夹和已开启的悬浮球设置

先在这个目录中准备一个 test.txt,写入几行测试文字,再回到 AI 工具发送:

请使用 MT 读取 Home 文件夹中的 test.txt,概括它的内容,先不要修改文件。

AI 调用 MT 读取文件并返回摘要,就说明已经可以正常使用。后续可以继续让它查找、分析或修改文件,也可以尝试下面的 APK 示例。

# 使用本地文件功能

# 告诉 AI 要处理哪个文件

Home 中的文件可以直接使用文件名或相对路径。例如 Home 是 /storage/emulated/0/MT2/mcp 时,test.txt 就指这个目录中的文件,logs/app.log 则指其 logs 子目录中的文件。

处理其他位置时,请提供完整路径,并先在 设置 → 文件 中授予对应权限,具体步骤见文件访问权限

请读取 /storage/emulated/0/Download/config.json,解释各项配置的作用,不要修改。

这里的路径指的是运行 MT 的手机上的文件。在电脑上使用 AI 工具时,电脑本地路径不能直接用于访问手机文件。

# 查找和阅读文件

可以先让 AI 缩小范围,再读取具体内容:

请列出 Home 文件夹中的文件,告诉我有哪些日志和配置文件。
在 Home 文件夹及其子目录中查找内容包含“连接失败”的日志文件,列出文件路径。
请阅读 logs/app.log,整理连接失败前后的相关记录,并说明可能的原因。

如果目录中文件很多,可以同时指定文件名、大小或修改时间条件。文件搜索不会进入压缩包内部;分析 APK 内部内容时请使用下文的 APK 功能。

# 修改和整理文件

本地文件操作会直接作用于原文件,不会自动生成备份;删除是永久删除,不进入回收站。 重要文件建议先备份,再给出明确的修改范围。

请先把 Home 中的 config.json 复制为 config.backup.json。
备份成功后,将 config.json 中的 server 地址改为 https://example.com,其他配置保持不变。
如果备份文件已经存在,先告诉我,不要覆盖。

也可以让 AI 新建目录、移动或重命名文件:

请在 Home 中创建 logs 文件夹,将 Home 中的 test.log 移入其中。
如果目标位置已经有同名文件,先告诉我。

处理多个文件时,可以先让 AI 列出候选文件和操作计划,确认后再执行。对于替换文本,说明要替换的内容、目标文件以及替换首次还是全部,通常比“帮我修好配置”更容易核对。

# 使用 APK 功能

# 选择要处理的 APK

使用当前 APK 文件是最方便的方式:在 MT 文件列表中点击 APK,停留在 APK 信息对话框中,不要关闭,然后回到 AI 工具,对 AI 说“当前 APK 文件”。

本文使用 MTestApp.apk 演示,存放位置为 /storage/emulated/0/MT2/mcp/MTestApp.apk。你也可以从逆向实战章节下载演示 APK (opens new window)

MTestApp 的 APK 信息对话框

还可以使用以下方式选择目标:

  • 已安装应用:在 MT 的已安装应用界面点击应用,停留在应用信息对话框中,同样可以让 AI 处理“当前 APK 文件”。
  • Home 中的 APK:直接告诉 AI 文件名,例如 MTestApp.apk;不确定文件名时,可以让它先列出可用 APK。
  • 其他位置的 APK:提供完整路径,并在文件权限中允许读取该位置。

“当前 APK 文件”是你通过 MT 界面选择的目标,不等于为 AI 开放了该 APK 所在的整个目录。

# 先分析,再逐步追问

第一次可以从基本信息开始:

请使用 MT 分析当前 APK 文件,介绍应用名、包名、入口 Activity 和申请的权限。

确认目标正确后,再提出具体问题:

请分析这个 APK 从启动页进入主界面的流程,说明相关类和方法。
请查找密码校验相关的字符串和 Smali 代码,解释校验逻辑。

AI 可以按需读取 Manifest、资源、布局、Smali 和 so 内容。复杂任务建议分步进行,并让 AI 给出结论对应的代码或资源位置,方便在 MT 中核对。

# 修改并生成新 APK

例如,将演示应用的名称改为测试版:

请把当前 APK 的应用名改成 MTestApp Beta,重新打包并签名,
完成后告诉我新 APK 的保存位置。

APK 修改通过编辑会话进行,不会直接修改源 APK。构建时生成新的 APK,默认保存到 Home 文件夹。

你也可以指定其他输出位置。先在 设置 → 文件 中为目标目录授予读写权限,再告诉 AI 完整路径:

请将修改后的 APK 重新打包并签名,
保存为 /storage/emulated/0/Download/MTestApp-Beta.apk。
如果文件已经存在,不要覆盖,先告诉我。

目标文件和它所在的目录都需要拥有 MCP 读写权限,目录必须已经存在。构建不会自动创建父目录,也不允许覆盖源 APK。只指定文件名时保存在 Home;指定其他目录时请使用绝对路径,不要使用 output/test.apk 这样的相对目录路径。

# 签名设置

MCP 服务 → 设置 → APK → APK 签名设置 中选择用于签名的密钥。让 AI 构建时可以明确要求“签名”或“跳过签名”。

APK 签名与工作区设置

生成文件后,先核对修改内容,再进行安装和运行测试。打包成功不代表应用一定能正常运行;跳过签名也不代表原 APK 的签名在修改后仍然有效。

# 控制访问范围

# Home 文件夹

Home 是相对文件路径的起点,也是 APK 的默认输出目录。AI 对这个目录拥有读写权限,其他位置默认禁止访问。

可以在 设置 → 通用 中更换 Home。更换后,后续相对路径和默认 APK 输出位置会使用新目录,原目录中的文件不会自动搬过去。Home 必须位于手机的主内部共享存储中,不能设在 Android/data 内。

建议选择一个专门用于 AI 任务的目录,只放入准备交给 AI 处理的文件。Home 内的文件不能通过添加“只读”或“禁止访问”规则来收紧权限;需要只读保护的文件应放在 Home 外,再单独授权。

# 文件访问权限

设置 → 文件 中,点击左下角的添加规则,选择添加文件夹添加文件。选择目标后,为它设置访问权限:

权限 含义
只读 可以读取和分析,不能修改或删除
读写 可以读取,也可以修改、移动或删除允许操作的内容
禁止访问 不允许通过文件路径访问

例如,希望 AI 将新 APK 保存到 Download,可以添加该文件夹并选择读写。如果只是分析其中的文件,选择只读即可。

为 Download 文件夹设置读写权限

确认后,规则会出现在列表中;点击已有规则可以调整权限或删除规则。文件规则只作用于该文件,文件夹规则作用于该文件夹及其内部内容。

文件权限列表与默认规则

Home 之外的有效规则从上到下匹配,第一条匹配规则生效;都未匹配时才使用末尾的默认规则。按住右侧图标可以拖动排序。

例如,想开放 Download,但排除其中的 private 文件夹,应把 Download/private 的“禁止访问”规则放在 Download 的允许规则前面。

这些规则由你在 MT 中管理,AI 只能查询,不能自行扩大权限。规则允许访问后,仍需 MT 本身拥有相应系统权限;MT 的私有数据、工作区等受保护位置不会通过通用文件工具开放。

# 连接认证

文件权限控制“能操作哪些文件”,认证控制“谁能连接服务”。认证默认关闭;关闭时,任何能够连到服务的人都可以调用已开放的工具。

设置 → 认证 中可以启用 Bearer 令牌认证

  1. 点击创建令牌,为它取一个便于识别的名称,例如 AI 工具的名称。
  2. 复制生成的完整令牌,填入 AI 工具的连接设置。
  3. 开启 Bearer 令牌认证,再确认 AI 工具可以正常连接。

创建访问令牌

不同 AI 工具的填写方式可能不同:

AI 工具提供的配置项 填写方法
Bearer Token 输入框 直接粘贴完整令牌,不加 Bearer 前缀
自定义请求头 名称为 Authorization,值为 Bearer <令牌>,中间有一个空格

这里的令牌由 MT 创建,与 AI 模型服务的 API 密钥不同。截图中的令牌仅供演示,已撤销,不能用于连接。

已开启的 Bearer 令牌认证

建议为不同 AI 工具分别创建令牌,方便单独管理。点击令牌可查看详情并再次复制;不再使用时,在详情的更多 → 删除中撤销。撤销后,该令牌不能发起新的请求,已经接受的操作仍可能继续完成。

不同令牌使用同一套文件访问规则,不会分别获得不同的文件权限。认证也不会加密 HTTP 连接,请在可信网络中使用,不要将服务直接暴露到公网。

# 常见问题

# 浏览器能打开地址,为什么不能直接聊天?

这是提供给 AI 工具的 MCP 连接地址,不是聊天网页。请将它填入 AI 工具的 MCP 设置中。

# AI 工具连接不上怎么办?

先确认 MT 的服务已经启动,再检查以下几项:

  • 地址是否从 MT 中完整复制,端口和 /mcp 是否正确。
  • AI 工具在另一台设备上时,是否使用了局域网地址;不要使用 127.0.0.1,它指向 AI 工具自己所在的设备。
  • 两台设备能否互相访问;访客 Wi-Fi、网络隔离或 VPN 可能影响连接。
  • 如果开启了认证,是否填写了完整且未被撤销的令牌。
  • 是否选择了 Streamable HTTP,并启用了当前聊天中的 MT 工具。

仅有模型服务的 API 密钥不能代替 MCP 连接配置。如果 AI 工具由云端服务器发起 MCP 请求,通常无法直接访问手机的本机或局域网地址。

# 为什么切到后台后连接中断?

系统可能限制 MT 的后台运行。在 设置 → 通用 中开启悬浮球并授予权限;如果 MT 提示电池优化限制,也可以按提示调整。不同系统的后台策略不同,悬浮球有助于保活,但不能保证永不中断。

# 为什么 AI 看不到某个文件?

先核对完整路径和 Home 设置,再检查文件访问规则。被禁止访问的文件不会因为你在聊天中说“允许访问”而自动开放,需要回到 MT 修改权限。

如果 MT 自己也无法访问目标存储,应先在 MT 中恢复相关权限或连接,然后再让 AI 重试。

# 修改后的文件在哪里?

普通文件编辑通常直接修改指定文件。APK 构建会生成新文件:未指定目录时放在 Home,指定绝对路径时放在对应位置。可以让 AI 返回最终保存路径,避免只凭文件名查找。

# 哪些 APK 操作目前不支持?

  • 反编译为 Java:APK 代码分析和修改主要基于 Smali。
  • 给资源表添加新的语言包或词条:需要先用 MT 的 ARSC 编辑器处理,再让 AI 继续修改受支持的已有内容。
  • so 动态调试或完整 C/C++ 反编译:目前提供的是静态分析和受支持的补丁能力。

加固、动态加载、复杂混淆或额外签名校验也可能影响分析和修改效果,不能仅凭 AI 的回复判断任务已经成功。

# 进阶说明

# APK 工作区与编辑会话

AI 打开 APK 时,MT 会准备一个工作区,保存后续分析需要的数据。再次打开同一个 APK 时,可以复用已有工作区,减少重复准备的时间。

修改则记录在独立的编辑会话中,基于工作区生成新的 APK。一个工作区可以有多个编辑会话,用于尝试不同修改方案;普通文件编辑不使用这套隔离方式。

设置 → APK 中可以调整最近使用的工作区保留数量,或点击管理工作区清理历史。保留越多,占用空间越多,超过数量限制时会自动清理较久未使用的普通工作区。

清理工作区会删除相关分析数据和编辑会话,不会删除源 APK 或已经生成的新 APK。一次性任务也可以使用临时工作区,完成后让 AI 清理;临时工作区按独立策略保留,不用于长期复用。

# 文件操作的边界

文件工具不会自动获得系统尚未授予 MT 的权限。如果 MT 已经拥有 root、Shizuku 等访问能力,文件权限设置允许的操作也可能使用这些能力,因此应按实际任务开放目录。

部分操作存在范围限制,例如复制工具只复制普通文件,移动目录不会合并已有目录;文本编辑和单次字节操作也有各自的内容上限。遇到限制时,先根据返回原因调整任务,不要直接扩大覆盖或删除范围。

操作失败或连接中断,不一定意味着文件完全没有变化。尤其是移动、删除或追加内容后遇到错误,应先检查当前文件状态,再决定是否重试,避免重复操作。

# 如何判断结果是否完整

较长的列表、文本或搜索结果可能分多次返回,AI 需要继续读取。目录无法遍历、文件无法解码或分析达到上限时,也可能只获得部分结果。

可以要求 AI 在结论中说明已检查的范围和未完成的部分。so 的静态引用、控制流分析不能代替运行时验证;打包成功也不能代替安装和功能测试。

# 文件内容会传到哪里

MT 在手机上执行读取、修改和打包等操作,并将工具结果返回给连接的 AI 工具。AI 工具可能继续把读取到的文件内容、代码或分析结果发送给它所使用的模型服务。

使用前应了解 AI 工具和模型服务的数据处理方式,只开放愿意交给它们处理的文件。文件保存在手机上,不代表分析过程中返回的内容始终留在手机上。

# 工具名称说明

一般不需要手动选择工具。AI 会根据任务调用 MT 提供的能力;在 AI 工具的调用记录中,可以通过名称区分:

名称 用途
mt_apk_* APK 的打开、分析、编辑、构建与工作区管理
mt_file_* 本地文件的读取、搜索、编辑与管理
mt_file_copy_workspace_entry 在本地文件与 APK 编辑流程之间复制受支持的普通文件条目

具体可用工具和参数以连接后读取到的列表为准。APK 内的 Dex、资源表和二进制 XML 仍需使用对应的专用处理能力,不能作为普通文件任意导入替换。