AppStore-MCP-Server

Investigación de optimización en la App Store (ASO), metadatos, clasificaciones de palabras clave y más.

Documentación

Servidor MCP de App Store

Un servidor MCP para buscar en la App Store, verificar rankings de palabras clave, analizar la competencia y rastrear tendencias — impulsado por un binario nativo de macOS para acceso rápido y directo a las APIs de la App Store.

También funciona como herramienta CLI independiente con formatos de salida enriquecidos.

Requisitos

  • macOS 26+ (Apple Silicon)

Inicio rápido

Instalar vía uvx (recomendado)

uvx appstore-mcp-server

Esto descarga el binario nativo en la primera ejecución e inicia el servidor MCP. No se necesita instalación persistente.

Instalar vía pip

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

Descargar el binario directamente

Descarga la última versión desde GitHub Releases, extráela y ejecuta:

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

Configuración del cliente MCP

Claude Code

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

O con el binario directamente:

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

Claude Desktop

Añade a tu configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

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

Otros clientes MCP

El servidor se comunica a través de stdio usando el protocolo MCP estándar. Ejecuta con la bandera --mcp:

/path/to/appstore --mcp

Herramientas MCP

HerramientaDescripción
search_appsAPI de búsqueda de iTunes con filtrado por atributo/género
search_rankedAPI MZStore — los resultados coinciden con los rankings reales de la App Store
lookup_appBuscar una app por ID, bundle ID o URL de la App Store
top_chartsRankings actuales de los top charts (gratuitas, de pago, más rentables)
find_app_rankVerificar dónde se rankea una app para una sola palabra clave
check_app_rankingsVerificar el ranking de una app en palabras clave generadas automáticamente (lento)
analyze_keywordAnálisis competitivo con puntuación de competitividad (0-100)
app_competitorsEncontrar los principales competidores de una app mediante resultados de búsqueda superpuestos
compare_keywordsComparar la competitividad entre múltiples palabras clave (lento)
discover_trendingDescubrir categorías en tendencia a partir de nuevas entradas en los charts
versionObtener la versión del servidor

La mayoría de las herramientas admiten:

  • storefront — Código de país de dos letras (predeterminado: US). Úsalo para cualquier región de la App Store.
  • verbosity — Controla el detalle de la respuesta y el uso de tokens:
    • compact (predeterminado) — Solo campos clave, sin descripciones. Mejor para la mayoría de las consultas.
    • full — Incluye descripciones de la app y notas de la versión.
    • complete — Todos los campos de la respuesta de la API. Verboso (~4KB por app).

Recursos MCP

RecursoURIDescripción
Storefrontsappstore://storefrontsCódigos de país y nombres para todas las regiones compatibles de la App Store
Génerosappstore://genresIDs de género y nombres para las categorías de la App Store
Atributos de búsquedaappstore://attributesNombres de atributos de búsqueda disponibles para búsquedas refinadas
Tipos de chartsappstore://chart-typesTipos de charts disponibles para consultas de top charts

Prompts MCP

PromptDescripción
competitive_analysisFlujo de trabajo guiado: buscar una app, encontrar competidores, analizar rankings de palabras clave y obtener recomendaciones accionables. Argumentos: keyword_or_app_id (obligatorio), storefront (opcional).
market_researchFlujo de trabajo guiado: búsqueda de rankings, top charts, análisis de competitividad, descubrimiento de tendencias e identificación de oportunidades. Argumentos: category (obligatorio), storefront (opcional).

Uso desde CLI

El binario funciona también como herramienta CLI completa. Ejecuta sin --mcp para uso interactivo.

Comandos

ComandoDescripción
search <query>Buscar en la App Store (API de búsqueda de iTunes)
scrape <query>Buscar con resultados clasificados que coinciden con la app de la App Store (API MZStore)
lookup <id-or-bundle>Buscar apps por ID, bundle ID o URL
ranks <app-id>Analizar rankings de palabras clave para una app
analyze <query>Análisis competitivo de los 20 mejores resultados con coincidencia de palabras clave
top <chart-type>Ver top charts (gratuitas, de pago, más rentables, nuevas gratuitas, nuevas de pago)
list <type>Listar storefronts, géneros, atributos o tipos de charts

search

Buscar en la App Store usando la API de búsqueda de 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"

Opciones clave:

OpciónDescripción
--limit <n>Número de resultados (1-200, predeterminado: 200, 0 para ilimitado)
--unlimitedIgual que --limit 0
--attribute <attr>Buscar en un campo específico: titleTerm, softwareDeveloper, descriptionTerm
--genre <id>Filtrar por ID de género (p. ej., 6014 para Juegos)
--storefront <code>Código de país (p. ej., US, JP, GB)
--output-format <fmt>text (predeterminado), json, raw-json, markdown, html, html-open
--verbosity <level>minimal, summary (predeterminado), expanded, verbose, complete
--full-descriptionMostrar descripciones completas de la app

scrape

Buscar usando la API MZStore. Los resultados están en orden de ranking real de la App Store — el mismo ranking que los usuarios ven en la app App Store. Úsalo en lugar de search cuando la posición en el ranking importe.

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

Opciones clave:

OpciónDescripción
--limit <n>Resultados máximos (predeterminado: 200)
--storefront <code>Código de país (predeterminado: US)
--output-format <fmt>text (predeterminado), json, raw-json, markdown, html
--verbosity <level>minimal, summary (predeterminado), expanded, verbose, complete

lookup

Buscar apps específicas por ID, bundle ID o URL de la 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

Opciones clave:

OpciónDescripción
--id <id>Buscar por ID de app
--ids <id1,id2,...>Buscar múltiples apps (separadas por comas)
--bundle-id <bundle>Buscar por identificador de bundle
--url <url>Buscar por URL de la App Store
--storefront <code>Código de país (predeterminado: US)
--output-format <fmt>text, json, raw-json, markdown, html
--verbosity <level>minimal, summary (predeterminado), expanded, verbose, complete

ranks

Analizar rankings de palabras clave para una app. Genera automáticamente palabras clave a partir del nombre, subtítulo y descripción de la app, y luego verifica dónde se rankea la app para cada palabra clave. Usa IA en el dispositivo (Apple Intelligence) para generar palabras clave adicionales cuando esté disponible.

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

Opciones clave:

OpciónDescripción
--limit <n>Máximo de palabras clave a probar (predeterminado: todas las generadas)
--storefront <code>Código de país (predeterminado: US)
--verbosity <level>minimal, summary (predeterminado), expanded, verbose, complete

Este comando realiza múltiples llamadas API secuenciales y puede tardar entre 30 y 120 segundos.

analyze

Analizar los 20 mejores resultados de búsqueda para una palabra clave con métricas competitivas. Genera CSV con puntuaciones de coincidencia, velocidad de valoraciones, antigüedad de la app y un resumen de competitividad.

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

Columnas del CSV: ID de la app, Valoración, Número de valoraciones, Lanzamiento original, Última versión, Días de antigüedad, Días de actualización, Puntuación de coincidencia del título, Puntuación de coincidencia de la descripción, Valoraciones por día, Título, Género, Versión, iOS mínimo, Clasificación por edad.

Opciones clave:

OpciónDescripción
--storefront <code>Código de país (predeterminado: US)

top

Ver los top charts de la 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 charts: free, paid, grossing, newfree, newpaid

Opciones clave:

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

list

Listar los valores disponibles para storefronts, géneros, atributos o tipos de charts.

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

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

Opciones comunes

Estas opciones están disponibles en la mayoría de los comandos:

OpciónDescripción
--storefront <code>País de la App Store (US, JP, GB, FR, etc.)
--country <code>Alias para --storefront
--language <code>Idioma de los resultados (predeterminado: en_us)
--output-format <fmt>Formato de salida (ver más abajo)
--verbosity <level>Nivel de detalle (ver más abajo)
--show-requestMostrar los detalles de la solicitud HTTP
--show-response-headersMostrar los encabezados de la respuesta HTTP
-o, --output-file <path>Escribir la salida en un archivo
-i, --input-file <path>Leer JSON en caché desde un archivo
--help, -hMostrar ayuda para cualquier comando

Formatos de salida: text (predeterminado), json, raw-json, markdown, html, html-open (se abre en el navegador).

Niveles de verbosidad:

NivelDescripción
minimalUna línea por app
summaryDetalles clave (predeterminado)
expandedAñade valoraciones, tamaño y versión
verboseAñade URLs, idiomas y funciones
completeTodos los campos disponibles

Compilar desde el código fuente

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

Abre appstore.xcodeproj en Xcode y compila (Product > Build), o:

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

El binario estará en el directorio de productos de compilación de DerivedData. Ejecútalo como servidor MCP con ./appstore --mcp o como CLI con ./appstore <command>.

Arquitectura

El servidor usa dos APIs diferentes de Apple:

  • API MZStore — Devuelve las apps en orden de ranking real de la App Store. Usada por search_ranked, find_app_rank, check_app_rankings, analyze_keyword, app_competitors, compare_keywords (y CLI scrape, ranks, analyze).
  • API de búsqueda/consulta de iTunes y RSS — Devuelve metadatos completos de las apps y datos de charts. Usada por search_apps, lookup_app, top_charts, discover_trending (y CLI search, lookup, top).

Para operaciones sensibles al ranking, la API MZStore obtiene primero los IDs de las apps clasificadas y luego la API de consulta de iTunes los enriquece con detalles completos. Consulta CLAUDE.md para los detalles de implementación.

Licencia

MIT