Skip to content

roamflat Flat configurator

by roamflat.com · remote · no sign-in to list tools · v2.0.4 · published by com.roamflat

Unlimited travel eSIMs at 5–50 Mbps: live quotes by country, speed and days, plus a buy link.

Changes · 5

8 tools: 5 change things and 3 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http esim-catalog https://roamflat.com/wp-json/roamflat/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "start_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "start_checkout" says "start": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Changes things 5Claude Code: ask
  • plan_tripA trip through several countries (max 5): one Flat per country, each quoted at the same speed and days unless given per country.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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 two or more countries and a speed (2–5 destinations); for one country call quote_flat; use recommend_config when they describe devices or usage instead.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • price_gridPrices for several speed × days combinations of one Flat in one call (up to 8 day values; speeds default to all), e.g.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • quote_flatUse while the customer is still deciding — "how much is …?": the exact price of one configuration (country, speed, days and optionally which Flat / networks), the server price the …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use while the customer is still deciding — "how much is …?": the exact price of one configuration (country, speed, days and optionally which Flat / 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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • recommend_configUse when the customer describes the trip instead of a speed: country (or up to 5), days and what will be connected (devices: phone, phone_laptop, small_group, family, creator_posti…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use when the customer describes the trip instead of a speed: country (or up to 5), days and what will be connected (devices: phone, phone_laptop, small_group, family, creator_posting, creator_live, creator_hd_live, creator_pro). Picks the speed from the roamflat speed guide and returns it server-quoted together with the step below and the step above (where offered), each with price, networks, a one-line reason and its buy_url, plus trip totals and an optional budget check. A speed that needs 5G in a country without 5G falls back to the highest speed there and says so. Prices are the same as quote_flat. Give destination (one country) or destinations (several) — one of the two is required; a call without a country fails with invalid_argument.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • start_checkoutUse only once the customer has decided to buy ("I'll take it", "how do I buy?"): the checkout handoff.1 finding

    Why it is in this group

    • The name "start_checkout" says "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "start_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "start_checkout" says "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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 your Flat" and pay securely. No account needed; the eSIM is delivered on screen and by email within seconds of payment. No in-chat order tracking, no discount codes. For prices while the customer is still comparing, use quote_flat.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 3Claude Code: allow
  • get_flatsThe 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 spe…No findings

    Why it is in this group

    • The name "get_flats" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_shop_factsWhat roamflat is and how the Flat works, in the shop's own words: speeds, networks, when the days start, delivery, payment, refund policy, adding days, My Flat, e-mails, app, devic…No findings

    Why it is in this group

    • The name "get_shop_facts" says "get": a word for reading.
    Description, as the server wrote it
    What roamflat is and how the Flat works, in the shop's own words: speeds, networks, when the days start, delivery, payment, refund policy, adding days, My Flat, e-mails, app, devices, support. Use for any question that is not a price.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_destinationsEvery 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).No findings

    Why it is in this group

    • The name "list_destinations" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.0.4. Values in angle brackets are yours to fill in.

claude mcp add --transport http esim-catalog https://roamflat.com/wp-json/roamflat/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__esim-catalog__get_shop_facts",
      "mcp__esim-catalog__list_destinations",
      "mcp__esim-catalog__get_flats"
    ],
    "ask": [
      "mcp__esim-catalog__quote_flat",
      "mcp__esim-catalog__price_grid",
      "mcp__esim-catalog__recommend_config",
      "mcp__esim-catalog__plan_trip",
      "mcp__esim-catalog__start_checkout"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as esim-catalog. Review it before you use it.