AgentRoam MCP
An MCP server provided by AgentRoam that allows AI agents to search for travel eSIM data plans, gift cards, and mobile airtime, and execute purchases using cryptocurrency from the user's wallet, with mandatory user confirmation before any order is placed.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://agentroam.ai/api/mcpWhat its tools do
11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (8)
Can change data (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to agentroam.ai ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for travel eSIM data plans by destination
- Quote prices for gift cards and mobile top-ups
- Validate order details with the user
- Purchase eSIMs or top-ups using crypto
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- agentroam 0.2.0
- MCP protocol negotiated in check
- 2025-03-26
- Tools
- 11 advertised
- Resources
- 3 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {},
"resources": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
11 advertised
search_products — Search catalog
Search the AgentRoam travel-crypto catalog: gift cards (Airbnb, Uber, airlines, 500+ US brands), eSIM data plans (110+ destinations incl. Europe/Global region plans) and mobile top-ups (carriers in 100+ countries). Returns product handles (brandSlug + countryCode) used by the pricing and order tools. Creates no order.
{
"type": "object",
"required": [
"query"
],
"properties": {
"kind": {
"type": "string",
"description": "Product type filter"
},
"query": {
"type": "string",
"description": "Brand, carrier or destination to search for"
},
"country": {
"type": "string",
"description": "ISO country code filter (e.g. \"us\", \"mx\")"
}
}
}{
"type": "object",
"required": [],
"properties": {
"hint": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "Product page on the AgentRoam site"
},
"kind": {
"type": "string",
"description": "giftcard | esim | topup"
},
"range": {
"type": "string",
"description": "Price range display, e.g. \"$50 – $500\""
},
"brandName": {
"type": "string"
},
"brandSlug": {
"type": "string"
},
"outOfStock": {
"type": "boolean"
},
"countryCode": {
"type": "string"
},
"destination": {
"type": "string",
"description": "eSIM destination name"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}{
"title": "Search catalog",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}get_price — Get crypto price
Live crypto price for one product/denomination. Payment coins include USDT, USDC, BTC (incl. Lightning), ETH, SOL, DAI, PYUSD, LTC, TRX, TON, DOGE and SUI across many networks; get_payment_methods returns the current set. Creates no order.
{
"type": "object",
"required": [
"brand_slug",
"country_code",
"denomination_label",
"amount_usd",
"dynamic",
"coin",
"network"
],
"properties": {
"coin": {
"type": "string",
"description": "Payment coin, e.g. USDC, USDT, BTC, SOL"
},
"dynamic": {
"type": "boolean",
"description": "true for dynamic-range amounts, false for fixed denomination labels"
},
"network": {
"type": "string",
"description": "Exact network string from get_price/networks, e.g. \"Solana\", \"Tron\", \"ETH Mainnet\""
},
"amount_usd": {
"type": "number",
"description": "USD amount (for dynamic-range products)"
},
"brand_slug": {
"type": "string",
"description": "brandSlug from search_products"
},
"country_code": {
"type": "string",
"description": "countryCode from search_products"
},
"denomination_label": {
"type": "string",
"description": "Exact denomination label (e.g. \"100 USD\", \"60 UC\", \"1 GB 7 days\")"
}
}
}{
"type": "object",
"required": [
"payAmount",
"coin",
"network"
],
"properties": {
"coin": {
"type": "string"
},
"feePct": {
"type": "number",
"description": "Fee percent over USD face value (0 for volatile coins)"
},
"network": {
"type": "string"
},
"estimate": {
"type": "boolean",
"description": "true = indicative only; exact amount fixed at order creation"
},
"payAmount": {
"type": "number",
"description": "Amount to pay in the chosen coin"
},
"faceValueUsd": {
"type": "number"
}
},
"additionalProperties": true
}{
"title": "Get crypto price",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}validate_order — Prepare order for approval
Dry-run an order and mint a one-time confirm_token (valid 10 minutes). Returns a human-readable purchase summary for the buyer to approve, plus the one-time token that create_order requires. Creates no order and reserves no funds.
{
"type": "object",
"required": [
"brand_slug",
"country_code",
"denomination_label",
"amount_usd",
"dynamic",
"coin",
"network",
"email"
],
"properties": {
"coin": {
"type": "string",
"description": "Payment coin, e.g. USDC, USDT, BTC, SOL"
},
"email": {
"type": "string",
"description": "Delivery email for the buyer"
},
"phone": {
"type": "string",
"description": "Phone number to recharge (REQUIRED for mobile top-ups, with country code)"
},
"dynamic": {
"type": "boolean",
"description": "true for dynamic-range amounts, false for fixed denomination labels"
},
"network": {
"type": "string",
"description": "Exact network string from get_price/networks, e.g. \"Solana\", \"Tron\", \"ETH Mainnet\""
},
"amount_usd": {
"type": "number",
"description": "USD amount (for dynamic-range products)"
},
"brand_slug": {
"type": "string",
"description": "brandSlug from search_products"
},
"country_code": {
"type": "string",
"description": "countryCode from search_products"
},
"denomination_label": {
"type": "string",
"description": "Exact denomination label (e.g. \"100 USD\", \"60 UC\", \"1 GB 7 days\")"
}
}
}{
"type": "object",
"required": [],
"properties": {
"error": {
"type": "string",
"description": "product_not_found | out_of_stock | PHONE_MISSING"
},
"price": {
"type": "object",
"required": [],
"properties": {
"coin": {
"type": "string"
},
"feePct": {
"type": "number",
"description": "Fee percent over USD face value (0 for volatile coins)"
},
"network": {
"type": "string"
},
"estimate": {
"type": "boolean",
"description": "true = indicative only; exact amount fixed at order creation"
},
"payAmount": {
"type": "number",
"description": "Amount to pay in the chosen coin"
},
"faceValueUsd": {
"type": "number"
}
},
"additionalProperties": true
},
"valid": {
"type": "boolean"
},
"message": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Human-readable purchase summary — show to the user for approval"
},
"instructions": {
"type": "string"
},
"confirm_token": {
"type": "string",
"description": "One-time token for create_order, valid 10 minutes"
},
"expires_in_seconds": {
"type": "number"
}
},
"additionalProperties": true
}{
"title": "Prepare order for approval",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}create_order — Place order
Creates the real order. Requires a confirm_token minted by validate_order. Returns the payment wallet address, exact crypto amount, 30-minute expiry, and an order-status URL. The purchased code/QR is emailed by Cryptorefills to the buyer — it is never returned here.
{
"type": "object",
"required": [
"confirm_token"
],
"properties": {
"full_name": {
"type": "string",
"description": "Buyer full legal name — only if a previous attempt returned FULLNAME_MISSING"
},
"confirm_token": {
"type": "string",
"description": "One-time token returned by validate_order (valid 10 minutes)"
}
}
}{
"type": "object",
"required": [],
"properties": {
"coin": {
"type": "string"
},
"error": {
"type": "string",
"description": "Present on failure: KYC_MISSING | FULLNAME_MISSING | PHONE_MISSING | CONFIRM_TOKEN_*"
},
"state": {
"type": "string",
"description": "CREATED | WAITING_FOR_PAYMENT | PARTIAL | COMPLETED | CANCELED | EXPIRED"
},
"qr_url": {
"type": "string",
"description": "QR code PNG of the address"
},
"kyc_url": {
"type": "string",
"description": "Hosted verification link when error=KYC_MISSING"
},
"network": {
"type": "string",
"description": "Exact network — funds sent elsewhere are lost"
},
"pay_amount": {
"type": "number",
"description": "EXACT amount to send"
},
"status_url": {
"type": "string",
"description": "Live order-status page"
},
"payment_url": {
"type": "string",
"description": "Payment page with QR"
},
"instructions": {
"type": "string"
},
"status_token": {
"type": "string"
},
"network_label": {
"type": "string"
},
"pay_to_address": {
"type": "string",
"description": "Wallet address to send funds to"
},
"external_order_id": {
"type": "string"
},
"payment_expires_at": {
"type": "string",
"description": "ISO timestamp; 30-minute window"
}
},
"additionalProperties": true
}{
"title": "Place order",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}list_esim_plans — List eSIM plans
Live eSIM data plans for a destination (110+ countries, plus "eu" Europe and "ww" Global multi-country plans) with USD prices and crypto amounts. In clients that support widgets, the response also renders an interactive plan picker. Creates no order by itself.
{
"type": "object",
"required": [
"destination"
],
"properties": {
"coin": {
"type": "string",
"description": "Coin for live pricing (default USDC)"
},
"destination": {
"type": "string",
"description": "Destination: 2-letter country code (e.g. \"il\", \"jp\", \"fr\"), or \"eu\" (Europe region plan) / \"ww\" (Global plan)"
}
}
}{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string"
},
"coin": {
"type": "string"
},
"flag": {
"type": "string"
},
"brand": {
"type": "string"
},
"error": {
"type": "string"
},
"country": {
"type": "string",
"description": "Destination code — pass as country_code to validate_order"
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"usd": {
"type": "number"
},
"data_gb": {
"type": "number"
},
"coin_amount": {
"type": "number"
},
"validity_days": {
"type": "number"
},
"denomination_label": {
"type": "string",
"description": "Exact label for validate_order"
}
},
"additionalProperties": true
}
},
"destination_name": {
"type": "string"
}
},
"additionalProperties": true
}{
"title": "List eSIM plans",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}get_order_status — Check order status
Poll order state (WAITING_FOR_PAYMENT → PARTIAL → COMPLETED, or CANCELED/EXPIRED). Requires the status_token from create_order.
{
"type": "object",
"required": [
"external_order_id",
"status_token"
],
"properties": {
"status_token": {
"type": "string",
"description": "statusToken returned by create_order"
},
"external_order_id": {
"type": "string"
}
}
}{
"type": "object",
"required": [],
"properties": {
"coin": {
"type": "string"
},
"brand": {
"type": "string"
},
"error": {
"type": "string",
"description": "not_found when id/token mismatch"
},
"state": {
"type": "string",
"description": "WAITING_FOR_PAYMENT | PARTIAL | COMPLETED | CANCELED | EXPIRED | REFUNDED"
},
"network": {
"type": "string"
},
"status_url": {
"type": "string"
},
"denomination": {
"type": "string"
},
"external_order_id": {
"type": "string"
},
"payment_expires_at": {
"type": "string"
}
},
"additionalProperties": true
}{
"title": "Check order status",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}list_brands — List brands by country
Browse all available brands/carriers for a country: gift cards (500+ US brands) and mobile top-up carriers (100+ countries). Creates no order.
{
"type": "object",
"required": [
"country_code"
],
"properties": {
"kind": {
"type": "string",
"description": "Filter by product type"
},
"country_code": {
"type": "string",
"description": "ISO country code, e.g. \"us\", \"mx\""
}
}
}{
"type": "object",
"required": [],
"properties": {
"count": {
"type": "number"
},
"brands": {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"kind": {
"type": "string",
"description": "giftcard | topup"
},
"note": {
"type": "string"
},
"range": {
"type": "string"
},
"category": {
"type": "string"
},
"brandName": {
"type": "string"
},
"brandSlug": {
"type": "string"
},
"outOfStock": {
"type": "boolean"
}
},
"additionalProperties": true
}
},
"country": {
"type": "string"
}
},
"additionalProperties": true
}{
"title": "List brands by country",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}list_products — List brand products
List a brand's live products/denominations with prices in the chosen coin — including the exact denomination labels the pricing and order tools expect (eSIM destinations are covered by list_esim_plans). Creates no order.
{
"type": "object",
"required": [
"brand_slug",
"country_code"
],
"properties": {
"coin": {
"type": "string",
"description": "Coin for live pricing (default USDC)"
},
"brand_slug": {
"type": "string",
"description": "brandSlug from list_brands/search_products"
},
"country_code": {
"type": "string"
}
}
}{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "Product page on the AgentRoam site"
},
"coin": {
"type": "string"
},
"flag": {
"type": "string"
},
"kind": {
"type": "string",
"description": "giftcard | esim | topup"
},
"brand": {
"type": "string"
},
"error": {
"type": "string",
"description": "product_not_found"
},
"country": {
"type": "string"
},
"is_esim": {
"type": "boolean"
},
"logoUrl": {
"type": "string"
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"usd": {
"type": "number"
},
"range": {
"type": "object",
"required": [],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"step": {
"type": "number"
}
},
"additionalProperties": true
},
"data_gb": {
"type": "number",
"description": "eSIM plans only"
},
"dynamic": {
"type": "boolean"
},
"coin_amount": {
"type": "number",
"description": "Live price in the requested coin"
},
"validity_days": {
"type": "number",
"description": "eSIM plans only"
},
"denomination_label": {
"type": "string",
"description": "Exact label for get_price/validate_order"
}
},
"additionalProperties": true
}
},
"brand_slug": {
"type": "string"
},
"country_name": {
"type": "string"
},
"destination_name": {
"type": "string"
}
},
"additionalProperties": true
}{
"title": "List brand products",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}get_currencies — List payment coins
List all supported payment cryptocurrencies (the response carries the current set).
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"required": [
"currencies"
],
"properties": {
"currencies": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
}{
"title": "List payment coins",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_payment_methods — List payment networks
Full payment matrix: every supported coin × network combination currently available, with the exact network strings orders require. The response includes live totals for coins, networks and combinations.
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"required": [
"combinations"
],
"properties": {
"payment_via": {
"type": "string"
},
"combinations": {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"coin": {
"type": "string"
},
"display": {
"type": "string"
},
"network": {
"type": "string",
"description": "Exact string to pass on orders"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}{
"title": "List payment networks",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}purchase_wizard — Guided purchase (text)
Stateful text-only purchase flow for clients without widget support. Called repeatedly with the same session_token, one question at a time, until status is "complete"; the first call takes empty arguments. The final "confirm" answer creates a real order.
{
"type": "object",
"required": [],
"properties": {
"action": {
"type": "string",
"description": "\"back\" to return to the previous step"
},
"answer": {
"type": "string",
"description": "Answer to the current question"
},
"session_token": {
"type": "string",
"description": "Omit on the first call — a new session is minted"
}
}
}{
"type": "object",
"required": [
"status",
"session_token"
],
"properties": {
"hint": {
"type": "string"
},
"step": {
"type": "string"
},
"error": {
"type": "string"
},
"result": {
"type": "object",
"required": [],
"properties": {
"coin": {
"type": "string"
},
"error": {
"type": "string",
"description": "Present on failure: KYC_MISSING | FULLNAME_MISSING | PHONE_MISSING | CONFIRM_TOKEN_*"
},
"state": {
"type": "string",
"description": "CREATED | WAITING_FOR_PAYMENT | PARTIAL | COMPLETED | CANCELED | EXPIRED"
},
"qr_url": {
"type": "string",
"description": "QR code PNG of the address"
},
"kyc_url": {
"type": "string",
"description": "Hosted verification link when error=KYC_MISSING"
},
"network": {
"type": "string",
"description": "Exact network — funds sent elsewhere are lost"
},
"pay_amount": {
"type": "number",
"description": "EXACT amount to send"
},
"status_url": {
"type": "string",
"description": "Live order-status page"
},
"payment_url": {
"type": "string",
"description": "Payment page with QR"
},
"instructions": {
"type": "string"
},
"status_token": {
"type": "string"
},
"network_label": {
"type": "string"
},
"pay_to_address": {
"type": "string",
"description": "Wallet address to send funds to"
},
"external_order_id": {
"type": "string"
},
"payment_expires_at": {
"type": "string",
"description": "ISO timestamp; 30-minute window"
}
},
"additionalProperties": true
},
"status": {
"type": "string",
"description": "in_progress | complete | error"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
},
"summary": {
"type": "string"
},
"question": {
"type": "string",
"description": "Ask the user this"
},
"session_token": {
"type": "string",
"description": "Pass back on every call of this session"
}
},
"additionalProperties": true
}{
"title": "Guided purchase (text)",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}Prompts
Not advertised
Resources
3 advertised
eSIM Plan Picker
eSIM data plans for a destination with live crypto pricing
ui://widget/esim-plans.html@v9Product Denominations
Gift card / top-up denominations with live crypto pricing
ui://widget/products.html@v9Crypto Payment Card
Payment address, exact amount, QR code and live order status link
ui://widget/payment.html@v990-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
- 2026-11-09: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1877 ms
- 95th percentile latency
- 1877 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1877 ms · metadata changed · 11 tool(s), 3 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http agentroam-mcp https://agentroam.ai/api/mcpCodex
codex mcp add agentroam-mcp --url https://agentroam.ai/api/mcpCursor
{
"mcpServers": {
"agentroam-mcp": {
"url": "https://agentroam.ai/api/mcp"
}
}
}Cline
{
"mcpServers": {
"agentroam-mcp": {
"type": "streamableHttp",
"url": "https://agentroam.ai/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"agentroam-mcp": {
"type": "http",
"url": "https://agentroam.ai/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http agentroam-mcp https://agentroam.ai/api/mcpClaude Desktop
https://agentroam.ai/api/mcpWindsurf
{
"mcpServers": {
"agentroam-mcp": {
"serverUrl": "https://agentroam.ai/api/mcp"
}
}
}Let your agent find its tools
Find servers like AgentRoam MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run AgentRoam MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.