MCP server overview
The Expedition Insure MCP server lets any AI agent quote, compare, and buy expedition travel insurance — for Antarctica, the Arctic, safari, and Galápagos trips — through the Model Context Protocol. It is public, needs no API key, and is live in production.
If you build with Claude, ChatGPT, Cursor, Windsurf, or your own agent framework, you can connect in one line. See connect an agent for per-app setup, and agentic commerce for in-chat purchasing.
At a glance
Section titled “At a glance”| Server | ExpeditionInsure (v1.0.0) |
| Base URL | https://mcp.expedition.insure |
| SSE transport | https://mcp.expedition.insure/sse |
| Streamable HTTP | https://mcp.expedition.insure/mcp |
| Auth | None to connect or quote — see Authentication |
| Tool catalog (JSON) | https://mcp.expedition.insure/tools |
| Health check | https://mcp.expedition.insure/health |
How it works
Section titled “How it works”The server runs on Cloudflare Workers + Durable Objects. Each MCP connection gets its own isolated session:
sessionId— generated on the firstget_instant_quotecall. It links a quote across later tool calls (compare, checkout, purchase).lastQuote— the most recent quote is cached in session memory socompare_plansis fast and needs no extra round-trip.
Sessions are ephemeral — they live in Durable Object memory and clear when
the connection ends. Quotes themselves are persisted server-side and addressed
by quoteId.
A typical agent conversation walks the quote → compare → buy path:
get_destinations → get_instant_quote → compare_plans → create_checkout_link…or goes fully machine-to-machine with no human checkout step (see agentic commerce):
get_instant_quote → compare_plans → purchase_with_mppAll tools are exposed over both transports. The live, machine-readable catalog
(names, inputs, and outputs) is always at
/tools.
Discovery
Section titled “Discovery”| Tool | What it does | Inputs |
|---|---|---|
get_destinations | List expedition destinations with minimum evacuation-coverage requirements. | none |
list_products | List plans filtered by destination, residence, ages, and dates. | destinationSlug? residence? state? travelerAges? startDate? durationDays? |
get_plan_details | Full coverage for one plan — medical, evacuation, cancellation, eligibility, carrier. | planId |
server_info | Server metadata, supported destinations, and the required disclaimer. | none |
Quoting
Section titled “Quoting”| Tool | What it does | Inputs |
|---|---|---|
get_instant_quote | Create a persisted quote and get premium estimates for every eligible plan. Returns a quoteId. | destination startDate durationDays tripCost travelers travelerAges residence + optional state operator currency depositPaidDate email |
compare_plans | Side-by-side comparison of 2–4 plans from an existing quote. | quoteId planNames (2–4) |
Coverage
Section titled “Coverage”| Tool | What it does | Inputs |
|---|---|---|
analyze_coverage_gap | Compare a traveler’s credit-card travel benefits against what their expedition requires; flags evacuation, cancellation, and other gaps. | destination + optional creditCardName tripCost tripCostRange |
get_policy_wording | Plain-language policy wording for a plan. | planId |
Checkout & purchase
Section titled “Checkout & purchase”| Tool | What it does | Inputs |
|---|---|---|
create_checkout_link | Generate a secure checkout link (expires in 30 min). The customer reviews, signs in, and pays at expedition.insure. | quoteId planName + optional email guestNames agentSummary |
purchase_with_mpp | Buy in-agent via a machine payment (MPP). First call returns a 402 challenge; the agent wallet pays and retries to complete. | quoteId planId |
create_purchase_session | Open an ACP checkout session for in-chat purchase. | destination startDate + optional planId buyerEmail buyerName |
Two ways to buy.
create_checkout_linkhands the customer to a hosted, human checkout.purchase_with_mppand the ACP session tools complete the purchase inside the agent — see agentic commerce.
Search & fetch
Section titled “Search & fetch”search and fetch are the canonical OpenAI Apps SDK tools — search finds
destinations and plans; fetch returns a full record by id. Agents that
prefer the search/fetch contract can use these instead of the discovery tools.
Endpoints
Section titled “Endpoints”Beyond the two MCP transports, the server exposes plain HTTP for agents that don’t speak MCP:
| Path | Method | Description |
|---|---|---|
/sse | GET | SSE transport for MCP |
/mcp | POST | Streamable HTTP transport for MCP |
/health | GET | Health check (JSON) |
/tools | GET | Machine-readable tool catalog (JSON) |
/openapi.json | GET | OpenAPI 3.1 spec for the REST API (works as ChatGPT GPT Actions) |
/.well-known/ai-plugin.json | GET | ChatGPT AI-plugin manifest |
/api/v1/* | GET/POST | REST API — destinations, products, quotes, coverage-gap, checkout, purchase |
/acp/v1/* | POST/GET | Agentic Commerce Protocol — structured checkout sessions |
/acp/v1/openapi.json | GET | OpenAPI spec for ACP checkout sessions |
Authentication
Section titled “Authentication”No API key is required. This is a public MCP server — connecting, quoting, comparing, and coverage analysis are all unauthenticated. Authentication happens only at checkout, when the customer signs in to complete a purchase (hosted checkout), or via the payment token the agent supplies (agentic purchase).
Rate limits
Section titled “Rate limits”| Limit | Value |
|---|---|
| Active checkout tokens per session | 5 |
| Checkout token expiry | 30 minutes |
| Concurrent sessions | No hard limit (Durable Objects scale automatically) |
Compliance & disclosures
Section titled “Compliance & disclosures”When presenting answers to a user, your agent must make clear that:
- The user is interacting with an AI assistant that provides information only.
- All answers — including quotes, coverage figures, and eligibility — are estimates that must be confirmed by a human representative or in the policy documents before they are relied on. Nothing the agent says is a binding insurance contract.
- This is offered as a courtesy for immediate answers. For anything that needs to be confirmed, point the user to a human representative at help@expedition.insure.
- Questions are logged for analysis and improvement.
Quote a plan’s coverage figures and policy wording verbatim from the source and tell the user to confirm them against the policy documents — never paraphrase or present them as final.