@betadrop/mcp
Distribute iOS & Android builds to testers — right from your AI-powered IDE.
BetaDrop MCP connects your AI coding assistant (Claude, Cursor, Copilot, etc.) to BetaDrop so you can publish builds, track releases, and manage API tokens — all through natural language prompts. No browser, no CLI, no context-switching.
⚡ Quick Start (3 Steps)
Step 1 — Get a BetaDrop API Token
- Sign up or log in at betadrop.app
- Go to Settings → API Tokens
- Click Create Token, give it a name (e.g.
"My IDE"), and copy the token
(It starts with bd_live_... — save it somewhere safe, it's shown only once!)
Step 2 — Add the MCP Server to Your Editor
Pick your editor below and follow the one-liner or config snippet.
Claude Code
Run one command in your terminal:
claude mcp add betadrop -s user -- npx -y @betadrop/mcp
This installs BetaDrop globally across all your Claude Code projects.
For a single project only, drop the -s user flag.
Verify it worked:
claude mcp list
Start a new Claude Code session and type /mcp to confirm the connection.
Claude Desktop
Open your config file:
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
Add this inside the file:
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Restart Claude Desktop. BetaDrop tools will appear in the 🔧 tools panel.
Cursor
Create .cursor/mcp.json in your project root:
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Or for global access, create/edit ~/.cursor/mcp.json with the same content.
Go to Settings → MCP and click Refresh to pick up the new server.
VS Code (GitHub Copilot)
Create .vscode/mcp.json in your project root:
{
"servers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Or add it globally:
| macOS | ~/Library/Application Support/Code/User/mcp.json |
| Windows | %APPDATA%\Code\User\mcp.json |
| Linux | ~/.config/Code/User/mcp.json |
Use Copilot in Agent mode to access BetaDrop tools.
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Zed
Add to your Zed settings file:
| macOS | ~/Library/Application Support/Zed/settings.json |
| Linux | ~/.config/zed/settings.json |
{
"context_servers": {
"betadrop": {
"command": {
"path": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
}
Antigravity (Google)
Open MCP settings from Settings → MCP Servers or edit the config file directly:
| macOS | ~/.gemini/antigravity-ide/mcp_config.json |
| Windows | %USERPROFILE%\.gemini\antigravity-ide\mcp_config.json |
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Restart Antigravity to pick up the new server.
Step 3 — First-Time Setup
After adding the MCP server, authenticate with your BetaDrop API token. Open your AI assistant and type:
"Log me in to BetaDrop with token bd_live_xxxxxxxx"
Your credentials are saved to ~/.betadrop/config.json with 0600 permissions (owner-read only). On logout, the token is revoked on the server and the config file is removed.
✅ You're all set! Now try any of these prompts 👇
🚀 Try These Prompts
You don't need to memorize any tool names — just talk to your AI assistant naturally:
📦 Publishing Builds
"Publish ./build/MyApp.ipa to BetaDrop" | Uploads the IPA and returns an install link |
"Upload MyApp.apk with notes 'Fixed login crash on Android 14'" | Publishes with release notes visible to testers |
"Push the latest IPA to BetaDrop, expire after 7 days" | Sets a time-based expiry on the build |
"Upload MyApp.ipa and send me the install link" | Returns a shareable OTA install URL |
📋 Build History
"Show my recent BetaDrop builds" | Lists your latest builds across both platforms |
"List my iOS builds" | Filters to iOS only |
"Show all expired builds on BetaDrop" | Lists builds that have hit their expiry limit |
"Any expired Android builds?" | Expired builds filtered by platform |
"Get the install link for my last build" | Retrieves the shareable URL |
🔑 Token Management
"Show my BetaDrop API tokens" | Lists all active tokens with abilities and expiry |
"Create a BetaDrop token for CI called 'GitHub Actions'" | Creates a new token scoped for CI |
"Make a read-only token called 'QA Team'" | Token with read permission only |
"Create a token that expires in 30 days" | Auto-expiring token for temporary access |
"Revoke BetaDrop token abc-123" | Permanently revokes a token |
👤 Account
"Am I logged in to BetaDrop?" | Shows your email, token details, and API URL |
"Log out of BetaDrop" | Revokes the token server-side and clears local config |
📖 All Available Tools
Authentication
betadrop_login | Save and validate your API token |
betadrop_logout | Revoke the token on the server and clear local credentials |
betadrop_whoami | Show your account email, token name, and expiry |
Publishing Builds
betadrop_publish | Upload an .ipa or .apk and get a shareable install link |
Parameters:
filePath | string | ✅ | Absolute path to the .ipa or .apk file |
name | string | | Override the app display name |
version | string | | Override the version string (e.g. 1.2.3) |
buildNumber | string | | Override the build number |
bundleId | string | | Override the bundle / package ID |
notes | string | | Release notes shown on the install page |
isPublic | boolean | | Make the install link publicly accessible |
expiryType | string | | none · time · downloads · devices · combined |
expiryTimeDays | number | | Expire after N days (use with time or combined) |
expiryDownloadLimit | number | | Expire after N downloads (use with downloads or combined) |
expiryDeviceLimit | number | | Expire after N unique devices (use with devices or combined) |
How uploads work: The file is validated locally (ZIP magic bytes check), then uploaded in the background. Progress notifications are streamed to your AI client in 5% increments. A status file at ~/.betadrop/upload_status.json tracks the upload in real time.
Build History
betadrop_list_builds | List recent builds, with optional filters |
betadrop_list_expired_builds | List only expired builds (convenience shortcut) |
betadrop_list_builds parameters:
platform | string | | ios or android — omit to list all |
status | string | | active · expired · disabled · deprecated · latest |
page | number | | Page number (default: 1) |
perPage | number | | Results per page (default: 20, max: 100) |
betadrop_list_expired_builds parameters:
platform | string | | ios or android — omit to list all |
page | number | | Page number (default: 1) |
perPage | number | | Results per page (default: 20, max: 100) |
Each result includes the build name, version, platform, file size, status, dates, and a shareable install link.
Token Management
betadrop_token_list | List all your active (non-revoked) API tokens |
betadrop_token_create | Create a new scoped token (plaintext shown only once!) |
betadrop_token_delete | Permanently revoke a token by ID |
betadrop_token_create parameters:
name | string | ✅ | Label for the token (max 100 chars) |
abilities | string[] | | ["publish"], ["read"], or ["*"] (default: all) |
expiresInDays | number | | Token lifetime in days (1–365). Omit for no expiry |
⚠️ The plaintext token is shown exactly once at creation. Copy it immediately!
Quick Help
betadrop_help | Show a full offline reference of all tools and example prompts |
❓ Troubleshooting
"Tool not found" or no BetaDrop tools showing up?
- Make sure Node.js 18+ is installed:
node --version
- Restart your editor after adding the MCP config
- In Claude Code, run
/mcp to check the server status
- In Cursor, go to Settings → MCP and click Refresh
"You are not logged in"?
- Ask your AI:
"Log me in to BetaDrop with token bd_live_..."
- Or set the
BETADROP_TOKEN env variable in your MCP config
Upload seems stuck?
- Large builds upload in the background. Check progress at
~/.betadrop/upload_status.json
- The AI will notify you when the upload completes
Token expired or revoked?
📚 Links
Requirements
- Node.js 18+
- A BetaDrop account
- One of the supported AI editors (Claude, Cursor, VS Code, Windsurf, Zed, Antigravity)
License
MIT