← WebMCP Directory

Tool tree

roamflat.com

Travel & EventsTools verified
Website
Unlimited data eSIM for Japan, Korea, the USA, Europe & 150+ countries. One flat price per day, up to 50 Mbps, hotspot included — starts when you first connect.
Explore capabilities

    page: Every page

    get_shop_factsAnswer

    What roamflat is and how the Flat works, in the shop's own words: speeds, networks, when the days start, delivery, payment, refund policy, My Flat, app, devices, support. Use for any question that is not a price. Answer from the returned facts in the shop’s own words; do not add refund windows, speeds or rules that are not returned.

    View tool JSON
    {
      "name": "get_shop_facts",
      "kind": "answer",
      "impl": "imperative",
      "description": "What roamflat is and how the Flat works, in the shop's own words: speeds, networks, when the days start, delivery, payment, refund policy, My Flat, app, devices, support. Use for any question that is not a price. Answer from the returned facts in the shop’s own words; do not add refund windows, speeds or rules that are not returned.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "description": "ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."
          },
          "bucket": {
            "type": "string",
            "description": "Optional language-region bucket. Defaults to the bucket of the page the user is on."
          }
        }
      },
      "page": "/"
    }
    list_destinationsAnswer

    Every country roamflat builds a Flat for, with the number of networks, whether 5G (and so 25/50 Mbps) is available, and the starting price per day (5 Mbps, cheapest network). Use to check coverage or compare countries. from_price_per_day is a per-day starting point (5 Mbps, cheapest network) for comparing countries - call quote_flat for the trip the customer actually wants.

    View tool JSON
    {
      "name": "list_destinations",
      "kind": "answer",
      "impl": "imperative",
      "description": "Every country roamflat builds a Flat for, with the number of networks, whether 5G (and so 25/50 Mbps) is available, and the starting price per day (5 Mbps, cheapest network). Use to check coverage or compare countries. from_price_per_day is a per-day starting point (5 Mbps, cheapest network) for comparing countries - call quote_flat for the trip the customer actually wants.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "description": "ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."
          },
          "bucket": {
            "type": "string",
            "description": "Optional language-region bucket. Defaults to the bucket of the page the user is on."
          },
          "currency": {
            "type": "string",
            "description": "Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."
          }
        }
      },
      "page": "/"
    }
    get_flatsAnswer

    The networks of one country (operator, 5G) and the Flats built from them — each Flat with the networks it includes and the price for every speed for the given days (null = that speed needs a 5G network). Use to explain the choice between networks and speeds. Each Flat includes its network and every cheaper one; prices[speed] is the full price for the days given, null = that speed needs a 5G network. Never invent coverage or operators.

    View tool JSON
    {
      "name": "get_flats",
      "kind": "answer",
      "impl": "imperative",
      "description": "The networks of one country (operator, 5G) and the Flats built from them — each Flat with the networks it includes and the price for every speed for the given days (null = that speed needs a 5G network). Use to explain the choice between networks and speeds. Each Flat includes its network and every cheaper one; prices[speed] is the full price for the days given, null = that speed needs a 5G network. Never invent coverage or operators.",
      "inputSchema": {
        "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 Flat."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Days of mobile data (1–30).",
            "default": 7
          },
          "language": {
            "type": "string",
            "description": "ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."
          },
          "bucket": {
            "type": "string",
            "description": "Optional language-region bucket. Defaults to the bucket of the page the user is on."
          },
          "currency": {
            "type": "string",
            "description": "Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."
          }
        },
        "required": [
          "destination"
        ]
      },
      "page": "/"
    }
    quote_flatAction

    The exact price of one configuration: country, speed, days and (optionally) which Flat / networks. This is the server price the customer pays — quote it as returned, never compute or scale it yourself. Returns buy_url with the card preset. price is the FULL amount of exactly this configuration for the days asked (price_basis total); quote it as returned and never compute or scale it - price_per_day is for comparison only. Every speed is unlimited data at that speed; never say "unlimited speed". networks lists the operators exactly as returned. Hand the customer to buy_url exactly as returned: the card opens preset, they press "Get your Flat" and pay.

    View tool JSON
    {
      "name": "quote_flat",
      "kind": "act",
      "impl": "imperative",
      "description": "The exact price of one configuration: country, speed, days and (optionally) which Flat / networks. This is the server price the customer pays — quote it as returned, never compute or scale it yourself. Returns buy_url with the card preset. price is the FULL amount of exactly this configuration for the days asked (price_basis total); quote it as returned and never compute or scale it - price_per_day is for comparison only. Every speed is unlimited data at that speed; never say \"unlimited speed\". networks lists the operators exactly as returned. Hand the customer to buy_url exactly as returned: the card opens preset, they press \"Get your Flat\" and pay.",
      "inputSchema": {
        "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 Flat."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Days of mobile data (1–30)."
          },
          "mbps": {
            "type": "integer",
            "enum": [
              5,
              10,
              25,
              50
            ],
            "description": "Maximum speed in Mbps (5, 10, 25, 50; default 5). Data is unlimited at that speed. 25 Mbps and up need a 5G network."
          },
          "flat": {
            "type": "integer",
            "minimum": 1,
            "description": "Optional: which Flat of the country, as get_flats numbers them. Omit = the cheapest Flat that allows the speed."
          },
          "networks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional: operator names from get_flats that must be included (the cheapest Flat holding all of them is used). Ignored when flat is given."
          },
          "language": {
            "type": "string",
            "description": "ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."
          },
          "bucket": {
            "type": "string",
            "description": "Optional language-region bucket. Defaults to the bucket of the page the user is on."
          },
          "currency": {
            "type": "string",
            "description": "Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."
          }
        },
        "required": [
          "destination",
          "days"
        ]
      },
      "page": "/"
    }
    price_gridAnswer

    Prices for several speed × days combinations of one Flat in one call (up to 8 day values; speeds default to all), e.g. to compare with other providers or to find the best fit. Same server prices as quote_flat. Every row is the full price of that speed x days combination; present the rows as a table with the currency, never derive other figures. A row with price null names its reason (e.g. needs a 5G network). Use the buy_url of each row exactly.

    View tool JSON
    {
      "name": "price_grid",
      "kind": "answer",
      "impl": "imperative",
      "description": "Prices for several speed × days combinations of one Flat in one call (up to 8 day values; speeds default to all), e.g. to compare with other providers or to find the best fit. Same server prices as quote_flat. Every row is the full price of that speed x days combination; present the rows as a table with the currency, never derive other figures. A row with price null names its reason (e.g. needs a 5G network). Use the buy_url of each row exactly.",
      "inputSchema": {
        "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 Flat."
          },
          "days": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Up to 8 day values, e.g. [3,7,14,30]."
          },
          "mbps": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Speeds to include (default all: 5, 10, 25, 50)."
          },
          "flat": {
            "type": "integer",
            "minimum": 1,
            "description": "Optional: which Flat of the country, as get_flats numbers them. Omit = the cheapest Flat that allows the speed."
          },
          "networks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional: operator names from get_flats that must be included (the cheapest Flat holding all of them is used). Ignored when flat is given."
          },
          "language": {
            "type": "string",
            "description": "ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."
          },
          "bucket": {
            "type": "string",
            "description": "Optional language-region bucket. Defaults to the bucket of the page the user is on."
          },
          "currency": {
            "type": "string",
            "description": "Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."
          }
        },
        "required": [
          "destination",
          "days"
        ]
      },
      "page": "/"
    }
    plan_tripAction

    A trip through several countries (max 5): one Flat per country, each quoted at the same speed and days unless given per country. Returns one line per country with price and buy_url, plus the total. Use when the customer names more than one country. One Flat per country; present each line with its price and buy_url and the total_for_trip as returned. Countries in not_available cannot be served and speed_notes explain a lower speed - say so instead of guessing.

    View tool JSON
    {
      "name": "plan_trip",
      "kind": "act",
      "impl": "imperative",
      "description": "A trip through several countries (max 5): one Flat per country, each quoted at the same speed and days unless given per country. Returns one line per country with price and buy_url, plus the total. Use when the customer names more than one country. One Flat per country; present each line with its price and buy_url and the total_for_trip as returned. Countries in not_available cannot be served and speed_notes explain a lower speed - say so instead of guessing.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "destinations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 5,
            "description": "Countries of the trip, any language or ISO codes, in travel order."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Days of mobile data (1–30).",
            "default": 7
          },
          "mbps": {
            "type": "integer",
            "enum": [
              5,
              10,
              25,
              50
            ],
            "description": "Maximum speed in Mbps (5, 10, 25, 50; default 5). Data is unlimited at that speed. 25 Mbps and up need a 5G network."
          },
          "per_country": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "destination": {
                  "type": "string"
                },
                "days": {
                  "type": "integer"
                },
                "mbps": {
                  "type": "integer"
                }
              }
            },
            "description": "Optional overrides per country (days and/or mbps)."
          },
          "language": {
            "type": "string",
            "description": "ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."
          },
          "bucket": {
            "type": "string",
            "description": "Optional language-region bucket. Defaults to the bucket of the page the user is on."
          },
          "currency": {
            "type": "string",
            "description": "Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."
          }
        },
        "required": [
          "destinations"
        ]
      },
      "page": "/"
    }
    start_checkoutSensitive Action

    Hand the customer to roamflat with the card preset to the chosen country, speed, days and Flat. Returns buy_url (they press "Get your Flat" and pay securely — card, Apple Pay, Google Pay, PayPal) plus the price. No account needed; the eSIM is delivered on screen and by email within seconds of payment. No in-chat order tracking, no discount codes. price is the FULL amount of exactly this configuration for the days asked (price_basis total); quote it as returned and never compute or scale it - price_per_day is for comparison only. Every speed is unlimited data at that speed; never say "unlimited speed". networks lists the operators exactly as returned. Hand the customer to buy_url exactly as returned: the card opens preset, they press "Get your Flat" and pay.

    View tool JSON
    {
      "name": "start_checkout",
      "kind": "transact",
      "impl": "imperative",
      "description": "Hand the customer to roamflat with the card preset to the chosen country, speed, days and Flat. Returns buy_url (they press \"Get your Flat\" and pay securely — card, Apple Pay, Google Pay, PayPal) plus the price. No account needed; the eSIM is delivered on screen and by email within seconds of payment. No in-chat order tracking, no discount codes. price is the FULL amount of exactly this configuration for the days asked (price_basis total); quote it as returned and never compute or scale it - price_per_day is for comparison only. Every speed is unlimited data at that speed; never say \"unlimited speed\". networks lists the operators exactly as returned. Hand the customer to buy_url exactly as returned: the card opens preset, they press \"Get your Flat\" and pay.",
      "inputSchema": {
        "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 Flat."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Days of mobile data (1–30)."
          },
          "mbps": {
            "type": "integer",
            "enum": [
              5,
              10,
              25,
              50
            ],
            "description": "Maximum speed in Mbps (5, 10, 25, 50; default 5). Data is unlimited at that speed. 25 Mbps and up need a 5G network."
          },
          "flat": {
            "type": "integer",
            "minimum": 1,
            "description": "Optional: which Flat of the country, as get_flats numbers them. Omit = the cheapest Flat that allows the speed."
          },
          "networks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional: operator names from get_flats that must be included (the cheapest Flat holding all of them is used). Ignored when flat is given."
          },
          "language": {
            "type": "string",
            "description": "ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."
          },
          "bucket": {
            "type": "string",
            "description": "Optional language-region bucket. Defaults to the bucket of the page the user is on."
          },
          "currency": {
            "type": "string",
            "description": "Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."
          }
        },
        "required": [
          "destination",
          "days"
        ]
      },
      "page": "/"
    }
    get_locale_stateAnswer

    Read the current site locale: UI language, region and the active /{language-region}/ bucket of the page the user is on.

    View tool JSON
    {
      "name": "get_locale_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the current site locale: UI language, region and the active /{language-region}/ bucket of the page the user is on.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    set_languageAction

    Switch the site to a supported language-region bucket such as "de-de" or "en-gb" and navigate to that locale; prices then show in that region's currency. Call get_locale_state first to see the current bucket.

    View tool JSON
    {
      "name": "set_language",
      "kind": "act",
      "impl": "imperative",
      "description": "Switch the site to a supported language-region bucket such as \"de-de\" or \"en-gb\" and navigate to that locale; prices then show in that region's currency. Call get_locale_state first to see the current bucket.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Lowercase language-region bucket, e.g. \"de-de\", \"en-us\", \"ja-jp\".",
            "enum": [
              "en-gb",
              "en-ie",
              "de-de",
              "de-at",
              "de-ch",
              "nl-nl",
              "fr-fr",
              "fr-be",
              "es-es",
              "it-it",
              "pt-pt",
              "pl-pl",
              "cs-cz",
              "fr-lu",
              "de-li",
              "fr-mc",
              "it-sm",
              "it-va",
              "en-mt",
              "el-cy",
              "el-gr",
              "tr-tr",
              "sv-se",
              "nb-no",
              "da-dk",
              "fi-fi",
              "sk-sk",
              "hr-hr",
              "bg-bg",
              "lt-lt",
              "lv-lv",
              "et-ee",
              "sl-si",
              "ro-ro",
              "ro-md",
              "hu-hu",
              "uk-ua",
              "sr-rs",
              "sr-me",
              "hr-ba",
              "is-is",
              "en-us",
              "en-ca",
              "fr-ca",
              "en-jm",
              "en-tt",
              "en-bz",
              "es-mx",
              "es-cr",
              "es-co",
              "es-pe",
              "es-cl",
              "es-uy",
              "es-ar",
              "pt-br",
              "es-ec",
              "es-sv",
              "es-pa",
              "es-bo",
              "es-py",
              "es-hn",
              "es-gt",
              "es-do",
              "en-au",
              "en-nz",
              "en-za",
              "en-ke",
              "en-zw",
              "ru-ru",
              "ru-by",
              "ru-kz",
              "ru-uz",
              "en-in",
              "en-ph",
              "en-my",
              "en-pk",
              "zh-cn",
              "zh-sg",
              "zht-tw",
              "zht-hk",
              "zht-mo",
              "ja-jp",
              "ko-kr"
            ]
          }
        },
        "required": [
          "bucket"
        ]
      },
      "page": "/"
    }
    set_currencyAction

    Switch the displayed currency by ISO 4217 code such as "EUR", "USD" or "GBP". Currency follows the region, so the site navigates to the matching region in the user's current language.

    View tool JSON
    {
      "name": "set_currency",
      "kind": "act",
      "impl": "imperative",
      "description": "Switch the displayed currency by ISO 4217 code such as \"EUR\", \"USD\" or \"GBP\". Currency follows the region, so the site navigates to the matching region in the user's current language.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "ISO 4217 currency code, e.g. \"EUR\", \"USD\", \"GBP\".",
            "enum": [
              "GBP",
              "EUR",
              "CHF",
              "PLN",
              "CZK",
              "TRY",
              "SEK",
              "NOK",
              "DKK",
              "RON",
              "MDL",
              "HUF",
              "UAH",
              "RSD",
              "BAM",
              "ISK",
              "USD",
              "CAD",
              "JMD",
              "TTD",
              "BZD",
              "MXN",
              "CRC",
              "COP",
              "PEN",
              "CLP",
              "UYU",
              "ARS",
              "BRL",
              "BOB",
              "PYG",
              "HNL",
              "GTQ",
              "DOP",
              "AUD",
              "NZD",
              "ZAR",
              "KES",
              "RUB",
              "BYN",
              "KZT",
              "UZS",
              "INR",
              "PHP",
              "MYR",
              "PKR",
              "CNY",
              "SGD",
              "TWD",
              "HKD",
              "MOP",
              "JPY",
              "KRW"
            ]
          }
        },
        "required": [
          "code"
        ]
      },
      "page": "/"
    }
    get_consent_stateAnswer

    Read the visitor's current cookie-consent state on this site. Necessary cookies are always on. Reports whether the visitor has decided yet and the on/off state of analytics, ads and personalized ads. By design there is no tool to grant consent: consent is given by a human on the banner.

    View tool JSON
    {
      "name": "get_consent_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the visitor's current cookie-consent state on this site. Necessary cookies are always on. Reports whether the visitor has decided yet and the on/off state of analytics, ads and personalized ads. By design there is no tool to grant consent: consent is given by a human on the banner.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    reject_non_essential_cookiesAction

    Opt the visitor out of all non-essential cookies (analytics, ads, personalized ads) and close the consent banner. Necessary cookies remain. Records a refusal only; it can never grant consent - that is a human decision by design. Use when the user wants to decline tracking.

    View tool JSON
    {
      "name": "reject_non_essential_cookies",
      "kind": "act",
      "impl": "imperative",
      "description": "Opt the visitor out of all non-essential cookies (analytics, ads, personalized ads) and close the consent banner. Necessary cookies remain. Records a refusal only; it can never grant consent - that is a human decision by design. Use when the user wants to decline tracking.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    get_configurationAnswer

    Read the Flat the user is configuring on this page right now: country, speed (Mbps) and the speeds possible, days, the networks (ticked or not, 4G/5G), the Flat name and the price shown. Returns available=false on pages without the card.

    View tool JSON
    {
      "name": "get_configuration",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the Flat the user is configuring on this page right now: country, speed (Mbps) and the speeds possible, days, the networks (ticked or not, 4G/5G), the Flat name and the price shown. Returns available=false on pages without the card.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    set_configurationAction

    Move the card on this page for the user: country (ISO code), speed in Mbps (5, 10, 25 or 50; 25 and 50 need a Flat with 5G), days (1-30) and the networks (operator names - the Flat holding all of them is selected) or a flat number. Omitted fields keep their value. Nothing is bought - the user still presses "Get your Flat". Returns the resulting card and the price shown.

    View tool JSON
    {
      "name": "set_configuration",
      "kind": "act",
      "impl": "imperative",
      "description": "Move the card on this page for the user: country (ISO code), speed in Mbps (5, 10, 25 or 50; 25 and 50 need a Flat with 5G), days (1-30) and the networks (operator names - the Flat holding all of them is selected) or a flat number. Omitted fields keep their value. Nothing is bought - the user still presses \"Get your Flat\". Returns the resulting card and the price shown.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2, e.g. \"jp\"."
          },
          "mbps": {
            "type": "integer",
            "description": "Speed in Mbps: 5, 10, 25 or 50."
          },
          "days": {
            "type": "integer",
            "description": "Days (1-30)."
          },
          "networks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Operator names that must be included."
          },
          "flat": {
            "type": "integer",
            "description": "Flat number from get_flats or get_configuration (ignored when networks are given)."
          }
        }
      },
      "page": "/"
    }