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.
12 tools: 5 change things and 7 only read.
Scanned Oct 22, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads7Claude Code: allow: see these tools
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/mcpTools
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
searchSearch what Xpress sells: eSIM destinations by name.Reads text others writeNo findings
Why it is in this group
- The name "search" 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 Search what Xpress sells: eSIM destinations by name. Returns ids to pass to fetch.
Annotations the server declares
- title: Search the catalogue
- 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.
What this check looks forMatched 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)
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/mcpRun 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.
{
"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