varioroam eSIM configurator

Build-your-own travel eSIM: live quotes by country, GB, days and networks, plus a buy link.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
95%
命名品質
90%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,541Token(工具定義)
~4.1 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.77%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "esim-catalog": {
      "url": "https://varioroam.com/wp-json/varioroam/mcp"
    }
  }
}

遠端端點

https://varioroam.com/wp-json/varioroam/mcpstreamable-http

它能做什麼

工具清單

工具(8)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢get_shop_facts(language, bucket)

What varioroam is and how it works, in the shop’s own words: the configurable eSIM, ranges, delivery, payment, hotspot, activation, top-ups (add data or days), e-mails, support. Use for any question that is not a price.

輸入結構描述

{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
    },
    "bucket": {
      "type": "string",
      "description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
    }
  }
}
🟢list_destinations(language, bucket, currency)

Every country varioroam can build an eSIM for, with the number of selectable networks and the starting price (1 GB, 1 day, cheapest network). Use to check coverage or to compare many countries at once.

輸入結構描述

{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
    },
    "bucket": {
      "type": "string",
      "description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
    },
    "currency": {
      "type": "string",
      "description": "Optional ISO 4217 override for prices."
    }
  }
}
🟢get_networks(destination, language, bucket, currency)

The mobile networks the customer can tick for one country (operator name, 4G/5G) with the price of a reference eSIM on each network alone (1 GB · 7 days), so you can say which network is the cheapest and what the others add.

輸入結構描述

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
    },
    "language": {
      "type": "string",
      "description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
    },
    "bucket": {
      "type": "string",
      "description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
    },
    "currency": {
      "type": "string"
    }
  },
  "required": [
    "destination"
  ]
}
🟢quote_esim(destination, gb, days, networks, language, ...)

Use while the customer is still deciding — "how much is …?": the exact price of one eSIM configuration (country, data GB 1–100, days 1–90, networks), the server price the customer would pay. Quote it as returned, never compute or scale it yourself. The result carries a buy_url for reference; when the customer says they want to buy, call start_checkout instead.

輸入結構描述

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
    },
    "gb": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Data pool in whole GB for the whole trip (1–100). One pool, not per day. Not sure how much? Call recommend_config."
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 90,
      "description": "Validity days (1–90)."
    },
    "networks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee."
    },
    "language": {
      "type": "string",
      "description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
    },
    "bucket": {
      "type": "string",
      "description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
    },
    "currency": {
      "type": "string"
    }
  },
  "required": [
    "destination",
    "gb",
    "days"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "Resolved country name (localized)."
    },
    "iso": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2, lower case."
    },
    "data_gb": {
      "type": "integer",
      "description": "Total data pool for the whole validity (whole GB). Not per day."
    },
    "days": {
      "type": "integer",
      "description": "Validity in days, counted from the first connection at the destination."
    },
    "networks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Operator names included in this eSIM."
    },
    "price": {
      "type": "number",
      "description": "FULL price of this configuration in currency — the amount paid. Not per day, not per GB."
    },
    "currency": {
      "type": "string"
    },
    "price_basis": {
      "type": "string",
      "enum": [
        "total"
      ]
    },
    "price_is_final": {
      "type": "boolean"
    },
    "hotspot": {
      "type": "boolean"
    },
    "activation_trigger": {
      "type": "string"
    },
    "topup": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "data_days"
          ]
        },
        "how": {
          "type": "string"
        }
      },
      "description": "How the customer adds data or days to this eSIM later (not through the tools)."
    },
    "networks_unmatched": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Present when a requested network does not exist in this country: those names. The quote then uses the networks listed in networks."
    },
    "note": {
      "type": "string",
      "description": "Present when something about the request had to be adjusted — read it to the customer."
    },
    "buy_url": {
      "type": "string",
      "description": "Configurator pre-set to exactly this configuration. Use verbatim."
    }
  },
  "additionalProperties": true
}
🟢price_grid(destination, gb, days, networks, language, ...)

Prices for several GB × days combinations of one country in one call (max 8 × 8), e.g. to compare with other providers or to find the best fit for a trip. Same server prices as quote_esim.

輸入結構描述

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
    },
    "gb": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      },
      "minItems": 1,
      "maxItems": 8,
      "description": "Up to 8 whole-GB values, e.g. [1,3,5,10,20]."
    },
    "days": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1,
        "maximum": 90
      },
      "minItems": 1,
      "maxItems": 8,
      "description": "Up to 8 day values, e.g. [3,7,15,30]."
    },
    "networks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee."
    },
    "language": {
      "type": "string",
      "description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
    },
    "bucket": {
      "type": "string",
      "description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
    },
    "currency": {
      "type": "string"
    }
  },
  "required": [
    "destination",
    "gb",
    "days"
  ]
}
🟢recommend_config(destination, destinations, days, usage, gb_per_day, ...)

Use when the customer describes a trip instead of a size: country (or up to 5), days and how they use data (usage light / normal / heavy, or gb_per_day). Sizes the data pool from the data guide and returns three server-quoted configurations per country — exact, comfortable (×1.5) and generous (×2) — each with its price, networks, a one-line reason and its buy_url, plus trip totals and an optional budget check. Prices are the same as quote_esim.

輸入結構描述

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
    },
    "destinations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "description": "Several countries (max 5), any language or ISO codes. Use instead of destination for a multi-country trip."
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 90,
      "description": "Days of the trip (per country for a multi-country trip; 1–90)."
    },
    "usage": {
      "type": "string",
      "enum": [
        "light",
        "normal",
        "heavy"
      ],
      "description": "light ≈ 0.5 GB/day, normal ≈ 1.5 GB/day (default), heavy ≈ 4 GB/day."
    },
    "gb_per_day": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 100,
      "description": "Optional: the customer's own estimate in GB per day (wins over usage)."
    },
    "networks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee."
    },
    "budget": {
      "type": "number",
      "description": "Optional budget for the whole trip in the quoted currency; options above it are marked."
    },
    "per_country": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "destination": {
            "type": "string"
          },
          "days": {
            "type": "integer"
          }
        }
      },
      "description": "Optional days per country for a multi-country trip."
    },
    "language": {
      "type": "string",
      "description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
    },
    "bucket": {
      "type": "string",
      "description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
    },
    "currency": {
      "type": "string"
    }
  },
  "required": [
    "days"
  ]
}
🟢plan_trip(destinations, gb, days, per_country, language, ...)

A trip through several countries (max 5): one eSIM per country, each quoted with the same data pool and days unless given per country (gb omitted = sized for normal use from the days). Returns one line per country with price and buy_url, plus the total. Use when the customer names more than one country and a size; use recommend_config when they describe usage instead.

輸入結構描述

{
  "type": "object",
  "properties": {
    "destinations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "description": "Countries of the trip, any language or ISO codes, in travel order."
    },
    "gb": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Data pool per country in whole GB (1–100). Omit = sized for normal use from the days (1.5 GB/day)."
    },
    "days": {
      "type": "integer",
      "description": "Validity days per country (1–90). Default 7."
    },
    "per_country": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "destination": {
            "type": "string"
          },
          "gb": {
            "type": "number"
          },
          "days": {
            "type": "integer"
          }
        }
      },
      "description": "Optional overrides per country (gb and/or days)."
    },
    "language": {
      "type": "string",
      "description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
    },
    "bucket": {
      "type": "string",
      "description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
    },
    "currency": {
      "type": "string"
    }
  },
  "required": [
    "destinations"
  ]
}
🟢start_checkout(destination, gb, days, networks, language, ...)

Use only once the customer has decided to buy ("I'll take it", "how do I buy?"): the checkout handoff. Returns the buy_url to give the customer, the final price and a ready-to-send checkout block (next_step, payment_methods, delivery) — on the page they press "Get it" and pay securely. No account needed; the eSIM is delivered on screen and by e-mail right after payment. No in-chat order tracking, no discount codes. For prices while the customer is still comparing, use quote_esim.

輸入結構描述

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
    },
    "gb": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Data pool in whole GB (1–100)."
    },
    "days": {
      "type": "integer",
      "description": "Validity days (1–90)."
    },
    "networks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee."
    },
    "language": {
      "type": "string",
      "description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
    },
    "bucket": {
      "type": "string",
      "description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
    },
    "currency": {
      "type": "string"
    }
  },
  "required": [
    "destination",
    "gb",
    "days"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "Resolved country name (localized)."
    },
    "iso": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2, lower case."
    },
    "data_gb": {
      "type": "integer",
      "description": "Total data pool for the whole validity (whole GB). Not per day."
    },
    "days": {
      "type": "integer",
      "description": "Validity in days, counted from the first connection at the destination."
    },
    "networks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Operator names included in this eSIM."
    },
    "price": {
      "type": "number",
      "description": "FULL price of this configuration in currency — the amount paid. Not per day, not per GB."
    },
    "currency": {
      "type": "string"
    },
    "price_basis": {
      "type": "string",
      "enum": [
        "total"
      ]
    },
    "price_is_final": {
      "type": "boolean"
    },
    "hotspot": {
      "type": "boolean"
    },
    "activation_trigger": {
      "type": "string"
    },
    "topup": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "data_days"
          ]
        },
        "how": {
          "type": "string"
        }
      },
      "description": "How the customer adds data or days to this eSIM later (not through the tools)."
    },
    "networks_unmatched": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Present when a requested network does not exist in this country: those names. The quote then uses the networks listed in networks."
    },
    "note": {
      "type": "string",
      "description": "Present when something about the request had to be adjusted — read it to the customer."
    },
    "buy_url": {
      "type": "string",
      "description": "Configurator pre-set to exactly this configuration. Use verbatim."
    },
    "next_step": {
      "type": "string",
      "description": "What the customer does now: open buy_url, press \"Get it\", pay."
    },
    "payment_methods": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "delivery": {
      "type": "string",
      "description": "How and when the eSIM arrives."
    },
    "message": {
      "type": "string",
      "description": "A ready-to-send line for the customer."
    }
  },
  "required": [
    "buy_url",
    "price",
    "currency",
    "next_step"
  ],
  "additionalProperties": true
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本8 個工具