e-eSIM Catalog
Search travel eSIM data plans worldwide with live prices, plan details and a buy link.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"esim-catalog": {
"url": "https://e-esim.com/wp-json/e-esim/mcp"
}
}
}远程端点
https://e-esim.com/wp-json/e-esim/mcpstreamable-http它能做什么
工具清单
工具(3)
🟢search_esim_plans(destination, type, currency, language)
Find e-eSIM travel eSIM plans for a destination (country or region). Returns the best-value plans with full specifications, prices and a direct link. Use when a user wants mobile data abroad.
输入模式
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"description": "Country or region in ANY language, e.g. \"Thailand\", \"Japon\", \"Europa\". City names are mapped to their country by you first."
},
"type": {
"type": "string",
"enum": [
"daily_surf",
"trip_surf",
"all_you_can_surf",
"any"
],
"description": "Plan type filter. daily_surf = fresh allowance each day; trip_surf = one pool for the trip; all_you_can_surf = unlimited-style. Default any."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 override for quoted prices. Normally derived from language."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja, th. Localizes names/labels and sets the landing-page language and currency."
}
},
"required": [
"destination"
]
}输出模式
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"description": "Resolved destination label (localized)."
},
"slug": {
"type": "string"
},
"covered": {
"type": "boolean"
},
"from_price": {
"type": "number",
"description": "Lowest full plan price in currency."
},
"currency": {
"type": "string"
},
"plans": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"product_id": {
"type": "integer"
},
"name": {
"type": "string",
"description": "Plan name, localized to the requested language where a translation exists."
},
"type": {
"type": "string",
"description": "Daily Surf, Trip Surf or All You Can Surf. Brand names — keep in English."
},
"grade": {
"type": "string",
"description": "All You Can Surf tier qualifier (empty for standard). Present only the returned value."
},
"data_gb": {
"type": "number",
"description": "High-speed data in GB. PER DAY when data_period is per_day (Daily Surf); TOTAL for the whole validity when data_period is total (Trip Surf). 0 = no fixed high-speed cap stated."
},
"data_period": {
"type": "string",
"description": "per_day or total — how data_gb applies."
},
"days": {
"type": "integer",
"description": "Validity in days."
},
"throttle_kbps": {
"type": "integer",
"description": "Speed in kbps after the high-speed allowance is used (for that day on per_day plans; for the rest of the trip on total plans). 0 = no throttle stated in this plan's specification."
},
"fup": {
"type": "string",
"description": "All You Can Surf fair-use policy in plain words (daily full-speed allowance and the still-unlimited reduced speed afterwards). Present it as returned — every AYCS grade has such an allowance; empty for non-AYCS plans."
},
"data_reset": {
"type": "string",
"description": "When the daily allowance refreshes (per_day plans only). Empty when unknown."
},
"validity_clock": {
"type": "string",
"description": "What the days count means for THIS plan: either 24-hour periods from activation, or calendar days ending at a fixed clock (e.g. \"ends 23:59 (UTC+8)\"). State it whenever it is present — a calendar-day plan bought in the evening loses most of its first day. Empty when unknown."
},
"expires_on": {
"type": "string",
"description": "Hard supplier end date (YYYY-MM-DD) after which the plan stops working and unused data is lost, whatever validity the customer picks. Say it plainly when present, and do not recommend a day count that cannot finish before it. Empty for the vast majority of plans."
},
"notice": {
"type": "string",
"description": "Customer-facing caveat for this plan in plain words: a daily cut-off, a coverage exclusion, an activation or verification step. Present it as returned whenever it is non-empty — never omit or soften it. Empty when the plan has no caveat."
},
"carrier": {
"type": "string",
"description": "Local network operator, when specified. NEVER invent one if empty."
},
"network": {
"type": "string",
"description": "Network generation, e.g. 5G/4G. NEVER invent one if empty."
},
"coverage": {
"type": "string",
"description": "Human-readable coverage label (localized)."
},
"price": {
"type": "number",
"description": "FULL fixed price in currency; not per-day or per-GB."
},
"currency": {
"type": "string"
},
"url": {
"type": "string"
},
"family_id": {
"type": "string",
"description": "Plans sharing a family_id are day-length variants of the same package."
},
"review_count": {
"type": "integer"
},
"rating": {
"type": "number"
},
"coverage_countries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Localized country names covered (details tool only, multi-country plans)."
},
"description": {
"type": "string"
}
}
}
},
"all_plans_url": {
"type": "string"
},
"message": {
"type": "string"
}
},
"additionalProperties": true
}🟢get_plan_details(product_id, language)
Full details for one e-eSIM plan by product id: data allowance, validity, network, throttle behaviour, daily reset, full coverage country list, reviews, description and link.
输入模式
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"description": "WooCommerce product id from search_esim_plans."
},
"language": {
"type": "string",
"description": "ISO language of the conversation. Localizes names/labels and sets the landing-page language/currency of the link."
}
},
"required": [
"product_id"
]
}输出模式
{
"type": "object",
"properties": {
"product_id": {
"type": "integer"
},
"name": {
"type": "string",
"description": "Plan name, localized to the requested language where a translation exists."
},
"type": {
"type": "string",
"description": "Daily Surf, Trip Surf or All You Can Surf. Brand names — keep in English."
},
"grade": {
"type": "string",
"description": "All You Can Surf tier qualifier (empty for standard). Present only the returned value."
},
"data_gb": {
"type": "number",
"description": "High-speed data in GB. PER DAY when data_period is per_day (Daily Surf); TOTAL for the whole validity when data_period is total (Trip Surf). 0 = no fixed high-speed cap stated."
},
"data_period": {
"type": "string",
"description": "per_day or total — how data_gb applies."
},
"days": {
"type": "integer",
"description": "Validity in days."
},
"throttle_kbps": {
"type": "integer",
"description": "Speed in kbps after the high-speed allowance is used (for that day on per_day plans; for the rest of the trip on total plans). 0 = no throttle stated in this plan's specification."
},
"fup": {
"type": "string",
"description": "All You Can Surf fair-use policy in plain words (daily full-speed allowance and the still-unlimited reduced speed afterwards). Present it as returned — every AYCS grade has such an allowance; empty for non-AYCS plans."
},
"data_reset": {
"type": "string",
"description": "When the daily allowance refreshes (per_day plans only). Empty when unknown."
},
"validity_clock": {
"type": "string",
"description": "What the days count means for THIS plan: either 24-hour periods from activation, or calendar days ending at a fixed clock (e.g. \"ends 23:59 (UTC+8)\"). State it whenever it is present — a calendar-day plan bought in the evening loses most of its first day. Empty when unknown."
},
"expires_on": {
"type": "string",
"description": "Hard supplier end date (YYYY-MM-DD) after which the plan stops working and unused data is lost, whatever validity the customer picks. Say it plainly when present, and do not recommend a day count that cannot finish before it. Empty for the vast majority of plans."
},
"notice": {
"type": "string",
"description": "Customer-facing caveat for this plan in plain words: a daily cut-off, a coverage exclusion, an activation or verification step. Present it as returned whenever it is non-empty — never omit or soften it. Empty when the plan has no caveat."
},
"carrier": {
"type": "string",
"description": "Local network operator, when specified. NEVER invent one if empty."
},
"network": {
"type": "string",
"description": "Network generation, e.g. 5G/4G. NEVER invent one if empty."
},
"coverage": {
"type": "string",
"description": "Human-readable coverage label (localized)."
},
"price": {
"type": "number",
"description": "FULL fixed price in currency; not per-day or per-GB."
},
"currency": {
"type": "string"
},
"url": {
"type": "string"
},
"family_id": {
"type": "string",
"description": "Plans sharing a family_id are day-length variants of the same package."
},
"review_count": {
"type": "integer"
},
"rating": {
"type": "number"
},
"coverage_countries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Localized country names covered (details tool only, multi-country plans)."
},
"description": {
"type": "string"
}
},
"additionalProperties": true
}🟢start_checkout(product_id, language)
Hand the customer to the e-eSIM shop to buy one plan. Returns buy_url (the product page where they tap Buy now to pay securely — card, Apple Pay, Google Pay) plus the plan name and price. No account needed; the eSIM is emailed right after payment. There is no in-chat order tracking and no discount-code field.
输入模式
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"description": "WooCommerce product id to buy."
},
"language": {
"type": "string",
"description": "ISO language of the conversation. Sets the language/currency of the payment page."
}
},
"required": [
"product_id"
]
}输出模式
{
"type": "object",
"properties": {
"product": {
"type": "string"
},
"price": {
"type": "number",
"description": "Full fixed price in currency; not per-day."
},
"currency": {
"type": "string"
},
"buy_url": {
"type": "string",
"description": "The exact product page to send the customer to. Use verbatim."
},
"app_links": {
"type": "object",
"description": "Optional links to the free e-eSIM app (android/ios) for tracking data usage after setup. Mention only when present."
},
"message": {
"type": "string"
}
},
"additionalProperties": true
}社区
证据