Skip to content

app.iomarkets/topup

by iomarkets.app · remote · no sign-in to list tools · v0.2.8 · published by app.iomarkets

Travel eSIMs and mobile top-ups paid in USDC via x402. A technology demonstration, limited pilot.

Final · 1Changes · 4

9 tools: 1 do something that can't be undone, 4 change things and 4 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 topup https://iomarkets.app/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The description contains "another server", wording about other tools or servers.

    Matched text

    description: "...in this format, including one issued by another server."

    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.

9 tools

Can't be undone 1Claude Code: ask
  • fxIndicative USDC → local-currency rate at our sale price, with an estimate for an amount.No findings

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Indicative USDC → local-currency rate at our sale price, with an estimate for an amount. The quote is the binding price.
Changes things 4Claude Code: ask
  • ledgerPublic delivery ledger: totals, delivered-or-refunded %, volume, countries, recent orders.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.
    Description, as the server wrote it
    Public delivery ledger: totals, delivered-or-refunded %, volume, countries, recent orders.
  • quoteLock a price (10 minutes) for one purchase.No findings

    Why it is in this group

    • The description's first verb is "lock": a word for a change.
    Description, as the server wrote it
    Lock a price (10 minutes) for one purchase. Returns quoteId, exact USDC price and what will be delivered. Free. ALWAYS show the human the price and the recipient before buying.
  • verify_receiptVerify an ed25519-signed receipt: the signature, and — unless you pass onChain:false — both txids against an Algorand indexer.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Warn

      The description contains "another server", wording about other tools or servers.

      Matched text

      description: "...in this format, including one issued by another server."

      What this check looks for
    Description, as the server wrote it
    Verify an ed25519-signed receipt: the signature, and — unless you pass onChain:false — both txids against an Algorand indexer. Give it an orderId to check one of this service's own orders, or a receipt object to check ANY receipt in this format, including one issued by another server.
Only reads 4Claude Code: allow
  • buyGet the x402 payment challenge for a quote.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get the x402 payment challenge for a quote. This hosted server holds no wallet, so it does NOT spend your money: it returns the exact amount, asset, payTo address and facilitator for you to pay from your own Algorand wallet, then you POST the quote again with your payment signature. Requires prior human confirmation of the quote.
  • list_offersBrowse purchasable offers: mobile top-ups, travel eSIMs, prepaid bills, or international payment corridors (bank / mobile money / UPI) for a country.No findings

    Why it is in this group

    • The name "list_offers" says "list": a word for reading.
    Description, as the server wrote it
    Browse purchasable offers: mobile top-ups, travel eSIMs, prepaid bills, or international payment corridors (bank / mobile money / UPI) for a country. Free. Prices shown are indicative; the quote fixes them.
  • lookup_phoneIdentify the country and mobile operator of a phone number and list the top-up offers available for it.No findings

    Why it is in this group

    • The name "lookup_phone" says "lookup": a word for reading.
    Description, as the server wrote it
    Identify the country and mobile operator of a phone number and list the top-up offers available for it. Free. The operator is DETECTED from the number range and is a guess: MVNOs (Tesco Mobile, Giff Gaff, Lebara, Voxi, Sky…) resolve to the host network they ride on. Read the detected brand back to the human and have them confirm it before buying, and use `other_brands` to correct it — a voucher bought for the wrong network delivers successfully and cannot be redeemed or refunded.
  • order_statusCheck an order.No findings

    Why it is in this group

    • The name "order_status" says "status": a word for reading.
    Description, as the server wrote it
    Check an order. Poll every ~3 s until `terminal` is true: delivered (confirmation + signed receipt), refunded (refund txid + signed receipt) or refund_failed.

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 0.2.8. Values in angle brackets are yours to fill in.

claude mcp add --transport http topup https://iomarkets.app/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__topup__lookup_phone",
      "mcp__topup__list_offers",
      "mcp__topup__buy",
      "mcp__topup__order_status"
    ],
    "ask": [
      "mcp__topup__quote",
      "mcp__topup__create_pay_link",
      "mcp__topup__verify_receipt",
      "mcp__topup__fx",
      "mcp__topup__ledger"
    ],
    "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 topup. Review it before you use it.