BetaDrop MCP

Publique builds iOS (.ipa) e Android (.apk) no BetaDrop a partir do Claude Code, Cursor ou Copilot e obtenha um link de instalação over-the-air; liste builds e gerencie tokens de API.

Documentação

Referência do servidor MCP

@betadrop/mcp expõe o BetaDrop a qualquer cliente que fale o Model Context Protocol (Claude Code, Claude Desktop, Cursor, VS Code com Copilot) como vinte e três ferramentas que um assistente pode chamar. Ele roda localmente via stdio e usa as mesmas credenciais da CLI. A visão geral do MCP cobre a configuração por editor em mais detalhes; esta página é a superfície de ferramentas.

Configurar um cliente

Não há nada para instalar antecipadamente. npx busca o pacote na primeira execução. Node 18 ou mais recente é o único requisito. No Claude Code, um comando o registra para todos os projetos:

claude mcp add betadrop -s user -- npx -y @betadrop/mcp

Todos os outros clientes são o mesmo servidor descrito no arquivo de configuração desse cliente. Claude Desktop e Cursor usam um objeto mcpServers; VS Code usa servers com uma entrada idêntica em todos os outros aspectos:

{
  "mcpServers": {
    "betadrop": {
      "command": "npx",
      "args": ["-y", "@betadrop/mcp"]
    }
  }
}

Reinicie ou atualize o cliente depois; os servidores MCP são descobertos na inicialização.

Autenticação

O servidor resolve as credenciais exatamente da mesma forma que a CLI, o que lhe dá três opções em ordem decrescente de quanto você deve gostar delas.

  • Já conectado com a CLI. Nada a fazer. Ambos leem o mesmo arquivo de credenciais, então uma máquina onde betadrop login foi executado já está autenticada aqui. Esta é a opção sem segredo em nenhum arquivo de configuração.
  • Peça ao assistente para entrar. Chame betadrop_login com um token. Ele valida o token contra o servidor antes de salvar e grava na mesma configuração compartilhada. Fazer isso uma vez também conecta a CLI.
  • Uma variável de ambiente na configuração. BETADROP_TOKEN é lida do ambiente do servidor e tem precedência sobre a credencial armazenada. Funciona, mas significa um token em texto puro em um arquivo de configuração do editor — vale evitar, a menos que as outras duas sejam impossíveis.

Token na configuração do cliente (último recurso)

{
  "mcpServers": {
    "betadrop": {
      "command": "npx",
      "args": ["-y", "@betadrop/mcp"],
      "env": { "BETADROP_TOKEN": "bd_live_xxxxxxxx" }
    }
  }
}

Os tokens vêm de Configurações → Desenvolvedor → Tokens de API no painel, ou de betadrop_token_create abaixo. De qualquer forma, o valor em texto puro é mostrado exatamente uma vez.

Ferramentas

Vinte e três ferramentas. Os argumentos obrigatórios estão marcados; todo o resto é opcional. Você não chama essas ferramentas pelo nome na prática. Você pede ao assistente o resultado e ele escolhe. Saber o que existe é o que impede você de pedir algo que não existe.

FerramentaArgumentosO que faz
betadrop_whoamiNenhumRelata o status de autenticação, a conta ativa e o servidor com o qual está falando.
betadrop_logintoken (obrigatório), apiUrlValida um token de API contra o servidor e o salva no arquivo de credenciais compartilhado da CLI.
betadrop_logoutNenhumRevoga o token ativo no servidor e limpa as credenciais locais.
betadrop_publishfilePath (obrigatório), name, version, buildNumber, bundleId, notes, expiryType, expiryTimeDays, expiryDownloadLimit, expiryDeviceLimit, standingLinkPublica um .ipa ou .apk. filePath deve ser absoluto. standingLink aponta um link permanente para o build assim que ele estiver no ar (0.3.0+). Veja a nota de expiração abaixo.
betadrop_upload_statusNenhumBusca o resultado — incluindo o link de instalação — do betadrop_publish mais recente. Um upload que ultrapassa a janela de publicação de 90 segundos continua rodando em segundo plano, e é assim que o assistente conclui o trabalho; chame apenas quando betadrop_publish relatou que o upload ainda estava em execução.
betadrop_list_buildsplatform, status, page, perPageLista builds recentes. platform é ios ou android; status é um de active, expired, disabled, deprecated ou latest. A paginação padrão é de 20 por página, máximo 100.
betadrop_list_expired_buildsplatform, page, perPageApenas builds expirados, com o motivo da expiração. Um atalho para a ferramenta anterior com status: expired.
betadrop_token_listNenhumLista os tokens de API ativos da conta.
betadrop_token_createname (obrigatório), abilities, expiresInDaysCria um token. abilities é qualquer um de publish, read ou * e o padrão é *; expiresInDays é 1–365, e omiti-lo significa sem expiração. O valor em texto puro é retornado uma vez.
betadrop_token_deletetokenId (obrigatório)Revoga um token pelo seu id, conforme listado por betadrop_token_list.
betadrop_inspectfilePath (obrigatório)O build será instalado a partir de um link? Relata o tipo de perfil e expiração, correspondência do bundle ID, assinatura e testOnly / debuggable, com um veredito. Nada é publicado. 0.3.0+.
betadrop_list_standing_linksNenhumLinks permanentes, o build que cada um serve e quantos testadores seguem cada um. 0.3.0+.
betadrop_point_standing_linkslug, buildId (ambos obrigatórios)Aponta um link permanente para um build enviado; os seguidores são notificados por e-mail. 0.3.0+.
betadrop_delete_buildbuildId (obrigatório)Exclui um build. O link de instalação dele para de funcionar. 0.3.0+.
betadrop_get_feedbackbuildId (obrigatório)Feedback que os testadores deixaram em um build. 0.3.0+.
betadrop_list_devicesNenhumDispositivos iOS registrados (UDIDs). 0.3.0+.
betadrop_export_devicesNenhumOs dispositivos como o arquivo separado por tabulações que o portal da Apple e o fastlane register_devices aceitam. 0.3.0+.
betadrop_invite_devicename, email, openUm link de registro de UDID: enviado por e-mail a um testador com name e email, ou o compartilhável com open: true. 0.3.0+.
betadrop_list_webhooksNenhumWebhooks na conta. 0.3.0+.
betadrop_create_webhookurl (obrigatório), events, formatEnvia eventos de build para uma URL; URLs do Slack e do Discord são detectadas. Retorna o segredo de assinatura uma vez. 0.3.0+.
betadrop_test_webhookwebhookId (obrigatório)Entrega um evento de teste agora e relata a resposta do receptor. 0.3.0+.
betadrop_delete_webhookwebhookId (obrigatório)Remove um webhook. 0.3.0+.
betadrop_helpNenhumUma referência rápida integrada: a lista de ferramentas, suas entradas e exemplos de prompts. Útil quando o assistente precisa ser lembrado do que pode fazer.

Argumentos de expiração na publicação

betadrop_publish é a única ferramenta que pode definir a expiração de um build no momento do upload, e seus quatro argumentos de expiração funcionam juntos, não de forma independente. expiryType escolhe a estratégia e os argumentos numéricos fornecem o limite que essa estratégia precisa.

expiryTypeExige
noneNada. O build não expira por conta própria.
timeexpiryTimeDays. Expira após N dias.
downloadsexpiryDownloadLimit. Expira após N downloads.
devicesexpiryDeviceLimit. Expira após N dispositivos únicos.
combinedQualquer combinação dos três limites numéricos. O que for atingido primeiro encerra o build.

O teto de retenção do seu plano ainda se aplica. Esses argumentos escolhem uma vida mais curta que o máximo, nunca mais longa. A CLI aceita os mesmos limites como flags publish (--expires-in-days, --max-downloads, --max-devices, 0.4.0+).

Notas

  • Caminhos absolutos. betadrop_publish aceita um filePath absoluto. Um servidor MCP não compartilha necessariamente um diretório de trabalho com o seu editor, então um caminho relativo é ambíguo em vez de conveniente.
  • Mesma validação da CLI. A extensão deve ser .ipa ou .apk e o arquivo deve ser realmente um arquivo ZIP — ambos são verificados localmente antes de qualquer upload.
  • Ele roda na sua máquina. O servidor é um processo local que fala stdio com o seu cliente. O arquivo de build nunca passa pelo assistente; ele é lido do disco e enviado diretamente.
  • As ferramentas de token são reais. betadrop_token_create e betadrop_token_delete criam e revogam credenciais ativas. Isso é conveniente e também é um motivo para ler o que um assistente propõe antes de aprovar.