TapTry について
TapTryは、Androidビルドをアップロードし、ブラウザーから実行できるリンクを共有するコマンドラインツールとMCPサーバーです。MCPクライアントからクラウド上のAndroid端末でアプリを操作し、スクリーンショットやUI、ログを確認できます。
主な機能
- 01APK、AABなどのアップロード
- 02リンク有効化前のマルウェアスキャン
- 03公開・限定公開・非公開の設定
- 04GitHubプルリクエストのプレビュー
- 05クラウド端末での操作と撮影
- 06UI要素とアプリログの取得
活用シーン
- 01インストール不要でAndroidビルドを共有
- 02プルリクエストのプレビューリンクを作成
- 03アップロードしたアプリをクラウド端末でテスト
- 04クラッシュや最近のログを確認
MCP 対応
MCPサーバーは、アプリのアップロード、状態確認、一覧表示、削除に加え、端末セッションの開始やアプリ操作、スクリーンショット、UI要素、ログの取得を提供します。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はアプリの識別子です。たとえばgithub:me/game#42のように指定します。同じ ref で再度アップロードすると、そのアプリのファイルが置き換わり、リンクは維持されます。繰り返しアップロードするものに使ってください。- 公開範囲: デフォルトは公開です(TapTry プロフィールに表示され、誰でも実行できます)。
--unlisted:どこにも掲載されず、表示されるリンクは、共有された人だけが開ける秘密のリンクです。--private:自分だけが利用できます。 uploadはデフォルトでチェックの完了を待ち、リンクを標準出力に表示するため、URL=$(taptry upload app.apk)のように実行できます。--jsonは結果全体を出力します。deleteは最初に確認を求めます。ターミナルがない場合は--yesが必要です。
終了コード:0 成功 · 1 エラー(ネットワーク、認証、リクエスト拒否) · 2 使用方法の誤り · 3 アプリがチェックに失敗(マルウェア、アプリではない、…) · 4 チェック待ちのタイムアウト。
GitHub Action:プルリクエストごとにプレビューリンクを作成
プルリクエストごとに TapTry アプリが 1 つ作成され、リンクを含むコメントが 1 件投稿されます。コメントはプッシュごとに更新され、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 | - | ビルド出力です。1 つのファイルにだけ一致する場合は、グロブを使用できます。 |
name | ファイル名から取得 | 初回アップロード時に設定されるアプリ名です。 |
ref | github:<repo>#<PR> または github:<repo>@<branch> | 同じ ref なら同じアプリになります。 |
visibility | unlisted | unlisted(リンクを知っている人なら誰でも利用可能。どこにも掲載されません)、public、または private。 |
wait / timeout | true / 900 | チェックの完了を待ちます。 |
comment | true | PR のコメント 1 件を最新の状態に保ちます。 |
delete-on-close | true | PR が閉じられたときにプレビューを削除します。 |
fail-on-error | true | ビルドが拒否された場合にステップを失敗させます。 |
出力:url、app-id、slug、status、ready。
プルリクエスト以外(たとえば on: push で main にプッシュする場合)は、ブランチごとにアプリを 1 つ保持します:github:<repo>@main。
MCP サーバー:「ビルドしてリンクを教えて」
taptry mcp は、Claude Code、Cursor、Claude Desktop、その他の MCP クライアント向けの Model Context Protocol サーバーです。ツール: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 を使います。そのため、「ビルドをアップロードして開き、テストアカウントでサインアップし、クラッシュがあれば教えて」という操作を最初から最後まで実行できます。各セッションでは実行枠を 1 つ使用し、呼び出しがない状態が 5 分続くと終了します。同時に実行できるのは最大 2 件です。
データとプライバシー
ここでのすべての操作は、API キーを使って 1 つのサービス、TapTry API(https://api.taptry.in)と通信します。
- TapTry に送信されるデータ: アップロードするアプリファイル(
.apk、.aab、.apks、.xapk、.apkm)、指定したアプリ名と設定、デバイスセッションではアプリに送信するタップ、スワイプ、キー入力、テキストです。 - TapTry から読み取るデータ: アカウント名とプラン(
whoami)、アプリとそのステータス、デバイスセッションでは自分のアプリのスクリーンショット、画面上の要素、ログです。スクリーンショットやログには、アプリに表示または記録されたあらゆる内容が含まれる可能性があります。 - TapTry に保存されるデータ: アップロードしたアプリは削除するまで保持されます(
taptry delete、またはウェブアプリから削除できます)。アプリの実行回数と分析データも保存されます。デバイスセッションのスクリーンショット、UI の読み取り結果、ログは返却されますが、保存されません。アップロードしたファイルは VirusTotal によるマルウェアスキャンを受けます。プライバシーポリシー · 利用規約。 - ローカルに保存されるデータ:
taptry loginは、ユーザー設定フォルダーに API キーを保存します(モード 0600)。それ以外のデータは書き込まれません。
API
ここでのすべての操作は、https://api.taptry.in/api/v1 にある TapTry の公開 HTTP API をラップしています(同じキーを使ったベアラートークン認証)。API を直接使用するための完全なリファレンスは、今後 TapTry のドキュメントで公開される予定です。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。