Add Roamzy to Claude Desktop, Cursor, or Continue. No sign-up required — the MCP server auto-creates an anonymous Roamzy account on first use.
The MCP config file lives in a different place depending on your client:
| Client | Config path |
|---|---|
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop (Windows) | %APPDATA%/Claude/claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json |
| Continue | ~/.continue/config.json |
Create the file if it doesn't exist — the parent directory may need creating too.
Add this to mcpServers. If the file is empty, the whole object is what goes in:
{
"mcpServers": {
"roamzy": {
"command": "npx",
"args": ["-y", "@roamzy/mcp-server"]
}
}
}
No env block needed — anonymous mode is the default when no token is provided.
{
"mcpServers": {
"roamzy": {
"command": "npx",
"args": ["-y", "@roamzy/mcp-server"],
"env": {
"ROAMZY_API_TOKEN": "rk_live_xxx",
"ROAMZY_ENABLE_PURCHASE": "false"
}
}
}
}
Get a token at /dashboard/settings → Agent integration / API tokens.
Prefer to pin to a hosted tarball (e.g. behind a corporate firewall that blocks npm): swap "@roamzy/mcp-server" for "https://roamzy.io/mcp/roamzy-mcp-latest.tgz". Both run the same code.
Quit fully (Cmd+Q on macOS, not just close the window). Reopen. The Roamzy tools (roamzy_status, roamzy_list_countries, roamzy_estimate, roamzy_create_order, roamzy_get_esim) appear in the tools menu.
Stuck? Logs are at ~/Library/Logs/Claude/mcp.log on macOS.
Try natural language — no need to remember tool names:
You: How much does an eSIM cost in Japan for 1 GB through Roamzy? You: Buy me an eSIM for Spain with $20 USDT. You: I'm going to Italy and the UAE next month, what's the cheapest setup?
For a purchase, the agent returns three things:
| Field | Show to user? | Purpose |
|---|---|---|
msisdn | ✅ Yes | The eSIM phone number (e.g. 2040400002). This is "your eSIM number". |
pay_url | ✅ Yes | USDT payment link (NowPayments hosted). |
claim_url | ✅ Yes (anon mode) | Optional URL to attach this eSIM to a permanent Google/Telegram account. |
esim_id, intent_id, etc. | ❌ No | Internal API plumbing only. |
Open pay_url in any browser, pay the USDT amount. Confirmation typically takes 5-15 minutes (depends on network).
Once settled, the agent calls roamzy_get_esim and renders a QR code in the chat. Scan it with your phone camera — the eSIM activates automatically (iOS 17.4+ / Android 14+) or opens the system eSIM install dialog (older OSes).
If you'd like dashboard access, browser-based top-ups, and recovery if you lose your MCP token: open the claim_url from step 4. Sign in with Google or Telegram, then enter the eSIM number (MSISDN from step 4) as a 2-factor verification.
Tighter than normal accounts — by design, to limit blast radius if the MCP token leaks before you claim:
| Limit | Anonymous | Claimed |
|---|---|---|
| Daily cap | $30 USDT | $50 (raisable to $1000) |
| Monthly cap | $100 USDT | $500 (raisable to $10k) |
| Cool-off (first 7 days) | $30 hard | $50 hard |
| Big-txn confirmation | $50 | $200 (raisable) |
| Max active eSIMs | 1 until claimed | 5 |
| IP rate-limit on signup | 5/day + 1/min burst | — |
Either roamzy.io is down (check /status.html), or your IP hit the 5-per-day anon-session rate-limit. Wait 24h or use a pre-created token instead.
Quit Claude completely (Cmd+Q on macOS), not just close the window. Then reopen. If still missing, check the logs:
tail -f ~/Library/Logs/Claude/mcp.log
You're using a pre-created token without purchase scope enabled. Either:
ROAMZY_API_TOKEN from your config — anonymous mode has purchases enabled by defaultThe Roamzy operator has temporarily paused all agent purchases (incident response). Check /status.html for status + reason. Well-behaved agents poll /api/v1/status and back off automatically.