Koskamo

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.

AgentRoam MCP logo, by AgentRoamVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by AgentRoam
MCP endpoint (Streamable HTTP)
https://agentroam.ai/api/mcp
Vendor documentation

What its tools do

11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

11 of 11 have a description · 11 of 11 declare behavior hints · 7 of 9 with parameters document them all

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

Vendor evidenceRegistry 1.0.0
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
Server-advertised capabilities
{
  "tools": {},
  "resources": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Buy travel gift cards, eSIM data plans and mobile top-ups with crypto (USDC, USDT, BTC, SOL and more). Flow: search_products → get_price → validate_order (returns a summary + one-time confirm_token; show the summary to the user for explicit approval) → create_order (returns a wallet address the user pays from their own wallet) → get_order_status. Purchases are fulfilled by Cryptorefills B.V. as merchant of record; codes are delivered by email, never through this API.

Tools

11 advertised

search_products — Search catalog
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_products 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\")"
    }
  }
}
search_products 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
}
search_products annotations
{
  "title": "Search catalog",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_price — Get crypto price
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_price 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\")"
    }
  }
}
get_price 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
}
get_price annotations
{
  "title": "Get crypto price",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
validate_order — Prepare order for approval
Advertised by the server during the last successful anonymous check.
Open-world

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.

validate_order 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\")"
    }
  }
}
validate_order 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
}
validate_order annotations
{
  "title": "Prepare order for approval",
  "readOnlyHint": false,
  "openWorldHint": true,
  "destructiveHint": false
}
create_order — Place order
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

create_order 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)"
    }
  }
}
create_order 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
}
create_order annotations
{
  "title": "Place order",
  "readOnlyHint": false,
  "openWorldHint": true,
  "destructiveHint": true
}
list_esim_plans — List eSIM plans
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

list_esim_plans 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)"
    }
  }
}
list_esim_plans 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
}
list_esim_plans annotations
{
  "title": "List eSIM plans",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_order_status — Check order status
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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

get_order_status 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"
    }
  }
}
get_order_status 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
}
get_order_status annotations
{
  "title": "Check order status",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
list_brands — List brands by country
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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

list_brands 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\""
    }
  }
}
list_brands 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
}
list_brands annotations
{
  "title": "List brands by country",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
list_products — List brand products
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

list_products 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"
    }
  }
}
list_products 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
}
list_products annotations
{
  "title": "List brand products",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_currencies — List payment coins
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

get_currencies input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
get_currencies output schema
{
  "type": "object",
  "required": [
    "currencies"
  ],
  "properties": {
    "currencies": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": true
}
get_currencies annotations
{
  "title": "List payment coins",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_payment_methods — List payment networks
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_payment_methods input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
get_payment_methods 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
}
get_payment_methods annotations
{
  "title": "List payment networks",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
purchase_wizard — Guided purchase (text)
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

purchase_wizard 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"
    }
  }
}
purchase_wizard 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
}
purchase_wizard annotations
{
  "title": "Guided purchase (text)",
  "readOnlyHint": false,
  "openWorldHint": true,
  "destructiveHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

3 advertised

eSIM Plan Picker

Advertised by the server during the last successful anonymous check.

eSIM data plans for a destination with live crypto pricing

eSIM Plan Picker URI
ui://widget/esim-plans.html@v9

MIME type: text/html+skybridge

Product Denominations

Advertised by the server during the last successful anonymous check.

Gift card / top-up denominations with live crypto pricing

Product Denominations URI
ui://widget/products.html@v9

MIME type: text/html+skybridge

Crypto Payment Card

Advertised by the server during the last successful anonymous check.

Payment address, exact amount, QR code and live order status link

Crypto Payment Card URI
ui://widget/payment.html@v9

MIME type: text/html+skybridge

90-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.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-07: 1 of 1 checks answered
  2. 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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http agentroam-mcp https://agentroam.ai/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add agentroam-mcp --url https://agentroam.ai/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agentroam-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agentroam-mcp": {
      "url": "https://agentroam.ai/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agentroam-mcp": {
      "type": "streamableHttp",
      "url": "https://agentroam.ai/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agentroam-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "agentroam-mcp": {
      "type": "http",
      "url": "https://agentroam.ai/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http agentroam-mcp https://agentroam.ai/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://agentroam.ai/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.

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.

Claim this listing