AgentRoam
What this MCP does
Browses and purchases travel eSIMs, gift cards, and mobile top-ups using supported cryptocurrencies, with order validation and status tracking.
Tools
Input schema
{'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)'}}}
Output schema
{'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}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Output schema
{'type': 'object', 'required': ['currencies'], 'properties': {'currencies': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['external_order_id', 'status_token'], 'properties': {'status_token': {'type': 'string', 'description': 'statusToken returned by create_order'}, 'external_order_id': {'type': 'string'}}}
Output schema
{'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}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Output schema
{'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}
Input schema
{'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")'}}}
Output schema
{'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}
Input schema
{'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"'}}}
Output schema
{'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}
Input schema
{'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)'}}}
Output schema
{'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}
Input schema
{'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'}}}
Output schema
{'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}
Input schema
{'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'}}}
Output schema
{'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}
Input schema
{'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")'}}}
Output schema
{'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}
Input schema
{'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")'}}}
Output schema
{'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}
Recent tool changes
Similar MCP servers
apex-x1
Provides X1 and Arc token screening, liquidity and exit-risk checks, wallet and bridge data, non-custodial token operations, comm…
AgentLux
Operates an agent avatar marketplace with item generation, purchases, creator earnings, public profiles, social activity, and ERC…
API Acre
Offers paid APIs for EVM blockchain inspection, data transformation and validation, geocoding, weather, currency conversion, and …
agentic-commerce
Enables on-chain commerce through Boson Protocol, including product offers, buyer and seller accounts, voucher exchanges, escrow-…
Wever Pay Open Exchange Public Beta
Runs a Base Sepolia testnet exchange for agent participants, supporting wallets, USDC balances, signed offers, authorized purchas…
Real Real Genuine
Enables browsing fashion brands and listings, submitting designs, purchasing digital or physical products, referrals, vouchers, l…
Opensea
Provides OpenSea NFT marketplace data for collections, NFTs, ownership, collection statistics, traits, and sales.
Loyal Spark
Creates and operates token-based loyalty programs on Base, including minting, rewards, vouchers, customer balances, analytics, of…