AskMia.app travel eSIM AI agent
Server Details
AI-powered eSIM recommendation agent for travelers. Provides real-time coverage checks, package search by country, and pricing across 190+ destinations via structured tool calls.
Tools available:
list_countries - full list of supported destinations
check_coverage - network operators by country code
search_packages - filter eSIM plans by country
get_package_details - pricing and data specs
create_checkout - generate payment link for purchase
No auth required for search tools. Ideal
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.8/5 across 7 of 7 tools scored. Lowest: 2.9/5.
Each tool has a clearly distinct purpose: coverage, device compatibility, order status, checkout creation, package details, country listing, and package search. No two tools overlap in functionality.
All tool names use snake_case with a consistent verb_noun pattern (check_, create_, get_, list_, search_). No mixing of conventions or vague verbs.
7 tools is well-scoped for a travel eSIM assistant, covering discovery, purchase, and post-purchase status checks without being too few or excessive.
The tool surface covers the complete purchase flow (discovery, checkout, order tracking) but lacks post-activation management tools. Minor gap, but core workflow is fully supported.
Available Tools
7 toolscheck_coverageCInspect
Check network coverage and operators for a country.
| Name | Required | Description | Default |
|---|---|---|---|
| country_code | Yes | ISO country code |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't add context like whether it's read-only, requires authentication, has rate limits, or what the output format might be. This leaves significant gaps in understanding the tool's behavior beyond its basic function.
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, efficient sentence that directly states the tool's purpose without any waste. It's appropriately sized and front-loaded, making it easy to understand quickly.
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 no annotations, no output schema, and the description lacks behavioral context, it's incomplete for effective use. The agent knows what it does but not how to interpret results or handle errors, which is insufficient for a tool that might involve network queries or data retrieval.
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, with the 'country_code' parameter documented as an ISO country code. The description implies this parameter is used for checking coverage but doesn't add meaning beyond what the schema provides, such as examples or constraints, so it meets the baseline for high schema coverage.
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's purpose as checking network coverage and operators for a country, which is specific (verb+resource). However, it doesn't distinguish from sibling tools like 'list_countries' or 'search_packages', which might be related but serve different functions, so it lacks explicit sibling differentiation.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, such as whether it's for pre-purchase validation or general lookup, leaving the agent to infer usage without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_device_compatibilityBInspect
Check if a device supports eSIM. Search by device name, model, or vendor (e.g. 'iPhone 15', 'Samsung Galaxy S24', 'Pixel 8'). Optional - useful to verify before purchase.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Device name, model, or vendor to search (e.g. 'iPhone 15', 'Samsung', 'Pixel') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool is 'optional' and 'useful to verify before purchase', which adds some context about its non-critical nature, but it doesn't disclose key behavioral traits such as whether it's a read-only operation, potential rate limits, error handling, or what the output looks like. For a tool with no annotations, this is a significant gap in 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?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, and the second adds context and examples. It avoids unnecessary details, but the second sentence could be more structured (e.g., separating examples from usage note). Overall, it's efficient with little waste.
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 low complexity (1 parameter, no output schema, no annotations), the description is somewhat complete but has gaps. It covers the purpose and basic usage, but lacks details on behavioral aspects and output, which are important for an agent to invoke it correctly. With no output schema, the description should ideally hint at return values, but it doesn't, making it adequate but not fully comprehensive.
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 description adds minimal meaning beyond the input schema: it reiterates the 'query' parameter with examples ('device name, model, or vendor') and mentions it's for searching, but the schema already has 100% coverage with a clear description. Since the schema does the heavy lifting, the baseline score is 3, as the description doesn't provide additional syntax, constraints, or usage details for the parameter.
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's purpose: 'Check if a device supports eSIM' with the verb 'check' and resource 'device', specifying the functionality. It distinguishes from siblings like 'check_coverage' or 'search_packages' by focusing on device compatibility rather than coverage or packages. However, it doesn't explicitly differentiate from all siblings (e.g., 'get_package_details' might overlap in some contexts), keeping it from a perfect score.
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 implied usage guidance: 'Optional - useful to verify before purchase' suggests a context for use, but it doesn't explicitly state when to use this tool versus alternatives like 'check_coverage' or 'search_packages'. No exclusions or specific scenarios are mentioned, leaving some ambiguity for the agent in selecting among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_order_statusAInspect
Check the status of a Stripe checkout session created by create_checkout. You MUST call this after sending payment_url to the user; never trust the user's word that they paid. Returns ONLY a coarse status (awaiting_payment | paid_processing | delivered | failed) with no personal data. Safe to poll every few seconds while waiting for paid_processing -> delivered. If status is delivered, the eSIM is ready and you may give the user install instructions. If failed, give them the escalation block returned by this tool verbatim.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Stripe checkout session id returned by create_checkout (starts with 'cs_'). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It reveals that the tool returns only a coarse status with no personal data and is safe to poll. While it mentions the escalation block on failure, it does not specify behavior for invalid session IDs or other error conditions, which would push it to a 5.
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, well-structured, and front-loaded with the purpose. Every sentence adds value: scope, mandatory usage rule, output description, polling safety, and action guidance. No redundant or missing elements.
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 low complexity (1 parameter with full schema coverage, no output schema), the description is complete. It covers the return statuses, polling safety, and instructions for what to do with each status, satisfying the agent's needs for correct invocation and handling.
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 the single parameter 'session_id', so the baseline is 3. The description reinforces the parameter's origin (from create_checkout) but does not add new semantic information beyond what the schema already provides.
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's purpose: checking the status of a Stripe checkout session created by 'create_checkout'. It specifies the return value as a coarse status and distinguishes it from sibling tools that deal with coverage, compatibility, or package 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?
The description explicitly states when to use the tool: after sending payment_url, with a strong warning not to trust the user's word. It also provides guidance on polling safety and actions based on the returned status, leaving no ambiguity about when and how to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkoutAInspect
Create a Stripe checkout link for an eSIM package. MANDATORY PRE-STEP: before calling this tool you MUST know the customer's BILLING/RESIDENCE country (not the travel destination). If you don't have it from the conversation, ASK the user explicitly and WAIT for the answer - do NOT guess from destination, IP, or language. Pass it as customer_country (ISO-3166-1 alpha-2). OPTIONAL: pass activation_mode (NOW | FIRST_USE | ON_DEMAND). Default is FIRST_USE - safest for travel booked in advance. IMPORTANT: Worldwide/global plans do NOT accept FIRST_USE; if you pass it the tool returns error 'invalid_activation_mode' - ask the user whether they want NOW or ON_DEMAND and retry. MANDATORY POST-STEP: relay the returned tax_note and activation_note verbatim before they click pay. AFTER sending payment_url you MUST STOP, then call check_order_status with the returned session_id; do not assume the eSIM is ready based on the user saying 'I paid'. Open access (2/min per IP), or pass a Bearer API key for 60/min.
| Name | Required | Description | Default |
|---|---|---|---|
| package_id | Yes | eSIM package ID from search_packages | |
| customer_name | No | Customer name (optional) | |
| customer_email | Yes | Customer email for eSIM delivery | |
| activation_mode | No | When the validity countdown starts. NOW = at purchase (customer already at destination). FIRST_USE = on first network connection in destination (default, safest for planned travel). ON_DEMAND = customer manually activates later from AskMia.app My Account (max flexibility, requires Wi-Fi/Internet to trigger). Defaults to FIRST_USE if omitted. | |
| customer_country | No | REQUIRED IN PRACTICE. Customer's BILLING/RESIDENCE country as ISO-3166-1 alpha-2 (e.g. 'DE', 'US', 'IT') - NOT the travel destination. Drives checkout currency (EUR for EU-27) and lets Stripe compute VAT correctly. If unknown, ASK the user before calling this tool - do not infer. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses rate limits (2/min IP, 60/min with key), error behavior for invalid activation_mode, and the mandatory post-step sequence. However, it doesn't describe response structure or potential idempotence issues.
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 thorough but well-organized: purpose sentence, then bulleted sections for pre-step, optional, important, post-step, and rate limits. It is front-loaded with essential info, though slightly verbose for a concise definition.
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 no output schema, the description adequately covers the full workflow: prerequisites, parameter details, error handling, mandatory post-steps (relay notes, call check_order_status), and rate limits. It leaves no critical gaps for an AI agent to use this tool correctly.
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%, baseline 3. The description adds value by explaining activation_mode enum values in context (e.g., NOW='at destination', FIRST_USE='safest for planned travel') and emphasizing that customer_country is billing/residence not destination, affecting currency and VAT. This goes beyond schema.
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 starts with 'Create a Stripe checkout link for an eSIM package', which clearly states the verb and resource. It distinguishes from sibling tools like check_coverage or check_order_status by its unique function and references to pre- and post-steps.
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 provides explicit when-to-use guidance: mandatory pre-step to know customer's billing country, warnings about worldwide plans not accepting FIRST_USE, and post-step to call check_order_status after payment. It also clarifies that the agent must stop and not assume payment confirmation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_package_detailsAInspect
Get detailed info about a specific eSIM package, including pricing, VAT/tax note and activation behavior. Pass customer_country to get the correct display currency and VAT flag.
| Name | Required | Description | Default |
|---|---|---|---|
| package_id | Yes | Package ID | |
| customer_country | No | Customer's billing/residence ISO country code (e.g. 'DE'). Drives EUR pricing and VAT flag for EU customers. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the tool returns pricing, VAT/tax note, activation behavior, and that customer_country affects display currency and VAT flag. It does not explicitly state read-only nature, but for a 'get' tool that is implied.
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 sentences: first states purpose and content, second explains optional parameter. No unnecessary words, front-loaded with the key action and result.
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 no output schema, description adequately lists key return aspects (pricing, VAT/tax note, activation behavior). It does not cover all possible fields but is sufficient for an agent to understand the tool's purpose and primary outputs. Could mention other details like package validity, but not required for 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?
Schema has 100% coverage describing both parameters. Description adds value by explaining the role of customer_country in determining display currency and VAT flag, which goes beyond the schema's description of 'drives EUR pricing and VAT flag for EU customers.' This adds practical context.
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?
Description clearly states 'Get detailed info about a specific eSIM package, including pricing, VAT/tax note and activation behavior.' It uses a specific verb and resource, and distinguishes from sibling tools like search_packages which are for searching rather than 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?
Description implies usage by stating what it does, but does not explicitly tell when to use this tool versus siblings like check_coverage or search_packages. It provides guidance on the optional customer_country parameter but lacks when-not or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_countriesBInspect
List all countries where eSIM data plans are available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists countries but does not mention any behavioral traits such as whether it requires authentication, has rate limits, returns paginated results, or includes error handling. This leaves significant gaps in understanding how the tool operates beyond its basic function.
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, clear sentence that front-loads the core action ('List all countries') and specifies the scope ('where eSIM data plans are available'). There is zero waste or redundancy, making it highly efficient and easy to parse for an AI agent.
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 simplicity (0 parameters, no output schema, no annotations), the description is complete enough to convey the basic purpose. However, it lacks details on behavioral aspects like response format or error conditions, which could be important for an agent to use it effectively. The absence of an output schema means the description should ideally hint at return values, but it does not, leaving some contextual 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 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description implies no parameters are needed by stating 'List all countries', which aligns with the schema. Since there are no parameters, the baseline score is 4, as the description adequately conveys the parameterless nature without adding unnecessary details.
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's purpose with a specific verb ('List') and resource ('countries where eSIM data plans are available'), making it immediately understandable. However, it does not explicitly differentiate from sibling tools like 'search_packages' or 'check_coverage', which might also involve country-related queries, leaving some ambiguity about its unique role.
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 no guidance on when to use this tool versus alternatives such as 'search_packages' or 'check_coverage', which could also relate to country availability. It lacks explicit context, prerequisites, or exclusions, leaving the agent to infer usage based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_packagesAInspect
Search eSIM data packages by country code. Optionally filter by minimum data size (min_data_gb) and validity window (max_validity_days, validity_days). Pass customer_country (ISO code, e.g. 'DE') to get prices in EUR with VAT note for EU customers. Returns up to limit packages (default 10, max 50) ordered by price, plus total_available for pagination via offset. Each package includes network_count (number of supported networks across the destination region).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max packages to return (default 10, max 50). | |
| offset | No | Pagination offset (default 0). | |
| min_data_gb | No | Minimum data in GB | |
| country_code | Yes | Destination ISO country code (e.g. US, FR) | |
| validity_days | No | Only return plans with exactly this validity in days (e.g. 7, 15, 30). Overrides max_validity_days. | |
| customer_country | No | Customer's billing/residence ISO country code. Used to pick display currency (EUR for EU-27) and to flag VAT. | |
| max_validity_days | No | Only return plans whose validity is at most this many days (e.g. 7 for a week-long trip). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses pagination details (limit, offset, total_available), ordering by price, and the network_count field. It also explains the VAT note for EU customers. It does not discuss rate limits or error cases, but is transparent enough for a read-only search.
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 paragraph but front-loaded with the main action. It efficiently packs multiple pieces of information without excess. Minor improvements could include line breaks for readability.
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 no output schema, the description should list key returned fields. It mentions network_count but not other common fields like price, name, or validity. The pagination and filter behavior is well covered, but the lack of a full return structure is a gap. Overall adequate but not fully complete.
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%, baseline 3. The description adds value beyond schema by explaining the interaction between validity_days and max_validity_days (override), and the effect of customer_country on currency/VAT. It also clarifies the default for limit and the role of total_available for pagination.
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 'Search' and the resource 'eSIM data packages by country code'. It distinguishes from sibling tools like check_coverage and get_package_details by focusing on search and filtering.
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: search by country code with optional filters. It mentions special behavior with customer_country for pricing. However, it does not explicitly say when not to use it or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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
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!