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 dez 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 do respectivo 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ê deveria gostar delas.

  • Já autenticado 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 fazer login. 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 autentica 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

Dez ferramentas. Os argumentos obrigatórios estão marcados; todo o resto é opcional. Você não as chama 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 lado do servidor e limpa as credenciais locais.
betadrop_publishfilePath (obrigatório), name, version, buildNumber, bundleId, notes, expiryType, expiryTimeDays, expiryDownloadLimit, expiryDeviceLimitPublica um .ipa ou .apk. filePath deve ser absoluto. Veja a nota de expiração abaixo.
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_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 em conjunto, 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 útil mais curta que o máximo, nunca mais longa. Os limites de dispositivos e downloads são o motivo pelo qual vale usar esta ferramenta em vez da CLI para um build sensível: nenhum dos dois tem um equivalente à flag publish.

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.