Hungry eSIM
Server Details
Travel eSIMs: unlimited data, pick your days, top up existing eSIMs, card checkout, no API key.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- kangih90/hungry-esim-mcp
- GitHub Stars
- 0
Available Tools
10 toolscheck_destination_coverageCheck destination coverageARead-onlyInspect
Check whether we cover a destination before choosing a plan — answers "do you work in X?", "can I get mobile data / a SIM card in X?", "is X supported?". Returns yes/no, how many plans cover it, and the cheapest unlimited and fixed-data plan as examples. Use search_esim_plans or find_cheapest_plan for the full list.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ISO 3166-1 alpha-2 country code of the destination, e.g. 'JP', 'US' | |
| currency | No | ISO currency for prices, default the store currency |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds valuable context: returns yes/no plus counts and examples, and implies it's a quick check rather than exhaustive. No contradictions. Could mention rate limits or auth scope, but still strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with every part earning its place. Front-loaded with the primary action and examples, followed by referral to siblings. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with 2 parameters and no output schema, the description completely addresses what the agent needs: purpose, return values, and guidance on when to use alternatives. No gaps given the context signals.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions as ISO codes. The description reinforces the country parameter via examples but adds no new details beyond schema. Baseline 3 is appropriate since schema already fully documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb+resource ('Check whether we cover a destination') and provides example queries, making the purpose immediately clear. It also distinguishes from sibling tools by mentioning alternatives for full lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('before choosing a plan') and directs to alternatives ('Use search_esim_plans or find_cheapest_plan for the full list'). Provides concrete example questions for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkoutCreate eSIM checkout linkAInspect
Buy the chosen eSIM data plan: builds a cart and returns a checkout URL the traveller opens to pay by credit card on hungry-esim.com — no crypto wallet and no API key needed. Use once a plan is picked. Does NOT charge — the user completes payment on the website. For unlimited plans, period_num (how many days of data the traveller wants) is required. If the customer is signed in, the order is linked to their account automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of eSIMs, default 1 | |
| No | Guest email — prefills checkout so it skips the details step. Ignored when the customer is signed in (their account email is used). Never determines which account the order belongs to. | ||
| country | Yes | Customer's CHECKOUT country (ISO alpha-2) — sets checkout region/currency and URL locale. NOT the eSIM's coverage country. If the store doesn't serve it, the store's default region is used. | |
| period_num | No | Days for unlimited plans (1-30). Required for unlimited, ignored otherwise. | |
| variant_id | Yes | Variant id from search_esim_plans |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (no readOnly, no destructive), so the description carries the burden. It discloses that the tool does NOT charge, payment happens on the website, and signed-in customers get orders auto-linked to their account—beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, each with a distinct purpose: purpose, timing, no-charge note, unlimited plan condition, and account linking. Front-loaded with the main action, no fluff, though slightly longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core workflow: input (chosen plan), output (checkout URL), payment responsibility, special case for unlimited plans, and account/auth behavior. No output schema exists, but the description adequately fills gaps for a medium-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with rich descriptions (e.g., country as CHECKOUT country, variant_id source). The description reinforces period_num for unlimited plans but adds no new parameter detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Buy') and states it 'builds a cart and returns a checkout URL' for eSIM plans. It clearly differentiates itself from sibling tools like search_esim_plans and get_order_status by focusing on the checkout creation step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit timing with 'Use once a plan is picked' and notes period_num is required for unlimited plans. It also mentions no crypto wallet/API key needed, but does not explicitly name alternative tools or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_cheapest_planFind the cheapest eSIM planARead-onlyInspect
Find the lowest-priced eSIM data plan for a destination — for "what's the cheapest", "budget option", "cheapest SIM / data plan for X". Pass days (trip length) to rank by what the traveller actually pays for the whole trip: unlimited plans are priced per day with a multi-day discount, fixed-data plans by their sticker price, and plans that expire before the trip ends are dropped. Without days it ranks by daily rate. Returns up to 3 options with variant_id for create_checkout.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Trip length in days. When given, plans are ranked by total trip cost. | |
| limit | No | How many options to return, default 3 | |
| country | Yes | ISO 3166-1 alpha-2 country code of the destination, e.g. 'JP', 'US' | |
| currency | No | ISO currency for prices, default the store currency | |
| min_data_gb | No | Minimum data in GB (applies to fixed-data plans; unlimited always qualifies) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides rich behavioral details beyond the readOnlyHint annotation: it explains ranking by total trip cost vs daily rate, dropping plans expiring before trip end, and what 'unlimited always qualifies' means for min_data_gb. This fully informs the agent of the tool's internal logic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded paragraph of four sentences. Each sentence adds value: purpose, usage trigger, ranking behavior conditional on 'days', and output details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters and no output schema, the description covers return structure (up to 3 options with variant_id) and edge cases (expired plans dropped). It could mention default currency behavior, but overall it is quite complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 100%, the description adds meaningful context: how 'days' affects ranking, that 'limit' defaults to 3, and how 'min_data_gb' applies only to fixed-data plans. This goes beyond the raw schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it finds the lowest-priced eSIM data plan for a destination, with specific usage examples like 'what's the cheapest' and 'budget option'. It distinguishes from sibling tools like search_esim_plans by focusing on price minimization and ranking logic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (budget queries) and how the 'days' parameter changes ranking behavior. It does not explicitly state when not to use it or suggest alternatives, but the context is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_statusGet eSIM order statusARead-onlyInspect
Look up an eSIM order and return its status plus the SIM install details: install link, LPA activation code, QR image URL, and ICCID. Use for "where is my eSIM", "resend my QR code", or "did my order go through" when an order number is known. Signed-in customers can look up their own orders by number without an email. Otherwise, a short order number MUST be paired with the email used for the order — the eSIM install details are only returned to the buyer.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email used for the order. Required when 'order' is a short order number and the customer is not signed in. | ||
| order | Yes | Order number (e.g. '32') or Medusa order id (order_01K...) from the confirmation email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, so the description's statements about read behavior are not adding new behavioral transparency. However, the description adds valuable context about authorization constraints (install details returned only to buyer, email required when not signed in) that goes beyond annotations. This is borderline 5 but lacks explicit mention of what happens in error cases (e.g., wrong email).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adds distinct value: first explains the output, second gives typical use cases, third explains authentication requirements. No wasted words—every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 parameters, 100% schema coverage, no output schema, and annotations, the description is largely complete. It explains the input constraints and authorization well. Slight gap: doesn't explain what happens if an invalid order number is provided or how the agent should handle missing install details for orders that haven't shipped yet, but for a simple lookup tool this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so baseline is 3. The description adds significant value by explaining the relationship between parameters: the 'email' is required when 'order' is a short number and customer is not signed in, which clarifies the schema's conditional requirement beyond the basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('look up'), the resource ('eSIM order'), and the specific output ('status plus SIM install details'). It distinguishes the tool from siblings like 'my_orders' by explicitly mentioning the return of install details for a single order given an order number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: it's for queries like 'where is my eSIM', 'resend my QR code', or 'did my order go through'. It also gives clear when-not-to-use guidance by specifying that install details are only returned to the buyer, and explains the required pairing of short order number with email versus signed-in customers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plan_detailsGet eSIM plan detailsARead-onlyInspect
Get everything about one eSIM data plan: which countries the SIM roams in, data volume, validity in days, speed and fair-use throttling, and price. Use after search_esim_plans or find_cheapest_plan when the traveller asks what exactly a plan includes before buying.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | ISO currency, default USD | |
| variant_id | Yes | Variant id from search_esim_plans |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds value by listing typical return fields (countries, data volume, etc.) but does not go into detail about edge cases (e.g., what happens if variant_id is invalid or if a plan has no throttling). For a read operation with good annotations, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences: the first lists what the tool returns, the second gives precise usage context. No redundant words, no padding. Every sentence is essential and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has 2 parameters with full schema coverage, a readOnlyHint annotation, and no output schema, the description covers purpose, usage guidance, and key return fields. It is missing a complete enumeration of all fields (e.g., does it return the plan name? provider?), but the listed fields cover the most critical aspects. Overall, the description is nearly complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both parameters have clear descriptions in the schema (currency: ISO currency default USD; variant_id: from search_esim_plans). The tool description adds no new information about parameters beyond the schema. Baseline score of 3 is appropriate because the schema already carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and clearly identifies the resource as 'one eSIM data plan'. It enumerates the key details returned (countries, data volume, validity, speed, throttling, price), which distinguishes this tool from siblings like search_esim_plans (list/search) and find_cheapest_plan (price comparison). The purpose is unambiguous and well-scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: 'Use after search_esim_plans or find_cheapest_plan when the traveller asks what exactly a plan includes before buying.' This provides clear workflow context. It does not mention when not to use or list alternative tools explicitly, but the workflow implication is strong enough to guide correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_esim_topupsList eSIM top-up optionsARead-onlyInspect
List the data top-up (recharge / refill) packages that can be added to an eSIM the customer already owns. Use when the traveller ran out of mobile data or wants more days on a SIM they already bought — topping up reuses the installed SIM, so no new QR code is needed. Pass the ICCID from my_esims. Returns package_code values to pass to topup_esim.
| Name | Required | Description | Default |
|---|---|---|---|
| iccid | Yes | ICCID of the eSIM, from my_esims |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, which the description aligns with by stating it's a listing operation. The description adds value by noting that topping up reuses the installed SIM and no new QR code is needed, which is helpful behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each serving a purpose: purpose, use case, and integration. No wasted words, front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter and no output schema. The description fully explains the input source, the purpose of the output (package_code), and the relationship to other tools. Nothing missing for a straightforward list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already describes the iccid parameter as 'ICCID of the eSIM, from my_esims'. The tool description repeats the source guidance ('Pass the ICCID from my_esims') but does not add new semantic meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists data top-up packages for an eSIM, using specific verbs and resource. It distinguishes from sibling tools like topup_esim by focusing on listing rather than purchasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use when the traveler needs more data or days, instructs to pass the ICCID from my_esims, and explains that the output package_code values go to topup_esim. This provides clear when-to-use and integration context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_esimsMy eSIMsARead-onlyInspect
List the SIM cards (eSIMs) already on the signed-in Hungry eSIM account: ICCID, status, data package, expiry, and install link. Use for "my eSIM", "my SIM card", "how much data do I have left", or before topping up a SIM the traveller already owns. Requires connecting the Hungry eSIM account (OAuth) — no API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only (readOnlyHint=true). The description adds valuable context beyond annotations by specifying the OAuth authentication requirement and listing the returned data fields. No contradictory information is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences. The first sentence immediately states the core purpose and return fields; the second adds usage guidance and prerequisites. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless, read-only tool, the description covers purpose, usage scenarios, returned fields, and authentication. Minor gaps: it doesn't explicitly state that the result is an array of objects or describe error handling, but these are not critical given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema provides complete coverage (100%). Per the guidelines, 0 parameters earns a baseline of 4. The description does not need to add parameter semantics, and it does not introduce any irrelevant information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists eSIMs on the signed-in account, specifying the exact fields returned (ICCID, status, data package, expiry, install link). It also distinguishes from siblings like topup_esim and list_esim_topups by focusing on existing SIMs rather than topups or orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives concrete use cases ('my eSIM', 'my SIM card', 'how much data do I have left') and advises using it before topping up a SIM. It also mentions the OAuth requirement, providing clear context for when to invoke. However, it does not explicitly state when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_ordersMy ordersARead-onlyInspect
List the signed-in customer's recent eSIM purchases with payment and provisioning status. Use for "what did I buy" or "did my order go through" when no order number is at hand. For the install QR and activation code of one order, use get_order_status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=true, so the description does not need to restate safety. However, the description adds no additional behavioral context such as pagination, data freshness, or limits. With no parameters, the behavior is simple, but a slightly more detailed note on the scope of 'recent' would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, followed by usage guidance and an alternative. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple parameterless tool. It explains what is returned (payment and provisioning status) and when to use it. Minor gaps: no definition of 'recent' (e.g., time window or max count), and no mention of whether failed orders are included. With no output schema, a bit more detail on the returned fields would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100% vacuously. The description does not need to explain parameters. It adds meaning by specifying the implicit filtering to the signed-in customer's orders, which is beyond the empty schema. Baseline 4 for zero parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'signed-in customer's recent eSIM purchases with payment and provisioning status.' It distinguishes from sibling tools like 'get_order_status' (for a specific order) and 'my_esims' (for eSIMs themselves), providing a precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use the tool ('what did I buy' or 'did my order go through' when no order number is at hand) and when not to, pointing to the alternative 'get_order_status' for querying a specific order's install QR and activation code.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_esim_plansSearch eSIM plansARead-onlyInspect
Search prepaid travel eSIM data plans for a destination — the SIM card / mobile data / roaming option for a trip. Use this first for any "data plan for my trip to X" request. Includes unlimited plans where the traveller picks the number of days, and fixed-data plans. Filter by unlimited vs fixed-data, minimum data, and validity. Unlimited plans are quoted per day, fixed-data plans as a one-off total — never compare those two numbers directly. The unlimited total is the per-day price × days, with a volume discount from 7 days, so pass days (trip length) to get that total quoted alongside the daily rate. Price differences between similar plans come from the routing IP country (routing_ip_country) and the supported networks (speed) — quote both when comparing plans. Results are grouped: fixed-data plans first, then unlimited; each group sorted by price. Returns variant_id values to pass to create_checkout.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Trip length in days (1-30, the range an unlimited plan can be bought for). When given, unlimited plans also quote the total for that many days, multi-day discount included. | |
| limit | No | Max results, default 10 | |
| country | Yes | ISO 3166-1 alpha-2 country code, e.g. 'JP', 'US' | |
| currency | No | ISO currency for prices, default USD | |
| unlimited | No | If set, return only unlimited (true) or only fixed-data (false) plans | |
| min_data_gb | No | Minimum data in GB (fixed-data plans) | |
| max_validity_days | No | Maximum validity in days (fixed-data plans) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description richly discloses behavior: the per-day vs one-off pricing distinction, the volume discount up to 7 days, the dependence of price differences on routing_ip_country and networks, the grouping and sorting of results, and the return of variant_id for create_checkout. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long yet every sentence earns its place. It front-loads the core purpose and usage, then methodically covers pricing nuances, filters, pricing drivers, result ordering, and downstream integration. It is well-organized and dense with actionable information without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 params, no output schema, no nested objects), the description covers what an agent needs to call it correctly and interpret results: it explains the return value (variant_id), the grouping and sorting, how to pass parameters for accurate pricing, and how to use results for checkout. It also implies what fields might be useful for comparisons (routing_ip_country, networks). No significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaningful semantic context on top of the schema. For example, it explains that 'days' affects the total quote for unlimited plans and that 'unlimited' and 'min_data_gb' target different plan types. It also clarifies how to interpret prices across plan categories, which the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search prepaid travel eSIM data plans for a destination.' It further clarifies the domain with 'SIM card / mobile data / roaming option for a trip' and positions itself as the entry point ('Use this first'). This clearly distinguishes it from siblings like find_cheapest_plan or get_plan_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use: 'Use this first for any ... request.' It also explains what the tool includes (unlimited vs fixed-data) and how filters work. However, it does not explicitly exclude cases where alternatives like find_cheapest_plan or get_plan_details should be used instead, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topup_esimCreate eSIM top-up checkout linkAInspect
Recharge an eSIM the customer already owns with more data: builds a cart and returns a checkout URL to pay by credit card on hungry-esim.com. The installed SIM keeps working — no new QR code is issued. Use this instead of create_checkout when the traveller already has one of our eSIMs. Does NOT charge — the user completes payment on the website. Get iccid from my_esims and package_code from list_esim_topups.
| Name | Required | Description | Default |
|---|---|---|---|
| iccid | Yes | ICCID of the eSIM to top up, from my_esims | |
| country | No | Customer's CHECKOUT country (ISO alpha-2) — sets checkout region/currency and URL locale. Defaults to US. | |
| package_code | Yes | Top-up package code from list_esim_topups |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses several behavioral details beyond the annotations: the installed SIM keeps working, no new QR code is issued, the tool builds a cart and returns a checkout URL, and the user completes payment on the website. Annotations indicate it's not read-only and not destructive, and the description aligns with and adds context to these hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences plus two brief hints. It is front-loaded with the primary action and immediately adds distinguishing context. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately covers the return value (a checkout URL) and explains the side effects (no new QR, SIM continues working). It also clarifies the payment flow. For a tool of this complexity, the description is complete and leaves no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so each parameter already has a clear explanation. The description echoes the schema for iccid and package_code sources and mentions the default for country. While helpful, it adds little semantic value beyond what the schema already provides, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: recharging an eSIM with more data, building a cart, and returning a checkout URL. It explicitly distinguishes itself from the sibling tool 'create_checkout' by specifying when to use this tool instead, fulfilling the specific verb+resource+scope criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use this tool ('Use this instead of create_checkout when the traveller already has one of our eSIMs'), states what it does not do ('Does NOT charge'), and tells the agent where to obtain the required parameters ('Get iccid from my_esims and package_code from list_esim_topups').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
- Changed
search_esim_plans1 field changed- added
Input schema / properties / daysAdded value: +{ + "description": "Trip length in days (1-30, the range an unlimited plan can be bought for). When given, unlimited plans also quote the total for that many days, multi-day discount included.", + "maximum": 30, + "minimum": 1, + "type": "integer" +}
2 tool updates
- Added
check_destination_coverage - Added
find_cheapest_plan
8 tool updates
- First observed
create_checkout - First observed
get_order_status - First observed
get_plan_details - First observed
list_esim_topups - First observed
my_esims - First observed
my_orders - First observed
search_esim_plans - First observed
topup_esim
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Prepaid travel data eSIMs: checkout links for people, autonomous purchases from a prepaid wallet.
121Search, recommend & buy travel eSIM data plans for 190+ destinations via AI agents.
Search & buy travel data eSIMs for 70+ destinations — pay by Stripe link, get the eSIM QR. USD.
Buy and manage travel eSIM data plans in the conversation. Pay by card (Stripe) or USDC over x402.
Related MCP Servers
- AlicenseAqualityDmaintenanceTravel eSIMs for 193 countries. Stripe + Bitcoin checkout. QR by email in 30s. No API key.499MIT
- AlicenseNot gradedqualityCmaintenanceLets AI agents search travel eSIM plans by destination, get exact current prices, and hand off to a first-party checkout link without the server ever accepting email or payment credentials.MIT
- AlicenseNot gradedqualityBmaintenanceSearch and buy travel eSIMs for 200+ countries, with specialized China plans that deliver uncensored internet without a VPN. Exposes five read-only tools to search plans, check device eSIM compatibility, get plan details, get help, and generate a secure on-site checkout link.MIT
- -licenseNot gradedqualityBmaintenanceLets AI agents search and buy travel eSIMs from ALT eSIM for 200+ destinations, with Stripe payment links and email delivery of QR codes.-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
The tools are mostly distinct: search/check/find for discovery, get/list for details, create/topup for purchase, and order/esim management. The only mild overlap is between check_destination_coverage and find_cheapest_plan, but the description clarifies when to use each. Overall clear boundaries.
All tool names follow a consistent verb_noun pattern: check_destination_coverage, find_cheapest_plan, search_esim_plans, get_plan_details, create_checkout, get_order_status, list_esim_topups, topup_esim, my_esims, my_orders. The 'my_' prefix for account-specific lists is a clear, consistent exception that serves its purpose.
Ten tools is an ideal count for an eSIM travel data server. Each tool covers a necessary step in the user journey: discovery (search, check, find), details (get_plan_details), purchase (create_checkout), post-purchase (get_order_status, my_orders), and management (my_esims, list_esim_topups, topup_esim). Nothing feels redundant or missing.
The tool surface covers the full lifecycle: searching/checking coverage for a destination, getting plan details, purchasing, checking order status, viewing purchased eSIMs, topping up, and listing orders. No obvious gaps—this covers everything a traveller would need from planning to refilling data.