@betadrop/mcp
Model Context Protocol (MCP) server for BetaDrop — the iOS and Android build distribution platform. Gives your AI assistant the ability to publish builds, manage tokens, and query build history without leaving your editor.
What is MCP?
Model Context Protocol (MCP) is an open standard that lets AI models connect to external tools and data sources. Installing this server gives your AI assistant direct access to your BetaDrop account — it can upload a build, hand you the install link, create a scoped CI token, or list your release history, all from a single prompt.
Requirements
- Node.js 18+
- A BetaDrop account and API token
- One of the supported AI tools below
Installation
Claude Code
claude mcp add betadrop -s user -- npx -y @betadrop/mcp
claude mcp add betadrop -- npx -y @betadrop/mcp
Or in JSON format:
claude mcp add-json betadrop '{"command":"npx","args":["-y","@betadrop/mcp"]}' -s user
Useful commands:
claude mcp list
claude mcp get betadrop
claude mcp remove betadrop
Start a new Claude Code session and run /mcp to confirm the connection.
Claude Desktop
Edit your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Restart Claude Desktop. BetaDrop tools will appear in the tools panel.
Cursor
Project config — create .cursor/mcp.json in your project root:
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Global config — create or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Go to Settings > MCP and click refresh after adding.
VS Code (GitHub Copilot)
Project config — create .vscode/mcp.json:
{
"servers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
Global config — edit the MCP file in your VS Code user directory:
| macOS | ~/Library/Application Support/Code/User/mcp.json |
| Windows | %APPDATA%\Code\User\mcp.json |
| Linux | ~/.config/Code/User/mcp.json |
{
"servers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
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 ~/.config/zed/settings.json (Linux) or ~/Library/Application Support/Zed/settings.json (macOS):
{
"context_servers": {
"betadrop": {
"command": {
"path": "npx",
"args": ["-y", "@betadrop/mcp"]
}
}
}
}
First-Time Setup
After installing, authenticate with your BetaDrop API token. Create one at betadrop.app → Settings → API Tokens.
Then ask your AI assistant:
"Log me in to BetaDrop with token bd_live_..."
Credentials are saved to ~/.betadrop/config.json with 0600 permissions (owner-read only). On logout, the token is revoked on the server and the file is removed.
Available Tools
Authentication
betadrop_login | Validate a BetaDrop API token against the server and save it to the local config |
betadrop_logout | Revoke the active token on the server and clear local credentials |
betadrop_whoami | Show the logged-in account, token name, expiry date, and last-used date |
Publishing Builds
betadrop_publish | Upload an .ipa or .apk to BetaDrop and return a shareable install link |
Inputs:
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 | | Whether the install link is publicly accessible (default: false) |
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 |
The server validates the file locally (magic bytes check) before uploading. Upload progress is streamed as notifications to your AI client in 10% increments.
Build History
betadrop_list_builds | List recent builds for your account, newest first |
Inputs:
platform | string | | Filter by 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, creation date, expiry date, and a ready-to-share install link.
Token Management
betadrop_token_list | List all active (non-revoked) API tokens for your account |
betadrop_token_create | Create a new scoped API token — plaintext shown exactly once |
betadrop_token_delete | Permanently revoke a token by its ID |
betadrop_token_create inputs:
name | string | ✓ | Human-readable label for the token (max 100 chars) |
abilities | string[] | | Permissions: ["publish"], ["read"], or ["*"] (default: all) |
expiresInDays | number | | Token lifetime in days, 1–365. Omit for no expiry |
Note: The plaintext token value is returned exactly once at creation and never stored. Copy it immediately.
Reference
betadrop_help | Return a full offline reference of all tools, inputs, and example prompts |
Example Prompts
Once installed, try asking your AI assistant:
Publishing
"Publish MyApp.ipa to BetaDrop"
"Upload MyApp.apk to BetaDrop"
"Push MyApp.ipa to BetaDrop with notes 'Fixed crash on iOS 17'"
"Publish MyApp.apk to BetaDrop and send me the install link"
"Upload MyApp.ipa to BetaDrop, make it expire in 7 days"
"Publish MyApp.apk to BetaDrop, keep it private, max 50 downloads"
Build History
"What builds do I have on BetaDrop?"
"Show my latest BetaDrop builds"
"Any iOS builds on BetaDrop?"
"Get me the install link for my last build"
Token Management
"Show my BetaDrop tokens"
"Create a BetaDrop token for CI"
"Make a read-only BetaDrop token called 'QA Team'"
"Delete BetaDrop token abc-123"
Account
"Am I logged in to BetaDrop?"
"Log out of BetaDrop"
Self-Hosted BetaDrop
Point the MCP server at your own instance by setting environment variables in your MCP config:
{
"mcpServers": {
"betadrop": {
"command": "npx",
"args": ["-y", "@betadrop/mcp"],
"env": {
"BETADROP_API_URL": "https://api.your-company.com",
"BETADROP_APP_URL": "https://betadrop.your-company.com"
}
}
}
}
Environment Variables
BETADROP_API_URL | https://api.betadrop.app | API server base URL |
BETADROP_APP_URL | https://betadrop.app | Frontend URL used to build install links |
BETADROP_TOKEN | — | CI token override — bypasses the local config file entirely |
Links
License
MIT