Serveur MCP

esimoa — travel eSIM comparison

com.esimoa/esim
Commerce et retail Voyage et hôtellerie Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Searches and compares travel eSIM plans by destination, duration, data, coverage, features, and price, with links to purchase.

compare_esims
Compare eSIM plans side by side
Compare 2 to 5 esimoa (이심모아) eSIM plans side by side by id (ids come from search_esims): price, data, validity, price per GB, coverage, network, hotspot and local phone number. Returns which plan has the lowest price, most data, longest validity and lowest price per GB, and each plan page `url` on esimoa.com. Prices are in KRW.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 2, 'description': 'Plan ids from search_esims.'}, 'lang': {'enum': ['ko', 'en', 'ja', 'zh-CN', 'zh-TW', 'es', 'fr', 'ar', 'vi', 'th', 'id', 'it', 'de'], 'type': 'string', 'description': 'Language for country names and the plan page. Match the user’s language (ko, en, ja, zh-CN, zh-TW, es, fr, ar, vi, th, id, it, de).'}}}
Schéma de sortie
{'type': 'object', 'required': ['items', 'highlights'], 'properties': {'lang': {'enum': ['ko', 'en', 'ja', 'zh-CN', 'zh-TW', 'es', 'fr', 'ar', 'vi', 'th', 'id', 'it', 'de'], 'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'priceKrw', 'currency', 'validityDays', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'description': 'Plan page on esimoa.com'}, 'title': {'type': 'string'}, 'hotspot': {'type': ['boolean', 'null']}, 'currency': {'enum': ['KRW'], 'type': 'string'}, 'dataType': {'type': ['string', 'null'], 'description': 'daily | total | null (unknown)'}, 'priceKrw': {'type': 'number'}, 'provider': {'type': 'string'}, 'dataAmount': {'type': 'string'}, 'countryCode': {'type': ['string', 'null']}, 'countryName': {'type': ['string', 'null']}, 'isUnlimited': {'type': 'boolean'}, 'networkType': {'type': ['string', 'null']}, 'dataAmountGB': {'type': ['number', 'null']}, 'validityDays': {'type': 'number'}, 'hasLocalNumber': {'type': 'boolean'}, 'isLocalNetwork': {'type': 'boolean'}, 'isMultiCountry': {'type': 'boolean'}, 'coverageCountries': {'type': 'array', 'items': {'type': 'string'}}}}}, 'notFound': {'type': 'array', 'items': {'type': 'string'}}, 'highlights': {'type': 'object', 'properties': {'mostData': {'type': ['string', 'null']}, 'lowestPrice': {'type': ['string', 'null']}, 'longestValidity': {'type': ['string', 'null']}, 'lowestPricePerGb': {'type': ['string', 'null']}}, 'description': 'Plan id that is best on each measure among the compared plans (null when tied or unknown).'}}}
fetch
Fetch an esimoa eSIM
Fetch one esimoa (이심모아) eSIM plan as a document by id returned from search (ChatGPT deep research format). For plans found with search_esims, use get_esim.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'title', 'text', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object'}}}
get_esim
Get eSIM plan details
Get the details of one esimoa (이심모아) eSIM plan by id (from search_esims), including its plan page `url`.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Plan id'}, 'lang': {'enum': ['ko', 'en', 'ja', 'zh-CN', 'zh-TW', 'es', 'fr', 'ar', 'vi', 'th', 'id', 'it', 'de'], 'type': 'string', 'description': 'Language for country names and the plan page. Match the user’s language (ko, en, ja, zh-CN, zh-TW, es, fr, ar, vi, th, id, it, de).'}}}
Schéma de sortie
{'type': 'object', 'required': ['item'], 'properties': {'item': {'type': 'object', 'required': ['id', 'title', 'priceKrw', 'currency', 'validityDays', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'description': 'Plan page on esimoa.com'}, 'title': {'type': 'string'}, 'hotspot': {'type': ['boolean', 'null']}, 'currency': {'enum': ['KRW'], 'type': 'string'}, 'dataType': {'type': ['string', 'null'], 'description': 'daily | total | null (unknown)'}, 'priceKrw': {'type': 'number'}, 'provider': {'type': 'string'}, 'dataAmount': {'type': 'string'}, 'countryCode': {'type': ['string', 'null']}, 'countryName': {'type': ['string', 'null']}, 'isUnlimited': {'type': 'boolean'}, 'networkType': {'type': ['string', 'null']}, 'dataAmountGB': {'type': ['number', 'null']}, 'validityDays': {'type': 'number'}, 'hasLocalNumber': {'type': 'boolean'}, 'isLocalNetwork': {'type': 'boolean'}, 'isMultiCountry': {'type': 'boolean'}, 'coverageCountries': {'type': 'array', 'items': {'type': 'string'}}}}, 'lang': {'enum': ['ko', 'en', 'ja', 'zh-CN', 'zh-TW', 'es', 'fr', 'ar', 'vi', 'th', 'id', 'it', 'de'], 'type': 'string'}}}
list_countries
List eSIM destinations
List countries where esimoa (이심모아) sells eSIMs, with the number of plans and the lowest price (KRW). Optionally filter by name.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'lang': {'enum': ['ko', 'en', 'ja', 'zh-CN', 'zh-TW', 'es', 'fr', 'ar', 'vi', 'th', 'id', 'it', 'de'], 'type': 'string', 'description': 'Language for country names and the plan page. Match the user’s language (ko, en, ja, zh-CN, zh-TW, es, fr, ar, vi, th, id, it, de).'}, 'query': {'type': 'string', 'description': 'Country name or ISO code filter'}}}
Schéma de sortie
{'type': 'object', 'required': ['items', 'total'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['countryCode', 'name', 'planCount', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'planCount': {'type': 'number'}, 'countryCode': {'type': 'string'}, 'lowestPriceKrw': {'type': ['number', 'null']}}}}, 'total': {'type': 'number'}}}
search
Search esimoa eSIMs
Free-text search of esimoa (이심모아) eSIM plans in the search/fetch format used by ChatGPT deep research, e.g. "Japan 7 days unlimited" or "USA 3 days local phone number". Understands unlimited, daily, local phone number, local network, hotspot and 5G. Returns ids to use with fetch. When you can fill filters, prefer search_esims.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string'}}}
Schéma de sortie
{'type': 'object', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}}}}}}
search_esims
Search & compare travel eSIMs
Search the travel eSIM catalog of esimoa (이심모아) and compare plans for a destination. Filter by trip length, data, unlimited or daily data, local phone number, local or roaming network, multi-country coverage, price, provider, hotspot and 5G. Sort by "recommended" (esimoa’s default order), "price" (lowest first), "data" (most data first), "price_per_gb" or "validity" (longest first). Each result includes its `id` (for get_esim and compare_esims) and a `url` to the plan page on esimoa.com. Prices are in KRW.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'days': {'type': 'integer', 'minimum': 1, 'description': 'Trip length in days. Plans covering at least this many days (and not much longer) are returned.'}, 'lang': {'enum': ['ko', 'en', 'ja', 'zh-CN', 'zh-TW', 'es', 'fr', 'ar', 'vi', 'th', 'id', 'it', 'de'], 'type': 'string', 'description': 'Language for country names and the plan page. Match the user’s language (ko, en, ja, zh-CN, zh-TW, es, fr, ar, vi, th, id, it, de).'}, 'sort': {'enum': ['recommended', 'price', 'data', 'price_per_gb', 'validity'], 'type': 'string', 'description': 'recommended | price | data | price_per_gb | validity'}, 'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'Number of plans (default 5, max 10).'}, 'five_g': {'type': 'boolean', 'description': 'true = 5G network. Checked within the top 50 matches, so the total is approximate.'}, 'country': {'type': 'string', 'description': 'Destination country — ISO code (JP) or name in any language (Japan, 일본).'}, 'data_gb': {'type': 'number', 'minimum': 0, 'description': 'Minimum data needed in GB.'}, 'hotspot': {'type': 'boolean', 'description': 'true = hotspot/tethering supported. Checked within the top 50 matches, so the total is approximate.'}, 'network': {'enum': ['local', 'roaming'], 'type': 'string', 'description': 'local = local carrier network (usually faster); roaming = roaming network.'}, 'provider': {'type': 'string', 'description': 'Provider code exactly as returned in results (e.g. from a previous search).'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'description': 'Multi-country trip — only plans that work in ALL of these countries (ISO codes or names). Use instead of country.'}, 'data_type': {'enum': ['daily', 'total'], 'type': 'string', 'description': 'daily = data allowance resets every day; total = one allowance for the whole trip.'}, 'unlimited': {'type': 'boolean', 'description': 'Only unlimited-data plans.'}, 'max_data_gb': {'type': 'number', 'minimum': 0, 'description': 'Maximum data in GB.'}, 'local_number': {'type': 'boolean', 'description': 'true = only plans that include a local phone number for calls/SMS.'}, 'max_price_krw': {'type': 'integer', 'minimum': 0, 'description': 'Maximum price in KRW (budget).'}, 'min_price_krw': {'type': 'integer', 'minimum': 0, 'description': 'Minimum price in KRW.'}, 'multi_country': {'type': 'boolean', 'description': 'true = multi-country (regional) plans only; false = single-country plans only.'}}}
Schéma de sortie
{'type': 'object', 'required': ['items', 'total'], 'properties': {'lang': {'enum': ['ko', 'en', 'ja', 'zh-CN', 'zh-TW', 'es', 'fr', 'ar', 'vi', 'th', 'id', 'it', 'de'], 'type': 'string'}, 'sort': {'enum': ['recommended', 'price', 'data', 'price_per_gb', 'validity'], 'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'priceKrw', 'currency', 'validityDays', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'description': 'Plan page on esimoa.com'}, 'title': {'type': 'string'}, 'hotspot': {'type': ['boolean', 'null']}, 'currency': {'enum': ['KRW'], 'type': 'string'}, 'dataType': {'type': ['string', 'null'], 'description': 'daily | total | null (unknown)'}, 'priceKrw': {'type': 'number'}, 'provider': {'type': 'string'}, 'dataAmount': {'type': 'string'}, 'countryCode': {'type': ['string', 'null']}, 'countryName': {'type': ['string', 'null']}, 'isUnlimited': {'type': 'boolean'}, 'networkType': {'type': ['string', 'null']}, 'dataAmountGB': {'type': ['number', 'null']}, 'validityDays': {'type': 'number'}, 'hasLocalNumber': {'type': 'boolean'}, 'isLocalNetwork': {'type': 'boolean'}, 'isMultiCountry': {'type': 'boolean'}, 'coverageCountries': {'type': 'array', 'items': {'type': 'string'}}}}}, 'total': {'type': 'number'}, 'totalIsApproximate': {'type': 'boolean'}}}
Ajouté
fetch
3 October 2026 02:40
Ajouté
search
3 October 2026 02:40
Ajouté
list_countries
3 October 2026 02:40
Ajouté
compare_esims
3 October 2026 02:40
Ajouté
get_esim
3 October 2026 02:40
Ajouté
search_esims
3 October 2026 02:40