AgentRoam

Buy travel eSIMs, gift cards and mobile top-ups with crypto — user confirms before any order.

Should I use this

Quality & Safety

A
Description quality
94%
Schema completeness
85%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_payment_methods' description lacks action verbin get_payment_methods

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,602Tokens (tool definitions)
~3.2 KBTypical response size
Significant attention impact (2.81% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "agentroam": {
      "url": "https://agentroam.ai/api/mcp"
    }
  }
}

Remote endpoints

https://agentroam.ai/api/mcpstreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_products(query, country, kind)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Brand, carrier or destination to search for"
    },
    "country": {
      "type": "string",
      "description": "ISO country code filter (e.g. \"us\", \"mx\")"
    },
    "kind": {
      "type": "string",
      "description": "Product type filter"
    }
  },
  "required": [
    "query"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "description": "giftcard | esim | topup"
          },
          "brandSlug": {
            "type": "string"
          },
          "brandName": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "destination": {
            "type": "string",
            "description": "eSIM destination name"
          },
          "range": {
            "type": "string",
            "description": "Price range display, e.g. \"$50 – $500\""
          },
          "outOfStock": {
            "type": "boolean"
          },
          "url": {
            "type": "string",
            "description": "Product page on the AgentRoam site"
          }
        },
        "required": [],
        "additionalProperties": true
      }
    },
    "hint": {
      "type": "string"
    }
  },
  "required": [],
  "additionalProperties": true
}
🟢get_price(brand_slug, country_code, denomination_label, amount_usd, dynamic, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "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\")"
    },
    "amount_usd": {
      "type": "number",
      "description": "USD amount (for dynamic-range products)"
    },
    "dynamic": {
      "type": "boolean",
      "description": "true for dynamic-range amounts, false for fixed denomination labels"
    },
    "coin": {
      "type": "string",
      "description": "Payment coin, e.g. USDC, USDT, BTC, SOL"
    },
    "network": {
      "type": "string",
      "description": "Exact network string from get_price/networks, e.g. \"Solana\", \"Tron\", \"ETH Mainnet\""
    }
  },
  "required": [
    "brand_slug",
    "country_code",
    "denomination_label",
    "amount_usd",
    "dynamic",
    "coin",
    "network"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "payAmount": {
      "type": "number",
      "description": "Amount to pay in the chosen coin"
    },
    "coin": {
      "type": "string"
    },
    "network": {
      "type": "string"
    },
    "feePct": {
      "type": "number",
      "description": "Fee percent over USD face value (0 for volatile coins)"
    },
    "faceValueUsd": {
      "type": "number"
    },
    "estimate": {
      "type": "boolean",
      "description": "true = indicative only; exact amount fixed at order creation"
    }
  },
  "required": [
    "payAmount",
    "coin",
    "network"
  ],
  "additionalProperties": true
}
🟡validate_order(brand_slug, country_code, denomination_label, amount_usd, dynamic, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "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\")"
    },
    "amount_usd": {
      "type": "number",
      "description": "USD amount (for dynamic-range products)"
    },
    "dynamic": {
      "type": "boolean",
      "description": "true for dynamic-range amounts, false for fixed denomination labels"
    },
    "coin": {
      "type": "string",
      "description": "Payment coin, e.g. USDC, USDT, BTC, SOL"
    },
    "network": {
      "type": "string",
      "description": "Exact network string from get_price/networks, e.g. \"Solana\", \"Tron\", \"ETH Mainnet\""
    },
    "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)"
    }
  },
  "required": [
    "brand_slug",
    "country_code",
    "denomination_label",
    "amount_usd",
    "dynamic",
    "coin",
    "network",
    "email"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "valid": {
      "type": "boolean"
    },
    "summary": {
      "type": "string",
      "description": "Human-readable purchase summary — show to the user for approval"
    },
    "confirm_token": {
      "type": "string",
      "description": "One-time token for create_order, valid 10 minutes"
    },
    "expires_in_seconds": {
      "type": "number"
    },
    "price": {
      "type": "object",
      "properties": {
        "payAmount": {
          "type": "number",
          "description": "Amount to pay in the chosen coin"
        },
        "coin": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "feePct": {
          "type": "number",
          "description": "Fee percent over USD face value (0 for volatile coins)"
        },
        "faceValueUsd": {
          "type": "number"
        },
        "estimate": {
          "type": "boolean",
          "description": "true = indicative only; exact amount fixed at order creation"
        }
      },
      "required": [],
      "additionalProperties": true
    },
    "instructions": {
      "type": "string"
    },
    "error": {
      "type": "string",
      "description": "product_not_found | out_of_stock | PHONE_MISSING"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [],
  "additionalProperties": true
}
🔴create_order(confirm_token, full_name)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "confirm_token": {
      "type": "string",
      "description": "One-time token returned by validate_order (valid 10 minutes)"
    },
    "full_name": {
      "type": "string",
      "description": "Buyer full legal name — only if a previous attempt returned FULLNAME_MISSING"
    }
  },
  "required": [
    "confirm_token"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "external_order_id": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "description": "CREATED | WAITING_FOR_PAYMENT | PARTIAL | COMPLETED | CANCELED | EXPIRED"
    },
    "pay_to_address": {
      "type": "string",
      "description": "Wallet address to send funds to"
    },
    "pay_amount": {
      "type": "number",
      "description": "EXACT amount to send"
    },
    "coin": {
      "type": "string"
    },
    "network": {
      "type": "string",
      "description": "Exact network — funds sent elsewhere are lost"
    },
    "network_label": {
      "type": "string"
    },
    "payment_expires_at": {
      "type": "string",
      "description": "ISO timestamp; 30-minute window"
    },
    "status_token": {
      "type": "string"
    },
    "status_url": {
      "type": "string",
      "description": "Live order-status page"
    },
    "payment_url": {
      "type": "string",
      "description": "Payment page with QR"
    },
    "qr_url": {
      "type": "string",
      "description": "QR code PNG of the address"
    },
    "instructions": {
      "type": "string"
    },
    "error": {
      "type": "string",
      "description": "Present on failure: KYC_MISSING | FULLNAME_MISSING | PHONE_MISSING | CONFIRM_TOKEN_*"
    },
    "kyc_url": {
      "type": "string",
      "description": "Hosted verification link when error=KYC_MISSING"
    }
  },
  "required": [],
  "additionalProperties": true
}
🟢list_esim_plans(destination, coin)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "Destination: 2-letter country code (e.g. \"il\", \"jp\", \"fr\"), or \"eu\" (Europe region plan) / \"ww\" (Global plan)"
    },
    "coin": {
      "type": "string",
      "description": "Coin for live pricing (default USDC)"
    }
  },
  "required": [
    "destination"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "brand": {
      "type": "string"
    },
    "country": {
      "type": "string",
      "description": "Destination code — pass as country_code to validate_order"
    },
    "destination_name": {
      "type": "string"
    },
    "flag": {
      "type": "string"
    },
    "coin": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "denomination_label": {
            "type": "string",
            "description": "Exact label for validate_order"
          },
          "usd": {
            "type": "number"
          },
          "coin_amount": {
            "type": "number"
          },
          "data_gb": {
            "type": "number"
          },
          "validity_days": {
            "type": "number"
          }
        },
        "required": [],
        "additionalProperties": true
      }
    },
    "error": {
      "type": "string"
    }
  },
  "required": [],
  "additionalProperties": true
}
🟢get_order_status(external_order_id, status_token)

Poll order state (WAITING_FOR_PAYMENT → PARTIAL → COMPLETED, or CANCELED/EXPIRED). Requires the status_token from create_order.

Input Schema

{
  "type": "object",
  "properties": {
    "external_order_id": {
      "type": "string"
    },
    "status_token": {
      "type": "string",
      "description": "statusToken returned by create_order"
    }
  },
  "required": [
    "external_order_id",
    "status_token"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "external_order_id": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "description": "WAITING_FOR_PAYMENT | PARTIAL | COMPLETED | CANCELED | EXPIRED | REFUNDED"
    },
    "brand": {
      "type": "string"
    },
    "denomination": {
      "type": "string"
    },
    "coin": {
      "type": "string"
    },
    "network": {
      "type": "string"
    },
    "payment_expires_at": {
      "type": "string"
    },
    "status_url": {
      "type": "string"
    },
    "error": {
      "type": "string",
      "description": "not_found when id/token mismatch"
    }
  },
  "required": [],
  "additionalProperties": true
}
🟢list_brands(country_code, kind)

Browse all available brands/carriers for a country: gift cards (500+ US brands) and mobile top-up carriers (100+ countries). Creates no order.

Input Schema

{
  "type": "object",
  "properties": {
    "country_code": {
      "type": "string",
      "description": "ISO country code, e.g. \"us\", \"mx\""
    },
    "kind": {
      "type": "string",
      "description": "Filter by product type"
    }
  },
  "required": [
    "country_code"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string"
    },
    "count": {
      "type": "number"
    },
    "brands": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "description": "giftcard | topup"
          },
          "brandSlug": {
            "type": "string"
          },
          "brandName": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "range": {
            "type": "string"
          },
          "outOfStock": {
            "type": "boolean"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": true
      }
    }
  },
  "required": [],
  "additionalProperties": true
}
🟢list_products(brand_slug, country_code, coin)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "brand_slug": {
      "type": "string",
      "description": "brandSlug from list_brands/search_products"
    },
    "country_code": {
      "type": "string"
    },
    "coin": {
      "type": "string",
      "description": "Coin for live pricing (default USDC)"
    }
  },
  "required": [
    "brand_slug",
    "country_code"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "brand": {
      "type": "string"
    },
    "brand_slug": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "country_name": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "description": "giftcard | esim | topup"
    },
    "is_esim": {
      "type": "boolean"
    },
    "destination_name": {
      "type": "string"
    },
    "flag": {
      "type": "string"
    },
    "logoUrl": {
      "type": "string"
    },
    "coin": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "description": "Product page on the AgentRoam site"
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "denomination_label": {
            "type": "string",
            "description": "Exact label for get_price/validate_order"
          },
          "usd": {
            "type": "number"
          },
          "coin_amount": {
            "type": "number",
            "description": "Live price in the requested coin"
          },
          "dynamic": {
            "type": "boolean"
          },
          "range": {
            "type": "object",
            "properties": {
              "min": {
                "type": "number"
              },
              "max": {
                "type": "number"
              },
              "step": {
                "type": "number"
              }
            },
            "required": [],
            "additionalProperties": true
          },
          "data_gb": {
            "type": "number",
            "description": "eSIM plans only"
          },
          "validity_days": {
            "type": "number",
            "description": "eSIM plans only"
          }
        },
        "required": [],
        "additionalProperties": true
      }
    },
    "error": {
      "type": "string",
      "description": "product_not_found"
    }
  },
  "required": [],
  "additionalProperties": true
}
🟢get_currencies

List all supported payment cryptocurrencies (the response carries the current set).

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}

Output Schema

{
  "type": "object",
  "properties": {
    "currencies": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "currencies"
  ],
  "additionalProperties": true
}
🟢get_payment_methods

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}

Output Schema

{
  "type": "object",
  "properties": {
    "payment_via": {
      "type": "string"
    },
    "combinations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "coin": {
            "type": "string"
          },
          "network": {
            "type": "string",
            "description": "Exact string to pass on orders"
          },
          "display": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": true
      }
    }
  },
  "required": [
    "combinations"
  ],
  "additionalProperties": true
}
🔴purchase_wizard(session_token, answer, action)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "session_token": {
      "type": "string",
      "description": "Omit on the first call — a new session is minted"
    },
    "answer": {
      "type": "string",
      "description": "Answer to the current question"
    },
    "action": {
      "type": "string",
      "description": "\"back\" to return to the previous step"
    }
  },
  "required": []
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "in_progress | complete | error"
    },
    "session_token": {
      "type": "string",
      "description": "Pass back on every call of this session"
    },
    "step": {
      "type": "string"
    },
    "question": {
      "type": "string",
      "description": "Ask the user this"
    },
    "options": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "summary": {
      "type": "string"
    },
    "error": {
      "type": "string"
    },
    "hint": {
      "type": "string"
    },
    "result": {
      "type": "object",
      "properties": {
        "external_order_id": {
          "type": "string"
        },
        "state": {
          "type": "string",
          "description": "CREATED | WAITING_FOR_PAYMENT | PARTIAL | COMPLETED | CANCELED | EXPIRED"
        },
        "pay_to_address": {
          "type": "string",
          "description": "Wallet address to send funds to"
        },
        "pay_amount": {
          "type": "number",
          "description": "EXACT amount to send"
        },
        "coin": {
          "type": "string"
        },
        "network": {
          "type": "string",
          "description": "Exact network — funds sent elsewhere are lost"
        },
        "network_label": {
          "type": "string"
        },
        "payment_expires_at": {
          "type": "string",
          "description": "ISO timestamp; 30-minute window"
        },
        "status_token": {
          "type": "string"
        },
        "status_url": {
          "type": "string",
          "description": "Live order-status page"
        },
        "payment_url": {
          "type": "string",
          "description": "Payment page with QR"
        },
        "qr_url": {
          "type": "string",
          "description": "QR code PNG of the address"
        },
        "instructions": {
          "type": "string"
        },
        "error": {
          "type": "string",
          "description": "Present on failure: KYC_MISSING | FULLNAME_MISSING | PHONE_MISSING | CONFIRM_TOKEN_*"
        },
        "kyc_url": {
          "type": "string",
          "description": "Hosted verification link when error=KYC_MISSING"
        }
      },
      "required": [],
      "additionalProperties": true
    }
  },
  "required": [
    "status",
    "session_token"
  ],
  "additionalProperties": true
}

Compare

Version History

unknown → unknown
11/2/2026
Initial manifest with 11 tools
Details
Added:
  • + search_products
  • + get_price
  • + validate_order
  • + create_order
  • + list_esim_plans
  • + get_order_status
  • + list_brands
  • + list_products
  • + get_currencies
  • + get_payment_methods
  • + purchase_wizard
unknown → unknown
11/2/2026
Modified 9 tools, 1 breaking change
⚠ 1 breaking change detected
Details
Modified:
  • ~ search_products
    • description changed
  • ~ get_price
    • description changed
  • ~ validate_order
    • description changed
  • ~ create_order
    • description changed
  • ~ list_esim_plans
    • description changed
  • ~ list_brands
    • description changed
  • ~ list_products
    • description changed
  • ~ get_payment_methods
    • description changed
  • ~ purchase_wizard
    • description changed
    • significant description change (potential breaking)
unknown → unknown
11/2/2026
Initial manifest with 11 tools
Details
Added:
  • + search_products
  • + get_price
  • + validate_order
  • + create_order
  • + list_esim_plans
  • + get_order_status
  • + list_brands
  • + list_products
  • + get_currencies
  • + get_payment_methods
  • + purchase_wizard
unknown → unknown
11/2/2026
Modified 9 tools, 1 breaking change
⚠ 1 breaking change detected
Details
Modified:
  • ~ search_products
    • description changed
  • ~ get_price
    • description changed
  • ~ validate_order
    • description changed
  • ~ create_order
    • description changed
  • ~ list_esim_plans
    • description changed
  • ~ list_brands
    • description changed
  • ~ list_products
    • description changed
  • ~ get_payment_methods
    • description changed
  • ~ purchase_wizard
    • description changed
    • significant description change (potential breaking)
unknown → unknown
11/2/2026
Initial manifest with 11 tools
Details
Added:
  • + search_products
  • + get_price
  • + validate_order
  • + create_order
  • + list_esim_plans
  • + get_order_status
  • + list_brands
  • + list_products
  • + get_currencies
  • + get_payment_methods
  • + purchase_wizard
unknown → unknown
11/2/2026
Modified 9 tools, 1 breaking change
⚠ 1 breaking change detected
Details
Modified:
  • ~ search_products
    • description changed
  • ~ get_price
    • description changed
  • ~ validate_order
    • description changed
  • ~ create_order
    • description changed
  • ~ list_esim_plans
    • description changed
  • ~ list_brands
    • description changed
  • ~ list_products
    • description changed
  • ~ get_payment_methods
    • description changed
  • ~ purchase_wizard
    • description changed
    • significant description change (potential breaking)
unknown → unknown
11/2/2026
Initial manifest with 11 tools
Details
Added:
  • + search_products
  • + get_price
  • + validate_order
  • + create_order
  • + list_esim_plans
  • + get_order_status
  • + list_brands
  • + list_products
  • + get_currencies
  • + get_payment_methods
  • + purchase_wizard
unknown → unknown
11/2/2026
Modified 9 tools, 1 breaking change
⚠ 1 breaking change detected
Details
Modified:
  • ~ search_products
    • description changed
  • ~ get_price
    • description changed
  • ~ validate_order
    • description changed
  • ~ create_order
    • description changed
  • ~ list_esim_plans
    • description changed
  • ~ list_brands
    • description changed
  • ~ list_products
    • description changed
  • ~ get_payment_methods
    • description changed
  • ~ purchase_wizard
    • description changed
    • significant description change (potential breaking)
unknown → unknown
11/2/2026
Initial manifest with 11 tools
Details
Added:
  • + search_products
  • + get_price
  • + validate_order
  • + create_order
  • + list_esim_plans
  • + get_order_status
  • + list_brands
  • + list_products
  • + get_currencies
  • + get_payment_methods
  • + purchase_wizard
unknown → unknown
11/2/2026
Modified 9 tools, 1 breaking change
⚠ 1 breaking change detected
Details
Modified:
  • ~ search_products
    • description changed
  • ~ get_price
    • description changed
  • ~ validate_order
    • description changed
  • ~ create_order
    • description changed
  • ~ list_esim_plans
    • description changed
  • ~ list_brands
    • description changed
  • ~ list_products
    • description changed
  • ~ get_payment_methods
    • description changed
  • ~ purchase_wizard
    • description changed
    • significant description change (potential breaking)

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools