MCP 接入说明
协议:MCP Streamable HTTP(POST + JSON-RPC 2.0);端点:{{mcpUrl()}};鉴权:每个请求都必须携带请求头 X-Token: 你的密钥;会话:先调用 initialize,再将响应头 mcp-session-id 原样带回后续 tools/call 请求。
客户端配置(ZCode / Cline / Cursor 等通用 mcpServers 格式,点上方「复制MCP配置」可一键获得含真实密钥的完整版):
{
"mcpServers": {
"android": {
"url": "{{mcpUrl()}}",
"headers": { "X-Token": "<你的密钥>" }
}
}
}
HTTP 直连示例(注意 Accept 头的两种类型都要带,否则会被拒):
curl -X POST {{mcpUrl()}} \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-Token: <你的密钥>" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
版本选择与 APK 兼容性:Android 11 出厂自带 arm32+arm64 双翻译层,绝大多数第三方 APK(含仅armeabi-v7a库的老应用)可直接安装启动,日常装应用首选;Android 13 系统更新、机型指纹更真实,但翻译层仅覆盖 arm64——仅含 32 位 ARM 原生库的 APK 在 13 上会闪退,遇到此类应用请改用 11 机型。⚠️ 个别带加固壳(如 360加固/jiagu)的应用带反模拟自毁保护,x86 云机上可能无法启动(真机正常),属行业性限制;此类应用可先试 11 机型,仍闪退则无解,建议换未加固包。
安装 APK(install_apk):最稳通道(固定上传入口,推荐)——调用方自己的文件先推给服务器:curl -T 文件 "http://<你连MCP用的地址>/upload?name=xx.apk" -H "X-Token: <rp密钥>"(原始字节流、无 base64 膨胀、≤500MB;容器只需能出站访问该地址,无需暴露自己;地址就是 MCP 连接地址,把路径 /mcp 换成 /upload(局域网例 192.168.1.207:8200/upload,公网例 120.79.190.205:57095/upload),同端口同密钥),把返回的 path 放进 apk_paths 同步安装,局域网秒级完成。以下为备选,apk_paths 每条支持三种写法——① http(s):// 链接(推荐,任意大小;自动转后台任务,立即返回 task_id,需调用 install_status(task_id) 每 10 秒轮询直到 ok/failed,下载断线自动续传重试。内网文件优先用局域网直链(如 http://192.168.1.170:端口/文件,实测 97MB/s 秒级完成,远超公网链接);⚠️链接必须是 MCP 服务器可达地址——调用方 Docker 容器内网 IP(如 172.24.0.3)服务端不可达,须改用宿主机局域网 IP+端口映射,或直接用 upload_file);② 已在服务器上的文件路径(同步返回结果);③ 调用 upload_file(name, content_b64) 把本地文件上传后返回的 path(≤500MB;Docker 容器内文件网络不可达时首选此项,出站方向无需入站可达)。注意:路径指 MCP 服务器侧,不是调用方自己的容器/本机路径;大文件勿用同步等待,会超时。
新申请的密钥需管理员审核并设定有效期后方可使用;你的密钥全部过期后,你的实例会自动停机(数据保留),续期后可手动启动。