haalaan China eSIM
Server Details
Browse haalaan China, Hong Kong, Macau and Greater China eSIM plans in USD. Get a checkout link.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a distinct role: browsing destinations, searching plans by destination, generating a checkout link, and returning a pre-trip checklist. The only mild overlap is list_destinations vs search_esims, since both surface destinations, but the descriptions make the difference (full catalogue vs plan search) reasonably clear.
All four tools follow a strict snake_case verb_noun pattern (get_*, list_*, search_*). The verb choice matches the operation type consistently.
Four tools is on the lean side but proportionate to a narrow eSIM storefront funnel: browse, search, checkout, prepare. Nothing redundant, though one could argue for a plan-detail tool.
The core purchase flow (discover destinations, find plans, get a payment link) plus a readiness checklist covers the stated purpose well. Minor gaps exist around plan detail/price inspection and post-purchase support, but agents can work through the checkout flow.
Available Tools
4 toolsget_checkout_linkGet checkout linkARead-onlyIdempotentInspect
Use this when the traveller picks a plan. Returns a haalaan.com link; the traveller pays there. Nothing is charged here.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| plan | Yes | |
| policy | Yes | |
| expires | Yes | |
| support | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context beyond that: it discloses that a link is returned, payment happens externally on haalaan.com, and 'Nothing is charged here'—reinforcing and clarifying the financial behavior for the agent.
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 short sentences, front-loaded with the trigger condition, then the outcome and the key reassurance. No filler or repetition; 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?
The tool is simple (one param, output schema exists, safety covered by annotations). The description gives enough to understand when to invoke and what to expect, though it leaves the 'slug' parameter unexplained—a minor gap given the schema pattern.
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 0% for the single required parameter 'slug'. The description implies a plan is selected but never explains what 'slug' represents or how it maps to a plan. With low coverage, the description should compensate but does not.
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 states a specific outcome: returning a haalaan.com link where the traveller pays, and explicitly clarifies no charge occurs here. It distinguishes from sibling tools (readiness, destinations, eSIMs) by focusing on checkout, though it does not literally name 'checkout link' in the description.
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 opening sentence gives a clear triggering condition: 'Use this when the traveller picks a plan.' It does not name alternatives or when-not-to-use cases, but none of the siblings overlap, so the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_travel_readiness_checklistTravel readiness checklistCRead-onlyIdempotentInspect
What to set up before a trip to a destination. Returns only destinations with a checklist.
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description does add one genuinely useful behavioral fact beyond the annotations — that unsupported destinations yield nothing rather than an error or a generic checklist — but it says nothing about empty-result vs. error behavior or matching semantics.
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 short sentences, front-loaded, with no filler or repetition. The efficiency is slightly under-specification rather than tightness, but structurally nothing wastes the agent's attention.
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?
An output schema exists, so return-shape explanation is rightly omitted, but for a one-param lookup the missing destination-format guidance and the absence of any routing versus list_destinations leave real gaps. An agent cannot confidently construct the call or interpret an empty result from this description alone.
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 0% and the single required parameter 'destination' has no type/format guidance in either place — no indication whether it accepts a city name, country, IATA code, or an ID from list_destinations (maxLength 64 hints at a free-text name but is not stated). The description repeats the word 'destination' without adding any semantics, so it fails to compensate for the coverage gap.
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 conveys the resource (a pre-trip setup checklist for a destination) but frames it as a noun phrase ('What to set up before a trip') rather than a clear verb+resource, so the retrieval action is only implied. It is distinguishable from siblings like get_checkout_link and search_esims by topic, but it never explicitly states what the tool does or contrasts itself with list_destinations.
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?
There is no statement of when to use this tool versus alternatives, no prerequisite about knowing a valid destination, and no pointer to list_destinations for discovering supported destinations. The only implied guidance is the trailing note that results are limited to destinations with checklists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_destinationsList destinationsARead-onlyIdempotentInspect
List the destinations haalaan sells eSIMs for right now. The list comes from the live catalogue.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| destinations | Yes | |
| catalogue_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so safety is covered. The description adds value beyond them by stating the data comes from the 'live catalogue' and reflects what is sold 'right now', warning the agent that results are current rather than cached.
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 short sentences with no waste, leading with the verb and resource before adding the freshness caveat. Nothing is repeated from the title or schema.
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 an output schema present, return values need not be explained, and a zero-parameter list tool requires little else. The description supplies the one thing structured fields cannot: that the catalogue is live and current.
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 takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. The description correctly implies a no-argument, full-enumeration call.
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 states a specific verb ('List') and resource ('destinations haalaan sells eSIMs for'), so an agent knows exactly what comes back. It does not explicitly name search_esims as the filtered alternative, so differentiation from siblings is implied rather than stated.
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 phrase 'right now' signals this is the way to enumerate the current catalogue, which implies when to reach for it. There is no explicit when-not guidance or named alternative such as search_esims for narrowed queries, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_esimsSearch eSIMsBRead-onlyIdempotentInspect
Find haalaan travel eSIM plans for a destination (country name, ISO code or region). Returns only destinations currently available.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| need | No | standard | |
| destination | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds one useful behavioral fact — results are limited to currently available destinations — but says nothing about how plans are ranked, whether pricing is included, or what the 'need' tiers mean in practice.
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 short sentences with the core action and the availability caveat front-loaded. No filler or repetition of the title.
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?
An output schema exists so return values needn't be explained, and annotations cover safety. Still, for a search tool where 'need' silently shapes results and 'days' is a required input with a hard cap, the absence of any explanation of those inputs leaves the description under-complete for correct invocation.
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 0%, so the description must carry the load. It clarifies destination formats (country name, ISO code, or region), which the schema does not, but leaves 'days' (1–90 night range) and especially 'need' (light/standard/heavy) completely unexplained, so two of three parameters remain opaque.
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?
States a specific verb and resource (find travel eSIM plans) and names the acceptable destination formats, which is more than the schema says. It does not, however, distinguish itself from siblings like list_destinations or get_checkout_link, so an agent must infer the boundary.
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?
There is no explicit when-to-use or when-not-to-use guidance and no mention of the alternatives (list_destinations, get_checkout_link). The only implicit signal is that this is the search step before checkout, which the agent has to reconstruct from sibling names.
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.
4 tool updates
- First observed
get_checkout_link - First observed
get_travel_readiness_checklist - First observed
list_destinations - First observed
search_esims
Related MCP Connectors
China & Asia travel eSIM specialist. 200+ countries. No-VPN internet in China.
Search & buy travel data eSIMs for 70+ destinations — pay by Stripe link, get the eSIM QR. USD.
Find travel eSIM plans for 200+ destinations at checkout prices and get a one-click buy link.
Find travel eSIM plans, compare prices and create an order the user pays by link.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceSearch 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
- AlicenseAqualityDmaintenanceTravel eSIMs for 193 countries. Stripe + Bitcoin checkout. QR by email in 30s. No API key.422 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables users to find and get recommendations for Chinese SIM card plans through natural language queries. Uses AI to understand user needs and automatically queries the 172 SIM card platform API to recommend the most suitable plans based on requirements like data allowance and monthly cost.16ISC
- 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
Glama MCP Gateway
Add one secure layer between your agents and this server.