App Store Connect MCP Server
Interactúa con la API de App Store Connect para gestionar aplicaciones, ventas e informes.
Documentación
Servidor MCP de App Store Connect
Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con la API de App Store Connect. Este servidor proporciona herramientas para gestionar aplicaciones, probadores beta, IDs de paquete, dispositivos, metadatos de aplicaciones y capacidades en App Store Connect.
Descripción General
El Servidor MCP de App Store Connect es una herramienta integral que une la brecha entre la IA y el ecosistema de App Store Connect de Apple. Construido sobre el Protocolo de Contexto de Modelo (MCP), este servidor permite a los desarrolladores interactuar con sus datos de App Store Connect directamente a través de IA conversacional, haciendo la gestión de aplicaciones, pruebas beta y análisis más accesibles que nunca.
Beneficios Clave:
- 🤖 Gestión de Aplicaciones Impulsada por IA: Usa lenguaje natural para gestionar tus aplicaciones de iOS y macOS
- 📊 Análisis Integral: Accede a datos detallados de rendimiento, ventas y participación de usuarios
- 👥 Pruebas Beta Optimizadas: Gestiona eficientemente grupos y probadores beta
- 🌍 Gestión de Localización: Actualiza descripciones, palabras clave y metadatos de aplicaciones en todos los idiomas
- 🔧 Integración con Herramientas de Desarrollo: Lista esquemas de proyectos Xcode e intégrate con flujos de trabajo de desarrollo
- 🔐 Autenticación Segura: Usa la API oficial de App Store Connect con autenticación JWT
- 🚀 Datos en Tiempo Real: Accede a información actualizada directamente de los sistemas de Apple
Para Quién Es Esto:
- Desarrolladores de iOS/macOS que gestionan aplicaciones en App Store Connect
- Equipos de desarrollo que coordinan programas de pruebas beta
- Gerentes de producto que analizan rendimiento de aplicaciones y participación de usuarios
- Equipos de marketing que gestionan metadatos y localizaciones de aplicaciones
- Ingenieros de DevOps que automatizan flujos de trabajo de la tienda de aplicaciones
- Cualquiera que busque optimizar su experiencia de desarrollador de Apple
Este servidor transforma operaciones complejas de App Store Connect en comandos conversacionales simples, ya sea que estés consultando análisis de aplicaciones, gestionando probadores beta, actualizando descripciones de aplicaciones o explorando tu pipeline de desarrollo.
Características
-
Gestión de Aplicaciones
- Listar todas las aplicaciones
- Obtener información detallada de aplicaciones
- Ver metadatos y relaciones de aplicaciones
-
Pruebas Beta
- Listar grupos beta
- Listar probadores beta
- Agregar/eliminar probadores de grupos
- Gestionar configuraciones de pruebas beta
- Ver comentarios beta con capturas de pantalla e información del dispositivo
-
Localizaciones de Versiones de App Store ✨ NUEVO
- Crear nuevas versiones de App Store con programación de lanzamiento
- Listar todas las versiones de App Store para una aplicación
- Listar todas las localizaciones para una versión de aplicación
- Obtener detalles específicos de localización
- Actualizar descripciones, palabras clave y texto promocional de aplicaciones
- Gestionar URLs de marketing y soporte
- Actualizar texto de "Novedades" para lanzamientos
-
Gestión de IDs de Paquete
- Listar IDs de paquete
- Crear nuevos IDs de paquete
- Obtener detalles de IDs de paquete
- Habilitar/deshabilitar capacidades
-
Gestión de Dispositivos
- Listar dispositivos registrados
- Filtrar por tipo de dispositivo, plataforma, estado
- Ver detalles de dispositivos
-
Gestión de Usuarios
- Listar miembros del equipo
- Ver roles y permisos de usuarios
- Filtrar usuarios por rol y acceso
-
Análisis e Informes
- Crear solicitudes de informes de análisis para aplicaciones
- Descargar análisis de participación, comercio y uso de App Store
- Acceder a informes de rendimiento y uso de frameworks
- Descargar informes de ventas y tendencias (diario, semanal, mensual, anual)
- Descargar informes financieros por región
-
Herramientas de Desarrollo Xcode
- Listar esquemas disponibles en proyectos y espacios de trabajo Xcode
- Integrar con flujos de trabajo de desarrollo y pipelines de CI/CD
Instalación
Usando Smithery
Para instalar el Servidor de App Store Connect para Claude Desktop automáticamente:
npx @smithery/cli install appstore-connect-mcp-server --client claude
Instalación Manual
npm install @joshuarileydev/app-store-connect-mcp-server
Configuración
Agrega lo siguiente a tu archivo de configuración de Claude Desktop:
macOS
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"app-store-connect": {
"command": "npx",
"args": [
"-y",
"appstore-connect-mcp-server"
],
"env": {
"APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
"APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
"APP_STORE_CONNECT_P8_PATH": "/path/to/your/auth-key.p8",
"APP_STORE_CONNECT_VENDOR_NUMBER": "YOUR_VENDOR_NUMBER_OPTIONAL"
}
}
}
}
Autenticación
Configuración Requerida
- Genera una Clave de API de App Store Connect desde App Store Connect
- Descarga el archivo de clave privada .p8
- Anota tu ID de Clave y ID de Emisor
- Establece las variables de entorno requeridas en tu configuración:
APP_STORE_CONNECT_KEY_ID: Tu ID de Clave de APIAPP_STORE_CONNECT_ISSUER_ID: Tu ID de EmisorAPP_STORE_CONNECT_P8_PATH: Ruta a tu archivo de clave privada .p8
Configuración Opcional para Informes de Ventas y Finanzas
Para habilitar las herramientas de informes de ventas y finanzas, también necesitarás:
APP_STORE_CONNECT_VENDOR_NUMBER: Tu número de proveedor de App Store Connect
Nota: Las herramientas de informes de ventas y finanzas (download_sales_report, download_finance_report) solo estarán disponibles si el número de proveedor está configurado. Puedes encontrar tu número de proveedor en App Store Connect bajo "Ventas y Tendencias" o "Pagos e Informes Financieros".
Referencia Completa de Herramientas
📱 Herramientas de Gestión de Aplicaciones
list_apps
Obtén una lista de todas las aplicaciones en App Store Connect.
Parámetros:
limit(opcional): Número máximo de aplicaciones a devolver (predeterminado: 100, máximo: 200)bundleId(opcional): Filtrar por identificador de paquete
Ejemplo:
"List all my apps"
"Show me apps with bundle ID com.example.myapp"
"Get the first 50 apps"
get_app_info
Obtén información detallada sobre una aplicación específica.
Parámetros:
appId(requerido): El ID de la aplicacióninclude(opcional): Recursos relacionados a incluir (por ejemplo, appClips, appInfos, appStoreVersions, betaGroups, builds)
Ejemplo:
"Get info for app ID 123456789"
"Show me app 123456789 with beta groups and builds"
"Get detailed information about my app including app store versions"
👥 Herramientas de Pruebas Beta
list_beta_groups
Lista todos los grupos de pruebas beta (internos y externos).
Parámetros:
limit(opcional): Número máximo de grupos a devolver (predeterminado: 100, máximo: 200)appId(opcional): Filtrar por ID de aplicación
Ejemplo:
"Show all beta groups"
"List beta groups for app 123456789"
"Get the first 20 beta groups"
list_group_testers
Lista probadores en un grupo beta específico.
Parámetros:
groupId(requerido): El ID del grupo betalimit(opcional): Número máximo de probadores a devolver (predeterminado: 100, máximo: 200)
Ejemplo:
"List all testers in group ABC123"
"Show me the first 50 testers in beta group ABC123"
add_tester_to_group
Agrega un nuevo probador a un grupo beta.
Parámetros:
groupId(requerido): El ID del grupo betaemail(requerido): Dirección de correo electrónico del probadorfirstName(opcional): Primer nombre del probadorlastName(opcional): Apellido del probador
Ejemplo:
"Add john@example.com to beta group ABC123"
"Add John Smith (john@example.com) to group ABC123"
remove_tester_from_group
Elimina un probador de un grupo beta.
Parámetros:
groupId(requerido): El ID del grupo betatesterId(requerido): El ID del probador
Ejemplo:
"Remove tester XYZ789 from group ABC123"
"Delete tester XYZ789 from beta group ABC123"
list_beta_feedback_screenshots
Lista envíos de capturas de pantalla de comentarios beta.
Parámetros:
appId(opcional): Filtrar por ID de aplicaciónbundleId(opcional): Filtrar por identificador de paquetebuildId(opcional): Filtrar por ID de compilaciónlimit(opcional): Resultados máximos (predeterminado: 100)includeBuilds(opcional): Incluir información de compilaciónincludeTesters(opcional): Incluir información del probador
Ejemplo:
"Show beta feedback screenshots for app 123456789"
"List feedback screenshots for bundle ID com.example.app"
"Get feedback with tester info for build XYZ"
get_beta_feedback_screenshot
Obtén información detallada sobre una captura de pantalla de comentarios beta específica.
Parámetros:
feedbackId(requerido): El ID del comentarioincludeBuilds(opcional): Incluir información de compilaciónincludeTesters(opcional): Incluir información del probadordownloadScreenshot(opcional): Descargar la imagen de la captura de pantalla (predeterminado: true)
Ejemplo:
"Get feedback screenshot FEEDBACK123"
"Show me feedback FEEDBACK123 with tester details"
"Download screenshot from feedback FEEDBACK123"
🌍 Herramientas de Localización de Versiones de App Store
create_app_store_version
Crea una nueva versión de App Store para una aplicación.
Parámetros:
appId(requerido): El ID de la aplicaciónplatform(requerido): La plataforma (IOS, MAC_OS, TV_OS, VISION_OS)versionString(requerido): Cadena de versión en formato X.Y o X.Y.Z (por ejemplo, '1.0' o '1.0.0')copyright(opcional): Texto de derechos de autor para esta versiónreleaseType(opcional): Cómo debe lanzarse la aplicación (MANUAL, AFTER_APPROVAL, SCHEDULED)earliestReleaseDate(opcional): Cadena de fecha ISO 8601 (requerida cuando releaseType es SCHEDULED)buildId(opcional): ID de la compilación a asociar con esta versión
Ejemplo:
"Create iOS version 2.0.0 for app 123456789"
"Create macOS version 1.5.0 for app 123456789 with manual release"
"Create scheduled iOS version 2.1.0 for app 123456789 releasing on 2024-02-01"
"Create version 1.2.0 for app 123456789 with build BUILD456 and copyright '2024 My Company'"
list_app_store_versions
Obtén todas las versiones de App Store para una aplicación específica.
Parámetros:
appId(requerido): El ID de la aplicaciónlimit(opcional): Número máximo de versiones a devolver (predeterminado: 100, máximo: 200)filter(opcional): Opciones de filtroplatform: Filtrar por plataforma (IOS, MAC_OS, TV_OS)versionString: Filtrar por cadena de versión (por ejemplo, '1.0.0')appStoreState: Filtrar por estado (por ejemplo, READY_FOR_SALE, PREPARE_FOR_SUBMISSION)
Ejemplo:
"List all versions for app 123456789"
"Show iOS versions for app 123456789"
"Find version 2.0.0 for app 123456789"
"List versions in review for app 123456789"
list_app_store_version_localizations
Obtén todas las localizaciones para una versión específica de App Store.
Parámetros:
appStoreVersionId(requerido): El ID de la versión de App Storelimit(opcional): Número máximo de localizaciones (predeterminado: 100, máximo: 200)
Ejemplo:
"List all localizations for app version VERSION123"
"Show me language versions for app store version VERSION123"
get_app_store_version_localization
Obtén información detallada sobre una localización específica.
Parámetros:
localizationId(requerido): El ID de la localización
Ejemplo:
"Get localization details for LOCALE123"
"Show me the French localization LOCALE123"
update_app_store_version_localization
Actualiza un campo específico en una localización de versión de App Store.
Parámetros:
localizationId(requerido): El ID de la localizaciónfield(requerido): Campo a actualizar (description, keywords, marketingUrl, promotionalText, supportUrl, whatsNew)value(requerido): Nuevo valor para el campo
Ejemplo:
"Update description for localization LOCALE123 to 'Amazing new app description'"
"Change keywords for LOCALE123 to 'productivity, tasks, organize'"
"Update what's new text for LOCALE123 to 'Bug fixes and performance improvements'"
🔤 Herramientas de Gestión de IDs de Paquete
create_bundle_id
Registra un nuevo ID de paquete para desarrollo de aplicaciones.
Parámetros:
identifier(requerido): La cadena del ID de paquete (por ejemplo, 'com.example.app')name(requerido): Un nombre para el ID de paqueteplatform(requerido): Plataforma (IOS, MAC_OS, o UNIVERSAL)seedId(opcional): El ID de semilla de tu equipo
Ejemplo:
"Create bundle ID com.mycompany.newapp for iOS named 'My New App'"
"Register universal bundle ID com.example.app called 'Example App'"
list_bundle_ids
Encuentra y lista IDs de paquete registrados en tu equipo.
Parámetros:
limit(opcional): Resultados máximos (predeterminado: 100, máximo: 200)sort(opcional): Orden de clasificación (name, -name, platform, -platform, identifier, -identifier)filter(opcional): Filtrar por identificador, nombre, plataforma o seedIdinclude(opcional): Incluir recursos relacionados (profiles, bundleIdCapabilities, app)
Ejemplo:
"List all bundle IDs"
"Show iOS bundle IDs sorted by name"
"Find bundle IDs containing 'example'"
get_bundle_id_info
Obtén información detallada sobre un ID de paquete específico.
Parámetros:
bundleIdId(requerido): El ID del ID de paqueteinclude(opcional): Recursos relacionados a incluirfields(opcional): Campos específicos a incluir
Ejemplo:
"Get info for bundle ID BUNDLE123"
"Show bundle ID BUNDLE123 with capabilities"
enable_bundle_capability
Habilita una capacidad para un ID de paquete.
Parámetros:
bundleIdId(requerido): El ID del ID de paquetecapabilityType(requerido): Tipo de capacidad (por ejemplo, PUSH_NOTIFICATIONS, ICLOUD, GAME_CENTER)settings(opcional): Configuraciones específicas de la capacidad
Ejemplo:
"Enable push notifications for bundle ID BUNDLE123"
"Add iCloud capability to bundle BUNDLE123"
"Enable Game Center for bundle ID BUNDLE123"
disable_bundle_capability
Deshabilita una capacidad para un ID de paquete.
Parámetros:
capabilityId(requerido): El ID de la capacidad a deshabilitar
Ejemplo:
"Disable capability CAP123"
"Remove capability CAP123 from bundle ID"
📱 Herramientas de Gestión de Dispositivos
list_devices
Obtén una lista de todos los dispositivos registrados en tu equipo.
Parámetros:
limit(opcional): Resultados máximos (predeterminado: 100, máximo: 200)sort(opcional): Orden de clasificación (name, platform, status, udid, deviceClass, model, addedDate)filter(opcional): Filtrar por nombre, plataforma, estado, udid o deviceClassfields(opcional): Campos específicos a incluir
Ejemplo:
"List all devices"
"Show enabled iOS devices"
"Find devices with name containing 'John'"
"List iPhones sorted by date added"
👤 Herramientas de Gestión de Usuarios
list_users
Obtén una lista de todos los usuarios en tu equipo de App Store Connect.
Parámetros:
limit(opcional): Resultados máximos (predeterminado: 100, máximo: 200)sort(opcional): Orden de clasificación (username, firstName, lastName, roles)filter(opcional): Filtrar por nombre de usuario o rolesfields(opcional): Campos específicos a incluirinclude(opcional): Incluir relación visibleApps Ejemplo:
"List all team members"
"Show users with admin role"
"Find developers sorted by last name"
"List users with their visible apps"
📊 Herramientas de Análisis e Informes
create_analytics_report_request
Crea una nueva solicitud de informe de análisis para una aplicación.
Parámetros:
appId(obligatorio): El ID de la aplicaciónaccessType(obligatorio): Tipo de análisis (ONGOING o ONE_TIME_SNAPSHOT)frequency(opcional): Frecuencia del informe para informes continuos (DAILY, WEEKLY, MONTHLY)startDate(opcional): Fecha de inicio (YYYY-MM-DD)endDate(opcional): Fecha de fin (YYYY-MM-DD)
Ejemplo:
"Create daily analytics report for app 123456789"
"Generate one-time snapshot report for app 123456789 from 2024-01-01 to 2024-01-31"
list_analytics_reports
Obtén los informes de análisis disponibles para una solicitud.
Parámetros:
reportRequestId(obligatorio): El ID de la solicitud de informelimit(opcional): Máximo de resultados (predeterminado: 100, máximo: 200)filter(opcional): Filtrar por categoría, nombre o fecha
Ejemplo:
"List reports for request REQ123"
"Show app usage reports for request REQ123"
list_analytics_report_segments
Obtén segmentos para un informe de análisis específico.
Parámetros:
reportId(obligatorio): El ID del informe de análisislimit(opcional): Máximo de resultados (predeterminado: 100, máximo: 200)
Ejemplo:
"List segments for report REPORT123"
"Get download URLs for report REPORT123"
download_analytics_report_segment
Descarga datos de un segmento de informe de análisis.
Parámetros:
url(obligatorio): La URL de descarga del segmento
Ejemplo:
"Download data from https://api.appstoreconnect.apple.com/..."
💰 Herramientas de Informes de Ventas y Finanzas (Requiere Número de Proveedor)
download_sales_report
Descarga informes de ventas y tendencias.
Parámetros:
frequency(obligatorio): Frecuencia del informe (DAILY, WEEKLY, MONTHLY, YEARLY)reportDate(obligatorio): Fecha en el formato apropiadoreportType(obligatorio): Tipo de informe (SALES, SUBSCRIPTION, SUBSCRIPTION_EVENT, SUBSCRIBER, NEWSSTAND, PREORDER)reportSubType(obligatorio): SUMMARY o DETAILEDvendorNumber(opcional): Anular el número de proveedor predeterminadoversion(opcional): Versión del informe (predeterminado: 1_0)
Ejemplo:
"Download daily sales summary for 2024-01-15"
"Get monthly subscription detailed report for 2024-01"
"Download yearly sales summary for 2023"
download_finance_report
Descarga informes financieros para una región específica.
Parámetros:
reportDate(obligatorio): Fecha del informe (YYYY-MM)regionCode(obligatorio): Código de región (por ejemplo, 'Z1' para todo el mundo)vendorNumber(opcional): Anular el número de proveedor predeterminado
Ejemplo:
"Download finance report for January 2024 worldwide"
"Get finance report for 2024-01 region Z1"
🔧 Herramientas de Desarrollo de Xcode
list_schemes
Lista todos los esquemas disponibles en un proyecto o espacio de trabajo de Xcode.
Parámetros:
projectPath(obligatorio): Ruta al archivo .xcodeproj o .xcworkspace
Ejemplo:
"List schemes in /Users/john/MyApp/MyApp.xcodeproj"
"Show available schemes for MyApp.xcworkspace"
Manejo de Errores
El servidor implementa un manejo de errores adecuado para:
- Autenticación no válida
- Parámetros obligatorios faltantes
- Límites de tasa de API
- Problemas de red
- Operaciones no válidas
Desarrollo
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Run type checking
npm run type-check
Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENSE para más detalles.
