Bloomy eSIM
Recommend the right travel eSIM for any trip (200+ countries) and hand the traveler a checkout link.
Should I use this
Quality & Safety
Findings (1)
- LOWin estimate_data
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"esim": {
"url": "https://bloomyesim.com/wp-json/bloomy/v1/mcp"
}
}
}Remote endpoints
https://bloomyesim.com/wp-json/bloomy/v1/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
π’recommend_plan(destination, destinations, days, usage, activities, ...)
Best first call. Give the destination (or all destinations of a multi-country trip) and trip length, plus how the traveler uses data if known. Returns up to 3 options with a reason each: best_fit (cheapest that covers the estimated need), budget (cheaper, below the estimate) and roomier (next size up), each with a link straight to checkout confirmation. If the traveler pastes an itinerary or flight details, extract every country visited and the total days and pass them as destinations + days.
Input Schema
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"description": "Country name in any of en/ja/zh/ko/es/fr (e.g. \"Turkey\", \"γγ«γ³\", \"TΓΌrkiye\") or ISO 3166-1 alpha-2 code (\"TR\"). For one country."
},
"destinations": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "For a trip through several countries: every country visited (names or ISO codes). One eSIM covering all of them is searched. Use instead of destination."
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 180,
"description": "Trip length in days (total for a multi-country trip)."
},
"usage": {
"type": "string",
"enum": [
"light",
"normal",
"heavy"
],
"description": "light = maps and messaging, normal = maps, messaging, web and social (default), heavy = plus video streaming. Use activities instead when the traveler names specific uses."
},
"activities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"maps",
"messaging",
"web",
"music",
"voice",
"social",
"video_call",
"hotspot_light",
"video",
"hotspot_heavy"
]
},
"description": "Specific uses named by the traveler (e.g. hotspot_light for tethering, video_call, video). Overrides usage. Same categories as bloomyesim.com/data-calculator."
},
"wifi": {
"type": "string",
"enum": [
"rarely",
"sometimes",
"often"
],
"description": "How often hotel/cafe Wi-Fi is used. Default sometimes."
},
"min_gb": {
"type": "number",
"description": "Use this instead of usage/activities when the traveler already knows the GB they want."
},
"lang": {
"type": "string",
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"description": "Language for names and for the purchase page. Default en."
}
},
"required": [
"days"
]
}π’search_plans(destination, min_days, min_gb, plan_type, limit, ...)
List plans for a destination, cheapest first, single-country plans before multi-country ones. Filter by trip length, minimum GB, and plan type.
Input Schema
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"description": "Country name (any supported language) or ISO alpha-2 code."
},
"min_days": {
"type": "integer",
"description": "Trip length. Fixed-GB plans shorter than this are skipped; daily plans get the trip total."
},
"min_gb": {
"type": "number",
"description": "Minimum GB (daily allowance for daily plans)."
},
"plan_type": {
"type": "string",
"enum": [
"data",
"unlimited"
],
"description": "\"data\" = fixed GB for the whole period, \"unlimited\" = priced per day."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Default 8."
},
"lang": {
"type": "string",
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"description": "Language for names and for the purchase page. Default en."
}
},
"required": [
"destination"
]
}π’estimate_data(days, activities, wifi)
Same formula as bloomyesim.com/data-calculator: daily MB per activity x days x Wi-Fi factor x 1.15 safety buffer, rounded up.
Input Schema
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 180
},
"activities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"maps",
"messaging",
"web",
"music",
"voice",
"social",
"video_call",
"hotspot_light",
"video",
"hotspot_heavy"
]
}
},
"wifi": {
"type": "string",
"enum": [
"rarely",
"sometimes",
"often"
]
}
},
"required": [
"days",
"activities"
]
}π’list_destinations(query, lang)
Countries with a dedicated plan, with ISO code, localized name, number of plans and the lowest price. Use query to filter.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Part of a country name or code. Omit to list all."
},
"lang": {
"type": "string",
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"description": "Language for names and for the purchase page. Default en."
}
}
}π’get_plan(plan_id, days, lang)
Details of one plan: data, validity, network, 5G, top-up, carriers, price and checkout link.
Input Schema
{
"type": "object",
"properties": {
"plan_id": {
"type": "integer"
},
"days": {
"type": "integer",
"description": "Trip length (sets the day count and total for daily plans)."
},
"lang": {
"type": "string",
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"description": "Language for names and for the purchase page. Default en."
}
},
"required": [
"plan_id"
]
}π’get_purchase_link(plan_id, days, lang)
Link straight to the final confirmation screen for this plan. The traveler pays there themselves; this tool never takes payment. The QR code is emailed and shown in My Page right after payment.
Input Schema
{
"type": "object",
"properties": {
"plan_id": {
"type": "integer"
},
"days": {
"type": "integer",
"description": "Trip length (needed for daily plans)."
},
"lang": {
"type": "string",
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"description": "Language for names and for the purchase page. Default en."
}
},
"required": [
"plan_id"
]
}π’get_setup_guide(device, lang)
Short, accurate setup steps (iPhone or Android), what to check before buying, and links to the full guide, the device checker and troubleshooting.
Input Schema
{
"type": "object",
"properties": {
"device": {
"type": "string",
"enum": [
"iphone",
"android"
]
},
"lang": {
"type": "string",
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"description": "Language for names and for the purchase page. Default en."
}
}
}Community
Evidence