mcpField
T
TapTry

TapTry

本地服务
taptry.in开发工具01 周前更新

关于 TapTry

TapTry 提供命令行工具和 MCP 服务,可上传 Android 构建并生成可在浏览器打开的链接。MCP 客户端还可在云端 Android 设备上操作已上传的应用,包括查看截图、交互界面和读取日志。

主要功能

  1. 01上传 APK、AAB 等应用包
  2. 02链接启用前进行恶意软件扫描
  3. 03支持公开、不公开或私有链接
  4. 04GitHub 拉取请求预览工作流
  5. 05云端设备交互与截图
  6. 06读取界面元素和应用日志

适用场景

  1. 01无需安装即可分享 Android 构建
  2. 02为拉取请求生成预览链接
  3. 03在云端设备上测试已上传的应用
  4. 04检查崩溃与近期应用日志

MCP 相关

MCP 服务提供上传、查询、列出和删除应用的工具,还可启动设备会话、操作应用并获取截图、界面元素和日志。服务使用 API 密钥连接 TapTry API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"romildoescoding-taptry": {
"command": "npx",
"args": [
"-y",
"taptry"
],
"env": {
"TAPTRY_API_KEY": "<TAPTRY_API_KEY>"
}
}
}
}
启动命令npx -y taptry
需要配置的环境变量
TAPTRY_API_KEY密钥A TapTry API key - create one at https://taptry.in/settings/api-keys

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtaptry1.1.0

工具

14

收录的工具列表 · 更新于 1 周前

参数类型必填说明
refstring否此应用的稳定 ID,例如仓库名称,以便重新上传时更新现有应用,而不是创建新应用。
namestring否应用名称。默认值:取自文件名。
file_pathstring是应用文件的绝对路径,例如 app/build/outputs/apk/release/app-release.apk。
visibilityenum否默认值为 public。要与特定人员分享的构建版本适合设为 Unlisted。public | unlisted | private
wait_secondsnumber否等待检查完成的时长(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+;无依赖项。

设置

  1. 在 TapTry 中,打开 Settings > API keys 并创建一个密钥。
  2. 可以将密钥保存在本机上——运行 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根据文件确定应用名称,在首次上传时设置。
refgithub:<repo>#<PR> 或 github:<repo>@<branch>相同的 ref 对应相同的应用。
visibilityunlistedunlisted(任何拥有链接的人都能访问,不会列在任何地方)、public 或 private。
wait / timeouttrue / 900等待检查完成。
commenttrue持续更新同一条 PR 评论。
delete-on-closetruePR 关闭时删除预览。
fail-on-errortrue构建被拒绝时,使此步骤失败。

输出: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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。