GooglePlayConsoleMcp
Deixe assistentes de IA gerenciarem seus lançamentos na Play Store
Documentação
Google Play Console MCP
Um servidor Python Model Context Protocol que permite que assistentes de IA (Claude, etc.) gerenciem todo o ciclo de vida de lançamentos da Google Play Store diretamente — desde o upload de artefatos até o gerenciamento de testadores, lançamentos progressivos e Android Vitals.
Início rápido
Opção A — uvx (recomendado, sem necessidade de instalação)
Execute uma vez. O Claude inicia e encerra o servidor automaticamente a cada sessão — você nunca mais precisa se preocupar com isso.
claude mcp add google-play-mcp \
-e GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json \
-- uvx google-play-mcp
Requer
uv— instale combrew install uvoucurl -Lsf https://astral.sh/uv/install.sh | sh
Opção B — pip install
Se você preferir uma instalação permanente:
pip install google-play-mcp
claude mcp add google-play-mcp \
-e GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json \
-- google-play-mcp
Opção C — HTTP (servidor local)
Necessário apenas se você quiser conectar via transporte HTTP em vez de stdio:
# Terminal 1 — start the server
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json \
uvx google-play-mcp --transport http --port 8080
# Terminal 2 — register with Claude
claude mcp add --transport http google-play-mcp http://localhost:8080
Como o stdio funciona: Com as Opções A e B, não há servidor para iniciar manualmente. O Claude inicia o processo em segundo plano quando uma sessão abre e o encerra quando a sessão termina. Zero manutenção.
Recursos
Faixas e Lançamentos
| Ferramenta | Descrição |
|---|---|
list_tracks | Lista todas as faixas (interna, alfa, beta, produção) com lançamentos e disponibilidade por país |
get_track_info | Obtém status detalhado, % de lançamento progressivo e notas de versão para uma faixa específica |
create_release | Cria ou substitui um lançamento em qualquer faixa com % de lançamento progressivo, notas de versão e segmentação por país |
update_release | Atualiza % de lançamento progressivo, pausa, retoma ou conclui um lançamento existente |
promote_release | Promove um lançamento entre faixas (ex.: interna → alfa → beta → produção) |
Gerenciamento de Artefatos
| Ferramenta | Descrição |
|---|---|
list_artifacts | Lista todos os APKs e AABs com seus códigos de versão e hashes SHA |
upload_artifact | Envia um APK ou AAB e cria um lançamento em uma faixa em uma única etapa |
upload_to_internal_sharing | Envia um build para o Compartilhamento Interno de Apps e obtém uma URL de download compartilhável |
Gerenciamento de Testadores
| Ferramenta | Descrição |
|---|---|
get_testers | Obtém endereços de e-mail de testadores e Google Groups para testes internos/fechados |
update_testers | Substitui a lista de testadores para uma faixa de testes interna ou fechada |
Android Vitals
| Ferramenta | Descrição |
|---|---|
get_crash_rate | Taxa diária de crashes e taxa de crashes percebida pelo usuário por código de versão |
get_anr_rate | Taxa diária de ANR e taxa de ANR percebida pelo usuário por código de versão |
get_vitals_summary | Visão geral combinada de crashes + ANR com indicadores de limite de mau comportamento |
get_wakelock_rate | Taxa diária de wake locks presos em segundo plano por código de versão (saúde da bateria) |
get_wakeup_rate | Taxa diária de despertares excessivos por código de versão (saúde da bateria) |
Pré-requisitos
uv— guia de instalação- Uma conta de serviço do Google Cloud com a chave JSON baixada.
- A conta de serviço adicionada ao Google Play Console com as permissões corretas (veja abaixo).
- Estas APIs habilitadas no seu projeto do Google Cloud:
Permissões necessárias no Play Console
| Ferramentas | Permissão mínima necessária |
|---|---|
upload_artifact, create_release, update_release, promote_release, update_testers | Lançar para produção, excluir dispositivos e usar assinatura de apps pelo Google Play |
upload_to_internal_sharing | Lançar para faixas de teste |
list_tracks, get_track_info, list_artifacts, get_testers | Ver informações do app e baixar relatórios em massa (somente leitura) |
get_crash_rate, get_anr_rate, get_vitals_summary, get_wakelock_rate, get_wakeup_rate | Ver informações do app e baixar relatórios em massa (somente leitura) + Reporting API habilitada |
Importante: O Gerenciador de Lançamentos não concede acesso à Reporting API. Você também deve habilitar Ver informações do app e baixar relatórios em massa (somente leitura) — tanto no nível da conta quanto no nível de cada app — para que as ferramentas de Vitals funcionem.
Integração com Claude Desktop
Adicione ao ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"google-play": {
"command": "uvx",
"args": ["google-play-mcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account.json"
}
}
}
}
Reinicie o Claude Desktop após salvar.
Configuração da conta de serviço
- Acesse IAM & Admin → Contas de serviço no seu projeto GCP.
- Crie uma conta de serviço (ou use uma existente) e baixe uma chave JSON.
- No Google Play Console → Configuração → Acesso à API:
- Vincule seu projeto do Google Cloud.
- Encontre a conta de serviço → Gerenciar permissões do Play Console.
- Em Permissões da conta, habilite Ver informações do app e baixar relatórios em massa (somente leitura).
- Em Permissões do app para cada app, habilite:
- Ver informações do app e baixar relatórios em massa (somente leitura)
- Lançar para produção… (se você precisar de acesso de escrita)
- Clique em Aplicar → Convidar usuário.
As permissões devem ser concedidas tanto no nível da conta quanto no nível de cada app. Somente o nível da conta não é suficiente para a Reporting API.
Referência de ferramentas
list_tracks
package_name : str — e.g. "com.example.myapp"
Retorna todas as faixas com seus lançamentos, percentuais de lançamento progressivo, status e disponibilidade por país.
get_track_info
package_name : str
track : str — "internal" | "alpha" | "beta" | "production" (default: "production")
Retorna um resumo legível por humanos, além de lançamentos com status, % de lançamento progressivo, códigos de versão e notas de versão.
create_release
package_name : str
track : str — "internal" | "alpha" | "beta" | "production"
version_codes : list[int] — e.g. [1042]
rollout_percentage : float — default 10.0 (used when status is "inProgress")
status : str — "draft" (default) | "inProgress" | "halted" | "completed"
release_name : str — optional
release_notes : dict — optional, e.g. {"en-US": "Bug fixes", "fr-FR": "Corrections"}
country_codes : list[str] — optional ISO 3166-1 alpha-2 codes, e.g. ["US", "GB"]
Cria ou substitui um lançamento na faixa especificada. Use status="inProgress" com um
rollout_percentage para um lançamento de produção em etapas, ou status="completed" para lançar
para todos os usuários imediatamente.
update_release
package_name : str
track : str — default "production"
rollout_percentage : float — optional; pass 100 to complete the rollout
status : str — optional; "inProgress" | "halted" | "completed" | "draft"
version_codes : list[int] — optional filter; targets first matching release if omitted
Atualiza um lançamento existente. Casos de uso comuns:
- Aumentar lançamento progressivo:
update_release(pkg, rollout_percentage=50) - Concluir lançamento:
update_release(pkg, rollout_percentage=100) - Pausar lançamento:
update_release(pkg, status="halted") - Retomar lançamento:
update_release(pkg, status="inProgress")
promote_release
package_name : str
from_track : str — "internal" | "alpha" | "beta"
to_track : str — "alpha" | "beta" | "production"
version_codes : list[int]
rollout_percentage : float — default 10.0
release_name : str — optional override
release_notes : dict — optional override; inherits from source if omitted
Copia um lançamento de uma faixa para outra. As notas de versão e o nome são herdados do lançamento de origem, a menos que sejam explicitamente substituídos.
list_artifacts
package_name : str
Retorna todos os APKs e AABs ordenados por código de versão (mais recente primeiro) com hashes SHA.
upload_artifact
package_name : str
file_path : str — absolute local path to .apk or .aab
track : str — default "internal"
status : str — "draft" (default) | "inProgress" | "completed"
rollout_percentage : float — default 10.0 (used when status is "inProgress")
release_name : str — optional
release_notes : dict — optional
Envia um APK ou AAB (detectado automaticamente pela extensão) e cria um lançamento na faixa especificada em uma única operação atômica. Retorna o código de versão atribuído.
upload_to_internal_sharing
package_name : str
file_path : str — absolute local path to .apk or .aab
Envia um build para o Compartilhamento Interno de Apps (ignora a atribuição de faixa) e retorna um
downloadUrl compartilhável. Os testadores devem ter o Compartilhamento Interno de Apps habilitado nas
configurações da Play Store. Ideal para testes rápidos e pontuais sem afetar nenhuma faixa de lançamento.
get_testers
package_name : str
track : str — "internal" (default) | "alpha"
Retorna a lista de endereços de e-mail de testadores e Google Groups para a faixa.
update_testers
package_name : str
track : str — "internal" (default) | "alpha"
emails : list[str] — optional; full replacement list of tester emails
google_groups : list[str] — optional; full replacement list of Google Group emails
Aviso: Esta é uma substituição completa. Testadores que não estiverem na nova lista perderão o acesso. Chame
get_testersprimeiro para recuperar a lista atual se você quiser apenas adicionar/remover pessoas.
get_crash_rate
package_name : str
days : int — look-back window, 1–30 (default 7)
version_code : str — optional single version code to filter
Retorna crashRate, userPerceivedCrashRate e distinctUsers diários por código de versão.
O limite de mau comportamento do Google para taxa de crashes percebida pelo usuário é ~1,09%.
get_anr_rate
package_name : str
days : int — look-back window, 1–30 (default 7)
version_code : str — optional single version code to filter
Retorna anrRate, userPerceivedAnrRate e distinctUsers diários por código de versão.
O limite de mau comportamento do Google para taxa de ANR percebida pelo usuário é ~0,47%.
get_vitals_summary
package_name : str
days : int — look-back window, 1–30 (default 7)
Retorna um resumo combinado de crashes + ANR agregado por código de versão, com médias ao longo
do período e sinalizadores exceedsCrashThreshold / exceedsAnrThreshold. A versão mais recente
é destacada como latestVersionSummary.
get_wakelock_rate
package_name : str
days : int — look-back window, 1–30 (default 7)
version_code : str — optional single version code to filter
Retorna stuckBackgroundWakelockRate e distinctUsers diários por código de versão.
Relevante para a fiscalização de saúde da bateria do Google Play em 2026 — apps com uma
proporção excessiva de sessões mantendo um wake lock parcial por mais de 1 hora em segundo plano
podem ser penalizados.
get_wakeup_rate
package_name : str
days : int — look-back window, 1–30 (default 7)
version_code : str — optional single version code to filter
Retorna excessiveWakeupRate e distinctUsers diários por código de versão.
Relevante para a fiscalização de saúde da bateria do Google Play em 2026 — apps que despertam a CPU com
muita frequência (acima dos limites da plataforma) podem ser penalizados.
Solução de problemas
403 Forbidden nas ferramentas de Vitals
403 Client Error: Forbidden for url: https://playdeveloperreporting.googleapis.com/...
Este erro tem duas causas comuns — verifique ambas:
1. Google Play Developer Reporting API não habilitada
Habilite-a no seu projeto do Google Cloud: console.cloud.google.com/apis/library/playdeveloperreporting.googleapis.com
2. A conta de serviço não tem acesso à Reporting API por app
- Play Console → Configuração → Acesso à API → encontre a conta de serviço → Gerenciar permissões do Play Console.
- Em Permissões do app, selecione o app e habilite Ver informações do app e baixar relatórios em massa (somente leitura).
- Salve e aguarde alguns minutos para que a alteração seja propagada.
404 Package not found
A conta de serviço deve estar vinculada à mesma conta do Google Play Console que possui o app. Acesse Play Console → Configuração → Acesso à API e verifique se a conta de serviço está listada e foi convidada.
Marketplaces
| Registro | Link |
|---|---|
| PyPI | pip install google-play-mcp |
| Smithery | pesquise google-play-mcp |
| Registro Oficial MCP | google-play-mcp |
Licença
MIT