Skip to main content
Glama

Descripción general

asc-mcp es un servidor MCP basado en Swift que conecta un cliente MCP local de macOS con la API de App Store Connect. Expone 502 herramientas en 33 dominios de herramientas de App Store + 2 dominios principales, lo que te permite automatizar flujos de trabajo de lanzamiento de iOS y macOS mediante lenguaje natural.

Se incluyen ejemplos de configuración para Codex, Claude Code, Claude Desktop, Gemini CLI, VS Code con GitHub Copilot, Continue, Cursor y Devin Desktop (antes Windsurf). La configuración del cliente está documentada; la CI de lanzamiento verifica la instalación, la inicialización de MCP y la detección de herramientas en macOS en lugar de lanzar cada cliente de terceros.

¿Eres nuevo? Sigue la Inicio rápido. Las secciones restantes son material de referencia para la configuración avanzada, la selección de herramientas y los colaboradores.

Capacidades principales

  • Lanzamiento y metadatos — versiones, localizaciones, builds, envíos de revisión, despliegue gradual y Xcode Cloud

  • TestFlight y cargas — grupos beta, evaluadores, comentarios, reclutamiento, entrega de builds, procesamiento y cumplimiento de exportación

  • Monetización — compras dentro de la app, suscripciones, precios, disponibilidad, códigos de oferta y ofertas promocionales

  • Marketing — capturas de pantalla, vistas previas, páginas de producto personalizadas, optimización de la página de producto y compras promocionadas

  • Cuentas y aprovisionamiento — múltiples equipos de App Store Connect, usuarios, bundle IDs, dispositivos, certificados, perfiles y capacidades

  • Comentarios y operaciones — reseñas de clientes, webhooks, declaraciones de accesibilidad, analíticas, métricas y diagnósticos

  • Automatización más segura — modo de solo lectura, salvaguardas de confirmación, paginación estricta y guía de recuperación de mutaciones

  • Cobertura de API auditable — un contrato OpenAPI de Apple versionado y comprobaciones de desviación en el momento del lanzamiento

Related MCP server: App Store Connect MCP

Soporte de plataformas

asc-mcp es un servidor stdio local: el cliente MCP lo inicia en el mismo equipo. Que un cliente esté disponible en Linux o Windows no hace que este servidor Swift sea multiplataforma.

Environment

Status

Notes

macOS 15.6+ con Xcode 26.x

Recomendado

La CI de lanzamiento usa específicamente el runner de macOS 15 de GitHub con Xcode 26.2

macOS 14.0-15.5

Solo objetivo de implementación declarado

La compilación y el tiempo de ejecución no están verificados; puede ser necesaria una cadena de herramientas Swift 6.2+ instalada por separado

Linux

Aún no compatible

El trabajo de portabilidad y la CI de Linux no están completos

Windows

No compatible

Las dependencias de código fuente actuales y el transporte stdio de Swift MCP no son compatibles con Windows

Consulta los requisitos del sistema de Xcode de Apple para conocer las versiones de macOS compatibles con cada versión de Xcode.

Las sesiones web y en la nube no heredan automáticamente una configuración local de MCP. Ejecuta el cliente MCP localmente en un Mac compatible, o usa una función del cliente que mantenga explícitamente la ejecución en ese Mac.

Inicio rápido

La configuración recomendada guarda las credenciales de App Store Connect una sola vez en un archivo local privado. Los clientes MCP solo necesitan entonces la ruta al ejecutable asc-mcp.

1. Instalar asc-mcp

brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6
~/.mint/bin/asc-mcp --version

2. Crear una clave de API de App Store Connect

  1. Abre App Store Connect → Usuarios y acceso → Integraciones → Claves de equipo.

  2. Genera una clave con el rol de menos privilegios que cubra tu flujo de trabajo. App Manager o Admin solo se necesitan cuando las operaciones correspondientes lo requieran.

  3. Descarga el archivo .p8. Apple solo permite descargarlo una vez.

  4. Copia el ID de clave y el ID de emisor.

3. Guardar las credenciales localmente

Crea directorios de configuración privados y luego mueve el archivo .p8 descargado a ~/.keys/. Reemplaza la ruta de origen y el nombre del archivo en el segundo comando:

mkdir -p ~/.config/asc-mcp ~/.keys
chmod 700 ~/.config/asc-mcp ~/.keys
mv /path/to/downloaded/AuthKey_XXXXXXXXXX.p8 ~/.keys/

Crea ~/.config/asc-mcp/companies.json:

{
  "companies": [
    {
      "id": "my-company",
      "name": "My Company",
      "key_id": "XXXXXXXXXX",
      "issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "key_path": "/Users/you/.keys/AuthKey_XXXXXXXXXX.p8"
    }
  ]
}

Reemplaza /Users/you con la ruta real de tu directorio personal. Mantén ambos archivos fuera del repositorio y restringe el acceso:

chmod 600 ~/.config/asc-mcp/companies.json
chmod 600 /Users/you/.keys/AuthKey_XXXXXXXXXX.p8

[!CAUTION] Nunca hagas commit de companies.json, una clave .p8 ni credenciales sin procesar a Git. Revoca la clave de App Store Connect inmediatamente si se expone.

4. Conecta tu cliente MCP

Elige un cliente. No necesitas configurar todos los clientes.

Codex

codex mcp add asc-mcp -- ~/.mint/bin/asc-mcp
codex mcp list

Claude Code

claude mcp add \
  --transport stdio \
  --scope user \
  asc-mcp \
  -- ~/.mint/bin/asc-mcp

claude mcp get asc-mcp
claude mcp list

Para Claude Desktop, Gemini CLI, VS Code, Continue, Cursor y Devin Desktop, usa los ejemplos listos para copiar en Configuración del cliente MCP.

5. Pruébalo

Reinicia un cliente GUI después de cambiar su configuración, abre su lista de herramientas MCP y pregunta:

List my App Store Connect apps.

Si la conexión o la solicitud falla, consulta Solución de problemas.

Instalación

Mint en macOS (recomendado)

Mint instala la versión fijada desde el código fuente y mantiene el ejecutable en ~/.mint/bin/asc-mcp.

brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6

Actualiza o reinstala la versión fijada:

mint install zelentsov-dev/asc-mcp@v4.1.6 --force

Los usuarios de versiones estables deben instalar una etiqueta de versión. Instalar main o develop está pensado solo para mantenedores y pruebas previas al lanzamiento.

Compilar desde el código fuente

Usa Xcode 26.x en una versión de macOS compatible, o instala una cadena de herramientas Swift 6.2+ independiente.

git clone https://github.com/zelentsov-dev/asc-mcp.git
cd asc-mcp
swift build -c release

El ejecutable es .build/release/asc-mcp. Si lo copias a otro lugar, copia también el paquete de recursos adyacente:

cp .build/release/asc-mcp /usr/local/bin/asc-mcp
cp -R .build/release/asc-mcp_asc-mcp.bundle /usr/local/bin/

El paquete contiene el contrato de operaciones OpenAPI versionado que usan las comprobaciones de lanzamiento.

Actualizar desde una versión anterior

La versión 4.1 mantiene todos los nombres de herramientas existentes, las entradas obligatorias, las claves de proyección y la forma de los arrays. Las herramientas de lectura de Xcode Cloud ahora rechazan argumentos no documentados y validan los enlaces devueltos, la paginación, el linaje de relaciones y los recursos incluidos de forma más estricta. Los nuevos campos de proyección *Present distinguen los arrays omitidos por Apple de los arrays vacíos presentes, mientras que los campos de array heredados siguen siendo arrays. Las entradas anidadas *_limit recientemente expuestas deben emparejarse con su valor include correspondiente, y las llamadas de continuación deben repetir el ámbito de la solicitud original sin cambios. Las nuevas herramientas de eliminación de productos y flujos de trabajo usan por defecto una vista previa segura y requieren el recibo de vista previa más reciente además de una confirmación exacta del inventario antes de la eliminación permanente.

La versión 4 mantiene todos los nombres de herramientas y filtros de trabajador existentes, pero las llamadas destructivas de Marketing y de adjuntos de reseñas ahora requieren un ID de confirmación exacto antes de cualquier solicitud a Apple:

Herramienta existente

Nueva confirmación requerida

custom_pages_delete

confirm_page_id

ppo_delete_experiment

confirm_experiment_id

promoted_delete

confirm_promoted_purchase_id

review_attachments_delete

confirm_attachment_id

screenshots_delete_set, screenshots_delete_preview_set

confirm_set_id

screenshots_delete

confirm_screenshot_id

screenshots_delete_preview

confirm_preview_id

ppo_update_experiment también requiere confirm_experiment_id cuando se proporciona state. Las llamadas que actualizan solo el nombre o la proporción de tráfico no cambian. Después de un resultado de mutación unknown o committed_unverified, usa la acción de inspección devuelta antes de reintentar.

Elimina los argumentos de nivel superior no documentados de las llamadas existentes de Marketing y de adjuntos de reseñas. La versión 4 rechaza las claves desconocidas antes de cualquier solicitud de red, en lugar de ignorarlas silenciosamente.

Configuración

Credenciales

Se recomienda el archivo ~/.config/asc-mcp/companies.json que se muestra en el Inicio rápido, porque funciona de forma consistente para clientes de terminal y GUI sin duplicar secretos en cada configuración de cliente.

Para varias empresas, añade más entradas:

{
  "companies": [
    {
      "id": "my-company",
      "name": "My Company",
      "key_id": "XXXXXXXXXX",
      "issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "key_path": "/Users/you/.keys/AuthKey_XXXXXXXXXX.p8",
      "vendor_number": "YOUR_VENDOR_NUMBER"
    },
    {
      "id": "client-company",
      "name": "Client Company",
      "key_id": "YYYYYYYYYY",
      "issuer_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
      "key_path": "/Users/you/.keys/AuthKey_YYYYYYYYYY.p8"
    }
  ]
}

vendor_number solo es obligatorio para analytics_sales_report, analytics_financial_report y analytics_app_summary. Encuéntralo en App Store Connect → Ventas y tendencias → Informes.

Las variables de entorno son útiles para la automatización, pero las apps GUI lanzadas desde Finder pueden no heredar el entorno de tu shell. La configuración basada en archivos anterior es más sencilla para la mayoría de los usuarios.

Una sola empresa:

export ASC_KEY_ID=XXXXXXXXXX
export ASC_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export ASC_PRIVATE_KEY_PATH=/Users/you/.keys/AuthKey_XXXXXXXXXX.p8
export ASC_COMPANY_NAME="My Company"                 # optional
export ASC_VENDOR_NUMBER=YOUR_VENDOR_NUMBER          # optional, analytics only

Varias empresas:

export ASC_COMPANY_1_NAME="My Company"
export ASC_COMPANY_1_KEY_ID=XXXXXXXXXX
export ASC_COMPANY_1_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export ASC_COMPANY_1_KEY_PATH=/Users/you/.keys/AuthKey_XXXXXXXXXX.p8

export ASC_COMPANY_2_NAME="Client Company"
export ASC_COMPANY_2_KEY_ID=YYYYYYYYYY
export ASC_COMPANY_2_ISSUER_ID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
export ASC_COMPANY_2_KEY_PATH=/Users/you/.keys/AuthKey_YYYYYYYYYY.p8

La numeración comienza en 1. Cada entrada consecutiva debe proporcionar tanto ASC_COMPANY_{N}_KEY_ID como ASC_COMPANY_{N}_ISSUER_ID; el escaneo se detiene en el primer par que falte.

El servidor resuelve las credenciales en este orden:

  1. --companies /absolute/path/to/companies.json

  2. Parámetro del constructor para la incrustación programática

  3. ASC_MCP_COMPANIES=/absolute/path/to/companies.json

  4. Ubicaciones de archivos de configuración predeterminados, incluido ~/.config/asc-mcp/companies.json

  5. ASC_COMPANY_1_KEY_ID y las demás variables numeradas de varias empresas

  6. ASC_KEY_ID, ASC_ISSUER_ID y una variable de clave privada para una empresa

Configuración del cliente MCP

Todos los ejemplos a continuación asumen una instalación de Mint y el archivo de credenciales companies.json recomendado. Reemplaza /Users/you con la ruta real de tu directorio personal. Los clientes GUI generalmente requieren una ruta absoluta al ejecutable.

Cliente

Ámbito de configuración

Notas

Codex

Configuración de usuario mediante CLI; configuración opcional de proyecto de confianza

Compartida por los clientes locales de Codex en el mismo Mac

Claude Code

Ámbito user, local o project

user es lo más sencillo para una utilidad personal de App Store

Claude Desktop

Configuración de escritorio a nivel de usuario

Reinicia después de editar

Gemini CLI

Ajustes de usuario

Servidor stdio local

VS Code with GitHub Copilot

Perfil de usuario o .vscode/mcp.json

Confirma la confianza del servidor en el primer inicio

Continue

.continue/mcpServers/ del espacio de trabajo

Separado de la configuración nativa de MCP de VS Code

Cursor

mcp.json de usuario o de proyecto

Usa una ruta de comando absoluta

Devin Desktop (antes Windsurf)

Configuración de MCP de usuario

No mantengas más de 100 herramientas activas

Registro CLI recomendado:

codex mcp add asc-mcp -- ~/.mint/bin/asc-mcp
codex mcp list
codex mcp get asc-mcp --json

La misma configuración local de MCP es compartida por los clientes de Codex en ese Mac. La configuración de usuario es $CODEX_HOME/config.toml, que por defecto es ~/.codex/config.toml:

[mcp_servers.asc-mcp]
command = "/Users/you/.mint/bin/asc-mcp"
startup_timeout_sec = 20
tool_timeout_sec = 60
enabled = true

Para una configuración específica de proyecto, coloca la misma tabla en .codex/config.toml; Codex carga la configuración del proyecto solo después de que el proyecto sea de confianza. Si usas credenciales de shell en lugar de companies.json, reenvíalas explícitamente:

env_vars = ["ASC_KEY_ID", "ASC_ISSUER_ID", "ASC_PRIVATE_KEY_PATH"]

Reinicia un cliente GUI después de cambiar la configuración y luego usa su vista de MCP o /mcp para confirmar que asc-mcp está activo. Consulta la documentación oficial de MCP de Codex.

Regístralo una vez para todos los proyectos locales:

claude mcp add \
  --transport stdio \
  --scope user \
  asc-mcp \
  -- ~/.mint/bin/asc-mcp

claude mcp get asc-mcp
claude mcp list

Usa --scope local solo para el proyecto actual o --scope project para crear un .mcp.json compartido. Los servidores de proyecto requieren aprobación de confianza. Nunca coloques credenciales sin procesar de App Store Connect en un .mcp.json confirmado.

Claude almacena las entradas de MCP user y local en ~/.claude.json; .claude/settings.json no es el registro global de MCP. Usa /mcp dentro de Claude Code para inspeccionar o reconectar el servidor. Consulta la documentación oficial de MCP de Claude Code.

Añade el servidor a ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Sal de Claude Desktop y vuelve a abrirlo después de guardar el archivo.

Añade el servidor a ~/.gemini/settings.json:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

El tiempo de espera predeterminado de MCP de Gemini se conserva intencionadamente. Consulta la documentación oficial de MCP de Gemini CLI.

Ejecuta MCP: Add Server desde la paleta de comandos y elige el perfil de usuario para una configuración personal. Para una configuración de espacio de trabajo, crea .vscode/mcp.json:

{
  "servers": {
    "asc-mcp": {
      "type": "stdio",
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Confirma que confías en el servidor local cuando VS Code lo inicie por primera vez. No confirmes rutas específicas de usuario ni secretos en un archivo de espacio de trabajo compartido. Consulta la documentación oficial de MCP de VS Code.

Continue no usa .vscode/mcp.json. Crea .continue/mcpServers/asc-mcp.json en el espacio de trabajo:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Las herramientas de MCP están disponibles en el modo agente de Continue. Consulta la documentación oficial de MCP de Continue.

Usa ~/.cursor/mcp.json para todos los proyectos o .cursor/mcp.json para un solo proyecto:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp"
    }
  }
}

Reinicia o actualiza el servidor de MCP desde los ajustes de Cursor después de editar el archivo. Consulta la documentación oficial de MCP de Cursor.

Añade el servidor a ~/.codeium/windsurf/mcp_config.json. Este ejemplo habilita un subconjunto de lanzamiento de 72 herramientas, por debajo del límite de 100 herramientas de Cascade:

{
  "mcpServers": {
    "asc-mcp": {
      "command": "/Users/you/.mint/bin/asc-mcp",
      "args": [
        "--workers",
        "apps,builds,export_compliance,versions,reviews"
      ]
    }
  }
}

También puedes deshabilitar herramientas individuales en el cliente. Se recomienda el filtrado de workers en el servidor porque mantiene el catálogo activo predecible. Consulta la documentación oficial de MCP de Devin Desktop.

[!IMPORTANT] command debe apuntar al ejecutable real. Los clientes GUI a menudo no heredan alias de shell, cambios de PATH ni variables de entorno. Usa una ruta absoluta y prefiere el archivo de credenciales companies.json predeterminado.

Filtrado de workers

El servidor expone 502 herramientas en 33 dominios de herramientas de App Store + 2 dominios principales. Algunos clientes de MCP imponen un límite de herramientas; Cascade en Devin Desktop permite actualmente 100 herramientas activas. Usa las 35 claves de filtro --workers para habilitar solo los workers que necesites:

# Only load apps, builds, and version lifecycle tools
asc-mcp --workers apps,builds,versions

# App Store release preparation subset (99 tools, including always-on and build sub-workers)
asc-mcp --workers apps,accessibility,builds,export_compliance,versions,app_info,screenshots

# TestFlight review helpers can be loaded separately (49 tools)
asc-mcp --workers apps,builds,beta_app,pre_release

# Monetization focus
asc-mcp --workers apps,iap,subscriptions,pricing,promoted,review_submissions

Los workers company y auth están siempre habilitados independientemente del filtro (proporcionan funcionalidad principal de múltiples cuentas y autenticación).

Cuando builds está habilitado, incluye automáticamente los sub-workers build_processing y build_beta.

Modo de solo lectura

Usa --read-only cuando quieras una inspección segura sin mutaciones de App Store Connect:

asc-mcp --read-only
asc-mcp --read-only --workers apps,builds,reviews,analytics

En este modo, las herramientas de lectura como *_list, *_get, *_search, *_status, *_verify, *_parse, *_triage, auth_*, análisis y métricas siguen disponibles. Las herramientas que pueden crear, actualizar, subir, enviar, publicar, eliminar, revocar, borrar, cancelar o mutar de otro modo App Store Connect se bloquean antes de que se ejecute su manejador de worker. company_switch sigue disponible porque solo cambia el contexto local de la empresa activa.

Contrato OpenAPI y herramientas de desviación

Usa el comando operation-contract para comparar el catálogo real de WorkerManager sin credenciales con el manifiesto semántico y la especificación OpenAPI fijada de Apple App Store Connect. El manifiesto de producción registra el operationId exacto de Apple, el método HTTP, la ruta, los enlaces de entrada con ámbito de invocación, los valores fijos tipados, el linaje de respuestas, los flujos de trabajo locales, el estado de implementación, los alias obsoletos y las operaciones diferidas deliberadamente. El comando no carga credenciales de App Store Connect ni inicia el servidor MCP.

rm -rf /tmp/asc-openapi
mkdir -p /tmp/asc-openapi
curl -L --fail -o /tmp/asc-openapi/spec.zip \
  https://developer.apple.com/sample-code/app-store-connect/app-store-connect-openapi-specification.zip
spec_entry="$(unzip -Z1 /tmp/asc-openapi/spec.zip | grep -E '(^|/)openapi\.oas[^/]*\.json$')"
test "$(echo "$spec_entry" | grep -c .)" -eq 1
unzip -p /tmp/asc-openapi/spec.zip "$spec_entry" > /tmp/asc-openapi/openapi.oas.json

swift run asc-mcp openapi-contract-check \
  --spec /tmp/asc-openapi/openapi.oas.json \
  --json-output /tmp/asc-openapi/operation-contract.json \
  --markdown-output /tmp/asc-openapi/operation-contract.md \
  --strict

El manifiesto está fijado a Apple API 4.4.1 por versión, SHA-256, número de rutas y número de operaciones. Actualmente mapea 476 operaciones de Apple, difiere explícitamente 424 y excluye 363, cubriendo las 1.263 operaciones sin solapamiento. El CI falla cuando el documento de Apple cambia, una operación mapeada se mueve o desaparece, una herramienta o worker público se desvía del manifiesto, un campo de entrada pierde su enlace, el linaje de respuestas se vuelve inválido o una decisión diferida expira. Los parámetros opcionales de Apple no expuestos son advertencias para que sigan visibles en el backlog generado.

El esquema v2 del manifiesto también clasifica cada entrada opcional de consulta y cuerpo de solicitud de Apple como enlazada públicamente, controlada internamente, omitida intencionadamente con una razón revisada, o aún sin clasificar. El optionalInputCoveragePin confirmado registra los totales actuales exactos y un resumen SHA-256 de las identidades y disposiciones de entrada ordenadas; --strict rechaza un pin faltante o cualquier desviación a nivel de recuento o identidad. El pin hace que la remediación por fases sea auditable y segura frente a regresiones, pero no es una afirmación de que cada entrada opcional de Apple ya sea pública. El pin v4.1.3 es 2.905 en total: 1.122 enlazadas, 40 controladas internamente, 1.743 omitidas intencionadamente y 0 sin clasificar. Su SHA-256 de identidad es c975f4e4eebb62ec87864a73fbf72bb8841f644108e54e6ffb25168bcf2a2766.

--strict es la puerta de liberación en el momento del merge y del tag. Cada herramienta declarada como target o broken sigue siendo un error en los informes, y una prueba de regresión fija su estado exacto. La línea base actual no tiene implementaciones target ni broken ni desviación de implementación, por lo que cualquier implementación que abandone asBuilt, cualquier error estructural de contrato o cualquier desviación de cobertura de entradas opcionales bloquea tanto las fusiones como las liberaciones. --structural-strict sigue disponible solo para trabajo local de remediación por fases.

Esta puerta demuestra la identidad de la operación, la propiedad de los campos MCP de nivel superior, las entradas obligatorias de Apple, los valores internos tipados y el linaje de fuente/puntero de las respuestas. La paridad completa de tipos/enumeraciones/rangos de MCP y los esquemas de respuesta tipados completos siguen siendo fases de optimización separadas; el estado de mapeo actual es 469 parciales y 33 obsoletos.

El comando anterior openapi-coverage sigue disponible para el informe de dominio de alto nivel en ASC-OPENAPI-COVERAGE-GENERATED.md. El contrato de operación es la puerta de liberación autoritativa.

Nombres de workers disponibles:

Worker

Prefijo

Herramientas

Descripción

company

company_

3

Gestión de múltiples cuentas

auth

auth_

4

Herramientas de token JWT

apps

apps_

10

Listado de apps, metadatos, localizaciones e IDs de palabras clave de búsqueda

accessibility

accessibility_

6

Declaraciones de accesibilidad de App Store

webhooks

webhooks_

11

Notificaciones webhook, diagnósticos de entrega y ayudantes de receptor

xcode_cloud

xcode_cloud_

42

Productos de Xcode Cloud, gestión de flujos de trabajo, ejecuciones de compilación, artefactos, incidencias, resultados de pruebas y SCM

builds

builds_

4

Gestión de compilaciones

build_uploads

build_uploads_

10

Padres de carga de compilaciones, archivos, transferencias seguras y recuperación

build_processing

builds_get_processing_*, builds_update_encryption, builds_check_readiness

4

Estados de compilación, cifrado

export_compliance

export_compliance_

11

Declaraciones de cifrado, cargas de documentos, vinculación de compilaciones, preparación

build_beta

builds_*_beta_*, herramientas de compilación para evaluadores individuales

11

Localizaciones de TestFlight, notificaciones

versions

app_versions_

17

Ciclo de vida de versiones, clasificaciones por edad, envío, publicación

reviews

reviews_

8

Reseñas de clientes y respuestas

beta_groups

beta_groups_

15

Grupos de TestFlight y criterios de reclutamiento por enlace público

beta_feedback

beta_feedback_

8

Capturas de pantalla de comentarios de TestFlight, envíos de fallos, registros de fallos

beta_testers

beta_testers_

12

Gestión de evaluadores

iap

iap_

59

Compras dentro de la app, metadatos versionados, precios, disponibilidad, códigos de oferta, recursos de revisión

subscriptions

subscriptions_

99

Versiones de suscripciones y grupos, precios, disponibilidad de planes, ofertas, recursos

sandbox

sandbox_

3

Evaluadores de sandbox

beta_app

beta_app_

10

Localizaciones de apps beta y revisión

pre_release

pre_release_

3

Versiones de prelanzamiento

beta_license

beta_license_

3

Acuerdos de licencia beta

provisioning

provisioning_

17

IDs de bundle, dispositivos, certificados

app_info

app_info_

10

Información de la app, categorías, EULA

pricing

pricing_

9

Territorios, precios

users

users_

10

Miembros del equipo, roles

app_events

app_events_

9

Eventos dentro de la app, localizaciones

analytics

analytics_

11

Informes de ventas/financieros, analíticas

screenshots

screenshots_

19

Capturas de pantalla, vistas previas, conjuntos y orden verificado

custom_pages

custom_pages_

17

Páginas de producto personalizadas, versiones, localizaciones y palabras clave de búsqueda

ppo

ppo_

15

Experimentos de optimización de página de producto, tratamientos y localizaciones

promoted

promoted_

10

Compras dentro de la app promocionadas y orden verificado

review_attachments

review_attachments_

4

Adjuntos de revisión de App Store

review_submissions

review_submissions_

9

Envíos genéricos de revisión de App Store y elementos de envío

metrics

metrics_

9

Métricas de rendimiento, diagnósticos y métricas de uso de TestFlight

Tamaño del catálogo de herramientas

Cuando un cliente MCP carga con avidez cada definición de herramienta, la huella aproximada del esquema es:

Configuración

Herramientas

~Tokens

Todos los workers (predeterminado)

502

~60,000

Flujo de trabajo de publicación: apps,builds,export_compliance,versions,reviews

~72

~8,900

Monetización: apps,iap,subscriptions,pricing

184

~21,100

TestFlight: apps,builds,beta_groups,beta_testers

~63

~7,100

Marketing: apps,screenshots,custom_pages,ppo,promoted

~78

~8,800

--workers apps

17

~2,100

Workers más pesados: Subscriptions (99 herramientas), InAppPurchases (59 herramientas), Xcode Cloud (42 herramientas), Screenshots (19 herramientas), Provisioning (17 herramientas).

El coste exacto depende de la serialización del host MCP, el tokenizador y la estrategia de descubrimiento de herramientas. Los clientes modernos pueden diferir los esquemas hasta que se necesiten. Usa --workers cuando el cliente imponga un límite de herramientas o cuando quieras un catálogo más pequeño y centrado.

Herramientas disponibles

502 herramientas organizadas en 33 dominios de herramientas de App Store + 2 dominios principales (usa las 35 claves de filtro --workers — consulta Filtrado de workers):

Tool

Descripción

company_list

Lista todas las empresas configuradas

company_switch

Cambia la empresa activa para operaciones de API

company_current

Obtiene información de la empresa activa actual

Tool

Descripción

auth_generate_token

Genera un token JWT para acceso a la API

auth_validate_token

Valida localmente un JWT estándar de clave de equipo: firma ES256, kid/iss configurados, audiencia de App Store Connect, reclamaciones de emisión y expiración, y la vida útil máxima de 20 minutos. Esto no realiza ninguna llamada a la API de Apple y no demuestra la aceptación del servidor.

auth_refresh_token

Fuerza la actualización del token JWT

auth_token_status

Obtiene el estado de la caché del token JWT

Tool

Descripción

apps_list

Lista todas las aplicaciones con filtrado

apps_get_details

Obtén información detallada de la aplicación

apps_search

Busca aplicaciones por nombre o Bundle ID

apps_list_versions

Lista todas las versiones con sus estados

apps_get_metadata

Obtén metadatos localizados para una versión

apps_list_search_keywords

Lista los ID canónicos de palabras clave de búsqueda de App Store para la segmentación de páginas personalizadas

apps_update_metadata

Actualiza metadatos (novedades, descripción, etc.)

apps_list_localizations

Lista localizaciones con el estado del contenido

apps_delete_localization

Elimina una localización de una versión

Tool

Descripción

accessibility_list

Lista las declaraciones de accesibilidad de una aplicación

accessibility_get

Obtén una declaración de accesibilidad

accessibility_create

Crea una declaración para una familia de dispositivos

accessibility_update

Actualiza los indicadores de compatibilidad o publica una declaración

accessibility_delete

Elimina una declaración

accessibility_list_relationships

Lista los ID de las relaciones de declaración de una aplicación

Tool

Descripción

webhooks_list

Lista los webhooks de una aplicación

webhooks_get

Obtén un webhook por ID

webhooks_create

Crea una configuración de webhook

webhooks_update

Actualiza los campos del webhook

webhooks_delete

Elimina un webhook

webhooks_list_deliveries

Lista los intentos de entrega

webhooks_redeliver

Reentrega una entrega existente

webhooks_ping

Envía un ping de prueba

webhooks_verify_signature

Verifica x-apple-signature contra el cuerpo exacto del payload sin procesar

webhooks_parse_payload

Analiza y normaliza un payload de notificación de webhook sin procesar

webhooks_triage_event

Genera un plan de triaje accionable para eventos de webhook o fallos de entrega

Tool

Descripción

xcode_cloud_products_list

Lista los productos de Xcode Cloud

xcode_cloud_products_get

Obtén un producto de Xcode Cloud

xcode_cloud_products_delete

Previsualiza o elimina permanentemente un producto de Xcode Cloud con salvaguardas de confirmación

xcode_cloud_app_product_get

Obtén el producto de Xcode Cloud asociado a una aplicación

xcode_cloud_product_app_get

Obtén la aplicación asociada a un producto de Xcode Cloud

xcode_cloud_product_primary_repositories_list

Lista los repositorios principales vinculados a un producto

xcode_cloud_product_additional_repositories_list

Lista los repositorios adicionales vinculados a un producto

xcode_cloud_product_workflows_list

Lista los flujos de trabajo de un producto

xcode_cloud_product_build_runs_list

Lista las ejecuciones de compilación de un producto

xcode_cloud_workflows_get

Obtén un flujo de trabajo

xcode_cloud_workflows_create

Crea un flujo de trabajo de Xcode Cloud

xcode_cloud_workflows_update

Actualiza un flujo de trabajo de Xcode Cloud

xcode_cloud_workflows_delete

Previsualiza o elimina permanentemente un flujo de trabajo con salvaguardas de confirmación

xcode_cloud_workflow_repository_get

Obtén el repositorio utilizado por un flujo de trabajo

xcode_cloud_workflow_build_runs_list

Lista las ejecuciones de compilación de un flujo de trabajo

xcode_cloud_build_runs_get

Obtén una ejecución de compilación

xcode_cloud_build_runs_start

Inicia o reconstruye una compilación de Xcode Cloud

xcode_cloud_build_run_actions_list

Lista las acciones de compilación de una ejecución

xcode_cloud_build_run_builds_list

Lista las compilaciones de App Store Connect creadas por una ejecución

xcode_cloud_actions_get

Obtén una acción de compilación

xcode_cloud_action_build_run_get

Obtén la ejecución de compilación propietaria de una acción de compilación

xcode_cloud_action_artifacts_list

Lista los artefactos de una acción

xcode_cloud_action_issues_list

Lista los problemas de una acción

xcode_cloud_action_test_results_list

Lista los resultados de pruebas de una acción

xcode_cloud_artifacts_get

Obtén un artefacto

xcode_cloud_issues_get

Obtén un problema

xcode_cloud_test_results_get

Obtén un resultado de prueba

xcode_cloud_xcode_versions_list

Lista las versiones de Xcode disponibles

xcode_cloud_xcode_versions_get

Obtén una versión de Xcode

xcode_cloud_xcode_version_macos_versions_list

Lista las versiones de macOS compatibles con una versión de Xcode

xcode_cloud_macos_versions_list

Lista las versiones de macOS disponibles

xcode_cloud_macos_versions_get

Obtén una versión de macOS

xcode_cloud_macos_version_xcode_versions_list

Lista las versiones de Xcode compatibles con una versión de macOS

xcode_cloud_scm_providers_list

Lista los proveedores de SCM

xcode_cloud_scm_providers_get

Obtén un proveedor de SCM

xcode_cloud_scm_provider_repositories_list

Lista los repositorios de un proveedor de SCM

xcode_cloud_scm_repositories_list

Lista los repositorios de SCM

xcode_cloud_scm_repositories_get

Obtén un repositorio de SCM

xcode_cloud_scm_repository_git_references_list

Lista las referencias git del repositorio

xcode_cloud_scm_repository_pull_requests_list

Lista las pull requests del repositorio

xcode_cloud_scm_git_references_get

Obtén una referencia git

xcode_cloud_scm_pull_requests_get

Obtén una pull request

Tool

Descripción

beta_feedback_list_crashes

Lista los envíos de comentarios sobre fallos beta

beta_feedback_get_crash

Obtén un envío de comentarios sobre fallos beta

beta_feedback_get_crash_log

Lee el registro de fallos de un envío

beta_feedback_get_crash_log_by_id

Lee el registro de fallos por ID de registro de fallos

beta_feedback_delete_crash

Elimina un envío de comentarios sobre fallos beta

beta_feedback_list_screenshots

Lista los envíos de comentarios con capturas de pantalla beta

beta_feedback_get_screenshot

Obtén un envío de comentarios con captura de pantalla beta

beta_feedback_delete_screenshot

Elimina un envío de comentarios con captura de pantalla beta

Tool

Descripción

builds_list

Lista las compilaciones con sus estados de procesamiento

builds_get

Obtén información detallada de la compilación

builds_find_by_number

Busca una compilación por número de versión

builds_list_for_version

Obtén las compilaciones de una versión específica de la aplicación

Herramienta

Descripción

build_uploads_list

Lista los padres de Build Upload de una app con filtros, campos dispersos, inclusiones y paginación estricta

build_uploads_get

Obtiene un Build Upload con diagnósticos de procesamiento y recursos incluidos opcionales

build_uploads_create

Crea un padre de Build Upload sin repetir un POST ambiguo

build_uploads_delete

Elimina un padre de Build Upload tras la confirmación exacta del ID

build_uploads_list_files

Lista las reservas de archivos bajo un Build Upload con paginación estricta

build_uploads_get_file

Obtiene un archivo de Build Upload y su estado de entrega

build_uploads_reserve_file

Reserva un archivo exacto sin repetir un POST ambiguo

build_uploads_commit_file

Confirma cambios de suma de verificación o estado de carga conservando por separado la omisión y el valor nulo

build_uploads_upload_file

Transfiere una reserva nueva o existente desde una instantánea local inmutable

build_uploads_upload

Ejecuta la creación del padre, la reserva, la transferencia, la confirmación y la conciliación de procesamiento

Las cargas compuestas conservan la misma huella MD5 en minúsculas desde la reserva hasta la recuperación. Las instrucciones explícitas de reanudación y de continuación recuperada llevan expected_md5; la siguiente invocación verifica una nueva instantánea local inmutable contra ella antes de cualquier solicitud o transferencia a Apple. Una reserva existente ya marcada como UPLOAD_COMPLETE o COMPLETE solo se acepta cuando el MD5 de sourceFileChecksums.file de Apple coincide con esa instantánea; la evidencia faltante, no admitida o no coincidente se conserva para inspección sin otra transferencia, confirmación o eliminación. Las operaciones prefirmadas solo se reintentan cuando su método es PUT; las redirecciones, POST y los métodos desconocidos no se repiten. Si una creación ambigua se recupera de forma única, el flujo de trabajo se detiene y devuelve el ID de su recurso para una continuación explícita. Las credenciales de transferencia permanecen redactadas a menos que include_sensitive_details esté explícitamente habilitado en una lectura directa.

Herramienta

Descripción

builds_get_processing_state

Obtiene el estado de procesamiento actual

builds_update_encryption

Establece el cumplimiento de cifrado

builds_get_processing_status

Obtiene el estado de procesamiento detallado

builds_check_readiness

Comprueba si la compilación está lista para el envío

Herramienta

Descripción

export_compliance_list_declarations

Lista las declaraciones de cifrado de una app con paginación estricta

export_compliance_get_declaration

Obtiene una declaración sin los campos obsoletos de URL de documento

export_compliance_create_declaration

Crea un cuestionario de declaración de cifrado para una app

export_compliance_create_document

Reserva, transfiere, confirma y consulta un documento desde una única instantánea local inmutable

export_compliance_get_document

Obtiene metadatos de entrega segura sin URL firmadas, tokens ni cabeceras de carga

export_compliance_update_document

Aplica un parche de bajo nivel de suma de verificación anulable o de estado de carga

export_compliance_upload_document

Reanuda una reserva AWAITING_UPLOAD con los bytes exactos y su recibo MD5 en minúsculas

export_compliance_inspect_document

Inspecciona la presencia del documento y clasifica su estado de entrega

export_compliance_get_build_declaration

Obtiene la declaración actualmente adjunta a una compilación

export_compliance_attach_build_declaration

Adjunta una declaración aprobada y verifica la relación

export_compliance_check_release_readiness

Evalúa únicamente la compuerta de liberación de cumplimiento de exportación de la compilación

Herramienta

Descripción

builds_get_beta_detail

Obtiene la configuración de TestFlight para la compilación

builds_update_beta_detail

Actualiza la configuración de TestFlight

builds_set_beta_localization

Establece Novedades para TestFlight

builds_list_beta_localizations

Lista todas las localizaciones de TestFlight

builds_get_beta_groups

Obtiene los grupos beta de una compilación

builds_get_beta_testers

Obtiene los evaluadores individuales de una compilación

builds_send_beta_notification

Envía una notificación a los evaluadores beta

builds_add_to_beta_groups

Añade la compilación a grupos beta

builds_add_individual_testers

Añade evaluadores individuales a una compilación

builds_remove_individual_testers

Elimina evaluadores individuales de una compilación

builds_list_individual_testers

Lista los evaluadores individuales asignados a una compilación

Herramienta

Descripción

beta_groups_list

Lista los grupos beta de TestFlight de una app

beta_groups_create

Crea un nuevo grupo beta

beta_groups_update

Actualiza la configuración del grupo beta

beta_groups_delete

Elimina un grupo beta

beta_groups_add_testers

Añade evaluadores a un grupo beta

beta_groups_remove_testers

Elimina evaluadores de un grupo beta

beta_groups_list_testers

Lista los evaluadores de un grupo beta

beta_groups_add_builds

Añade compilaciones a un grupo beta

beta_groups_remove_builds

Elimina compilaciones de un grupo beta

beta_groups_get_recruitment_criteria

Obtiene los criterios de reclutamiento de enlace público adjuntos a un grupo beta

beta_groups_create_recruitment_criteria

Crea criterios de reclutamiento por familia de dispositivos y versión del sistema operativo

beta_groups_update_recruitment_criteria

Reemplaza o borra explícitamente los filtros de reclutamiento

beta_groups_delete_recruitment_criteria

Elimina los criterios de reclutamiento tras la confirmación exacta del ID de criterio

beta_groups_list_recruitment_options

Lista las familias de dispositivos y versiones del sistema operativo que Apple permite actualmente

beta_groups_check_recruitment_compatibility

Comprueba si un grupo tiene una compilación compatible con sus criterios

Incluye herramientas de listado/búsqueda/obtención/creación/eliminación de evaluadores, relaciones de app, invitaciones, asignación a grupos beta, asignación de compilaciones y eliminación de la app.

Herramienta

Descripción

app_versions_create

Crea una nueva versión de la app

app_versions_list

Lista versiones con filtrado por estado

app_versions_get

Obtiene información detallada de la versión

app_versions_get_age_rating_declaration

Lee el cuestionario de clasificación por edades de App Info

app_versions_list_territory_age_ratings

Lista las clasificaciones por edades calculadas por territorio

app_versions_update

Actualiza los atributos de la versión

app_versions_attach_build

Adjunta la compilación a la versión

app_versions_submit_for_review

Envía para revisión en App Store

app_versions_cancel_review

Cancela la revisión en curso

app_versions_release

Publica la versión aprobada

app_versions_create_phased_release

Crea un despliegue gradual

app_versions_get_phased_release

Obtiene la información y el ID del despliegue gradual

app_versions_update_phased_release

Pausa/reanuda/completa el despliegue

app_versions_delete_phased_release

Elimina un despliegue gradual planificado elegible con confirmación exacta del ID y seguridad ante resultados desconocidos

app_versions_set_review_details

Establece la información de contacto del revisor

app_versions_update_age_rating

Configura la declaración de clasificación por edades

app_versions_delete

Elimina una versión de app editable con confirmación exacta del ID y seguridad ante resultados desconocidos

Tool

Description

reviews_list

Obtener reseñas con filtrado y paginación

reviews_get

Obtener detalles de una reseña específica

reviews_list_for_version

Obtener reseñas de una versión específica

reviews_stats

Estadísticas agregadas de reseñas

reviews_create_response

Responder a una reseña de cliente

reviews_delete_response

Eliminar una respuesta

reviews_get_response

Obtener la respuesta de una reseña

reviews_summarizations

Resumir temas y valoraciones de reseñas

Tool

Description

iap_list

Listar compras dentro de la app de una aplicación

iap_get

Obtener detalles del IAP

iap_create

Crear un nuevo IAP

iap_update

Actualizar atributos del IAP

iap_delete

Eliminar un IAP

iap_list_localizations

Listar localizaciones del IAP

iap_create_localization

Crear localización del IAP

iap_update_localization

Actualizar localización del IAP

iap_delete_localization

Eliminar localización del IAP

iap_submit_for_review

Enviar el IAP para revisión

iap_list_subscriptions

Listar grupos de suscripción

iap_get_subscription_group

Obtener detalles del grupo de suscripción

iap_inventory

Inventario de IAP apto para IA de una aplicación

iap_list_price_points

Listar puntos de precio según territorio

iap_list_price_point_equalizations

Listar ecualizaciones de puntos de precio

iap_get_price_schedule

Obtener programación de precios

iap_set_price_schedule

Establecer programación de precios

iap_pricing_summary

Resumir precios actuales y programados

iap_prepare_offer_prices

Encontrar candidatos a puntos de precio para ofertas

iap_set_availability

Establecer disponibilidad por territorio

iap_get_availability

Obtener disponibilidad por IAP o ID de disponibilidad

iap_list_available_territories

Listar territorios disponibles

iap_get_promoted_purchase

Obtener estado de compra promocionada

iap_list_offer_codes

Listar códigos de oferta del IAP

iap_get_offer_code

Obtener un código de oferta del IAP

iap_create_offer_code

Crear un código de oferta del IAP

iap_update_offer_code

Actualizar un código de oferta del IAP

iap_deactivate_offer_code

Desactivar un código de oferta del IAP

iap_list_offer_code_prices

Listar precios de oferta según territorio

iap_generate_one_time_codes

Generar códigos de oferta de un solo uso

iap_list_one_time_codes

Listar lotes de códigos de un solo uso

iap_get_one_time_code

Obtener un lote de códigos de un solo uso

iap_update_one_time_code

Actualizar un lote de códigos de un solo uso

iap_deactivate_one_time_code

Desactivar un lote de códigos de un solo uso

iap_get_one_time_code_values

Obtener valores de códigos de un solo uso generados

iap_create_custom_code

Crear un código de oferta personalizado

iap_get_custom_code

Obtener detalles del código personalizado

iap_update_custom_code

Actualizar un código personalizado

iap_deactivate_custom_code

Desactivar un código personalizado

iap_get_review_screenshot

Obtener captura de revisión

iap_upload_review_screenshot

Subir captura de revisión

iap_delete_review_screenshot

Eliminar captura de revisión

iap_upload_image

Subir imagen promocional

iap_get_image

Obtener imagen promocional

iap_delete_image

Eliminar imagen promocional

iap_list_images

Listar imágenes promocionales

iap_create_version

Crear una versión de metadatos del IAP revisable

iap_get_version

Obtener una versión del IAP y su estado de revisión

iap_list_versions

Listar versiones revisables de un IAP

iap_list_version_localizations

Listar localizaciones propiedad de una versión del IAP

iap_create_version_localization

Crear una localización para una versión del IAP

iap_get_version_localization

Obtener una localización de versión del IAP

iap_update_version_localization

Actualizar texto anulable en una localización de versión del IAP

iap_delete_version_localization

Eliminar una localización de versión del IAP

iap_get_version_image

Obtener la imagen singular relacionada con una versión del IAP

iap_list_version_images

Listar todos los recursos de imagen propiedad de una versión del IAP con soporte estricto de continuación

iap_upload_version_image

Subir, confirmar y conciliar una imagen de versión del IAP inmutable

iap_get_version_image_resource

Obtener un recurso de imagen del IAP con ámbito de versión

iap_delete_version_image

Eliminar una imagen del IAP con ámbito de versión

Las herramientas heredadas de localización, envío e imagen con ámbito de producto siguen siendo invocables por compatibilidad. Apple 4.4.1 deja obsoletas iap_list_localizations, iap_create_localization, iap_update_localization, iap_delete_localization, iap_submit_for_review, iap_upload_image, iap_get_image, iap_delete_image y iap_list_images; las respuestas correctas identifican las herramientas de reemplazo versionadas. Para la creación de localizaciones, la subida de imágenes promocionales y el envío para revisión, usa primero iap_list_versions, llama a iap_create_version solo cuando se necesite una nueva versión de metadatos y pasa ese ID de versión a la herramienta versionada posterior. Estas llamadas de compatibilidad nunca crean ni seleccionan una versión automáticamente.

Si Apple puede haber aceptado una creación de versión o de localización de versión, pero la respuesta se pierde o no se puede decodificar, la herramienta devuelve write_outcome: not_confirmed y retrySafe: false con la identidad solicitada y pasos de inspección list/get. Inspecciona antes de reintentar para evitar recursos de metadatos duplicados.

Incluye versiones de metadatos de suscripción y de grupo, localizaciones e imágenes propiedad de la versión, disponibilidad según tipo de plan, precios según territorio, puntos de precio y ecualizaciones ajustadas, lecturas de compras promocionadas, asistentes de inventario/precios, ofertas de introducción, ofertas promocionales, códigos de oferta, códigos de un solo uso/personalizados, ofertas de recuperación y capturas de revisión. Toda la funcionalidad pública anterior de offer_codes_*, intro_offers_*, promo_offers_* y winback_* se expone a través de subscriptions_*.

Apple 4.4.1 también deja obsoletas las herramientas heredadas de localización, imagen y envío con ámbito de producto o grupo. Siguen siendo invocables por compatibilidad, devuelven una guía explícita de reemplazo en caso de éxito y nunca crean ni seleccionan una versión de metadatos automáticamente. Las nuevas integraciones deben usar subscriptions_create_version o subscriptions_create_group_version, las herramientas correspondientes de localización/imagen de versión y el flujo de trabajo genérico review_submissions_*.

Las creaciones de versión de suscripción, versión de grupo, localización y disponibilidad de plan usan el mismo contrato de recuperación no idempotente: una escritura ambigua de Apple devuelve write_outcome: not_confirmed, retrySafe: false, la huella solicitada y una guía de inspección determinista de colección/obtención.

Los siguientes nombres siguen disponibles por compatibilidad, pero Apple 4.4.1 deja obsoleta su recurso heredado subscriptionAvailability en favor de subscriptionPlanAvailabilities según tipo de plan:

Herramienta

Estado de compatibilidad

subscriptions_get_availability

Lectura de disponibilidad heredada obsoleta

subscriptions_set_availability

Escritura de disponibilidad heredada obsoleta

subscriptions_list_available_territories

Listado de territorios heredado obsoleto

subscriptions_inventory

Asistente obsoleto; puede omitir suscripciones más allá de la primera página de relaciones incluida y no es un inventario completo autoritativo

Herramienta

Descripción

sandbox_list

Listar probadores de sandbox

sandbox_update

Actualizar la configuración de los probadores de sandbox

sandbox_clear_purchase_history

Borrar el historial de compras de los probadores de sandbox

Herramienta

Descripción

beta_app_list_localizations

Listar localizaciones de la app beta

beta_app_create_localization

Crear localización de la app beta

beta_app_get_localization

Obtener localización de la app beta

beta_app_update_localization

Actualizar localización de la app beta

beta_app_delete_localization

Eliminar localización de la app beta

beta_app_submit_for_review

Enviar compilación para revisión beta

beta_app_list_submissions

Listar envíos de revisión beta

beta_app_get_submission

Obtener envío de revisión beta

beta_app_get_review_details

Obtener detalles de revisión de la app beta

beta_app_update_review_details

Actualizar detalles de revisión de la app beta

Incluye listado de versiones de prelanzamiento, detalles y compilaciones asociadas.

Incluye listado, obtención y actualización de acuerdos de licencia beta.

Herramienta

Descripción

provisioning_list_bundle_ids

Listar identificadores de bundle registrados

provisioning_get_bundle_id

Obtener detalles del ID de bundle

provisioning_create_bundle_id

Registrar un nuevo identificador de bundle

provisioning_delete_bundle_id

Eliminar un identificador de bundle

provisioning_list_devices

Listar dispositivos registrados

provisioning_register_device

Registrar un nuevo dispositivo (UDID)

provisioning_update_device

Actualizar el nombre o el estado del dispositivo

provisioning_list_certificates

Listar certificados de firma

provisioning_get_certificate

Obtener detalles del certificado

provisioning_revoke_certificate

Revocar un certificado

provisioning_list_profiles

Listar perfiles de aprovisionamiento

provisioning_get_profile

Obtener detalles del perfil

provisioning_delete_profile

Eliminar un perfil

provisioning_create_profile

Crear un perfil de aprovisionamiento

provisioning_list_capabilities

Listar capacidades del ID de bundle

provisioning_enable_capability

Activar una capacidad

provisioning_disable_capability

Desactivar una capacidad

Incluye herramientas de listado/obtención/actualización de información de la app, localizaciones de información de la app y obtención/creación/actualización de EULA.

Incluye herramientas de territorios, disponibilidad, puntos de precio, programaciones de precios y disponibilidad de App Store v2.

Incluye listado/obtención/actualización/eliminación de miembros del equipo, invitaciones, apps visibles y actualizaciones de relaciones de apps visibles.

Incluye CRUD de eventos dentro de la app, además de listado/creación/actualización/eliminación de localizaciones de eventos.

Incluye herramientas de ventas, finanzas, resumen de la app, solicitud de informes de analíticas, informes, instancias, instantáneas y segmentos.

Herramienta

Descripción

screenshots_list_sets

Listar conjuntos de capturas de pantalla

screenshots_get_set

Obtener un conjunto de capturas de pantalla por ID

screenshots_create_set

Crear un conjunto de capturas de pantalla

screenshots_delete_set

Eliminar un conjunto de capturas de pantalla

screenshots_list

Listar capturas de pantalla en un conjunto

screenshots_upload

Subir una captura de pantalla

screenshots_get

Obtener detalles de la captura de pantalla

screenshots_delete

Eliminar una captura de pantalla

screenshots_reorder

Reordenar capturas de pantalla en un conjunto

screenshots_list_preview_sets

Listar conjuntos de vistas previas de la app

screenshots_get_preview_set

Obtener un conjunto de vistas previas de la app por ID

screenshots_create_preview_set

Crear un conjunto de vistas previas

screenshots_delete_preview_set

Eliminar un conjunto de vistas previas

screenshots_upload_preview

Subir una vista previa de la app

screenshots_get_preview

Obtener detalles de la vista previa

screenshots_list_previews

Listar vistas previas en un conjunto de vistas previas

screenshots_reorder_previews

Reordenar cada vista previa en un conjunto con verificación de pertenencia y posterior al vuelo

screenshots_upload_batch

Subir capturas de pantalla en lote

screenshots_delete_preview

Eliminar una vista previa

Herramienta

Descripción

custom_pages_list

Listar páginas de producto personalizadas

custom_pages_get

Obtener detalles de la página

custom_pages_create

Crear una página personalizada

custom_pages_update

Actualizar una página personalizada

custom_pages_delete

Eliminar una página personalizada

custom_pages_list_versions

Listar versiones de la página

custom_pages_get_version

Obtener una versión de la página por ID

custom_pages_create_version

Crear una versión de la página

custom_pages_update_version

Actualizar una versión de la página

custom_pages_list_localizations

Listar localizaciones de la versión

custom_pages_get_localization

Obtener una localización por ID

custom_pages_create_localization

Crear una localización

custom_pages_update_localization

Actualizar una localización

custom_pages_delete_localization

Eliminar una localización tras confirmación exacta

custom_pages_list_search_keywords

Listar IDs de palabras clave de búsqueda asignados a una localización

custom_pages_add_search_keywords

Añadir relaciones de palabras clave de búsqueda

custom_pages_remove_search_keywords

Eliminar relaciones de palabras clave de búsqueda tras confirmación exacta

Herramienta

Descripción

ppo_list_experiments

Listar experimentos de pruebas A/B

ppo_list_version_experiments

Listar experimentos V2 para una versión de App Store

ppo_get_experiment

Obtener detalles del experimento

ppo_create_experiment

Crear un experimento

ppo_update_experiment

Actualizar/iniciar/detener experimento

ppo_delete_experiment

Eliminar un experimento

ppo_list_treatments

Listar tratamientos del experimento

ppo_get_treatment

Obtener un tratamiento por ID

ppo_create_treatment

Crear una variante de tratamiento

ppo_update_treatment

Actualizar una variante de tratamiento

ppo_delete_treatment

Eliminar un tratamiento tras confirmación exacta

ppo_list_treatment_localizations

Listar localizaciones de tratamientos

ppo_get_treatment_localization

Obtener una localización de tratamiento por ID

ppo_create_treatment_localization

Crear localización de tratamiento

ppo_delete_treatment_localization

Eliminar una localización de tratamiento tras confirmación exacta

Tool

Description

promoted_list

Lista de compras promocionadas para una app

promoted_get

Obtener detalles de la promoción

promoted_create

Crear una promoción

promoted_update

Actualizar la visibilidad de la promoción o el estado habilitado

promoted_delete

Eliminar una promoción

promoted_reorder

Reemplazar y verificar el orden completo de compras promocionadas para una app

promoted_upload_image

Obsoleto: devuelve orientación de migración; el endpoint no está presente en Apple OpenAPI 4.4.1 fijado

promoted_get_image

Obsoleto: devuelve orientación de migración; el endpoint no está presente en Apple OpenAPI 4.4.1 fijado

promoted_delete_image

Obsoleto: devuelve orientación de migración; el endpoint no está presente en Apple OpenAPI 4.4.1 fijado

promoted_get_image_for_purchase

Obsoleto: devuelve orientación de migración; la relación no está presente en Apple OpenAPI 4.4.1 fijado

Incluye herramientas de carga, obtención, eliminación y listado de adjuntos de revisión de App Store.

Tool

Description

review_submissions_list

Listar envíos de revisión genéricos para una app

review_submissions_get

Obtener un envío de revisión genérico

review_submissions_create

Crear un envío de revisión genérico para una app y plataforma

review_submissions_list_items

Listar elementos adjuntos a un envío de revisión

review_submissions_add_item

Adjuntar una versión de recurso revisable a un envío

review_submissions_update_item

Actualizar el estado anulable resolved o removed en un elemento enviado

review_submissions_remove_item

Eliminar un elemento de un envío

review_submissions_submit

Enviar todos los elementos adjuntos para revisión

review_submissions_cancel

Cancelar un envío de revisión genérico enviado

review_submissions_add_item informa éxito solo cuando la respuesta de Apple confirma un ID de elemento válido y exactamente el nombre de relación solicitado, el tipo JSON:API y el ID de recurso. Cualquier discrepancia se devuelve como una escritura no confirmada con pasos de recuperación del envío y la lista de elementos.

Tool

Description

metrics_app_perf

Obtener métricas de rendimiento/energía de la app

metrics_build_perf

Obtener métricas de rendimiento de la compilación

metrics_build_diagnostics

Listar diagnósticos para una compilación

metrics_get_diagnostic_logs

Obtener registros de diagnóstico

metrics_app_beta_tester_usage

Obtener métricas de fallos, sesiones y comentarios de TestFlight de la app por probador beta

metrics_group_beta_tester_usage

Obtener métricas de fallos, sesiones y comentarios de TestFlight del grupo beta por probador beta

metrics_group_public_link_usage

Obtener vistas de enlace público, resultados de aceptación, fallos de criterios y proporciones de encuestas

metrics_tester_usage

Obtener métricas de uso de TestFlight de un probador dentro de una app

metrics_build_beta_usage

Obtener métricas de fallos, instalaciones, sesiones, comentarios e invitaciones de TestFlight de la compilación

Ejemplos de uso

Flujo de trabajo de lanzamiento completo

You: "Release version 2.2.0 of my app with build 456"

Claude will:
1. app_versions_create(app_id, platform: "IOS", version_string: "2.2.0")
2. app_versions_attach_build(version_id, build_id)
3. app_versions_set_review_details(version_id, contact_email: "...")
4. app_versions_submit_for_review(version_id)
5. app_versions_create_phased_release(version_id)  # after approval

Distribución de TestFlight

You: "Create a beta group 'External Testers' and distribute the latest build"

Claude will:
1. beta_groups_create(app_id, name: "External Testers")
2. builds_list(app_id, limit: 1)  # find latest
3. builds_set_beta_localization(build_id, locale: "en-US", whats_new: "...")
4. beta_groups_add_testers(group_id, tester_ids: [...])

Gestión de revisiones

You: "Show me all 1-star reviews from the last week and draft responses"

Claude will:
1. reviews_list(app_id, rating: 1, sort: "-createdDate", limit: 50)
2. reviews_create_response(review_id, response_body: "...")  # for each

Flujo de trabajo multiempresa

You: "Switch to ClientCorp and check their latest build status"

Claude will:
1. company_switch(company: "ClientCorp")
2. apps_list(limit: 5)
3. builds_list(app_id, limit: 1)
4. builds_get_processing_state(build_id)

Restricciones de la API

Restricción

Detalles

Sin emojis

Los campos de metadatos (What's New, Description, Keywords) no deben contener caracteres emoji

Estado de versión

App Store Connect valida los estados editables para las actualizaciones de metadatos. Las versiones rechazadas y rechazadas por metadatos se pueden editar para reenviarlas; las versiones publicadas o en revisión pueden ser rechazadas por Apple.

Caducidad de JWT

Los tokens caducan después de 20 minutos: el servidor los actualiza automáticamente

Límites de frecuencia

Apple aplica límites de frecuencia por cuenta (documentación)

Formato de configuración regional

Usa códigos estándar: en-US, ru, de-DE, ja, zh-Hans

Arquitectura

Sources/asc-mcp/
├── EntryPoint.swift                # Entry point, --workers filtering
├── Core/
│   ├── Application.swift           #   MCP server setup & initialization
│   └── ASCError.swift              #   Custom error types
├── Helpers/                        # JSON formatting, pagination, safe helpers
├── Models/                         # API request/response models
│   ├── AppStoreConnect/            #   Apps, versions, localizations
│   ├── Builds/                     #   Builds, beta details, beta groups
│   ├── AppLifecycle/               #   Version lifecycle models
│   ├── InAppPurchases/             #   IAP models
│   ├── Subscriptions/              #   Subscriptions, offer codes, win-back
│   ├── Marketing/                  #   Screenshots, custom pages, PPO, promoted
│   ├── Metrics/                    #   Performance metrics, diagnostics
│   ├── Analytics/                  #   Sales/financial reports
│   ├── Provisioning/               #   Bundle IDs, devices, certificates
│   ├── Shared/                     #   Shared upload/image types
│   └── ...                         #   AppEvents, AppInfo, Pricing, Users
├── Services/
│   ├── HTTPClient.swift            #   Actor-based HTTP with retry logic
│   ├── JWTService.swift            #   ES256 JWT token generation
│   └── CompaniesManager.swift      #   Multi-account management
└── Workers/                        # MCP tool implementations (39 Swift worker classes + MainWorker router)
    ├── MainWorker/WorkerManager    #   Central tool registry & routing
    ├── CompaniesWorker/            #   company_* tools
    ├── AuthWorker/                 #   auth_* tools
    ├── AppsWorker/                 #   apps_* tools
    ├── AccessibilityWorker/        #   accessibility_* tools
    ├── WebhooksWorker/             #   webhooks_* tools
    ├── XcodeCloudWorker/           #   xcode_cloud_* tools
    ├── BuildsWorker/               #   builds_* tools
    ├── BuildUploadsWorker/         #   build_uploads_* tools
    ├── BuildProcessingWorker/      #   builds_*_processing tools
    ├── ExportComplianceWorker/     #   export_compliance_* tools
    ├── BuildBetaDetailsWorker/     #   builds_*_beta_* tools
    ├── AppLifecycleWorker/         #   app_versions_* tools
    ├── ReviewsWorker/              #   reviews_* tools
    ├── BetaGroupsWorker/           #   beta_groups_* tools
    ├── BetaFeedbackWorker/         #   beta_feedback_* tools
    ├── BetaTestersWorker/          #   beta_testers_* tools
    ├── InAppPurchasesWorker/       #   iap_* tools
    ├── SubscriptionsWorker/        #   subscriptions_* tools
    ├── OfferCodesWorker/           #   subscriptions offer-code tools
    ├── IntroductoryOffersWorker/   #   subscriptions intro-offer tools
    ├── PromotionalOffersWorker/    #   subscriptions promotional-offer tools
    ├── WinBackOffersWorker/        #   subscriptions win-back tools
    ├── SandboxTestersWorker/       #   sandbox_* tools
    ├── BetaAppWorker/              #   beta_app_* tools
    ├── PreReleaseVersionsWorker/   #   pre_release_* tools
    ├── BetaLicenseAgreementsWorker/ #  beta_license_* tools
    ├── ProvisioningWorker/         #   provisioning_* tools
    ├── AppInfoWorker/              #   app_info_* tools
    ├── PricingWorker/              #   pricing_* tools
    ├── UsersWorker/                #   users_* tools
    ├── AppEventsWorker/            #   app_events_* tools
    ├── AnalyticsWorker/            #   analytics_* tools
    ├── ScreenshotsWorker/          #   screenshots_* tools
    ├── CustomProductPagesWorker/   #   custom_pages_* tools
    ├── ProductPageOptimizationWorker/ # ppo_* tools
    ├── PromotedPurchasesWorker/    #   promoted_* tools
    ├── ReviewAttachmentsWorker/    #   review_attachments_* tools
    ├── ReviewSubmissionsWorker/    #   review_submissions_* tools
    └── MetricsWorker/              #   metrics_* tools

Principios de diseño

  • Concurrencia estricta de Swift 6 — todos los workers y servicios son Sendable, con un aislamiento de actor adecuado

  • Cliente HTTP basado en actores — seguro para subprocesos con retroceso exponencial y lógica de reintento

  • Enrutamiento basado en prefijos — WorkerManager enruta las llamadas de herramientas por prefijo de nombre (configuración cero)

  • Dependencias mínimas — solo el MCP Swift SDK

Solución de problemas

  1. Ejecuta ~/.mint/bin/asc-mcp --version para verificar la instalación independientemente del cliente MCP.

  2. Verifica que el cliente MCP use la ruta absoluta al ejecutable instalado.

  3. Para Codex, ejecuta codex mcp list y codex mcp get asc-mcp --json.

  4. Para Claude Code, ejecuta claude mcp get asc-mcp y claude mcp list.

  5. Comprueba el archivo companies.json configurado o las variables de entorno utilizadas por tu configuración elegida.

  6. Asegúrate de que cada ruta de clave .p8 sea absoluta y que el archivo exista.

  7. Reinicia los clientes GUI después de cambiar su configuración de MCP y luego inspecciona el registro de salida de MCP del cliente.

  1. Verifica que tu Key ID e Issuer ID coincidan con lo que se muestra en App Store Connect

  2. Asegúrate de que el archivo .p8 sea la descarga original (no modificado)

  3. Comprueba que la clave de API no haya sido revocada

  4. Los tokens JWT se actualizan automáticamente, pero si la clave no es válida, todas las solicitudes fallarán

apps_update_metadata envía el PATCH de metadatos a App Store Connect después de la validación local de texto, configuración regional y URL. Apple decide si el estado actual de la versión es editable. Las versiones rechazadas y rechazadas por metadatos se pueden editar y reenviar; las versiones publicadas, en revisión o bloqueadas de otro modo pueden devolver un error de la API de Apple.

Usa builds_get_processing_status para inspeccionar el estado de procesamiento actual y builds_check_readiness para verificar la disponibilidad de App Store/TestFlight. El procesamiento de compilaciones de Apple suele tardar de 5 a 30 minutos, pero puede ser más largo en horas punta.

El cliente HTTP reintenta automáticamente con retroceso exponencial en respuestas 429. Si alcanzas los límites de forma constante, reduce la frecuencia de las llamadas a la API o usa la paginación con tamaños de página más pequeños.

Obteniendo ayuda

Antes de abrir un informe, busca en los problemas existentes. Si el problema es nuevo, abre un problema e incluye:

  • versión de macOS y método de instalación;

  • nombre y versión del cliente MCP;

  • el valor de --workers seleccionado, si lo hay;

  • el mensaje de error exacto y la solicitud reproducible más pequeña.

Elimina Key IDs, Issuer IDs, claves privadas, URL firmadas, tokens y datos de cuenta de los registros antes de publicarlos. Informa las vulnerabilidades de seguridad de forma privada siguiendo SECURITY.md. Para contribuciones de código, consulta CONTRIBUTING.md.

Desarrollo

Compilación

swift build              # Debug build
swift build -c release   # Release build (optimized)
swift package clean      # Clean build artifacts

Modo de prueba

.build/debug/asc-mcp --test    # Runs built-in integration tests

Añadir una nueva herramienta

  1. Crea el método de manejo en el Worker+Handlers.swift correspondiente

  2. Añade la definición de la herramienta en Worker+ToolDefinitions.swift

  3. Regístrala en el método getTools() del worker

  4. Añade el caso de enrutamiento en el switch handleTool() del worker

  5. El WorkerManager enruta automáticamente por prefijo: no se necesitan cambios allí

Añadir un nuevo worker

  1. Crea el directorio: Workers/MyWorker/

  2. Crea 3 archivos: MyWorker.swift, MyWorker+ToolDefinitions.swift, MyWorker+Handlers.swift

  3. Añade la propiedad del worker y la inicialización en WorkerManager.swift

  4. Añade la regla de enrutamiento en WorkerManager.registerWorkers()

  5. Añade el método auxiliar getMyTools()

Contribuciones

¡Agradecemos las contribuciones! Consulta la Guía de contribución para obtener más detalles.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.

Agradecimientos


Esta es una herramienta no oficial mantenida por la comunidad y no está afiliada ni respaldada por Apple Inc.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that connects Cursor, Claude Desktop, and other MCP clients to the official App Store Connect API—so you can manage iOS/macOS apps, TestFlight, in-app subscriptions, and store metadata via chat or automated tool calls.
    69
    51 npm
    13
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An opinionated MCP server for App Store Connect that provides 13 curated tools, slash-command workflows, and a Claude Skill to manage apps, reviews, sales, and pre-submission audits via natural language.
    41
    263 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A 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.
    6 npm
    MIT