AeroCell — Travel eSIM Search
Busca planes eSIM de viaje AeroCell en vivo por destino, fechas de viaje, asignación de datos y presupuesto, con detalles de cobertura y enlaces de pago.
Servidor MCP alojado
npx add-mcp 'https://aerocell.app/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Acceso público, sin credenciales
Endpoint MCP: https://aerocell.app/mcp. Transporte: HTTP Streamable, sin estado. Las tres herramientas de búsqueda y las rutas JSON no requieren cuenta AeroCell, OAuth, clave API, token Bearer ni cookie. Los requisitos de cuenta propios de un cliente de IA pueden seguir aplicándose.
El cliente MCP realiza la inicialización y descubre los esquemas de herramientas a través de tools/list. Las solicitudes POST deben aceptar tanto application/json como text/event-stream. Un GET normal desde un navegador muestra una guía breve; no ejecuta una búsqueda.
Los resultados por país utilizan el catálogo de recomendaciones existente con una caché de cinco minutos. Los resultados regionales obtienen el catálogo de paquetes existente. Las asignaciones y los precios pueden cambiar antes del pago.
Conectar un cliente de IA
Estos ejemplos de configuración se verificaron contra la documentación oficial vinculada el 12 de octubre de 2026. Son ejemplos de cliente no probados. Las pruebas automatizadas locales utilizan el SDK oficial de MCP TypeScript para inicializar, listar herramientas y buscar; una prueba SDK que pase no establece compatibilidad en todas las aplicaciones de IA.
Extensión Codex CLI / IDE
codex mcp add aerocell --url https://aerocell.app/mcp
codex mcp list
Entrada alternativa en ~/.codex/config.toml:
[mcp_servers.aerocell]
url = "https://aerocell.app/mcp"
Documentación oficial de conexión de OpenAI. No probado con AeroCell en este cliente.
Claude Code
claude mcp add --transport http aerocell https://aerocell.app/mcp
claude mcp get aerocell
Documentación oficial de MCP de Claude Code. No probado con AeroCell en este cliente.
VS Code / GitHub Copilot
Guarda esto en .vscode/mcp.json, luego inicia el servidor desde los controles del archivo y habilita sus herramientas en modo agente.
{
"servers": {
"aerocell": {
"type": "http",
"url": "https://aerocell.app/mcp"
}
}
}
Documentación oficial de MCP de VS Code. No probado con AeroCell en este cliente.
Prompt de prueba: "Busca planes para Japón del 15 al 25 de octubre de 2026 con al menos 3 GB, por menos de $25". Para itinerarios, pasa cada código de país e inspecciona la lista de cobertura devuelta.
Tres herramientas MCP de solo lectura
Todas las herramientas devuelven JSON como structuredContent y como contenido de texto. Los ejemplos a continuación muestran el JSON estructurado. Los fallos de herramientas MCP devuelven isError: true con un mensaje útil; las entradas de esquema no válidas también pueden producir errores de protocolo. Ninguna de las herramientas realiza pedidos.
find_esim_plans
Busca planes actuales de un solo país.
| Parámetro | Tipo | Comportamiento |
|---|---|---|
| country_code | string, obligatorio | Código ISO 3166-1 alpha-2 de dos letras, como JP, FR o GB. No distingue mayúsculas. El catálogo también acepta XK. |
| start_date / end_date | string, opcional | Proporciona ambas fechas reales en formato YYYY-MM-DD. Rango inclusivo: 1–366 días. Las fechas limitan la validez; no reservan inventario ni programan la activación. |
| min_data_gb | número ≥ 0 | Asignación mínima. El GB mostrado usa 1024³ bytes y redondeo a un decimal. |
| max_price_usd | número > 0 | Precio total máximo actual del plan en USD. |
| require_trip_coverage | booleano | Por defecto es true con fechas. False permite planes más cortos; inspecciona covers_trip. |
| limit | entero 1–20 | Por defecto 8. Primero el más barato, luego más datos. total_matching cuenta todas las coincidencias antes de este límite. |
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "find_esim_plans",
"arguments": {
"country_code": "JP",
"start_date": "2026-10-15",
"end_date": "2026-10-25",
"min_data_gb": 3,
"max_price_usd": 25,
"limit": 8
}
}
}
Respuesta ilustrativa, no una oferta en vivo. Todos los precios de muestra, nombres de operadores e IDs de EJEMPLO son ficticios. Obtén IDs reales mediante la búsqueda.
{
"country": {
"code": "JP",
"name": "Japan"
},
"trip_days": 11,
"currency": "USD",
"updated_at": "2026-10-12T12:00:00Z",
"total_matching": 1,
"browse_url": "https://aerocell.app/plans",
"note": "Illustrative fixture only. Fetch live prices and real plan IDs before recommending or opening checkout.",
"plans": [
{
"id": "EXAMPLE-JP-5GB",
"name": "Example Japan 5 GB",
"data_gb": 5,
"validity_days": 15,
"price_usd": 9,
"network": "5G",
"operators": [
"Example operator"
],
"covers_trip": true,
"plan_page_url": "https://aerocell.app/plans/japan",
"checkout_url": "https://aerocell.app/checkout/EXAMPLE-JP-5GB"
}
]
}
get_esim_plan
| Parámetro | Tipo | Comportamiento |
|---|---|---|
| country_code | string, obligatorio | El mismo código de país utilizado en find_esim_plans. |
| plan_id | string, obligatorio | ID de esa búsqueda por país, de 1 a 100 letras, dígitos, guiones bajos o guiones. Los IDs regionales no son compatibles con esta herramienta; actualízalos mediante la búsqueda regional. |
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_esim_plan",
"arguments": {
"country_code": "JP",
"plan_id": "EXAMPLE-JP-5GB"
}
}
}
Reemplaza el ID de EJEMPLO con un ID real de búsqueda por país. Respuesta ilustrativa de detalles:
{
"country": {
"code": "JP",
"name": "Japan"
},
"currency": "USD",
"updated_at": "2026-10-12T12:00:00Z",
"plan": {
"id": "EXAMPLE-JP-5GB",
"name": "Example Japan 5 GB",
"data_gb": 5,
"validity_days": 15,
"price_usd": 9,
"network": "5G",
"operators": [
"Example operator"
],
"covers_trip": null,
"plan_page_url": "https://aerocell.app/plans/japan",
"checkout_url": "https://aerocell.app/checkout/EXAMPLE-JP-5GB"
},
"note": "Illustrative fixture only. Fetch live prices and real plan IDs before recommending or opening checkout."
}
find_regional_esim_plans
| Parámetro | Tipo | Comportamiento |
|---|---|---|
| country_codes | string[], condicional | De 1 a 30 códigos distintos para cada país del itinerario. Obligatorio a menos que se proporcione region. Cada país solicitado debe aparecer en la lista de cobertura de cada paquete. |
| region | string, condicional | global, europe, asia_pacific, southeast_asia, latin_america, middle_east_north_africa o gulf. Se puede combinar con country_codes. Obligatorio a menos que se proporcione country_codes. |
| start_date / end_date | string, opcional | Proporciona ambas fechas reales en formato YYYY-MM-DD. Rango inclusivo: 1–366 días. Las fechas limitan la validez; no reservan inventario ni programan la activación. |
| min_data_gb | número ≥ 0 | Asignación mínima. El GB mostrado usa 1024³ bytes y redondeo a un decimal. |
| max_price_usd | número > 0 | Precio total máximo actual del plan en USD. |
| require_trip_coverage | booleano | Por defecto es true con fechas. False permite planes más cortos; inspecciona covers_trip. |
| limit | entero 1–20 | Por defecto 8. Primero el más barato, luego más datos. total_matching cuenta todas las coincidencias antes de este límite. |
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "find_regional_esim_plans",
"arguments": {
"country_codes": [
"FR",
"IT",
"ES"
],
"region": "europe",
"start_date": "2026-10-15",
"end_date": "2026-10-25",
"min_data_gb": 3,
"max_price_usd": 25
}
}
}
Respuesta ilustrativa. country_codes es la lista de cobertura publicada exacta del paquete. Los nombres de región por sí solos no establecen la cobertura del itinerario.
{
"requested_country_codes": [
"FR",
"IT",
"ES"
],
"region": "europe",
"trip_days": 11,
"currency": "USD",
"updated_at": "2026-10-12T12:00:00Z",
"total_matching": 1,
"browse_url": "https://aerocell.app/plans",
"note": "Illustrative fixture only. Fetch live prices and real plan IDs before recommending or opening checkout.",
"plans": [
{
"id": "EXAMPLE-EU-5GB",
"name": "Example Europe 5 GB",
"data_gb": 5,
"validity_days": 15,
"price_usd": 9,
"network": "5G",
"operators": [
"Example operator"
],
"covers_trip": true,
"plan_page_url": "https://aerocell.app/plans/europe",
"checkout_url": "https://aerocell.app/checkout/EXAMPLE-EU-5GB",
"region_code": "EU-3",
"country_codes": [
"FR",
"IT",
"ES"
],
"country_count": 3
}
]
}
Las mismas búsquedas a través de JSON
Las tres rutas utilizan las mismas funciones de búsqueda en vivo que MCP. Envía solicitudes HTTP GET; recibe los mismos esquemas de resultados estructurados. No se requiere inicio de sesión. El acceso desde navegador permite CORS sin credenciales.
curl --get 'https://aerocell.app/api/v1/esim/plans' \
--data-urlencode 'country_code=JP' \
--data-urlencode 'start_date=2026-10-15' \
--data-urlencode 'end_date=2026-10-25' \
--data-urlencode 'min_data_gb=3' \
--data-urlencode 'max_price_usd=25' \
--data-urlencode 'limit=8'
curl --get 'https://aerocell.app/api/v1/esim/regional-plans' \
--data-urlencode 'country_codes=FR,IT,ES' \
--data-urlencode 'region=europe' \
--data-urlencode 'start_date=2026-10-15' \
--data-urlencode 'end_date=2026-10-25' \
--data-urlencode 'min_data_gb=3' \
--data-urlencode 'max_price_usd=25'
Los detalles del plan requieren country_code. Este ejemplo ejecutable necesita jq y utiliza un ID de plan real devuelto:
PLAN_ID=$(curl -fsS 'https://aerocell.app/api/v1/esim/plans?country_code=JP&limit=1' | jq -r '.plans[0].id // empty')
if [ -n "$PLAN_ID" ]; then
curl -fsS "https://aerocell.app/api/v1/esim/plans/$PLAN_ID?country_code=JP"
fi
Para consultas JSON, country_codes es un parámetro separado por comas; los campos numéricos son números decimales; los booleanos son exactamente true o false. Los parámetros desconocidos, vacíos y repetidos se rechazan. Las solicitudes de detalles aceptan solo country_code.
Descarga la especificación pública OpenAPI 3.1 para los esquemas completos de rutas y ejemplos.
Sitios de comparación
Importa GET /api/v1/esim/catalog para listar AeroCell junto a otros proveedores. Este feed JSON público no requiere cuenta ni clave API y permite acceso desde navegador sin credenciales. Devuelve el catálogo completo comprable en una sola respuesta, incluidos planes por país y regionales y todas las duraciones de pase diario de 1 a 90 días. No hay límite de búsqueda ni paginación. Los productos ocultos y las recargas para clientes existentes están excluidos.
curl -fsS -D catalog-headers.txt \
'https://aerocell.app/api/v1/esim/catalog' \
-o aerocell-catalog.json
Consulta cada 15 minutos. Guarda el encabezado ETag de la respuesta y envíalo como If-None-Match en solicitudes posteriores. HTTP 304 significa que tu catálogo anterior sigue siendo actual; HTTP 200 proporciona un reemplazo completo. catalog_version cambia cuando cambia el contenido público del plan. Respeta Retry-After en HTTP 429 o 503, conserva tu importación anterior y reintenta. Un error nunca debe importarse como un catálogo vacío.
curl -sS -D catalog-headers.txt \
-H 'If-None-Match: "<saved-etag>"' \
'https://aerocell.app/api/v1/esim/catalog' \
-o catalog-response.json
# Inspect the HTTP status before replacing your saved catalog.
Respuesta ilustrativa, no una oferta en vivo. El ejemplo contiene un dato ficticio; obtén el endpoint para el catálogo completo en vivo.
{
"schema_version": 1,
"provider": "AeroCell",
"currency": "USD",
"price_basis": "Retail before coupons; daily variants show the total duration price.",
"total_plans": 1,
"plans": [
{
"id": "EXAMPLE-JP-5GB",
"package_code": "EXAMPLE-JP-5GB",
"name": "Illustrative Japan 5GB (not a live offer)",
"country_codes": [
"JP"
],
"data_gb": 5,
"allowance_period": "plan",
"is_unlimited": false,
"allowance_behavior": "total",
"reduced_speed_kbps": null,
"maximum_speed_kbps": null,
"validity_days": 15,
"is_daily": false,
"price_usd": 9,
"operators": [
{
"name": "Example operator",
"network": "5G"
}
],
"plan_page_url": "https://aerocell.app/plans/japan",
"checkout_url": "https://aerocell.app/checkout/EXAMPLE-JP-5GB"
}
],
"catalog_version": "3cedf68183c3a264aa809b94f0ffa23cd572c44831a56586e612918c4df24dc4",
"generated_at": "2026-10-13T00:00:00.000Z",
"source_updated_at": "2026-10-13T00:00:00.000Z",
"refresh_after_seconds": 900
}
Asignaciones, duración y frescura
data_gb es la asignación de alta velocidad para allowance_period, usando 1024³ bytes por GB. Una asignación diaria se repite cada día; no la presentes como una asignación total del viaje. Los planes daily_throttled continúan a la reduced_speed_kbps publicada después de la cuota de ese día. Los planes daily_cutoff se detienen hasta que la cuota se restablece. is_unlimited no significa datos de alta velocidad ilimitados. Los campos de velocidad nulos significan no especificado, no sin límite.
Cada plan tiene un id estable, un country_codes exacto, resúmenes de red del operador y enlaces de compra de AeroCell. Los IDs de pase diario agregan su duración seleccionada a package_code; su price_usd es el total para esa duración, incluidos los descuentos ordinarios por duración y antes de cupones. La URL de pago ya selecciona la duración. El mínimo de escaparate de planes fijos de 1,000,000,000 bytes se conserva; los planes diarios con cuotas de alta velocidad más pequeñas están incluidos.
source_updated_at es la recuperación más antigua del catálogo del proveedor utilizada en la respuesta, no una marca de tiempo de cambio de precio del proveedor. El contenido de la instantánea se actualiza en cinco minutos; los datos del proveedor se almacenan en caché hasta 15 minutos. Los hechos requeridos faltantes o los datos de origen caducados producen HTTP 503 en lugar de un catálogo parcial.
Enlaces de socios registrados
Los socios registrados pueden obtener GET /api/partners/comparison-catalog desde su servidor usando una credencial de feed con ámbito existente: Authorization: Bearer <feed-key>. Esto devuelve los mismos planes con enlaces de compra de socios cuando el seguimiento de referidos está habilitado. tracking_enabled informa si esos enlaces llevan atribución. Los precios no cambian. Mantén la clave en tu servidor; no autoriza compras ni acceso a informes. Contacta con [email protected] para acceso de socios.
Campos de respuesta y errores
price_usd es el precio actual del catálogo; currency es USD. data_gb, validity_days, network y operators describen el plan. Los operadores son un resumen del catálogo de hasta cuatro nombres, no un mapa de red completo por país. Los paquetes regionales incluyen country_codes, country_count y region_code.
covers_trip es nulo sin fechas. Indica solo la longitud de validez. updated_at para resultados por país es la hora de la instantánea del catálogo upstream; para resultados regionales es la hora de recuperación del catálogo, no una marca de tiempo de cambio de precio del proveedor. Los plan_page_url, browse_url y checkout_url devueltos abren AeroCell.
| Parámetro | Tipo | Comportamiento |
|---|---|---|
| 200 | Éxito | Sin coincidencias también es 200: plans: [], total_matching: 0. |
| 400 | Entrada no válida | Falta país, fechas no válidas, códigos duplicados, región no compatible o filtros no válidos. |
| 404 | No encontrado | El plan no está disponible para el país proporcionado, o la ruta de API no existe. |
| 405 | Método no permitido | Las rutas de planes de solo lectura aceptan GET y CORS OPTIONS. |
| 502 | Respuesta de catálogo no válida | El upstream devolvió una respuesta no válida; no se sustituyen precios adivinados. |
| 503 | Catálogo no disponible | Reintenta más tarde; Retry-After sugiere 30 segundos. |
{
"error": {
"code": "invalid_input",
"message": "Provide both start_date and end_date."
}
}
Creado por Mezsondra LTD
AeroCell: eSIMs asequibles es operado por Mezsondra LTD. Contacta con [email protected] para ayuda de integración.
Soporte · Política de privacidad · Términos · Acerca de AeroCell
Los archivos de descubrimiento ayudan a las aplicaciones a comprender estas interfaces; no garantizan que las plataformas de IA descubran, listen o recomienden AeroCell.