Androidビルドをアップロードしてブラウザで実行可能なリンクを生成し、AIアシスタントを通じてクラウド上のAndroidデバイスでテストできます。
別名 Romildoescoding/taptry-cli, taptry-cli
- スター
- 0
- ツール
- —
- ダウンロード数(30日間)
- —
- 最新バージョン
- 1.1.0
- 最終コミット
- 2026年11月1日
- ライセンス
- MIT
TapTry MCPとは
TapTryはMCPサーバーです。 Androidビルドをアップロードしてブラウザで実行可能なリンクを生成し、AIアシスタントを通じてクラウド上のAndroidデバイスでテストできます。.
プロジェクトのREADMEから生成された概要
TapTry MCP server について
TapTryは、Androidビルドをブラウザで実行可能なリンクに変換する手段を提供し、手動でのインストールやサイドロードなしで誰でもアプリケーションをテストできるようにします。開発者は、500MBまでの制限内で.apk、.aab、.apks、.xapk、および.apkmを含むさまざまなファイル形式をアップロードできます。このサービスは、リンクが有効になる前にVirusTotalを介して自動的にマルウェアスキャンを実行します。このツールは、コマンドラインインターフェース、GitHub ActionsなどのCI/CDパイプライン、またはModel Context Protocolを使用したAIアシスタント経由での利用を想定して設計されています。
Claude DesktopやCursorなどのMCPクライアントに接続すると、このserverはAIによるテストライフサイクル全体の管理を可能にします。ビルドを管理するためのupload_app、get_status、list_appsなどのツールを提供します。特筆すべきは、実際のクラウドAndroidデバイス上でアプリケーションを操作できる点です。特定のコマンドを通じて、アシスタントはtap、type_text、swipe、screenshotなどのアクションを実行し、アプリの動作確認やデバッグ用のログ取得を行うことができます。
できること
- 1即座にブラウザプレビューを生成Androidビルドをアップロードして、Webブラウザで直接実行できる共有可能なリンクを取得します。
- 2プルリクエストのテストを自動化GitHub Actionを設定して、すべてのプルリクエストに対して非公開のプレビューリンクをコメントとして自動投稿します。
- 3リモートデバイス操作AIクライアントを使用して、実際のAndroidデバイス上でスワイプや入力などの手動操作に近いインタラクションを行います。
プロジェクトの README から作成されています。すべてのユースケースは、その引用と照らし合わせて確認されています。
TapTry MCPのインストール方法
フォーマット検証日 2026年11月10日Claude CodeにTapTry MCPをインストール
$ claude mcp add --env TAPTRY_API_KEY=<YOUR_TAPTRY_API_KEY> taptry-cli -- npx -y taptryCursorにTapTry MCPをインストール
~/.cursor/mcp.json
{
"mcpServers": {
"taptry-cli": {
"command": "npx",
"args": [
"-y",
"taptry"
],
"env": {
"TAPTRY_API_KEY": "<YOUR_TAPTRY_API_KEY>"
}
}
}
}VS CodeにTapTry MCPをインストール
.vscode/mcp.json
{
"servers": {
"taptry-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"taptry"
],
"env": {
"TAPTRY_API_KEY": "<YOUR_TAPTRY_API_KEY>"
}
}
}
}Claude DesktopにTapTry MCPをインストール
claude_desktop_config.json
{
"mcpServers": {
"taptry-cli": {
"command": "npx",
"args": [
"-y",
"taptry"
],
"env": {
"TAPTRY_API_KEY": "<YOUR_TAPTRY_API_KEY>"
}
}
}
}CodexにTapTry MCPをインストール
~/.codex/config.toml
[mcp_servers.taptry-cli] command = "npx" args = ["-y", "taptry"] [mcp_servers.taptry-cli.env] TAPTRY_API_KEY = "<YOUR_TAPTRY_API_KEY>"
Gemini CLIにTapTry MCPをインストール
~/.gemini/settings.json
{
"mcpServers": {
"taptry-cli": {
"command": "npx",
"args": [
"-y",
"taptry"
],
"env": {
"TAPTRY_API_KEY": "<YOUR_TAPTRY_API_KEY>"
}
}
}
}設定
TAPTRY_API_KEY必須シークレットA TapTry API key - create one at https://taptry.in/settings/api-keys
| 名前 | 説明 | 種類 |
|---|---|---|
| TAPTRY_API_KEY | A TapTry API key - create one at https://taptry.in/settings/api-keys | 必須シークレット |
自動チェック
実行日 2026年11月14日詳細レポート →自動チェックに合格しました。これはセキュリティ監査ではありません。コードを読み、サーバーに必要最小限のアクセス権を与えてください。 チェックの仕組み
- ソースリポジトリがリンクされており、アクセス可能romildoescoding/taptry-cli is public and reachablegithub.com/romildoescoding/taptry-cli ↗合格
- パッケージがこのリポジトリをソースとして示しているtaptry names romildoescoding/taptry-cli as sourcenpmjs.com/package/taptry ↗合格
- ビルドの来歴(Sigstore 証明)No build attestation published for this release未チェック
- オープンソースライセンス (OSI)MITspdx.org/licenses/MIT.html ↗合格
- 過去1年以内にコミットまたはリリースありLast commit or release 2026-11-01github.com/romildoescoding/taptry-cli ↗合格
- OpenSSF Scorecard未チェック
- パッケージ名が有名なパッケージに酷似していないNo popular package one edit away from taptry合格
- パッケージと依存関係に重大なアドバイザリがない1 resolved dependencies checked; no critical advisoryosv.dev ↗合格
- モデルへの隠れた指示がない0 tool descriptions and the README read; no override phrases, credential paths or hidden characters合格
- 破壊的なツールがラベル付けされている未チェック
- リモート endpoint が MCP ハンドシェイクに応答する未チェック
README
GitHubで見るtaptry
Turn an Android build into a link anyone can run in their browser - no install, no sideloading. From your terminal, from CI on every pull request, or from your coding assistant.
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
Takes .apk, .aab, .apks, .xapk and .apkm, up to 500MB. Every upload
is malware-scanned before its link works. Needs Node 20+; no dependencies.
Setup
- In TapTry, open Settings > API keys and create a key.
- Either save it on your machine -
npx taptry login- or setTAPTRY_API_KEY(what CI should do).
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
--refis your own id for an app, e.g.github:me/game#42. Uploading again with the same ref replaces that app's file and keeps its link - use it for anything you upload repeatedly.- Visibility: public by default (on your TapTry profile, anyone can
run it).
--unlisted: listed nowhere, and the link printed is a secret link only the people you send it to can open.--private: only you. uploadwaits for the checks by default and prints the link on stdout, soURL=$(taptry upload app.apk)works.--jsonprints the whole result.deleteasks first; without a terminal it needs--yes.
Exit codes: 0 ok · 1 error (network, auth, refused request) · 2 bad
usage · 3 the app failed its checks (malware, not an app, …) · 4 timed out
waiting for the checks.
GitHub Action: a preview link on every pull request
Each pull request gets one TapTry app and one comment with its link, updated on every push and deleted when the PR closes. Previews are unlisted by default: anyone with the link in the PR can run them, and they never show up on your TapTry profile.
# .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
Add your key as the repository secret TAPTRY_API_KEY. Pull requests from
forks don't get secrets, so their previews are skipped with a warning.
| Input | Default | |
|---|---|---|
api-key |
- | Required. |
file |
- | The build output. A glob is fine if it matches exactly one file. |
name |
from the file | App name, set on the first upload. |
ref |
github:<repo>#<PR> or github:<repo>@<branch> |
Same ref, same app. |
visibility |
unlisted |
unlisted (anyone with the link, listed nowhere), public or private. |
wait / timeout |
true / 900 |
Wait for the checks. |
comment |
true |
Keep one PR comment up to date. |
delete-on-close |
true |
Delete the preview when the PR closes. |
fail-on-error |
true |
Fail the step when the build is refused. |
Outputs: url, app-id, slug, status, ready.
Outside pull requests (e.g. on: push to main), it keeps one app per
branch: github:<repo>@main.
MCP server: "build it and give me a link"
taptry mcp is a Model Context Protocol
server for Claude Code, Cursor, Claude Desktop and other MCP clients. Tools:
upload_app, get_status, get_link, list_apps, delete_app. The
assistant is told to ask before uploading or deleting, and delete_app
refuses unless confirm: true is passed.
Claude Code
claude mcp add taptry -e TAPTRY_API_KEY=tt_your_key -- npx -y taptry mcp
Cursor (~/.cursor/mcp.json) or Claude Desktop
(claude_desktop_config.json):
{
"mcpServers": {
"taptry": {
"command": "npx",
"args": ["-y", "taptry", "mcp"],
"env": { "TAPTRY_API_KEY": "tt_your_key" }
}
}
}
After taptry login you can leave out the env block.
Claude Code plugin - the MCP server and the TapTry skill in one install (set TAPTRY_API_KEY in your environment first):
/plugin marketplace add Romildoescoding/taptry-cli
/plugin install taptry@taptry
Let your assistant test the app on a real device
The MCP server can also run your uploaded app on a cloud Android device and
let the assistant use it: start_session, then screenshot (it sees the
screen) and get_ui (the elements, with coordinates), tap (by label or
position), type_text, press_key, swipe, get_logs (crashes and
recent log lines) and end_session. So "upload the build, open it, sign up
with a test account and tell me if anything crashes" works end to end. Each
session uses one of your runs and ends after 5 minutes without a call; at
most 2 run at once.
Data and privacy
Everything here talks to one service: the TapTry API at https://api.taptry.in, using your API key.
- Sent to TapTry: app files you upload (
.apk,.aab,.apks,.xapk,.apkm), the app name and settings you give, and - in device sessions - the taps, swipes, keys and text you send to your app. - Read from TapTry: your account name and plan (
whoami), your apps and their status, and in device sessions the screenshots, on-screen elements and logs of your own app. Screenshots and logs can contain whatever your app displays or logs. - Kept by TapTry: uploaded apps until you delete them (
taptry delete, or in the web app); run counts and analytics for your apps. Device-session screenshots, UI reads and logs are returned to you and not stored. Uploaded files are malware-scanned by VirusTotal. Privacy policy · Terms. - Stored locally:
taptry loginsaves your API key in your user config folder (mode 0600). Nothing else is written.
API
Everything here wraps TapTry's public HTTP API at
https://api.taptry.in/api/v1 (bearer-token auth with the same key). A
full reference for using it directly is coming to TapTry's docs.
License
MIT
TapTry MCPのよくある質問
TapTry MCPをClaude Codeに追加するには
ターミナルでclaude mcp add --env TAPTRY_API_KEY=<YOUR_TAPTRY_API_KEY> taptry-cli -- npx -y taptryを実行します。すべてのプロジェクトで利用するには--scope userを追加します。
TapTry MCPをCursorに追加するには
~/.cursor/mcp.jsonを開き、上記のインストールセクションに示すCursor設定を使ってmcpServersの下にサーバーを追加します。
TapTryではどのようなファイル形式のアップロードに対応していますか?
500MBまでの.apk、.aab、.apks、.xapk、および.apkmファイルをアップロードできます。
AIアシスタントはどのようにAndroidアプリをテストできますか?
このMCP serverを使用すると、アシスタントがクラウドデバイス上でセッションを開始し、スクリーンショットの取得、UI要素の検査、タップ、入力、スワイプ、およびログの取得を行うことができます。
アップロードされたアプリはセキュリティスキャンされますか?
はい、リンクが有効になる前に、すべてのアップロードに対してマルウェアスキャンが実施されます。