BetaDrop について
BetaDropは、AIコーディングエージェントからiOSとAndroidのビルドを公開し、テスターへの配布を管理するMCPサーバーです。インストール確認、共有リンク、デバイス、Webhook、テスターのフィードバックも扱えます。
主な機能
- 01IPAとAPKのビルド公開
- 02OTAインストールリンクの生成
- 03ビルドのインストール可否確認
- 04ビルド履歴と固定リンクの管理
- 05デバイス、Webhook、フィードバックの管理
活用シーン
- 01新しいiOSビルドをテスターに共有
- 02ストアの配布経路を使わずAndroid APKを配布
- 03公開前に署名とインストール可否を確認
- 04テスターの意見を確認しデバイス一覧を出力
MCP 対応
このMCPサーバーは、互換性のあるAIクライアントにビルドの公開・確認、リンクやデバイス、Webhookの管理、フィードバックの取得ツールを提供します。BetaDrop APIトークンで認証します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @betadrop/mcpBETADROP_TOKENシークレットBetaDrop API token, created at Settings, Developer, API tokens. Optional: leave it unset and sign in through the server's own login tool, which stores the token in ~/.betadrop/config.json. Set it for CI or headless use.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
11掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
@betadrop/mcp
「このビルドを公開して、インストールリンクを送って。」 AI アシスタントにそう伝えれば、30秒後にはテスターがアプリをインストールできます。
BetaDrop は、iOS の .ipa または Android の .apk をOTAインストールリンクで配布します。テスターはスマートフォンでリンクを開き、ブラウザーから直接インストールできます。TestFlight の審査待ちも、Play のトラックも、テスターアカウントも不要です。Diawi または Firebase App Distribution を使ったことがあれば、同じ役割を果たします。
BetaDrop MCP は、その手順を AI アシスタントから行えるようにします。Claude、Cursor、Copilot、Windsurf、Zed、Antigravity から、通常のプロンプトだけでビルドを公開し、インストール可能か確認し、常設リンクやデバイス、Webhook を管理して、テスターからのフィードバックを読み取れます。ブラウザーのタブも、コマンドラインも不要で、エディターを離れる必要もありません。
claude mcp add betadrop -s user -- npx -y @betadrop/mcp
23個のツール。npxコマンド1つ。ビルド手順なし。 アシスタントはすでに使い方を理解しているので、ツール名を入力する必要はありません。
⚡ クイックスタート(3ステップ)
ステップ1 — BetaDrop APIトークンを取得する
- betadrop.app で登録するか、ログインします
- 設定 → 開発者 に移動します
- APIトークン の下にある トークンを作成 をクリックし、名前(例:
"My IDE")を付けて、トークンをコピーします
(先頭はbd_live_...です。安全な場所に保存してください。一度しか表示されません!)
Step 2 — MCP サーバーをエディターに追加する
ヒント
🤖 AI ネイティブなインストール(最も簡単) すでに AI アシスタント(Cursor Composer、Claude、Copilot、Antigravity など)を使っているので、設定ファイルを手動で編集する必要はありません。以下のプロンプトのいずれかを、そのまま AI チャットに貼り付けてください。
- Cursor:
"Add the @betadrop/mcp server to my global Cursor mcp.json config"- Antigravity:
"Add the @betadrop/mcp server to my Antigravity mcp_config.json"- VS Code (Copilot):
"Add the @betadrop/mcp server to my workspace .vscode/mcp.json"- Claude Desktop:
"Add the @betadrop/mcp server to my Claude Desktop config"AI が設定ファイルを自動的に見つけ、作成または更新します。完了したら、エディターを更新または再起動してください。
または、以下からお使いのエディターを選び、手動で設定してください。
Claude Code
ターミナルで次のコマンドを 1 つ実行します。
claude mcp add betadrop -s user -- npx -y @betadrop/mcp
これにより、すべての Claude Code プロジェクトで BetaDrop をグローバルに利用できるようになります。
1 つのプロジェクトだけで利用する場合は、-s userフラグを削除してください。
動作を確認するには:
claude mcp list
新しい Claude Code セッションを開始し、/mcp と入力して接続を確認します。
Claude Desktop
設定ファイルを開きます。
| OS | パス |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
ファイル内に以下を追加します。
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Claude Desktop を再起動してください。 BetaDrop のツールが 🔧 ツールパネルに表示されます。
Cursor
プロジェクトのルートに .cursor/mcp.json を作成します。
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
または、グローバルにアクセスできるようにするには、同じ内容で ~/.cursor/mcp.json を作成または編集します。
Settings → MCP に移動し、Refresh をクリックして新しいサーバーを読み込みます。
VS Code (GitHub Copilot)
プロジェクトのルートに .vscode/mcp.json を作成します。
{
"servers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
または、グローバルに追加します。
| OS | パス |
|---|---|
| macOS | ~/Library/Application Support/Code/User/mcp.json |
| Windows | %APPDATA%\Code\User\mcp.json |
| Linux | ~/.config/Code/User/mcp.json |
Copilot の Agent mode で BetaDrop のツールにアクセスできます。
Windsurf
~/.codeium/windsurf/mcp_config.json を編集します。
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Zed
Zed の設定ファイルに追加します。
| OS | パス |
|---|---|
| macOS | ~/Library/Application Support/Zed/settings.json |
| Linux | ~/.config/zed/settings.json |
{
"context_servers": {
"betadrop": {
"command": {
"path": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
}
Antigravity (Google)
Settings → MCP Servers から MCP 設定を開くか、設定ファイルを直接編集します。
| OS | パス |
|---|---|
| macOS | ~/.gemini/antigravity-ide/mcp_config.json |
| Windows | %USERPROFILE%\.gemini\antigravity-ide\mcp_config.json |
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
新しいサーバーを読み込むため、Antigravity を再起動します。
Step 3 — 初回セットアップ
MCP サーバーを追加したら、BetaDrop API トークンで認証します。AI アシスタントを開き、次のように入力してください。
"Log me in to BetaDrop with token bd_live_xxxxxxxx"
資格情報は、$XDG_CONFIG_HOME/betadrop/config.json が設定されている場合はその場所に、そうでない場合は ~/.betadrop/config.json に、0600 権限(所有者のみ読み取り可能)で保存されます。ログアウトすると、トークンはサーバー上で失効し、設定ファイルは削除されます。
✅ 準備完了です! それでは、以下のプロンプトを試してみましょう 👇
🚀 これらのプロンプトを試す
ツール名を覚える必要はありません。AI アシスタントに自然な言葉で話しかけるだけです。
📦 ビルドの公開
| プロンプト | 実行される内容 |
|---|---|
"Publish ./build/MyApp.ipa to BetaDrop" | IPA をアップロードし、インストールリンクを返します |
"Upload MyApp.apk with notes 'Fixed login crash on Android 14'" | テスターに表示されるリリースノートを付けて公開します |
"Push the latest IPA to BetaDrop, expire after 7 days" | ビルドに期限切れまでの期間を設定します |
"Upload MyApp.ipa and send me the install link" | 共有可能な OTA インストール URL を返します |
📋 ビルド履歴
| プロンプト | 実行される内容 |
|---|---|
"Show my recent BetaDrop builds" | 両プラットフォームの最新ビルドを一覧表示します |
"List my iOS builds" | iOS のビルドのみを絞り込みます |
"Show all expired builds on BetaDrop" | 有効期限が切れたビルドを一覧表示します |
"Any expired Android builds?" | プラットフォームで絞り込んだ期限切れのビルドを表示します |
"Get the install link for my last build" | 共有可能な URL を取得します |
🔑 トークン管理
| プロンプト | 実行される内容 |
|---|---|
"Show my BetaDrop API tokens" | 有効なすべてのトークンを、権限と有効期限とともに一覧表示します |
"Create a BetaDrop token for CI called 'GitHub Actions'" | CI 用に範囲を限定した新しいトークンを作成します |
"Make a read-only token called 'QA Team'" | 権限が read のみとして記録されるトークンを作成します |
"Create a token that expires in 30 days" | 一時的なアクセス用に自動で期限切れになるトークンを作成します |
"Revoke BetaDrop token abc-123" | トークンを永久に失効させます |
✅ リリースの確認、リンク、デバイス
| プロンプト | 実行される内容 |
|---|---|
"Will build/MyApp.ipa install from a link?" | betadrop_inspect がプロファイルと署名を確認します。公開は行いません |
"Publish MyApp.ipa to the acme-beta standing link" | 公開し、テスターがすでに利用している固定リンクの参照先をそのビルドに設定します |
"What did testers say about the last build?" | テスターからのフィードバックを読み取ります |
"Export my test devices for the Apple portal" | タブ区切りのデバイスファイルを返します |
"Post new builds to this Slack webhook: https://hooks.slack.com/…" | Slack 用にフォーマットされた Webhook を作成します |
👤 アカウント
| プロンプト | 実行される内容 |
|---|---|
"Am I logged in to BetaDrop?" | メールアドレス、トークンの詳細、API URL を表示します |
"Log out of BetaDrop" | サーバー側でトークンを失効させ、ローカル設定を消去します |
🔁 1 回のやり取りで連続実行
これらはチャットボットではなくツールなので、アシスタントは複数のツールを連続して実行できます。
"リリース APK をビルドして、最後のコミットメッセージをノートとして BetaDrop に公開し、インストールリンクを教えてください。"
ビルドはターミナルで実行され、betadrop_publish が成果物をアップロードし、同じ返信でリンクが返されます。
📖 利用可能なすべてのツール
8 つの分野にわたる 23 個のツールがあります。ツール名を指定して呼び出す必要はありません。アシスタントが選択します。
認証
| ツール | 実行される内容 |
|---|---|
betadrop_login | API トークンを保存して検証します |
betadrop_logout | サーバー上でトークンを失効させ、ローカルの認証情報を消去します |
betadrop_whoami | アカウントのメールアドレス、トークン名、有効期限を表示します |
ビルドの公開
| ツール | 機能 |
|---|---|
betadrop_publish | .ipa または .apk をアップロードし、共有可能なインストールリンクを取得します |
betadrop_upload_status | 最新の betadrop_publish アップロードの結果(インストールリンク)を取得します。パラメーターは不要です。大きなビルドのアップロードが90秒の公開時間を超えた場合に自動的に呼び出されます |
betadrop_publish のパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
filePath | string | ✅ | .ipa または .apk ファイルの絶対パス |
name | string | アプリの表示名を上書きします | |
version | string | バージョン文字列を上書きします(例:1.2.3) | |
buildNumber | string | ビルド番号を上書きします | |
bundleId | string | バンドル/パッケージ ID を上書きします | |
notes | string | インストールページに表示するリリースノート | |
expiryType | string | none · time · downloads · devices · combined。none(永続リンク)には有料プランが必要です。下記を参照してください | |
expiryTimeDays | number | N 日後に期限切れにします(time または combined と併用)。プランの最大ビルド保持期間を上限として設定されます | |
expiryDownloadLimit | number | N 回ダウンロード後に期限切れにします(downloads または combined と併用) | |
expiryDeviceLimit | number | N 台のデバイスで使用された後に期限切れにします(devices または combined と併用) | |
standingLink | string | ビルドが公開されたときにそのビルドを指す固定リンクのスラッグ(アカウントですでに取得済みである必要があります) |
有効期限はプランの上限が適用されます。
none(永続リンク)は有料プランの機能です。この機能がないプランでは、ビルドは拒否されず、日付指定のリンクとして保存されます。expiryTimeDaysは、すべてのプランでプランの最大ビルド保持期間を上限として設定されます。いずれかの制限が適用されると、サーバーはretentionClampオブジェクト(requestedDays、appliedDays、maxDays、permanentDenied、message)を返し、ツールの結果に適用内容を説明する ⚠️ 行が追加されます。これは、プランによって指定した設定が実際に短縮された場合にのみ報告されます。expiryTimeDaysを指定しない場合、アカウントのデフォルト値が短縮されても、この値は null のままです。プランごとの現在の有効日数上限は、ここでは再掲せず、src/lib/limits.jsonに記載されています。
アップロードの仕組み: ファイルはローカルで検証(ZIP マジックバイトのチェック)されてからアップロードされ、進捗通知は5%刻みで AI クライアントにストリーミングされます。インストールリンクはツールの結果として返されます。90秒を超えるビルドは、ツール呼び出しがタイムアウトしないようバックグラウンドでアップロードを続行し、その後アシスタントが
betadrop_upload_statusを呼び出してリンクを取得します。~/.betadrop/upload_status.jsonのステータスファイルで、アップロードの進行状況をリアルタイムに追跡できます。
ビルド履歴
| ツール | 機能 |
|---|---|
betadrop_list_builds | オプションのフィルターを指定して、最近のビルドを一覧表示します |
betadrop_list_expired_builds | 期限切れのビルドのみを一覧表示します(簡易ショートカット) |
betadrop_list_builds のパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
platform | string | ios または android。省略するとすべてを一覧表示します | |
status | string | active · expired · disabled · deprecated · latest | |
page | number | ページ番号(デフォルト:1) | |
perPage | number | 1ページあたりの結果数(デフォルト:20、最大:100) |
betadrop_list_expired_builds のパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
platform | string | ios または android。省略するとすべてを一覧表示します | |
page | number | ページ番号(デフォルト:1) | |
perPage | number | 1ページあたりの結果数(デフォルト:20、最大:100) |
各結果には、ビルド名、バージョン、プラットフォーム、ファイルサイズ、ステータス、日付、共有可能なインストールリンクが含まれます。
トークン管理
| ツール | 説明 |
|---|---|
betadrop_token_list | 有効な(取り消されていない)API トークンをすべて一覧表示します |
betadrop_token_create | スコープを指定した新しいトークンを作成します(平文は一度だけ表示されます!) |
betadrop_token_delete | ID を指定してトークンを完全に取り消します |
betadrop_token_create のパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | ✅ | トークンのラベル(最大 100 文字) |
abilities | string[] | ["publish"]、["read"]、または ["*"](デフォルト:すべて) | |
expiresInDays | number | トークンの有効期間(日数、1~365)。有効期限を設定しない場合は省略します |
権限はすべてのエンドポイントで適用されます。
readトークンではビルドの一覧表示、フィードバックの閲覧、betadrop_inspectの実行ができますが、公開、削除、リンク、デバイス、Webhook の変更はできません。
⚠️ 平文のトークンが表示されるのは、作成時の一度だけです。すぐにコピーしてください!
リリースチェック
| ツール | 説明 |
|---|---|
betadrop_inspect | .ipa/.apk をリンクからインストールできるか確認します。プロファイルの種類と有効期限、署名、testOnly/debuggable を確認します。公開は行いません |
固定リンク
| ツール | 説明 |
|---|---|
betadrop_list_standing_links | 固定リンク、各リンクから配信されるビルド、フォロワー数を表示します |
betadrop_point_standing_link | 既にアップロード済みのビルドを固定リンクに設定します。フォロワーにはメールが送信されます |
betadrop_publish では standingLink も指定でき、新しいビルドの公開と同時に固定リンクの参照先を切り替えられます。
ビルド、フィードバック、デバイス
| ツール | 説明 |
|---|---|
betadrop_delete_build | ビルドを削除します。インストールリンクは機能しなくなります |
betadrop_get_feedback | テスターがビルドに残したフィードバックを表示します |
betadrop_list_devices | 登録済みの iOS デバイス(UDID)を一覧表示します |
betadrop_export_devices | Apple のポータルと fastlane の register_devices が受け付けるデバイスファイルをエクスポートします |
betadrop_invite_device | テスターが iPhone で開き、デバイスを登録するためのリンクを作成します |
Webhook
| ツール | 説明 |
|---|---|
betadrop_list_webhooks | アカウントの Webhook を一覧表示します |
betadrop_create_webhook | URL、Slack、または Discord にイベントを送信します(URL から自動判定されます) |
betadrop_test_webhook | テストイベントをすぐに配信し、応答を報告します |
betadrop_delete_webhook | Webhook を削除します |
クイックヘルプ
| ツール | 説明 |
|---|---|
betadrop_help | すべてのツールとプロンプト例を含む、オフラインで参照できる完全なリファレンスを表示します |
⚙️ 設定
デフォルトを上書きするには、次の環境変数を設定します。
| 変数 | デフォルト | 説明 |
|---|---|---|
BETADROP_API_URL | https://api.betadrop.app | API サーバーの URL(セルフホスト用) |
BETADROP_APP_URL | https://betadrop.app | インストールリンク用のフロントエンド URL |
BETADROP_TOKEN | (none) | CI 用トークン。ローカルの設定ファイルを使わずに済みます |
MCP サーバーにこれらを設定するには、ステップ 2 のエディター設定で、command と args の隣に env ブロックを追加します。
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"],
"env": { "BETADROP_TOKEN": "bd_live_xxx" }
}
}
}
BETADROP_TOKEN を設定すると、ログインは不要になり、サーバーはその値を直接使用します。
BETADROP_TOKEN=bd_live_xxx betadrop-mcp
❓ トラブルシューティング
「ツールが見つかりません」または BetaDrop のツールが表示されませんか?
- Node.js 18 以降がインストールされていることを確認してください:
node --version - MCP 設定を追加した後、エディターを再起動してください
- Claude Code では、
/mcpを実行してサーバーのステータスを確認してください - Cursor では、Settings → MCP に移動して Refresh をクリックしてください
「ログインしていません」と表示されますか?
- AI に次のように依頼してください:"
bd_live_...トークンで BetaDrop にログインして" - または、MCP 設定で環境変数
BETADROP_TOKENを設定してください。設定を参照してください
アップロードが止まっているように見えますか?
- 90 秒以上かかるビルドは、ツール呼び出しがタイムアウトしないよう、バックグラウンドでアップロードを続けます
- アシスタントにアップロード状況の確認を依頼してください(
betadrop_upload_statusが呼び出されます)。アップロードが完了すると、インストールリンクが返されます ~/.betadrop/upload_status.jsonを直接確認することもできます
トークンの有効期限が切れた、または取り消されましたか?
- betadrop.app → Settings → Developer → API tokens で新しいトークンを作成してください
- 新しいトークンで再度ログインしてください
iOS ビルドをスマートフォンにダウンロードしても開けませんか?
- アドホック
.ipaをインストールできるのは、署名時にプロビジョニングプロファイルに含まれていたデバイスだけです。公開しても条件は変わりません。テスターにUDID チェッカーを送信し、Apple Developer ポータルでデバイスを追加して、再署名してください。
BetaDrop が提供するその他のツール
同じ公開手順を、ほかの 2 つの方法でも利用できます。アカウントと API トークンは共通です。
@betadrop/cliソース | ターミナルから betadrop publish app.ipa を実行します。インストールリンクとスキャン可能な QR コードが表示されます。 |
betadrop-app/upload-action | GitHub Actions ワークフローから公開できます。インストールリンクは実行サマリーに表示され、必要に応じてプッシュのたびに自動更新されるプルリクエストのコメントにも表示されます。 |
📚 リンク
- BetaDrop — ビルド配布プラットフォーム
- Model Context Protocol — この統合を支えるオープン標準
- 問題を報告
要件
- Node.js 18 以降
- BetaDrop アカウント — 無料プランではカードは不要です。プランごとの保存期間と ファイルサイズの上限は、料金ページをご覧ください。
- 対応する AI エディター(Claude、Cursor、VS Code、Windsurf、Zed、Antigravity)のいずれか
コントリビューション
課題やプルリクエストはこちら:https://github.com/betadrop-app/betadrop-mcp。ブラウザーを開く手間が省けた場合は、⭐ を付けるとほかのモバイルチームにも見つけてもらいやすくなります。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。