关于 TapTry
TapTry 提供命令行工具和 MCP 服务,可上传 Android 构建并生成可在浏览器打开的链接。MCP 客户端还可在云端 Android 设备上操作已上传的应用,包括查看截图、交互界面和读取日志。
主要功能
- 01上传 APK、AAB 等应用包
- 02链接启用前进行恶意软件扫描
- 03支持公开、不公开或私有链接
- 04GitHub 拉取请求预览工作流
- 05云端设备交互与截图
- 06读取界面元素和应用日志
适用场景
- 01无需安装即可分享 Android 构建
- 02为拉取请求生成预览链接
- 03在云端设备上测试已上传的应用
- 04检查崩溃与近期应用日志
MCP 相关
MCP 服务提供上传、查询、列出和删除应用的工具,还可启动设备会话、操作应用并获取截图、界面元素和日志。服务使用 API 密钥连接 TapTry API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
14收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ref | string | 否 | 此应用的稳定 ID,例如仓库名称,以便重新上传时更新现有应用,而不是创建新应用。 |
| name | string | 否 | 应用名称。默认值:取自文件名。 |
| file_path | string | 是 | 应用文件的绝对路径,例如 app/build/outputs/apk/release/app-release.apk。 |
| visibility | enum | 否 | 默认值为 public。要与特定人员分享的构建版本适合设为 Unlisted。public | unlisted | private |
| wait_seconds | number | 否 | 等待检查完成的时长(0-600,默认值为 90)。之后请使用 get_status。 |
详细介绍
taptry
将 Android 构建包变成任何人都能在浏览器中运行的链接——无需安装,也无需侧载。可从终端、每个拉取请求触发的 CI,或编码助手中使用。
npx taptry upload app/build/outputs/apk/release/app-release.apk
# Uploading app-release.apk (18.2 MB)…
# Created My Game - https://taptry.in/app/my-game
# Waiting for the malware scan and checks (this can take a few minutes)…
# Checking for malware…
# Ready
# https://taptry.in/app/my-game
支持 .apk、.aab、.apks、.xapk 和 .apkm,最大 500MB。每次上传都会经过恶意软件扫描,扫描通过后链接才会生效。需要 Node 20+;无依赖项。
设置
- 在 TapTry 中,打开 Settings > API keys 并创建一个密钥。
- 可以将密钥保存在本机上——运行
npx taptry login——也可以设置TAPTRY_API_KEY(CI 应使用此方式)。
CLI
taptry upload <file> [--name <name>] [--ref <ref>] [--unlisted | --private] [--no-wait] [--timeout <s>] [--json]
taptry status <app> | --ref <ref>
taptry list [--ref <ref>]
taptry delete <app> | --ref <ref> [--yes]
taptry login | logout | whoami
taptry mcp
--ref是你为应用指定的自定义 ID,例如github:me/game#42。使用相同的 ref 再次上传时,会替换该应用的文件并保留其链接——适用于任何需要重复上传的内容。- 可见性:默认公开(显示在你的 TapTry 个人资料中,任何人都能运行)。
--unlisted:不会列在任何地方,输出的链接是秘密链接,只有你发送给的人才能打开。--private:仅你可见。 - 默认情况下,
upload会等待检查完成,并将链接输出到 stdout,因此URL=$(taptry upload app.apk)可以正常使用。--json会输出完整结果。 delete会先询问;如果没有终端,则需要使用--yes。
退出代码:0 成功 · 1 错误(网络、身份验证、请求被拒绝)· 2 用法错误 · 3 应用未通过检查(恶意软件、不是应用,……)· 4 等待检查超时。
GitHub Action:为每个拉取请求生成预览链接
每个拉取请求都会获得一个 TapTry 应用和一条包含其链接的评论;每次推送都会更新评论,PR 关闭时则会删除评论。预览默认设为不公开:任何拥有 PR 中链接的人都能运行预览,而且预览不会显示在你的 TapTry 个人资料中。
# .github/workflows/taptry-preview.yml
name: TapTry preview
on:
pull_request:
types: [opened, synchronize, reopened, closed]
permissions:
contents: read
pull-requests: write
jobs:
preview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
if: github.event.action != 'closed'
- uses: actions/setup-java@v4
if: github.event.action != 'closed'
with:
distribution: temurin
java-version: 17
- name: Build
if: github.event.action != 'closed'
run: ./gradlew assembleDebug
- uses: Romildoescoding/taptry-cli@v1
with:
api-key: ${{ secrets.TAPTRY_API_KEY }}
file: app/build/outputs/apk/debug/app-debug.apk
将密钥添加为仓库机密 TAPTRY_API_KEY。来自复刻仓库的拉取请求无法获取机密,因此会跳过其预览并发出警告。
| 输入 | 默认值 | |
|---|---|---|
api-key | - | 必填。 |
file | - | 构建输出。可以使用 glob,但必须恰好匹配一个文件。 |
name | 根据文件确定 | 应用名称,在首次上传时设置。 |
ref | github:<repo>#<PR> 或 github:<repo>@<branch> | 相同的 ref 对应相同的应用。 |
visibility | unlisted | unlisted(任何拥有链接的人都能访问,不会列在任何地方)、public 或 private。 |
wait / timeout | true / 900 | 等待检查完成。 |
comment | true | 持续更新同一条 PR 评论。 |
delete-on-close | true | PR 关闭时删除预览。 |
fail-on-error | true | 构建被拒绝时,使此步骤失败。 |
输出:url、app-id、slug、status、ready。
在拉取请求之外(例如,对 main 使用 on: push),每个分支会保留一个应用:github:<repo>@main。
MCP 服务:“构建应用并给我一个链接”
taptry mcp 是一个 Model Context Protocol 服务,适用于 Claude Code、Cursor、Claude Desktop 和其他 MCP 客户端。工具包括:upload_app、get_status、get_link、list_apps、delete_app。助手会被告知上传或删除前必须先询问;除非传入 confirm: true,否则 delete_app 会拒绝执行。
Claude Code
claude mcp add taptry -e TAPTRY_API_KEY=tt_your_key -- npx -y taptry mcp
Cursor(~/.cursor/mcp.json)或 Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"taptry": {
"command": "npx",
"args": ["-y", "taptry", "mcp"],
"env": { "TAPTRY_API_KEY": "tt_your_key" }
}
}
}
运行 taptry login 后,可以省略 env 代码块。
Claude Code 插件——一次安装即可同时安装 MCP 服务和 TapTry 技能(请先在环境中设置 TAPTRY_API_KEY):
/plugin marketplace add Romildoescoding/taptry-cli
/plugin install taptry@taptry
让你的助手在真实设备上测试应用
MCP 服务还可以在云端 Android 设备上运行你上传的应用,并让助手操作它:先运行 start_session,然后使用 screenshot(查看屏幕)和 get_ui(获取带坐标的元素)、tap(按标签或位置点击)、type_text、press_key、swipe、get_logs(获取崩溃信息和最近的日志行),最后运行 end_session。因此,“上传构建包、打开应用、使用测试账号注册并告诉我是否发生崩溃”这样的操作可以端到端完成。每个会话会消耗一次运行次数;5 分钟没有调用后会结束;最多可同时运行 2 个会话。
数据与隐私
此处的所有操作都只会与一个服务通信:TapTry API(地址为 https://api.taptry.in),并使用你的 API 密钥。
- 发送至 TapTry: 你上传的应用文件(
.apk、.aab、.apks、.xapk、.apkm)、你提供的应用名称和设置,以及在设备会话中发送给应用的点击、滑动、按键和文本。 - 从 TapTry 读取: 你的账户名称和套餐(
whoami)、你的应用及其状态,以及在设备会话中你自己的应用截图、屏幕元素和日志。截图和日志可能包含应用显示或记录的任何内容。 - 由 TapTry 保留: 已上传的应用会一直保留,直到你将其删除(使用
taptry delete或通过 Web 应用);你的应用运行次数和分析数据。设备会话的截图、UI 读取内容和日志会返回给你,但不会被存储。上传的文件会由 VirusTotal 扫描恶意软件。隐私政策 · 条款。 - 本地存储:
taptry login会将你的 API 密钥保存在用户配置文件夹中(权限模式为 0600)。不会写入其他内容。
API
此处的所有操作都封装了 TapTry 的公开 HTTP API,地址为
https://api.taptry.in/api/v1(使用同一密钥进行 bearer 令牌身份验证)。直接使用该 API 的完整参考文档即将在 TapTry 文档中发布。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。