AppStore-MCP-Server

Pesquisa de otimização da App Store (ASO), metadados, rankings de palavras-chave e mais

Documentação

Servidor MCP da App Store

Um servidor MCP para pesquisar na App Store, verificar rankings de palavras-chave, analisar concorrência e acompanhar tendências — alimentado por um binário nativo do macOS para acesso rápido e direto às APIs da App Store.

Também funciona como uma ferramenta CLI independente com formatos de saída ricos.

Requisitos

  • macOS 26+ (Apple Silicon)

Início Rápido

Instalar via uvx (recomendado)

uvx appstore-mcp-server

Isso baixa o binário nativo na primeira execução e inicia o servidor MCP. Nenhuma instalação persistente é necessária.

Instalar via pip

pip install appstore-mcp-server
appstore-mcp-server

Baixar o binário diretamente

Baixe a versão mais recente do GitHub Releases, extraia e execute:

tar xzf appstore-*-macos-arm64.tar.gz
./appstore --mcp

Configuração do Cliente MCP

Claude Code

claude mcp add --scope user --transport stdio -- appstore-mcp-server uvx appstore-mcp-server

Ou com o binário diretamente:

claude mcp add --scope user --transport stdio -- appstore-mcp-server /path/to/appstore --mcp

Claude Desktop

Adicione à sua configuração do Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "appstore-mcp-server": {
      "command": "uvx",
      "args": ["appstore-mcp-server"]
    }
  }
}

Outros Clientes MCP

O servidor se comunica via stdio usando o protocolo MCP padrão. Execute com a flag --mcp:

/path/to/appstore --mcp

Ferramentas MCP

FerramentaDescrição
search_appsAPI de Pesquisa do iTunes com filtros de atributo/gênero
search_rankedAPI MZStore — resultados correspondem aos rankings reais da App Store
lookup_appBuscar um aplicativo por ID, bundle ID ou URL da App Store
top_chartsRankings atuais dos principais gráficos (gratuitos, pagos, mais lucrativos)
find_app_rankVerificar onde um aplicativo está classificado para uma única palavra-chave
check_app_rankingsVerificar a classificação de um aplicativo em palavras-chave geradas automaticamente (lento)
analyze_keywordAnálise competitiva com pontuação de competitividade (0-100)
app_competitorsEncontrar os principais concorrentes de um aplicativo via resultados de pesquisa sobrepostos
compare_keywordsComparar competitividade em múltiplas palavras-chave (lento)
discover_trendingDescobrir categorias em tendência a partir de novas entradas nos gráficos
versionObter a versão do servidor

A maioria das ferramentas suporta:

  • storefront — Código de país de duas letras (padrão: US). Use para qualquer região da App Store.
  • verbosity — Controla o detalhe da resposta e o uso de tokens:
    • compact (padrão) — Apenas campos principais, sem descrições. Melhor para a maioria das consultas.
    • full — Inclui descrições de aplicativos e notas de versão.
    • complete — Todos os campos da resposta da API. Verboso (~4KB/aplicativo).

Recursos MCP

RecursoURIDescrição
Storefrontsappstore://storefrontsCódigos de país e nomes para todas as regiões suportadas da App Store
Gênerosappstore://genresIDs e nomes de gêneros para categorias da App Store
Atributos de Pesquisaappstore://attributesNomes de atributos de pesquisa disponíveis para buscas refinadas
Tipos de Gráficosappstore://chart-typesTipos de gráficos disponíveis para consultas de principais gráficos

Prompts MCP

PromptDescrição
competitive_analysisFluxo guiado: buscar um aplicativo, encontrar concorrentes, analisar rankings de palavras-chave e obter recomendações acionáveis. Argumentos: keyword_or_app_id (obrigatório), storefront (opcional).
market_researchFluxo guiado: pesquisar rankings, principais gráficos, análise de competitividade, descoberta de tendências e identificação de oportunidades. Argumentos: category (obrigatório), storefront (opcional).

Uso da CLI

O binário também funciona como uma ferramenta CLI completa. Execute sem --mcp para uso interativo.

Comandos

ComandoDescrição
search <query>Pesquisar na App Store (API de Pesquisa do iTunes)
scrape <query>Pesquisar com resultados classificados correspondentes ao aplicativo da App Store (API MZStore)
lookup <id-or-bundle>Buscar aplicativos por ID, bundle ID ou URL
ranks <app-id>Analisar rankings de palavras-chave para um aplicativo
analyze <query>Análise competitiva dos 20 principais resultados com correspondência de palavras-chave
top <chart-type>Ver principais gráficos (gratuitos, pagos, mais lucrativos, novos gratuitos, novos pagos)
list <type>Listar storefronts, gêneros, atributos ou tipos de gráficos

search

Pesquisar na App Store usando a API de Pesquisa do iTunes.

appstore search "photo editor"
appstore search --limit 5 minecraft
appstore search --storefront JP nintendo
appstore search --attribute softwareDeveloper "Meta Platforms"
appstore search --genre 6014 puzzle             # Games category
appstore search --verbosity minimal spotify
appstore search --output-format json spotify
appstore search --unlimited "weather"

Opções principais:

OpçãoDescrição
--limit <n>Número de resultados (1-200, padrão: 200, 0 para ilimitado)
--unlimitedIgual a --limit 0
--attribute <attr>Pesquisar campo específico: titleTerm, softwareDeveloper, descriptionTerm
--genre <id>Filtrar por ID de gênero (ex.: 6014 para Jogos)
--storefront <code>Código do país (ex.: US, JP, GB)
--output-format <fmt>text (padrão), json, raw-json, markdown, html, html-open
--verbosity <level>minimal, summary (padrão), expanded, verbose, complete
--full-descriptionMostrar descrições completas dos aplicativos

scrape

Pesquisar usando a API MZStore. Os resultados estão na ordem real de classificação da App Store — a mesma classificação que os usuários veem no aplicativo da App Store. Use isso em vez de search quando a posição no ranking for importante.

appstore scrape spotify
appstore scrape --limit 10 "photo editor"
appstore scrape --storefront GB twitter
appstore scrape --output-format json instagram

Opções principais:

OpçãoDescrição
--limit <n>Resultados máximos (padrão: 200)
--storefront <code>Código do país (padrão: US)
--output-format <fmt>text (padrão), json, raw-json, markdown, html
--verbosity <level>minimal, summary (padrão), expanded, verbose, complete

lookup

Buscar aplicativos específicos por ID, bundle ID ou URL da App Store.

appstore lookup 284910350                                   # Numeric = app ID
appstore lookup com.spotify.client                          # Non-numeric = bundle ID
appstore lookup --ids 284910350,324684580                   # Multiple apps
appstore lookup --url "https://apps.apple.com/us/app/yelp/id284910350"
appstore lookup 284910350 --storefront JP
appstore lookup com.facebook.Facebook --output-format json

Opções principais:

OpçãoDescrição
--id <id>Buscar por ID do aplicativo
--ids <id1,id2,...>Buscar múltiplos aplicativos (separados por vírgula)
--bundle-id <bundle>Buscar por identificador de bundle
--url <url>Buscar por URL da App Store
--storefront <code>Código do país (padrão: US)
--output-format <fmt>text, json, raw-json, markdown, html
--verbosity <level>minimal, summary (padrão), expanded, verbose, complete

ranks

Analisar rankings de palavras-chave para um aplicativo. Gera automaticamente palavras-chave a partir do nome, subtítulo e descrição do aplicativo, depois verifica onde o aplicativo está classificado para cada palavra-chave. Usa IA no dispositivo (Apple Intelligence) para gerar palavras-chave adicionais quando disponível.

appstore ranks 324684580                        # Analyze Spotify's rankings
appstore ranks 284910350 --limit 30             # Test 30 keywords for Yelp
appstore ranks 544007664 --storefront GB        # UK store rankings

Opções principais:

OpçãoDescrição
--limit <n>Máximo de palavras-chave para testar (padrão: todas geradas)
--storefront <code>Código do país (padrão: US)
--verbosity <level>minimal, summary (padrão), expanded, verbose, complete

Este comando faz múltiplas chamadas sequenciais à API e pode levar de 30 a 120 segundos.

analyze

Analisar os 20 principais resultados de pesquisa para uma palavra-chave com métricas competitivas. Gera CSV com pontuações de correspondência, velocidade de avaliações, idade do aplicativo e um resumo de competitividade.

appstore analyze "cat toy"
appstore analyze --storefront GB "photo editor"
appstore analyze "music player" > results.csv

Colunas do CSV: ID do Aplicativo, Avaliação, Contagem de Avaliações, Lançamento Original, Último Lançamento, Dias de Idade, Dias de Atualização, Pontuação de Correspondência do Título, Pontuação de Correspondência da Descrição, Avaliações por Dia, Título, Gênero, Versão, iOS Mínimo, Classificação Etária.

Opções principais:

OpçãoDescrição
--storefront <code>Código do país (padrão: US)

top

Ver os principais gráficos da App Store.

appstore top free                               # Top free apps (US)
appstore top paid --limit 10                    # Top 10 paid apps
appstore top grossing --storefront JP           # Top grossing in Japan
appstore top paid --genre 6014                  # Top paid games
appstore top newfree --output-format json       # New free apps as JSON

Tipos de gráficos: free, paid, grossing, newfree, newpaid

Opções principais:

OpçãoDescrição
--limit <n>Número de resultados (1-200, padrão: 25)
--genre <id>Filtrar por ID de gênero
--storefront <code>Código do país (padrão: US)
--output-format <fmt>text, json, raw-json, markdown, html
--verbosity <level>minimal, summary (padrão), expanded, verbose, complete

list

Listar valores disponíveis para storefronts, gêneros, atributos ou tipos de gráficos.

appstore list storefronts                       # All country codes
appstore list genres                            # All genre IDs
appstore list attributes                        # Search attributes
appstore list charttypes                        # Chart types
appstore list storefronts --output-format json

Aliases: storefront/storefronts/country/countries, genre/genres/category/categories, attribute/attributes, charttype/charttypes/chart/charts.

Opções Comuns

Estas opções estão disponíveis na maioria dos comandos:

OpçãoDescrição
--storefront <code>País da App Store (US, JP, GB, FR, etc.)
--country <code>Alias para --storefront
--language <code>Idioma dos resultados (padrão: en_us)
--output-format <fmt>Formato de saída (veja abaixo)
--verbosity <level>Nível de detalhe (veja abaixo)
--show-requestExibir detalhes da solicitação HTTP
--show-response-headersExibir cabeçalhos de resposta HTTP
-o, --output-file <path>Escrever saída em arquivo
-i, --input-file <path>Ler JSON em cache de arquivo
--help, -hMostrar ajuda para qualquer comando

Formatos de saída: text (padrão), json, raw-json, markdown, html, html-open (abre no navegador).

Níveis de verbosidade:

NívelDescrição
minimalUma linha por aplicativo
summaryDetalhes principais (padrão)
expandedAdiciona avaliações, tamanho, versão
verboseAdiciona URLs, idiomas, recursos
completeTodos os campos disponíveis

Compilando a partir do Código Fonte

git clone https://github.com/drewster99/appstore-mcp-server.git
cd appstore-mcp-server

Abra appstore.xcodeproj no Xcode e compile (Product > Build), ou:

xcodebuild build \
    -project appstore.xcodeproj \
    -scheme appstore \
    -configuration Release \
    -destination 'platform=macOS,arch=arm64'

O binário estará no diretório de produtos de build do DerivedData. Execute como servidor MCP com ./appstore --mcp ou como CLI com ./appstore <command>.

Arquitetura

O servidor usa duas APIs diferentes da Apple:

  • API MZStore — Retorna aplicativos na ordem real de classificação da App Store. Usada por search_ranked, find_app_rank, check_app_rankings, analyze_keyword, app_competitors, compare_keywords (e CLI scrape, ranks, analyze).
  • API de Pesquisa/Consulta do iTunes e RSS — Retorna metadados completos de aplicativos e dados de gráficos. Usada por search_apps, lookup_app, top_charts, discover_trending (e CLI search, lookup, top).

Para operações sensíveis a classificação, a API MZStore busca primeiro os IDs de aplicativos classificados, depois a API de Consulta do iTunes os enriquece com detalhes completos. Veja CLAUDE.md para detalhes de implementação.

Licença

MIT