App Store Connect MCP Server
App Store Connect MCP Server
La API completa de App Store Connect, como servidor MCP. 1,263 operaciones generadas directamente desde la especificación oficial OpenAPI de Apple, expuestas a Claude Code, Claude Desktop, Cursor y a cualquier otro cliente del Model Context Protocol mediante solo 4 herramientas eficientes en tokens.
¿Qué es el servidor MCP de App Store Connect?
app-store-connect-mcp es un servidor del Model Context Protocol (MCP) de código abierto para la API de App Store Connect. Instálalo una vez y tu agente de IA podrá leer y escribir todo lo que Apple expone para tus apps y tu cuenta de desarrollador:
Listados de App Store y metadatos · builds de TestFlight, grupos beta y testers · compras dentro de la app · suscripciones renovables automáticamente, ofertas y ofertas de recuperación · clasificaciones de Game Center, logros y emparejamiento · flujos de trabajo de Xcode Cloud y ejecuciones de builds · perfiles de aprovisionamiento, certificados, bundle IDs y dispositivos · envíos a App Review y detalles de la revisión · reseñas de clientes y respuestas · precios, disponibilidad y territorios · informes de ventas, financieros y de analítica · usuarios, roles e invitaciones · App Clips, recursos de fondo y distribución alternativa.
La mayoría de los servidores MCP de App Store Connect envuelven manualmente dos o tres docenas de endpoints y luego quedan desactualizados. Este está generado a partir de la especificación OpenAPI publicada por Apple, por lo que la cobertura es toda la superficie documentada y se mantiene al día con un único bun run generate.
En este repositorio no hay credenciales. Tú proporcionas tu propia clave de API de App Store Connect en tiempo de ejecución mediante variables de entorno. Nada se incluye, registra ni transmite en ningún lugar excepto Apple.
Tabla de contenidos
Related MCP server: App Store Connect MCP
De un vistazo
Qué es | Servidor MCP para la API completa de App Store Connect |
Versión de la API | App Store Connect API 4.4.1 (OpenAPI 3.0.1) |
Operaciones en el catálogo | 1,263 — una por ruta + método |
Rutas de la API | 966 |
Etiquetas de recurso | 195 |
Herramientas MCP registradas | 4 metaherramientas: |
Desglose por método | 797 |
Fuente de verdad | El zip OpenAPI de Apple, incluido en |
Autenticación | JWT ES256 generado en tiempo de ejecución a partir de Issuer ID + Key ID + clave privada |
URL base |
|
Transporte | stdio |
Runtime | Bun 1.1+ y |
Licencia | MIT |
Por qué 4 herramientas en lugar de 1,263
Registrar cada operación de OpenAPI como una herramienta MCP propia introduce 1,263 esquemas JSON completos en la ventana de contexto del modelo. Eso supone del orden de cientos de miles de tokens consumidos antes de que el agente haga ningún trabajo real — y muchos clientes simplemente rechazan o truncan una lista de herramientas tan grande.
Este servidor mantiene el catálogo completo interno y expone una superficie pequeña y estable sobre él:
asc_search → find operations (names, methods, paths, tags — no schemas)
asc_schema → describe one operation (full input JSON Schema + call hint)
asc_call → execute one operation (real request, or _dryRun)
asc_tags → list resource tags (with operation counts, to narrow search)El agente paga exactamente por el esquema que va a usar, y nada más. Un flujo típico de tres pasos cuesta unos pocos miles de tokens en lugar de unos cientos de miles.
Válvula de escape (solo depuración)
export ASC_EXPOSE_ALL_TOOLS=1 # also register all 1,263 operations as individual MCP toolsDéjalo sin establecer en condiciones normales. Existe para depurar la especificación y es extremadamente costoso en contexto.
Las cuatro herramientas MCP
asc_search — encuentra la operación correcta
Búsqueda de texto libre sobre operationId, nombre, ruta, etiquetas, método y descripción. Devuelve resultados ordenados sin los esquemas JSON.
Parámetro | Tipo | Requerido | Descripción |
| string | opcional* | Texto libre, p. ej. |
| string | opcional* | Filtro de etiqueta OpenAPI exacto, p. ej. |
| string | opcional |
|
| integer | opcional | Máximo de resultados, por defecto |
* Se requiere al menos uno de query, tag o method.
{ "query": "list apps", "method": "GET", "limit": 5 }asc_schema — describe una operación
Devuelve el esquema JSON completo de entrada de la operación, su lista de parámetros de ruta, su lista de parámetros de consulta y un callHint que indica cómo invocarla.
Parámetro | Tipo | Requerido | Descripción |
| string | sí | OperationId o nombre de herramienta generado, p. ej. |
asc_call — ejecuta la operación
Parámetro | Tipo | Requerido | Descripción |
| string | sí | OperationId o nombre de herramienta generado |
| object | opcional | Parámetros de ruta, parámetros de consulta, |
| boolean | opcional | Resuelve método/ruta/consulta/cuerpo sin llamar a Apple |
Los campos de ruta y consulta funcionan anidados dentro de args o como claves de nivel superior junto a operation. Las escrituras JSON:API van en body.
// read
{ "operation": "apps_getCollection", "args": { "limit": 10, "fields[apps]": "name,bundleId,sku" } }
// dry run — no network call, shows the resolved request
{ "operation": "apps_getCollection", "_dryRun": true, "args": { "limit": 10 } }
// write (JSON:API document)
{
"operation": "betaGroups_createInstance",
"args": {
"body": {
"data": {
"type": "betaGroups",
"attributes": { "name": "Internal QA" },
"relationships": { "app": { "data": { "type": "apps", "id": "1234567890" } } }
}
}
}
}asc_tags — oriéntate dentro de la API
Parámetro | Tipo | Requerido | Descripción |
| integer | opcional | Máximo de etiquetas, por defecto las 195, ordenadas por recuento de operaciones |
Manejo de respuestas
Las respuestas JSON se devuelven parseadas.
Las respuestas CSV, XML y de texto se devuelven como texto.
Las descargas gzip y binarias (informes financieros, informes de ventas) se devuelven en base64 con
encoding,contentType,byteLengthy una nota de decodificación.Las respuestas de más de ~120,000 caracteres se truncan con una sugerencia para acotar
filter[…],fields[…]olimit.Los errores HTTP 4xx/5xx se muestran como errores MCP con el cuerpo de error de Apple intacto, de modo que el agente pueda leer la cadena
detailde Apple y autocorregirse.
Cobertura: todos los recursos de App Store Connect
Las 1,263 operaciones en 195 etiquetas de recurso. Los recuentos son operaciones por etiqueta.
Apps, listados y metadatos de App Store — ~250 operaciones
Apps (86) · AppStoreVersions (30) · AppInfos (20) · AppCustomProductPageLocalizations (12) · AppStoreVersionExperiments (12) · AppStoreVersionLocalizations (12) · AppEncryptionDeclarations (8) · AppEventLocalizations (8) · AppStoreVersionExperimentTreatmentLocalizations (7) · AppCategories (6) · AppCustomProductPages (6) · AppEvents (6) · AppPreviewSets (6) · AppScreenshotSets (6) · AppStoreVersionExperimentTreatments (6) · EndUserLicenseAgreements (6) · AppCustomProductPageVersions (5) · AppInfoLocalizations (4) · AppPreviews (4) · AppScreenshots (4) · AppEventScreenshots (4) · AppEventVideoClips (4) · AccessibilityDeclarations (4) · AndroidToIosAppMappingDetails (4) · AppTags (3) · AppStoreVersionPhasedReleases (3) · AgeRatingDeclarations (1) · AppStoreVersionPromotions (1) · AppStoreVersionReleaseRequests (1) · RoutingAppCoverages (4)
TestFlight y pruebas beta — ~90 operaciones
BetaGroups (21) · BetaTesters (16) · BetaAppLocalizations (7) · BetaBuildLocalizations (7) · PreReleaseVersions (6) · BetaAppReviewDetails (5) · BetaAppReviewSubmissions (5) · BetaLicenseAgreements (5) · BuildBetaDetails (5) · BetaAppClipInvocations (4) · BetaFeedbackCrashSubmissions (4) · BetaRecruitmentCriteria (3) · BetaAppClipInvocationLocalizations (3) · BetaFeedbackScreenshotSubmissions (2) · BetaCrashLogs (1) · BetaRecruitmentCriterionOptions (1) · BetaTesterInvitations (1) · BuildBetaNotifications (1)
Compilaciones y subidas — ~50 operaciones
Builds (30) · BuildBundles (8) · BuildUploads (5) · BuildUploadFiles (3) · DiagnosticSignatures (1)
Compras dentro de la app y suscripciones — ~200 operaciones
Subscriptions (32) · InAppPurchases (25) · SubscriptionGroups (10) · InAppPurchaseOfferCodes (9) · SubscriptionOfferCodes (9) · InAppPurchaseImages (8) · InAppPurchaseLocalizations (8) · InAppPurchasePriceSchedules (8) · InAppPurchaseVersions (8) · SubscriptionGroupLocalizations (8) · SubscriptionImages (8) · SubscriptionLocalizations (8) · SubscriptionVersions (8) · SubscriptionPlanAvailabilities (6) · SubscriptionPromotionalOffers (6) · WinBackOffers (6) · InAppPurchaseAppStoreReviewScreenshots (4) · InAppPurchaseAvailabilities (4) · InAppPurchaseOfferCodeOneTimeUseCodes (4) · SubscriptionAppStoreReviewScreenshots (4) · SubscriptionAvailabilities (4) · SubscriptionGroupVersions (4) · SubscriptionOfferCodeOneTimeUseCodes (4) · SubscriptionPricePoints (4) · InAppPurchaseOfferCodeCustomCodes (3) · SubscriptionIntroductoryOffers (3) · SubscriptionOfferCodeCustomCodes (3) · PromotedPurchases (4) · InAppPurchasePricePoints (2) · SubscriptionGracePeriods (2) · SubscriptionPrices (2) · InAppPurchaseContents (1) · InAppPurchaseSubmissions (1) · SubscriptionGroupSubmissions (1) · SubscriptionSubmissions (1) · SandboxTesters (2) · SandboxTestersClearPurchaseHistoryRequest (1)
Game Center — ~330 operaciones
GameCenterDetails (42) · GameCenterGroups (29) · GameCenterLeaderboardSets (27) · GameCenterLeaderboards (21) · GameCenterAchievements (19) · GameCenterAchievementLocalizations (14) · GameCenterActivities (14) · GameCenterLeaderboardLocalizations (12) · GameCenterLeaderboardSetLocalizations (12) · GameCenterMatchmakingRuleSets (11) · GameCenterMatchmakingQueues (10) · GameCenterAppVersions (9) · GameCenterAchievementImages (8) · GameCenterChallenges (8) · GameCenterLeaderboardImages (8) · GameCenterLeaderboardSetImages (8) · GameCenterLeaderboardSetMemberLocalizations (8) · GameCenterActivityVersions (7) · GameCenterActivityLocalizations (6) · GameCenterChallengeLocalizations (6) · GameCenterChallengeVersions (6) · GameCenterMatchmakingRules (6) · GameCenterEnabledVersions (5) · más versiones, imágenes y lanzamientos de logros/clasificaciones/actividades/retos, equipos de emparejamiento, pruebas de conjuntos de reglas, envíos de entradas y envíos de logros de jugador
Xcode Cloud (integración continua) — ~50 operaciones
CiProducts (13) · CiBuildActions (9) · CiWorkflows (8) · CiBuildRuns (6) · ScmRepositories (6) · CiMacOsVersions (4) · CiXcodeVersions (4) · ScmProviders (4) · CiArtifacts (1) · CiIssues (1) · CiTestResults (1) · ScmGitReferences (1) · ScmPullRequests (1)
Certificados, identificadores y perfiles — ~45 operaciones
BundleIds (11) · Profiles (10) · Certificates (7) · MerchantIds (7) · PassTypeIds (7) · Devices (4) · BundleIdCapabilities (3)
App Review y envíos — ~20 operaciones
ReviewSubmissions (6) · AppStoreReviewDetails (5) · AppStoreReviewAttachments (4) · ReviewSubmissionItems (3) · AppStoreVersionSubmissions (1)
Precios, disponibilidad y territorios — ~25 operaciones
AppPriceSchedules (8) · AppAvailabilities (4) · AppPricePoints (3) · Nominations (5) · Territories (1) · TerritoryAvailabilities (1) · EndAppAvailabilityPreOrders (1)
Informes y analíticas — ~15 operaciones
AnalyticsReportRequests (5) · AnalyticsReportInstances (3) · AnalyticsReports (3) · AnalyticsReportSegments (1) · SalesReports (1) · FinanceReports (1)
Reseñas de clientes — 6 operaciones
CustomerReviews (3) · CustomerReviewResponses (3)
Usuarios y acceso — ~15 operaciones
Users (9) · UserInvitations (6) · Actors (2)
App Clips — ~30 operaciones
AppClipDefaultExperiences (11) · AppClipDefaultExperienceLocalizations (6) · AppClips (5) · AppClipHeaderImages (4) · AppClipAdvancedExperienceImages (3) · AppClipAdvancedExperiences (3) · AppClipAppStoreReviewDetails (3)
Recursos en segundo plano — ~15 operaciones
BackgroundAssets (5) · BackgroundAssetVersions (4) · BackgroundAssetUploadFiles (3) · además de los endpoints de lanzamiento de App Store, beta interna y beta externa
Distribución alternativa (DMA de la UE) — ~15 operaciones
AlternativeDistributionPackageVersions (5) · AlternativeDistributionDomains (4) · AlternativeDistributionKeys (4) · AlternativeDistributionPackages (4) · MarketplaceWebhooks (4) · MarketplaceSearchDetails (3) · AlternativeDistributionPackageDeltas (1) · AlternativeDistributionPackageVariants (1)
Webhooks — 8 operaciones
Webhooks (6) · WebhookDeliveries (1) · WebhookPings (1)
Ejecuta asc_tags en cualquier momento para obtener la lista exacta y actualizada.
Requisitos
Bun 1.1 o superior
Una clave de API de App Store Connect: ID de emisor, ID de clave y el archivo de clave privada
.p8Un cliente MCP que hable stdio: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code con una extensión MCP, Zed o tu propio agente
Obtén tu clave de API de App Store Connect
Inicia sesión en App Store Connect.
Ve a Usuarios y acceso → Integraciones → API de App Store Connect.
Haz clic en + para generar una clave. Elige el rol más pequeño que cubra tu caso de uso (
Developer,App ManageroAdminpara la gestión de usuarios).Copia el ID de emisor (un UUID, que se muestra una vez en la parte superior de la página).
Copia el ID de clave (10 caracteres).
Descarga el archivo de clave privada
.p8. Apple solo te permite descargarlo una vez. Guárdalo fuera de tu repositorio, por ejemplo en~/.appstoreconnect/AuthKey_XXXXXXXXXX.p8, y aplícalechmod 600.
La guía oficial de Apple: Creación de claves de API para App Store Connect API.
Instalación en Claude Code
git clone https://github.com/imfaisii/asc-mcp.git
cd asc-mcp
bun install
bun run smoke # offline catalog check + server boot — no credentials neededRegistra el servidor globalmente:
claude mcp add app-store-connect \
-s user \
-t stdio \
-e ASC_ISSUER_ID=your-issuer-uuid \
-e ASC_KEY_ID=your-key-id \
-e ASC_PRIVATE_KEY_PATH=$HOME/.appstoreconnect/AuthKey_XXXXXXXXXX.p8 \
-- bun run /ABS/PATH/to/asc-mcp/src/index.tsVerifica y reinicia:
claude mcp get app-store-connect
claude mcp listInicia una nueva sesión de Claude Code. Las herramientas aparecen como mcp__app-store-connect__asc_search, …asc_schema, …asc_call y …asc_tags.
Instalación en Claude Desktop
Añade esto a claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"app-store-connect": {
"command": "bun",
"args": ["run", "/ABS/PATH/to/asc-mcp/src/index.ts"],
"env": {
"ASC_ISSUER_ID": "your-issuer-uuid",
"ASC_KEY_ID": "your-key-id",
"ASC_PRIVATE_KEY_PATH": "/ABS/PATH/to/AuthKey_XXXXXXXXXX.p8"
}
}
}
}Reinicia Claude Desktop.
Instalación en Cursor, Windsurf, VS Code y otros clientes MCP
Cualquier cliente que lance un servidor MCP stdio funciona. La forma es siempre la misma — mcp.example.json en este repositorio es una plantilla lista para copiar.
Cursor — ~/.cursor/mcp.json (global) o .cursor/mcp.json (por proyecto):
{
"mcpServers": {
"app-store-connect": {
"command": "bun",
"args": ["run", "/ABS/PATH/to/asc-mcp/src/index.ts"],
"env": {
"ASC_ISSUER_ID": "your-issuer-uuid",
"ASC_KEY_ID": "your-key-id",
"ASC_PRIVATE_KEY_PATH": "/ABS/PATH/to/AuthKey_XXXXXXXXXX.p8"
}
}
}
}Windsurf — ~/.codeium/windsurf/mcp_config.json, mismo bloque mcpServers.
VS Code — .vscode/mcp.json con un bloque servers que use los mismos command, args y env.
Tu propio agente — ejecuta bun run src/index.ts y habla MCP a través de stdio. Parecerá que se ha quedado colgado en una terminal sin procesar; eso es un servidor stdio esperando a un cliente, y es correcto.
Variables de entorno
Variable | Requerida | Propósito |
| sí | ID de emisor (UUID) de App Store Connect |
| sí | ID de clave (10 caracteres) |
| sí* | Ruta absoluta al archivo de clave privada |
| sí* | Contenido PEM en línea, en lugar de una ruta de archivo (útil en CI) |
| no | Por defecto |
| no |
|
* Proporciona exactamente uno de ASC_PRIVATE_KEY_PATH o ASC_PRIVATE_KEY.
También se aceptan estos alias: APP_STORE_CONNECT_ISSUER_ID, APP_STORE_CONNECT_KEY_ID, APP_STORE_CONNECT_PRIVATE_KEY_PATH, APP_STORE_CONNECT_PRIVATE_KEY.
Copia .env.example a .env para shells locales. .env* y *.p8 ya están en .gitignore.
Cómo lo usa un agente
1. asc_tags # optional: orient inside 195 resource tags
2. asc_search { query: "list apps" } # find candidate operations
3. asc_schema { operation: "apps_getCollection" } # read the exact input schema
4. asc_call { operation: "apps_getCollection", args: { limit: 10 } }Para cualquier operación de escritura, ejecútala primero como una prueba en seco:
{ "operation": "appStoreVersions_updateInstance", "_dryRun": true, "args": { "id": "…", "body": { } } }_dryRun devuelve el método, la ruta, los parámetros de ruta, la consulta y el cuerpo resueltos sin tocar Apple, para que el agente pueda comprobar su propia solicitud antes de enviarla.
Ejemplos de prompts
Una vez que el servidor está conectado, todo esto funciona en lenguaje natural:
"Enumera mis apps con sus IDs de paquete y SKUs."
"Muestra las últimas 5 compilaciones de TestFlight para MyApp y a quién se distribuyeron."
"Crea un grupo beta de TestFlight llamado Internal QA para MyApp y añade a estos tres evaluadores."
"¿Cuál es la versión actual de MyApp en App Store en cada localización, y a cuáles les falta una descripción?"
"Descarga el informe de ventas de este mes y resume las unidades por territorio."
"Enumera todas las suscripciones renovables automáticamente en mi grupo de suscripciones con sus puntos de precio."
"¿Qué perfiles de aprovisionamiento caducan en los próximos 30 días?"
"Muestra mi último envío a App Review y su motivo de rechazo."
"Obtén las reseñas de clientes más recientes con 1 o 2 estrellas y redacta respuestas."
"Activa el flujo de trabajo de Xcode Cloud llamado Release e informa del estado de la ejecución de compilación."
"¿Cuáles de mis compras dentro de la app no tienen una captura de pantalla de revisión?"
"Añade este UDID de dispositivo a mi cuenta y regenera el perfil de desarrollo."
Scripts
Comando | Propósito |
| Instala las dependencias |
| Reconstruye |
| Inicia el servidor MCP stdio |
| Genera, valida el inventario del catálogo y arranca el servidor. Ejecuta un |
|
|
| Comprobación de credenciales en vivo contra |
Actualizar la especificación OpenAPI de Apple
Apple distribuye un zip. Incluye el JSON, regenera y verifica:
curl -fsSL -o /tmp/asc-openapi.zip \
"https://developer.apple.com/sample-code/app-store-connect/app-store-connect-openapi-specification.zip"
unzip -p /tmp/asc-openapi.zip '*.json' > openapi/app-store-connect.openapi.json
bun run generate
bun run smokegenerated/ es la salida de compilación. Nunca lo edites a mano: regenéralo en su lugar.
Nota sobre la cobertura: "superficie completa" significa todas las operaciones del zip OpenAPI publicado por Apple para la versión incluida. Si un endpoint está descrito en la documentación humana de Apple pero falta en el zip, aparecerá aquí después de que Apple actualice el zip y tú lo regeneres.
Estructura del proyecto
asc-mcp/
├── openapi/
│ └── app-store-connect.openapi.json # Apple's spec, vendored (source of truth)
├── generated/
│ ├── tools.json # 1263-operation catalog (build output)
│ └── manifest.json # counts, tags, spec version
├── src/
│ ├── index.ts # MCP stdio server, 4 meta-tools
│ ├── catalog.ts # search / resolve over the catalog
│ ├── client.ts # fetch wrapper, response shaping
│ ├── auth.ts # ES256 JWT, in-memory cache
│ └── types.ts
├── scripts/
│ ├── generate-tools.ts # OpenAPI → catalog
│ ├── smoke.ts # offline inventory + boot check
│ └── live-check.ts # live GET /v1/apps
├── assets/ # README graphics
├── mcp.example.json
├── .env.example
└── package.jsonModelo de seguridad
Nada secreto se almacena en este repositorio. Las credenciales provienen únicamente de variables de entorno.
.gitignorebloquea*.p8,AuthKey_*.p8y.env*.Los JWT son ES256, firmados localmente con tu
.p8, con audienciaappstoreconnect-v1, válidos durante 20 minutos (el máximo de Apple), almacenados en caché solo en memoria y renovados 60 segundos antes de que expiren.Los resultados de las herramientas nunca devuelven credenciales al modelo.
El único destino de red es
ASC_BASE_URL, que por defecto es el host de la API de Apple.Si alguna vez confirmas un
.p8por accidente, revoca esa clave en App Store Connect inmediatamente y genera una nueva.
Consulta SECURITY.md para reportar una vulnerabilidad.
Solución de problemas
Missing credentials / ASC_ISSUER_ID not set
El cliente MCP no pasó el entorno. Pon las variables en el bloque env del cliente en lugar de en tu perfil de shell — las aplicaciones GUI como Claude Desktop y Cursor no heredan el entorno de tu shell.
HTTP 401 NOT_AUTHORIZED
El ID de emisor, el ID de clave y el .p8 deben pertenecer a la misma clave. Confirma que el ID de clave coincide con el nombre del archivo (AuthKey_<KeyID>.p8) y que la clave no ha sido revocada.
HTTP 403 FORBIDDEN_ERROR
El rol de la clave es demasiado limitado para esa operación. La gestión de usuarios y los informes de finanzas requieren roles superiores a Developer.
HTTP 409 con una cadena detail de JSON:API
Apple está rechazando la forma del documento. Ejecuta la misma llamada con _dryRun: true, compárala con la salida de asc_schema y luego corrige el body.
El servidor "se cuelga" al ejecutar bun run start
Eso es correcto. Un servidor MCP stdio se bloquea esperando un cliente en stdin. Usa bun run smoke si quieres una comprobación que termine.
Las herramientas no aparecen en mi cliente
Reinicia el cliente después de editar su configuración MCP y usa una ruta absoluta a src/index.ts. Confirma que bun está en el PATH que el cliente ve (which bun), o usa la ruta absoluta al binario bun como command.
Las respuestas se truncan
Los payloads de más de ~120,000 caracteres se cortan. Reduce con fields[…], filter[…] y limit en lugar de obtener colecciones completas.
Preguntas frecuentes
¿Es un producto oficial de Apple? No. Es un proyecto independiente de código abierto. "App Store Connect", "TestFlight", "Xcode" y "Game Center" son marcas comerciales de Apple Inc.
¿Cuántas herramientas expone este servidor MCP?
Cuatro por defecto — asc_search, asc_schema, asc_call y asc_tags — sobre un catálogo interno de 1,263 operaciones de la API de App Store Connect. Establecer ASC_EXPOSE_ALL_TOOLS=1 registra las 1,263 individualmente, lo que solo es útil para depurar.
¿Soporta TestFlight? Sí. Aproximadamente 90 operaciones cubren grupos beta, probadores beta, invitaciones, localizaciones de compilaciones beta, envíos de revisión de apps beta, comentarios de fallos y criterios de reclutamiento.
¿Puede un agente enviar mi app para revisión?
Sí. ReviewSubmissions, ReviewSubmissionItems, AppStoreVersionSubmissions y los recursos de detalle de revisión están todos en el catálogo. Usa _dryRun primero y mantén a un humano en el circuito para cualquier cosa que llegue a la App Store.
¿Funciona con Cursor, Windsurf y VS Code? Sí. Es un servidor MCP stdio estándar, por lo que cualquier cliente del Model Context Protocol puede lanzarlo.
¿Almacena o transmite mi clave de API de App Store Connect? No. La clave se lee del entorno en el momento de la llamada, se usa para firmar un JWT de corta duración localmente, y el JWT solo va al host de la API de Apple.
¿En qué se diferencia de otros servidores MCP de App Store Connect? La mayoría son envoltorios escritos a mano alrededor de un pequeño subconjunto de endpoints. Este genera su catálogo a partir de la especificación oficial de OpenAPI de Apple, por lo que la cobertura es toda la superficie publicada, y actualizarlo es un comando en lugar de una reescritura.
¿Por qué no simplemente darle al modelo 1,263 herramientas? Los esquemas JSON completos para 1,263 operaciones cuestan cientos de miles de tokens de contexto y muchos clientes truncan o rechazan listas tan largas. Buscar, luego esquema, luego llamar cuesta unos pocos miles de tokens por tarea.
¿Puedo usarlo en CI?
Sí. Establece ASC_PRIVATE_KEY con el PEM en línea en lugar de una ruta de archivo, para que ningún .p8 necesite tocar el disco del runner.
¿Maneja los límites de tasa de la API de App Store Connect? No reintenta en tu nombre. Las respuestas y encabezados de límite de tasa de Apple se pasan directamente para que el agente (o tu código) decida cómo retroceder.
¿Qué versión de la API de App Store Connect está incluida?
4.4.1, OpenAPI 3.0.1. Ejecuta bun run generate después de colocar una especificación más nueva para actualizarse.
Contribuciones
Las incidencias y las solicitudes de extracción son bienvenidas. Consulta CONTRIBUTING.md. Dos reglas son las más importantes: generated/ se regenera en lugar de editarse a mano, y no aparecen credenciales en ninguna solicitud de extracción.
Licencia
MIT © imfaisii
No afiliado ni respaldado por Apple Inc.
Palabras clave: App Store Connect MCP · App Store Connect API MCP server · MCP server for App Store Connect · Model Context Protocol Apple · TestFlight MCP · Xcode Cloud MCP · in-app purchase MCP · App Store automation · Claude Code App Store Connect · Cursor MCP App Store Connect · iOS release automation with AI agents
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Apple App Store Connect operations including app management, TestFlight, analytics, reviews, subscriptions, and more through 54 tools.612511MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Apple App Store Connect through the official API, including apps, metadata, reviews, TestFlight, provisioning, users, and reports.MIT
- AlicenseNot gradedqualityAmaintenanceA Model Context Protocol server that exposes the entire Apple App Store Connect API (1,200+ operations) as MCP tools, enabling AI assistants to query apps, manage builds, handle submissions, read analytics, and more.21MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Apple App Store Connect resources like apps, builds, TestFlight, and reviews through natural language.2018MIT
Related MCP Connectors
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/imfaisii/asc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server