Compare travel eSIM plans by country, days and data — live prices and links to buy on esimoa.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. esimoa partner API key (esk_live_...) — adds your affiliate code to buy links. Leave empty to use without a key.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Plan ids from search_esims.
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).
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.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Plan ids from search_esims. |
| lang | string | 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). |
{
"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)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}Get the details of one esimoa (이심모아) eSIM plan by id (from search_esims), including its plan page `url`.
| Argument | Type | Description |
|---|---|---|
| id* | string | Plan id |
| lang | string | 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). |
{
"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)."
}
}
}List countries where esimoa (이심모아) sells eSIMs, with the number of plans and the lowest price (KRW). Optionally filter by name.
| Argument | Type | Description |
|---|---|---|
| lang | string | 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 | string | Country name or ISO code filter |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| days | integer | Trip length in days. Plans covering at least this many days (and not much longer) are returned. |
| lang | string | 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 | string | recommended | price | data | price_per_gb | validity |
| limit | integer | Number of plans (default 5, max 10). |
| five_g | boolean | true = 5G network. Checked within the top 50 matches, so the total is approximate. |
| country | string | Destination country — ISO code (JP) or name in any language (Japan, 일본). |
| data_gb | number |
| Minimum data needed in GB. |
| hotspot | boolean | true = hotspot/tethering supported. Checked within the top 50 matches, so the total is approximate. |
| network | string | local = local carrier network (usually faster); roaming = roaming network. |
| provider | string | Provider code exactly as returned in results (e.g. from a previous search). |
| countries | array | Multi-country trip — only plans that work in ALL of these countries (ISO codes or names). Use instead of country. |
| data_type | string | daily = data allowance resets every day; total = one allowance for the whole trip. |
| unlimited | boolean | Only unlimited-data plans. |
| max_data_gb | number | Maximum data in GB. |
| local_number | boolean | true = only plans that include a local phone number for calls/SMS. |
| max_price_krw | integer | Maximum price in KRW (budget). |
| min_price_krw | integer | Minimum price in KRW. |
| multi_country | boolean | true = multi-country (regional) plans only; false = single-country plans only. |
{
"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."
}
}
}