Skip to content

Xpress Flow Systems

by www.xpressflowsystems.com.ng · remote · no sign-in to list tools · v1.2.0 · published by ng.com.xpressflowsystems.www

No-sign-up eSIMs for 200+ countries, phone-number eSIMs, domains and proxies. You approve payment.

Changes · 5

12 tools: 5 change things and 7 only read.

Scanned Oct 22, 2026

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

claude mcp add --transport http esim-domains https://www.xpressflowsystems.com.ng/api/mcp

Tools

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

12 tools

Changes things 5Claude Code: ask
  • check_domain_availabilityCheck whether one domain name is free to register.Reads text others writeNo 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.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Check whether one domain name is free to register. Answers from the public registry for that ending: available, unavailable (taken) or unknown (that ending cannot be checked here). Takes one full name such as yourbrand.com.ng. When it can be ordered online, gives the first-year price. Prices are in US dollars outside Nigeria and in naira in Nigeria; pass currency to choose.

    Annotations the server declares

    • title: Check a domain name
    • readOnlyHint: true
    • openWorldHint: true
  • create_domain_orderStart an order to register an available domain for a person.Reads text others writeNo findings

    Why it is in this group

    • The name "create_domain_order" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Start an order to register an available domain for a person. This does not charge anyone. It returns an approval_url that the person must open and pay (in US dollars outside Nigeria, in naira in Nigeria); the name is held for 60 minutes. Send approval_url to your user and wait. Poll get_order_status afterwards.

    Annotations the server declares

    • title: Start a domain order
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_esim_orderStart an eSIM purchase for a person.Reads text others writeNo findings

    Why it is in this group

    • The name "create_esim_order" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Start an eSIM purchase for a person. This does not charge anyone: it returns payment_url (card, bank transfer or crypto) for the person to pay, in US dollars outside Nigeria and in naira in Nigeria. After a verified payment the eSIM is issued within 10 minutes. Poll get_order_status with reference and status_token. Use plan_code and location from search_esim_plans, or phone_plan_code from search_phone_plans.

    Annotations the server declares

    • title: Start an eSIM purchase
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_proxy_orderStart a proxy purchase for a person.Reads text others writeNo findings

    Why it is in this group

    • The name "create_proxy_order" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Start a proxy purchase for a person. This does not charge anyone: it returns payment_url for the person to pay, in US dollars outside Nigeria and in naira in Nigeria. After a verified payment the proxies are issued within 10 minutes. Poll get_order_status with reference and status_token.

    Annotations the server declares

    • title: Start a proxy purchase
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_walletCreate an empty Xpress wallet (no sign-up, no free credit).No findings

    Why it is in this group

    • The name "create_wallet" says "create": a word for a change.
    Description, as the server wrote it
    Create an empty Xpress wallet (no sign-up, no free credit). Returns a 32-character wallet code and an xk_live_ API key, shown once. Fund it with create_deposit on /api/mcp/wallet, then buy domains and eSIMs from the wallet balance within the caps the wallet owner sets.

    Annotations the server declares

    • title: Create a wallet
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Only reads 7Claude Code: allow
  • fetchFull details for one id returned by search, for example esim:GB (every plan and price for that destination).Reads text others writeNo findings

    Why it is in this group

    • The name "fetch" says "fetch": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Full details for one id returned by search, for example esim:GB (every plan and price for that destination). Prices are in US dollars outside Nigeria and in naira in Nigeria; pass currency to choose.

    Annotations the server declares

    • title: Fetch catalogue details
    • readOnlyHint: true
    • openWorldHint: true
  • get_order_statusLook up an order made with create_domain_order, create_esim_order or create_proxy_order.No findings

    Why it is in this group

    • The name "get_order_status" says "get": a word for reading.
    Description, as the server wrote it
    Look up an order made with create_domain_order, create_esim_order or create_proxy_order. Domain statuses: awaiting_payment, paid (being registered), registered, needs_attention, refunded, expired, cancelled. Statuses: awaiting_payment, paid, processing, awaiting_fulfilment (paid and being prepared by hand, within 10 minutes), delivered, needs_attention, expired. Delivered orders carry the eSIM activation details or the proxy lines.

    Annotations the server declares

    • title: Get order status
    • readOnlyHint: true
  • list_esim_locationsList every country and region we sell eSIM data plans for, with their codes.Reads text others writeNo findings

    Why it is in this group

    • The name "list_esim_locations" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List every country and region we sell eSIM data plans for, with their codes. Regions (for example Europe or Global) cover many countries in one eSIM.

    Annotations the server declares

    • title: List eSIM destinations
    • readOnlyHint: true
    • openWorldHint: true
  • list_proxy_productsProxy products with packs and prices, cheapest first.Reads text others writeNo findings

    Why it is in this group

    • The name "list_proxy_products" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Proxy products with packs and prices, cheapest first. Each pack has an offer_id for create_proxy_order. Prices are in US dollars outside Nigeria and in naira in Nigeria; pass currency to choose.

    Annotations the server declares

    • title: Proxy products
    • readOnlyHint: true
    • openWorldHint: true
  • search_esim_planseSIM data plans for one destination, cheapest first, with prices.Reads text others writeNo findings

    Why it is in this group

    • The name "search_esim_plans" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    eSIM data plans for one destination, cheapest first, with prices. No sign-up: the person orders, pays, and gets an eSIM QR code. Give a country or region name or code, for example "United Kingdom", "GB" or "Europe". Each plan has an order_url: our own order page for the person. Prices are in US dollars outside Nigeria and in naira in Nigeria; pass currency to choose.

    Annotations the server declares

    • title: Search eSIM plans
    • readOnlyHint: true
    • openWorldHint: true
  • search_phone_planseSIMs with a real carrier phone number (calls, texts and data), with prices.Reads text others writeNo findings

    Why it is in this group

    • The name "search_phone_plans" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    eSIMs with a real carrier phone number (calls, texts and data), with prices. Optional country: US, VN, AU, MN, MV, EU (Europe) or GLOBAL. Each plan has an order_url for the person. Non-refundable once bought. Prices are in US dollars outside Nigeria and in naira in Nigeria; pass currency to choose.

    Annotations the server declares

    • title: Phone-number eSIMs
    • readOnlyHint: true
    • openWorldHint: true

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.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write10
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Remote posture

What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.

Looked at Oct 22, 2026, 15:11 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.

Reachable
yes
HTTP status of an anonymous initialize
200
tools/list served without credentials
yes
Tools that change things, listed without credentials
5
Protocol version
2025-06-18
WWW-Authenticate on 401
not observed
resource_metadata in WWW-Authenticate
none
RFC 9728 protected resource metadata
https://www.xpressflowsystems.com.ng/.well-known/oauth-protected-resource/api/mcp
Authorization servers
https://www.xpressflowsystems.com.ng
Legacy HTTP+SSE transport
no
Dynamic client registration
yes
Client ID metadata documents
no
  • WarnThe whole server

    The endpoint served tools/list without credentials, and the list has 5 tools that change things (5 write). Whether a call also works without credentials was not tested: tools are never called.

    Matched text

    https://www.xpressflowsystems.com.ng/api/mcp: tools/list returned 12 tools to an anonymous client, including check_domain_availability (write), create_domain_order (write), create_esim_order (write), create_proxy_order (write), create_wallet (write)

    What this check looks for

Install

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

claude mcp add --transport http esim-domains https://www.xpressflowsystems.com.ng/api/mcp

Run in a terminal.

Claude Code permissions

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

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__esim-domains__list_esim_locations",
      "mcp__esim-domains__search_esim_plans",
      "mcp__esim-domains__search",
      "mcp__esim-domains__fetch",
      "mcp__esim-domains__search_phone_plans",
      "mcp__esim-domains__get_order_status",
      "mcp__esim-domains__list_proxy_products"
    ],
    "ask": [
      "mcp__esim-domains__check_domain_availability",
      "mcp__esim-domains__create_domain_order",
      "mcp__esim-domains__create_esim_order",
      "mcp__esim-domains__create_proxy_order",
      "mcp__esim-domains__create_wallet"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as esim-domains. Review it before you use it.

Capability tags behind 10 rules
  • mcp__esim-domains__check_domain_availability untrusted-input
  • mcp__esim-domains__list_esim_locations untrusted-input
  • mcp__esim-domains__search_esim_plans untrusted-input
  • mcp__esim-domains__search untrusted-input
  • mcp__esim-domains__fetch untrusted-input
  • mcp__esim-domains__search_phone_plans untrusted-input
  • mcp__esim-domains__create_domain_order untrusted-input
  • mcp__esim-domains__create_esim_order untrusted-input
  • mcp__esim-domains__list_proxy_products untrusted-input
  • mcp__esim-domains__create_proxy_order untrusted-input