asc-mcp

Un servidor MCP para App Store Connect: 41 herramientas para publicar una versión desde tu agente, que cubren metadatos, capturas de pantalla, compilaciones, TestFlight, compras dentro de la aplicación, envío y publicación.

Documentación

asc-mcp

Publica una versión en la App Store desde tu agente de codificación. Un servidor MCP para App Store Connect: 41 herramientas que editan metadatos de versión, suben capturas de pantalla, adjuntan builds, gestionan TestFlight, crean compras dentro de la app, envían y publican, además de una capa de inteligencia que audita una versión antes de enviarla y resume tus reseñas. 6 flujos de trabajo con comandos de barra y una Skill de Claude incluida. No es otro envoltorio de API.

asc-mcp.pages.dev · npm · Precio: prueba gratuita de 7 días, luego $9/mes

Claude Desktop, un clic: descarga el último asc-mcp.mcpb y ábrelo. Claude te pedirá tu Issuer ID y te permitirá elegir tu .p8 con un selector de archivos. Sin JSON, sin buscar reinicios.

Todo lo demás (Claude Code, Cursor, Windsurf, Cline), un comando:

npx @pofky/asc-mcp init --write   # finds your .p8, asks for your Issuer ID, writes your MCP config

Luego pregúntale a tu agente: "inicia mi prueba de asc-mcp, mi correo es you@example.com". Las 41 herramientas se desbloquean por 7 días, sin tarjeta y sin nada que cancelar, y la prueba se activa en la sesión en la que ya estás, así que lo que te tenía bloqueado funcionará en la siguiente llamada. Después, Pro cuesta $9 al mes. Seis herramientas quedan gratis, y tres de ellas solo necesitan Node.

Tú dicesQué sucede
"Ejecuta una verificación previa en mi app"Audita metadatos, límites de caracteres, capturas de pantalla, estado del build. Detecta los problemas que causan el 40% de los rechazos.
"Dame un informe matutino"Resume todas tus apps: quién está en revisión, quién fue rechazado, nuevas reseñas con baja calificación, elementos de acción.
"Genera notas de versión desde mi historial de git"Lee los commits desde la última etiqueta, los categoriza y te da datos estructurados para escribir el texto de "Novedades".
"¿Mi app está en revisión?"Estado exacto de revisión con contexto ("tiempo típico: 24-48 horas")
"Muéstrame reseñas de 1 estrella"Reseñas de clientes filtradas por calificación, territorio, ordenadas por fecha
"¿Cuáles fueron mis descargas esta semana?"Resumen de ventas e ingresos por territorio

Sin cambiar de contexto. Sin portal. Solo pregunta.

Qué hace esto diferente

Sucesor mantenido de JoshuaRileyDev/app-store-connect-mcp-server (archivado en febrero de 2026). Ángulo diferente, misma superficie de API y más.

Otros servidores MCP de ASC envuelven la API y te dan de 80 a 982 endpoints crudos. Este te da 41 herramientas con criterio, 6 Prompts de comando de barra y una Skill de Claude que piensan. Las herramientas de lectura resumen y auditan; las herramientas de control Pro realmente manejan App Store Connect, desde editar metadatos hasta enviar y publicar, con la misma clave de API. Dos herramientas usan MCP Sampling: el modelo de tu propio cliente hace el trabajo de LLM, así que no hay costo extra de este servidor.

Por qué el control total es posible sin fastlane: el deliver y el pilot de fastlane son solo llamadas a la misma API REST de App Store Connect contra la que este servidor se autentica con tu .p8. Así que casi todo lo que automatizarías con fastlane es una herramienta aquí, sin necesidad de la cadena de herramientas de Ruby. El único paso que necesita tu Mac es compilar y firmar el binario, que build_and_archive y upload_binary gestionan mediante Xcode.

Configuración (3 minutos)

Paso 1. Crea una clave de API en App Store Connect > Integraciones > API de App Store Connect (rol de Admin o App Manager), luego toma tres cosas de esa misma página:

  • Issuer ID (ASC_ISSUER_ID): el UUID que se muestra en la parte superior de la página, con un botón de copiar al lado.
  • Key ID (ASC_KEY_ID): el ID de 10 caracteres junto a tu clave, también en el nombre del archivo AuthKey_XXXXXXXXXX.p8.
  • Archivo .p8 (ASC_PRIVATE_KEY_PATH): haz clic en Descargar y apunta a este archivo guardado. Apple solo te permite descargarlo una vez, así que guárdalo en un lugar seguro.

Paso 2. Instala:

npm install -g @pofky/asc-mcp

No se necesita instalación global si prefieres npx (consulta la configuración manual a continuación).

Configuración más rápida (recomendada). Coloca tu .p8 en la ruta estándar de Apple ~/.appstoreconnect/private_keys/ (el archivo se llama AuthKey_XXXXXXXXXX.p8, y el Key ID está en el nombre del archivo). Luego ejecuta:

npx @pofky/asc-mcp init --write     # auto-detects the key, asks for your Issuer ID, and writes the config for you
# or: npx @pofky/asc-mcp init       # same, but prints the block to paste yourself

init --write encuentra tu configuración de Claude Desktop / Claude Code, hace una copia de seguridad y fusiona el bloque del servidor, así que no hay edición de JSON. El servidor también detecta automáticamente la ruta de .p8 en tiempo de ejecución, así que solo necesitas ASC_ISSUER_ID (y ASC_LICENSE_KEY para Pro).

Ejecutarlo desde un agente, o cualquier tubería. No hay terminal para responder preguntas, así que pasa lo que se habría preguntado:

npx @pofky/asc-mcp init --write --issuer <your-issuer-uuid>   # add --config <path> if you keep several client configs

Imprime el bloque listo para pegar de cualquier manera, y nunca inventa un valor: si falta el Issuer ID, lo dice en lugar de escribir una configuración que fallaría en la autenticación de Apple. --key-path, --key-id y --license están ahí por la misma razón, y cada uno también lee de la variable de entorno ASC_* correspondiente.

¿Atascado? Ejecuta npx @pofky/asc-mcp doctor (o pídele a tu agente que llame a asc_setup_check). Verifica tu clave, Issuer ID, una conexión en vivo con App Store Connect y tu licencia, e imprime la solución exacta para cualquier problema. En tu agente, el comando /asc-start guía a un usuario primerizo por todo esto.

Configuración manual. Añade a la configuración MCP de tu agente (config de Claude Desktop, o ~/.claude.json para Claude Code). Usa npx para instalación cero, o asc-mcp si instalaste globalmente:

{
  "mcpServers": {
    "appstore-connect": {
      "command": "npx",
      "args": ["-y", "@pofky/asc-mcp"],
      "env": {
        "ASC_ISSUER_ID": "YOUR_ISSUER_ID"
      }
    }
  }
}

Con el .p8 en ~/.appstoreconnect/private_keys/, ASC_ISSUER_ID es la única variable de entorno requerida (Key ID y ruta de la clave se detectan automáticamente). Añade ASC_LICENSE_KEY para desbloquear Pro.

Paso 3. Pídele a tu agente: "Lista mis apps de App Store Connect"

Paso 4, para probar la mitad de pago. Pídele a tu agente: "inicia mi prueba de asc-mcp, mi correo es you@example.com". Llama a asc_start_trial, que desbloquea las 41 herramientas por 7 días sin tarjeta y sin nada que cancelar. La clave se activa en la sesión en ejecución, así que lo que te tenía bloqueado funcionará en la siguiente llamada, y se escribe en tu configuración MCP para que sobreviva a un reinicio. Una prueba por cuenta de desarrollador de Apple.

Funciona con Claude Code, Cursor, Windsurf, Cline y cualquier cliente compatible con MCP.

Herramientas

Gratis (sin registro, sin clave de licencia)

HerramientaQué hace
asc_start_trial7 días de todo, sin tarjeta. Pídele a tu agente que lo ejecute con tu correo. Desbloquea las 41 herramientas en la sesión en ejecución, sin reiniciar, sin nada que cancelar.
asc_setup_checkEjecútalo primero si algo falla. Verifica tu clave, Issuer ID, una conexión en vivo con App Store Connect y el nivel de licencia, e imprime la solución exacta para cada fallo.
asc_guideEmpieza aquí. El manual dentro del agente para cada flujo (primer lanzamiento, actualización, IAP, suscripciones, reseñas, TestFlight, binario), con cada paso manual del sitio web de App Store Connect marcado en línea. Consulta también USER_GUIDE.md y LIMITATIONS.md.
list_appsLista todas tus apps con nombre, bundle ID, SKU y App ID
app_detailsHistorial de versiones, estado del build, estado de lanzamiento, fechas
review_statusEstado actual de revisión con contexto legible para humanos

Pro (prueba gratuita de 7 días, luego $9/mes)

HerramientaQué hacePor qué importa
list_reviewsReseñas de clientes filtradas por calificación, territorio, orden de clasificaciónVe lo que dicen los usuarios sin abrir el portal
sales_reportDescargas diarias/semanales/mensuales e ingresos por territorioConoce tus números al instante
release_preflightAuditoría previa al envío: metadatos, límites de caracteres, capturas de pantalla, buildsDetecta más del 40% de las causas comunes de rechazo antes de enviar
daily_briefingResumen matutino de todas las apps: estado, reseñas, rechazosUna llamada reemplaza 10 minutos de clics en el portal
release_notesCommits de git desde la última etiqueta, categorizados para escribir "Novedades"Tu agente de IA escribe notas de versión a partir de tus cambios reales
keyword_insightsAnaliza palabras clave contra la competencia de búsqueda de iTunes, calificaciones de dificultadVe qué palabras clave valen la pena de un vistazo
competitor_snapshotConsulta cualquier app: calificaciones, reseñas, versión, precio, notas de versiónInteligencia competitiva sin salir de tu editor
metadata_diffCompara metadatos de versión en vivo vs pendiente en todas las localizacionesVerifica exactamente qué cambió antes de enviar
triage_reviewsToma reseñas recientes y las agrupa en 3 a 5 temas con conteos, categorías de acción y citas, usando MCP SamplingCosto extra cero: el modelo de tu cliente hace la agrupación
draft_review_responseRedacta una respuesta pública a una reseña individual en el idioma de la reseña, mediante Sampling. Solicita tono si tu cliente lo admite. Nunca publica automáticamente.Se respeta la pauta 1.2 de Apple; tú pegas en ASC tú mismo

Control y Publicación (Pro)

Estas herramientas escriben en App Store Connect. Cada acción orientada al exterior (enviar, publicar, subir binario) requiere un confirm: true explícito, así que nada sale de tu máquina por accidente.

HerramientaQué hace
create_versionCrea una nueva versión editable de App Store para tu próximo lanzamiento
update_version_metadataEdita descripción, palabras clave, novedades, texto promocional, URLs, nombre de la app, subtítulo. Valida los límites de caracteres de Apple y rechaza escrituras que excedan el límite
upload_screenshotsSube capturas de pantalla para un tipo de pantalla de dispositivo (reservar, subir, confirmar, con checksum)
list_buildsLista builds recientes y su estado de procesamiento (VALID = listo)
wait_for_buildConsulta hasta que un build termine de procesarse, para que la cadena no necesite una pausa manual
attach_buildAdjunta un build a la versión editable (por defecto el build procesado más reciente)
submit_for_reviewEnvía la versión a App Review (flujo moderno de reviewSubmissions). Se requiere confirm: true
release_versionPublica una versión aprobada en la App Store pública. Se requiere confirm: true
manage_phased_releaseInicia, pausa, reanuda o completa el despliegue gradual de 7 días
list_beta_groupsLista tus grupos beta de TestFlight
assign_build_to_groupEnvía un build a un grupo beta para que los evaluadores puedan instalarlo
invite_beta_testerInvita a un evaluador externo por correo y agrégalo a un grupo
set_app_metadataEstablece categoría primaria/secundaria, copyright, derechos de contenido y cumplimiento de exportación (cifrado) en una sola llamada
set_app_priceEstablece el precio base creando el programa de precios (price_usd: 0 para gratis), auto-igualado en todos los territorios
set_app_availabilityHace la app disponible en todos los territorios de la App Store (o un subconjunto), con inclusión automática para futuros
set_review_contactEstablece el contacto de App Review y la cuenta de demostración opcional en la versión
set_age_ratingEstablece la declaración de clasificación por edades v2 (conjunto completo de descriptores de contenido)
set_privacy_nutritionGuía + enlace profundo para las etiquetas de privacidad de la App (no accesible por API)
set_eu_trader_statusGuía + enlace profundo para el estado de trader de la DSA de la UE (no accesible por API)
create_iapCrea una compra dentro de la app no consumible/consumible con localización, disponibilidad y un precio auto-igualado
create_subscriptionCrea un grupo de suscripciones, suscripción, localización, disponibilidad, precio y prueba gratuita
set_iap_review_screenshotAdjunta la captura de pantalla de App Review a una suscripción o compra dentro de la app
setup_app_store_signingDescarga los perfiles de aprovisionamiento de la App Store de la app y escribe un ExportOptions.plist de firma manual (funciona con una clave de API de privilegio mínimo)
build_and_archiveCompila, archiva y exporta un .ipa firmado mediante xcodebuild (necesita Xcode en tu Mac)
upload_binarySube el .ipa a App Store Connect mediante altool, usando tu clave de API. Se requiere confirm: true

Todo el flujo se encadena: setup_app_store_signing a build_and_archive a upload_binary a wait_for_build (bloquea hasta VALID) a attach_build a update_version_metadata a upload_screenshots a set_app_metadata/set_app_price/set_app_availability/set_age_rating/set_review_contact a release_preflight a submit_for_review a release_version. El comando de barra /asc-ship-release lo gestiona por ti. release_preflight es la fuente única de verdad para "¿se puede enviar esto?": verifica cada campo direccionable por API y termina con una lista personalizada de "Pasos manuales para finalizar" para las pocas cosas que Apple solo permite en el sitio web (agrupación del primer IAP, etiquetas de privacidad de App Privacy, estado de comerciante de la UE).

Obtener Pro | Recupera tu clave de licencia

Qué sigue siendo manual (y por qué)

Un puñado de cosas que Apple no expone a las claves de API. El MCP nunca finge lo contrario: o devuelve los pasos exactos del sitio web más un enlace profundo, o detecta el caso y aborta para que nada quede a medias. Detalle completo en LIMITATIONS.md (y asc_guide topic:limitations):

  • Crear un registro de app / App Group. POST /v1/apps está prohibido para claves de API; hazlo una vez en el sitio web.
  • Etiqueta de privacidad de App Privacy. No está en la API. set_privacy_nutrition devuelve la lista de verificación más un enlace profundo.
  • Estado de comerciante de la UE (DSA). No está en la API. set_eu_trader_status devuelve los pasos. Decisión legal.
  • Primeros IAP/suscripciones de una app. Deben enviarse con la versión en el sitio web; submit_for_review aborta en lugar de dejar la versión huérfana. Los productos posteriores se envían vía API.
  • Creación de certificados / firma en la nube. Las claves de privilegio mínimo no pueden; setup_app_store_signing usa perfiles de firma manual en su lugar.
  • Compilar el binario. Requiere Xcode en tu Mac (build_and_archive lo ejecuta localmente).
  • Publicar una respuesta pública a una reseña. draft_review_response la redacta; tú la pegas en el sitio web.

Cómo funciona Sampling (sin costo adicional)

triage_reviews y draft_review_response usan la primitiva de Sampling del MCP. Cuando llamas a una de estas herramientas, este servidor envía una solicitud sampling/createMessage de vuelta a tu propio cliente MCP. Tu cliente ejecuta el LLM localmente (Claude Desktop usa tu cuenta; Claude Code usa su sesión). Nunca llamamos a Anthropic desde nuestro lado.

Resultado: la agrupación de reseñas y el borrador de respuestas te cuestan exactamente lo que pagarías por cualquier otra solicitud de Claude, ni un centavo más de este servidor.

Si tu cliente MCP aún no admite Sampling, ambas herramientas devuelven un resultado estructurado degraded: true con una explicación clara. Actualiza Claude Desktop o Claude Code a una versión reciente para obtener funcionalidad completa.

Comandos de barra (Prompts)

Escríbelos en Claude Desktop o Claude Code y el agente ejecuta un flujo de trabajo predefinido con múltiples herramientas:

Comando de barraQué hace
/asc-start¿Nuevo aquí? Verifica la conexión, lista tus apps, explica gratis vs Pro en lenguaje sencillo y recomienda tu siguiente paso. No asume conocimientos de App Store Connect.
/asc-weekly-reviewLlama a daily_briefing y luego a list_reviews (baja calificación, últimos 7 días) para cada app, agrupa temas, devuelve un resumen único con lista de acciones de 3 viñetas.
/asc-rejection-auditDado un app_id, llama a release_preflight + metadata_diff + review_status, lee el resultado contra los principales motivos de rechazo de 2026 (directriz 2.3 metadatos, 4.0 diseño, privacidad-IA 5.1.2). Produce secciones de Bloqueante / Posible marca / Seguro.
/asc-release-go-no-goDado un app_id, combina preflight + cola de reseñas + diff de metadatos + principales competidores en la misma categoría. Devuelve un GO o NO-GO directo con tres razones de respaldo.
/asc-ship-releaseDado un app_id, impulsa el lanzamiento completo: localiza o crea la versión editable, empuja metadatos, adjunta la compilación más reciente, sube capturas de pantalla, ejecuta preflight y luego envía. Se detiene para confirmar antes de cada paso orientado al exterior.
/asc-first-appDado un app_id, impulsa el primer 1.0 de una app nueva desde el registro existente hasta el envío, manejando cada restricción de primera vez y deteniéndose en cada paso manual del sitio web (etiqueta de privacidad, estado de comerciante, agrupación del primer IAP).

Estos son Prompts MCP según la especificación. Ningún otro MCP de App Store Connect los incluye.

Skill de Claude (instalación en una línea)

Después de instalar el MCP, ejecuta:

npx @pofky/asc-mcp install-skill

Esto copia un pequeño Skill asc-review-triage a ~/.claude/skills/ para que Claude detecte automáticamente preguntas relacionadas con reseñas ("¿alguna reseña mala últimamente?", "¿qué dicen mis usuarios?", "calificaciones esta semana?") y llame a las herramientas ASC correctas sin que tengas que explicar el flujo de trabajo cada vez.

Funciona en macOS, Linux y Windows. Para eliminarlo: npx @pofky/asc-mcp uninstall-skill.

Ejemplos Reales de Salida

"Ejecuta una verificación previa antes de enviar"

Release Preflight: v2.3

State: PREPARE_FOR_SUBMISSION
Platform: IOS

PASS (with 1 warning)

Warnings (recommended):
- Missing screenshot set for APP_IPHONE_67. May be required.

Passing checks: 4
- [en-US] Description OK (3874/4000 chars).
- [en-US] Keywords OK (96/100 chars).
- 2 screenshot set(s) found across 1 locale(s).
- Build 40 attached and valid.

Total: 4 pass, 1 warn, 0 fail

"Informe matutino"

Daily Briefing - 2026-04-13

2 apps in your account

Tempo: Habit Builder
- Latest: v2.3 (IOS) - Waiting for Review
- Action needed: v2.3 is Waiting for Review
- Reviews (last 3d): 5 new, avg 4.2 stars

NightOwl Weather
- Latest: v1.1 (IOS) - Live
- No new reviews in the last 3 days

"Genera notas de versión desde git"

Git History for Release Notes

Since: v2.2.0
Commits: 8
Character limit: 4000 chars for "What's New"

New Features (3)
- feat: add habit streak calendar view
- feat: dark mode support
- add widget for home screen

Bug Fixes (2)
- fix: notification timing off by 1 hour
- fix: crash on iPad when rotating

Instructions: Write user-facing "What's New" text.
Lead with the most impactful change. Keep under 4000 chars.

¿Por Qué Este Sobre las Alternativas Gratuitas?

Envoltorios de API crudos (gratis)Este servidor
Número de herramientas80 a 98241 herramientas opinadas (lectura + control)
Prompts MCP (comandos de barra)NoSí, 6 flujos de trabajo predefinidos
Sampling MCP (costo cero de LLM en servidor)NoSí, triaje de reseñas + borradores de respuestas
Skill de Claude incluidoNoSí, instalación en una línea
Auditoría previa al envíoNoSí, detecta rechazos antes de que envíes
Informes entre appsNoSí, una llamada, todas las apps
Notas de versión conscientes de gitNoSí, lee el historial de commits de tu proyecto
Resúmenes inteligentes de reseñasNoSí, agrupación de temas, elementos de acción
ConfiguraciónCompilar desde el código fuente (Swift o Node)Un comando, init --write escribe tu configuración
Nivel gratuitoAlgunosSí, 6 herramientas, sin registro. Tres de ellas solo necesitan Node
Prueba la mitad de pagon/d7 días, sin tarjeta, iniciado desde dentro de tu agente

Los envoltorios crudos te dan endpoints. Esto te da respuestas.

Seguridad

Tus credenciales nunca salen de tu máquina:

  • La clave privada .p8 se lee localmente. Los tokens JWT se generan en tu computadora.
  • Las llamadas a la API van directamente desde tu máquina a api.appstoreconnect.apple.com.
  • El servidor de licencias solo ve tu cadena de clave de licencia. Cero datos de Apple, cero credenciales.
  • Totalmente de código abierto. Lee el código.

Compatible Con

Requisitos

  • Node.js 18+
  • Membresía del Programa de Desarrolladores de Apple
  • Clave de API de App Store Connect (rol de Administrador o Administrador de Apps)

Legal

Este proyecto no está afiliado, respaldado ni patrocinado por Apple Inc. Apple, App Store, App Store Connect, TestFlight, iOS y macOS son marcas comerciales de Apple Inc.

Licencia

MIT