asc-mcp
Um servidor MCP para App Store Connect: 41 ferramentas para publicar uma versão a partir do seu agente, cobrindo metadados, capturas de tela, builds, TestFlight, compras dentro do app, envio e publicação.
Documentação
asc-mcp
Publique uma versão na App Store a partir do seu agente de codificação. Um servidor MCP para App Store Connect: 41 ferramentas que editam metadados de versão, enviam capturas de tela, anexam builds, gerenciam o TestFlight, criam compras dentro do app, enviam e publicam, além de uma camada de inteligência que audita uma versão antes do envio e resume suas avaliações. 6 fluxos de trabalho com comandos de barra e uma Skill do Claude inclusa. Não é apenas um wrapper de API.
asc-mcp.pages.dev · npm · Preço: teste grátis de 7 dias, depois US$ 9/mês
Claude Desktop, um clique: baixe o asc-mcp.mcpb mais recente e abra-o. O Claude pede seu Issuer ID e permite escolher seu .p8 com um seletor de arquivos. Sem JSON, sem caça ao reinício.
Todo o resto (Claude Code, Cursor, Windsurf, Cline), um comando:
npx @pofky/asc-mcp init --write # finds your .p8, asks for your Issuer ID, writes your MCP config
Depois pergunte ao seu agente: "inicie meu teste do asc-mcp, meu e-mail é voce@exemplo.com". Todas as 41 ferramentas são liberadas por 7 dias, sem cartão e sem nada para cancelar, e o teste é ativado na sessão em que você já está, então o que estava travado funciona na próxima chamada. Depois disso, o Pro custa US$ 9 por mês. Seis ferramentas continuam gratuitas, e três delas só precisam do Node.
| Você diz | O que acontece |
|---|---|
| "Execute uma verificação prévia no meu app" | Audita metadados, limites de caracteres, capturas de tela, status do build. Detecta os problemas que causam 40% das rejeições. |
| "Me dê um resumo matinal" | Resume todos os seus apps: quem está em análise, quem foi rejeitado, novas avaliações com nota baixa, itens de ação. |
| "Gere notas de versão a partir do meu histórico do git" | Lê os commits desde a última tag, categoriza-os e fornece dados estruturados para escrever o texto "O que há de novo". |
| "Meu app está em análise?" | Estado exato da análise com contexto ("tempo típico: 24-48 horas") |
| "Mostre avaliações de 1 estrela" | Avaliações de clientes filtradas por nota, território, ordenadas por data |
| "Quantos downloads tive esta semana?" | Resumo de vendas e receita por território |
Sem alternância de contexto. Sem portal. Apenas pergunte.
O Que Torna Isso Diferente
Sucessor mantido do JoshuaRileyDev/app-store-connect-mcp-server (arquivado em fev/2026). Ângulo diferente, mesma superfície de API e mais.
Outros servidores MCP de ASC envolvem a API e oferecem de 80 a 982 endpoints brutos. Este oferece 41 ferramentas opinativas, 6 Prompts de comando de barra e uma Skill do Claude que pensam. As ferramentas de leitura resumem e auditam; as ferramentas Pro de controle realmente operam o App Store Connect, desde editar metadados até enviar e publicar, com a mesma chave de API. Duas ferramentas usam MCP Sampling: o modelo do seu próprio cliente faz o trabalho de LLM, então não há custo extra deste servidor.
Por que o controle total é possível sem fastlane: o deliver e o pilot do fastlane são apenas chamadas à mesma API REST do App Store Connect contra a qual este servidor autentica com seu .p8. Então quase tudo que você automatizaria com fastlane é uma ferramenta aqui, sem necessidade de toolchain Ruby. O único passo que exige seu Mac é compilar e assinar o binário, que o build_and_archive e o upload_binary gerenciam via Xcode.
Configuração (3 minutos)
Passo 1. Crie uma chave de API em App Store Connect > Integrations > App Store Connect API (função Admin ou App Manager) e pegue três coisas na mesma página:
- Issuer ID (
ASC_ISSUER_ID): o UUID mostrado no topo da página, com um botão de copiar ao lado. - Key ID (
ASC_KEY_ID): o ID de 10 caracteres ao lado da sua chave, também presente no nome do arquivoAuthKey_XXXXXXXXXX.p8. - Arquivo
.p8(ASC_PRIVATE_KEY_PATH): clique em Download e aponte para o arquivo salvo. A Apple permite baixar apenas uma vez, então guarde-o com segurança.
Passo 2. Instale:
npm install -g @pofky/asc-mcp
Não é necessária instalação global se você preferir npx (veja a configuração manual abaixo).
Configuração mais rápida (recomendada). Coloque seu .p8 no caminho padrão da Apple ~/.appstoreconnect/private_keys/ (o arquivo se chama AuthKey_XXXXXXXXXX.p8, e o Key ID está no nome do arquivo). Depois execute:
npx @pofky/asc-mcp init --write # auto-detects the key, asks for your Issuer ID, and writes the config for you
# or: npx @pofky/asc-mcp init # same, but prints the block to paste yourself
O init --write encontra a configuração do seu Claude Desktop / Claude Code, faz backup e mescla o bloco do servidor, sem edição de JSON. O servidor também descobre automaticamente o caminho do .p8 em tempo de execução, então você só precisa do ASC_ISSUER_ID (e do ASC_LICENSE_KEY para o Pro).
Executando a partir de um agente ou de qualquer pipe. Não há terminal para responder perguntas, então passe o que seria perguntado:
npx @pofky/asc-mcp init --write --issuer <your-issuer-uuid> # add --config <path> if you keep several client configs
Ele imprime o bloco pronto para colar de qualquer forma e nunca inventa um valor: se o Issuer ID estiver ausente, ele avisa em vez de escrever uma configuração que falha na autenticação da Apple. --key-path, --key-id e --license existem pelo mesmo motivo, e cada um também lê da variável de ambiente ASC_* correspondente.
Travou? Execute npx @pofky/asc-mcp doctor (ou peça ao seu agente para chamar asc_setup_check). Ele verifica sua chave, Issuer ID, uma conexão ativa com o App Store Connect e sua licença, e imprime a correção exata para qualquer problema. No seu agente, o comando /asc-start guia um usuário iniciante por tudo isso.
Configuração manual. Adicione à configuração MCP do seu agente (config do Claude Desktop ou ~/.claude.json para Claude Code). Use npx para instalação zero, ou asc-mcp se instalou globalmente:
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "@pofky/asc-mcp"],
"env": {
"ASC_ISSUER_ID": "YOUR_ISSUER_ID"
}
}
}
}
Com o .p8 em ~/.appstoreconnect/private_keys/, o ASC_ISSUER_ID é a única variável de ambiente obrigatória (Key ID e caminho da chave são detectados automaticamente). Adicione ASC_LICENSE_KEY para liberar o Pro.
Passo 3. Pergunte ao seu agente: "Liste meus apps do App Store Connect"
Passo 4, para testar a metade paga. Pergunte ao seu agente: "inicie meu teste do asc-mcp, meu e-mail é voce@exemplo.com". Ele chama asc_start_trial, que libera todas as 41 ferramentas por 7 dias, sem cartão e sem nada para cancelar. A chave é ativada na sessão em execução, então o que estava travado funciona na próxima chamada, e ela é gravada na sua configuração MCP para sobreviver a um reinício. Um teste por conta de desenvolvedor Apple.
Funciona com Claude Code, Cursor, Windsurf, Cline e qualquer cliente compatível com MCP.
Ferramentas
Gratuitas (sem cadastro, sem chave de licença)
| Ferramenta | O que faz |
|---|---|
asc_start_trial | 7 dias de tudo, sem cartão. Peça ao seu agente para executar com seu e-mail. Libera todas as 41 ferramentas na sessão em execução, sem reinício, sem nada para cancelar. |
asc_setup_check | Execute primeiro se algo estiver errado. Verifica sua chave, Issuer ID, uma conexão ativa com o App Store Connect e o nível de licença, e imprime a correção exata para cada falha. |
asc_guide | Comece aqui. O guia dentro do agente para cada fluxo (primeira versão, atualização, IAP, assinaturas, avaliações, TestFlight, binário), com cada etapa manual do site do App Store Connect sinalizada inline. Veja também USER_GUIDE.md e LIMITATIONS.md. |
list_apps | Lista todos os seus apps com nome, bundle ID, SKU e App ID |
app_details | Histórico de versões, status do build, estado da versão, datas |
review_status | Estado atual da análise com contexto legível |
Pro (teste grátis de 7 dias, depois US$ 9/mês)
| Ferramenta | O que faz | Por que importa |
|---|---|---|
list_reviews | Avaliações de clientes filtradas por nota, território, ordem de classificação | Veja o que os usuários dizem sem abrir o portal |
sales_report | Downloads diários/semanais/mensais e receita por território | Saiba seus números instantaneamente |
release_preflight | Auditoria pré-envio: metadados, limites de caracteres, capturas de tela, builds | Detecta mais de 40% das causas comuns de rejeição antes do envio |
daily_briefing | Resumo matinal de todos os apps: status, avaliações, rejeições | Uma chamada substitui 10 minutos de cliques no portal |
release_notes | Commits do git desde a última tag, categorizados para escrever "O que há de novo" | Seu agente de IA escreve notas de versão a partir das suas mudanças reais |
keyword_insights | Analisa palavras-chave contra a concorrência de busca do iTunes, índices de dificuldade | Veja quais palavras-chave valem a pena mirar de relance |
competitor_snapshot | Consulte qualquer app: notas, avaliações, versão, preço, notas de versão | Inteligência competitiva sem sair do seu editor |
metadata_diff | Compara metadados da versão ativa vs. pendente em todos os idiomas | Verifique exatamente o que mudou antes de enviar |
triage_reviews | Puxa avaliações recentes e as agrupa em 3 a 5 temas com contagens, categorias de ação e citações, usando MCP Sampling | Custo zero extra: o modelo do seu cliente faz o agrupamento |
draft_review_response | Redige uma resposta pública a uma única avaliação no idioma da avaliação, via Sampling. Obtém o tom se seu cliente suportar. Nunca publica automaticamente. | Diretriz 1.2 da Apple respeitada; você cola no ASC você mesmo |
Controle e Publicação (Pro)
Estas ferramentas gravam no App Store Connect. Toda ação voltada para o exterior (envio, publicação, upload de binário) exige um confirm: true explícito, para que nada saia da sua máquina por acidente.
| Ferramenta | O que faz |
|---|---|
create_version | Cria uma nova versão editável do App Store para seu próximo lançamento |
update_version_metadata | Edita descrição, palavras-chave, o que há de novo, texto promocional, URLs, nome do app, subtítulo. Valida os limites de caracteres da Apple e recusa gravações acima do limite |
upload_screenshots | Envia capturas de tela para um tipo de exibição de dispositivo (reserva, upload, commit, com checksum) |
list_builds | Lista builds recentes e seu estado de processamento (VALID = pronto) |
wait_for_build | Faz polling até um build terminar o processamento, para que a cadeia não precise de pausa manual |
attach_build | Anexa um build à versão editável (padrão: build processado mais recente) |
submit_for_review | Envia a versão para a App Review (fluxo moderno de reviewSubmissions). confirm: true obrigatório |
release_version | Publica uma versão aprovada na App Store pública. confirm: true obrigatório |
manage_phased_release | Inicia, pausa, retoma ou conclui o lançamento gradual de 7 dias |
list_beta_groups | Lista seus grupos beta do TestFlight |
assign_build_to_group | Envia um build para um grupo beta para que testadores possam instalá-lo |
invite_beta_tester | Convida um testador externo por e-mail e o adiciona a um grupo |
set_app_metadata | Define categoria primária/secundária, direitos autorais, direitos de conteúdo e conformidade de exportação (criptografia) em uma chamada |
set_app_price | Define o preço base criando o cronograma de preços (price_usd: 0 para gratuito), com equalização automática para todos os territórios |
set_app_availability | Disponibiliza o app em todos os territórios da App Store (ou um subconjunto), com inclusão automática para futuros |
set_review_contact | Define o contato da App Review e a conta de demonstração opcional na versão |
set_age_rating | Define a declaração de classificação etária v2 (conjunto completo de descritores de conteúdo) |
set_privacy_nutrition | Orientação + link profundo para os rótulos de privacidade do App Privacy (não acessível via API) |
set_eu_trader_status | Orientação + link profundo para o status de trader da DSA da UE (não acessível via API) |
create_iap | Cria um IAP não consumível/consumível com localização, disponibilidade e preço com equalização automática |
create_subscription | Cria um grupo de assinaturas, assinatura, localização, disponibilidade, preço e teste grátis |
set_iap_review_screenshot | Anexa a captura de tela da App Review a uma assinatura ou IAP |
setup_app_store_signing | Baixa os perfis de provisionamento da App Store do app e escreve um ExportOptions.plist de assinatura manual (funciona com chave de API de privilégio mínimo) |
build_and_archive | Compila, arquiva e exporta um .ipa assinado via xcodebuild (requer Xcode no seu Mac) |
upload_binary | Envia o .ipa para o App Store Connect via altool, usando sua chave de API. confirm: true obrigatório |
O fluxo completo encadeia: setup_app_store_signing para build_and_archive para upload_binary para wait_for_build (bloqueia até VALID) para attach_build para update_version_metadata para upload_screenshots para set_app_metadata/set_app_price/set_app_availability/set_age_rating/set_review_contact para release_preflight para submit_for_review para release_version. O comando de barra /asc-ship-release conduz tudo isso para você.
release_preflight é a fonte única da verdade para "isso pode ser submetido?": ele verifica todos os campos endereçáveis pela API e termina com uma lista personalizada de "Passos manuais para concluir" para as poucas coisas que a Apple só permite no site (agrupamento do primeiro IAP, rótulos de nutrição de privacidade do App, status de trader da UE).
Obter Pro | Recuperar sua chave de licença
O que permanece manual (e por quê)
Algumas coisas que a Apple não expõe por chaves de API. O MCP nunca finge o contrário: ele retorna os passos exatos do site mais um link profundo, ou detecta o caso e aborta para que nada fique pela metade. Detalhes completos em LIMITATIONS.md (e asc_guide topic:limitations):
- Criar um registro de app / App Group.
POST /v1/appsé proibido para chaves de API; faça uma vez no site. - Rótulo de nutrição de privacidade do App. Não está na API.
set_privacy_nutritionretorna a lista de verificação mais um link profundo. - Status de trader da UE (DSA). Não está na API.
set_eu_trader_statusretorna os passos. Decisão legal. - Primeiros IAPs/assinaturas de um app. Devem ser submetidos com a versão no site;
submit_for_reviewaborta em vez de órfão a versão. Produtos posteriores são submetidos via API. - Criação de certificados / assinatura em nuvem. Chaves com privilégio mínimo não podem;
setup_app_store_signingusa perfis de assinatura manual. - Compilar o binário. Requer Xcode no seu Mac (
build_and_archiveexecuta localmente). - Publicar uma resposta pública a uma avaliação.
draft_review_responseescreve; você cola no site.
Como o Sampling funciona (custo zero extra)
triage_reviews e draft_review_response usam o primitivo de Sampling do MCP. Quando você chama uma dessas ferramentas, este servidor envia uma solicitação sampling/createMessage de volta ao seu próprio cliente MCP. Seu cliente executa o LLM localmente (Claude Desktop usa sua conta; Claude Code usa sua sessão). Nunca chamamos a Anthropic do nosso lado.
Resultado: agrupamento de avaliações e rascunho de respostas custam exatamente o que você pagaria por qualquer outra solicitação Claude, nem um centavo a mais deste servidor.
Se seu cliente MCP ainda não suporta Sampling, ambas as ferramentas retornam um resultado estruturado degraded: true com uma explicação clara. Atualize Claude Desktop ou Claude Code para uma versão recente para funcionalidade completa.
Comandos de Barra (Prompts)
Digite estes no Claude Desktop ou Claude Code e o agente executa um fluxo de trabalho pré-construído com múltiplas ferramentas:
| Comando de barra | O que faz |
|---|---|
/asc-start | Novo aqui? Verifica a conexão, lista seus apps, explica grátis vs Pro em linguagem simples e recomenda seu próximo passo. Não assume conhecimento de App Store Connect. |
/asc-weekly-review | Chama daily_briefing e depois list_reviews (avaliações baixas, últimos 7 dias) para cada app, agrupa temas, retorna um único resumo com lista de ações de 3 marcadores. |
/asc-rejection-audit | Dado um app_id, chama release_preflight + metadata_diff + review_status, lê o resultado contra os principais motivos de rejeição de 2026 (diretriz 2.3 metadados, 4.0 design, privacidade-IA 5.1.2). Produz seções Bloqueante / Provável sinalização / Seguro. |
/asc-release-go-no-go | Dado um app_id, combina pré-verificação + fila de avaliações + diff de metadados + principais concorrentes na mesma categoria. Retorna um GO ou NO-GO direto com três razões de apoio. |
/asc-ship-release | Dado um app_id, conduz o lançamento completo: localiza ou cria a versão editável, envia metadados, anexa o build mais recente, envia capturas de tela, executa pré-verificação e depois submete. Para para confirmar antes de cada passo voltado ao exterior. |
/asc-first-app | Dado um app_id, conduz o primeiro 1.0 de um app novo, do registro existente até a submissão, lidando com cada restrição de primeira vez e parando em cada passo manual do site (rótulo de privacidade, status de trader, agrupamento do primeiro IAP). |
Estes são Prompts MCP conforme a especificação. Nenhum outro MCP de App Store Connect vem com eles.
Skill do Claude (instalação em uma linha)
Após instalar o MCP, execute:
npx @pofky/asc-mcp install-skill
Isso copia uma pequena Skill asc-review-triage para ~/.claude/skills/ para que o Claude capture automaticamente perguntas relacionadas a avaliações ("tem avaliações ruins recentemente?", "o que meus usuários dizem?", "avaliações esta semana?") e chame as ferramentas ASC certas sem você precisar explicar o fluxo de trabalho toda vez.
Funciona em macOS, Linux e Windows. Para remover: npx @pofky/asc-mcp uninstall-skill.
Exemplos Reais de Saída
"Execute uma pré-verificação antes de eu submeter"
Release Preflight: v2.3
State: PREPARE_FOR_SUBMISSION
Platform: IOS
PASS (with 1 warning)
Warnings (recommended):
- Missing screenshot set for APP_IPHONE_67. May be required.
Passing checks: 4
- [en-US] Description OK (3874/4000 chars).
- [en-US] Keywords OK (96/100 chars).
- 2 screenshot set(s) found across 1 locale(s).
- Build 40 attached and valid.
Total: 4 pass, 1 warn, 0 fail
"Briefing matinal"
Daily Briefing - 2026-04-13
2 apps in your account
Tempo: Habit Builder
- Latest: v2.3 (IOS) - Waiting for Review
- Action needed: v2.3 is Waiting for Review
- Reviews (last 3d): 5 new, avg 4.2 stars
NightOwl Weather
- Latest: v1.1 (IOS) - Live
- No new reviews in the last 3 days
"Gere notas de versão a partir do git"
Git History for Release Notes
Since: v2.2.0
Commits: 8
Character limit: 4000 chars for "What's New"
New Features (3)
- feat: add habit streak calendar view
- feat: dark mode support
- add widget for home screen
Bug Fixes (2)
- fix: notification timing off by 1 hour
- fix: crash on iPad when rotating
Instructions: Write user-facing "What's New" text.
Lead with the most impactful change. Keep under 4000 chars.
Por que Este em Vez das Alternativas Grátis?
| Wrappers de API brutos (grátis) | Este servidor | |
|---|---|---|
| Número de ferramentas | 80 a 982 | 41 ferramentas opinativas (leitura + controle) |
| Prompts MCP (comandos de barra) | Não | Sim, 6 fluxos de trabalho pré-construídos |
| Sampling MCP (custo zero de LLM no servidor) | Não | Sim, triagem de avaliações + rascunhos de respostas |
| Skill do Claude incluída | Não | Sim, instalação em uma linha |
| Auditoria pré-submissão | Não | Sim, detecta rejeições antes de você submeter |
| Briefings entre apps | Não | Sim, uma chamada, todos os apps |
| Notas de versão cientes de git | Não | Sim, lê o histórico de commits do seu projeto |
| Resumos inteligentes de avaliações | Não | Sim, agrupamento por tema, itens de ação |
| Configuração | Compilar do código-fonte (Swift ou Node) | Um comando, init --write escreve sua configuração |
| Nível grátis | Alguns | Sim, 6 ferramentas, sem cadastro. Três delas só precisam de Node |
| Experimente a metade paga | n/d | 7 dias, sem cartão, iniciado de dentro do seu agente |
Wrappers brutos dão endpoints. Isto dá respostas.
Segurança
Suas credenciais nunca saem da sua máquina:
- A chave privada
.p8é lida localmente. Tokens JWT são gerados no seu computador. - Chamadas de API vão diretamente da sua máquina para
api.appstoreconnect.apple.com. - O servidor de licença vê apenas sua string de chave de licença. Zero dados da Apple, zero credenciais.
- Totalmente open source. Leia o código.
Funciona Com
- Claude Code (Anthropic)
- Cursor
- Windsurf
- Cline
- Qualquer cliente que suporte o Model Context Protocol
Requisitos
- Node.js 18+
- Associação ao Apple Developer Program
- Chave de API do App Store Connect (função Admin ou App Manager)
Legal
Este projeto não é afiliado, endossado ou patrocinado pela Apple Inc. Apple, App Store, App Store Connect, TestFlight, iOS e macOS são marcas registradas da Apple Inc.
Licença
MIT