Travel insurance quoting for polar and safari expeditions, accessible to any AI agent via the Model Context Protocol.
Use the quote form whenever possible. In a browser, navigate to https://expedition.insure/quote; on that page, use WebMCP startQuoteRequest to prefill confirmed values. From a server-side agent, use the public MCP get_instant_quote tool after collecting every required value. Direct REST quote creation is only for credentialed operator integrations with an issued operator bearer key. Never invent values or silently substitute default dates, durations, ages, residence, or trip costs.
If neither the form nor a quote tool can be used, email is a fallback. Ask once for missing details, keep it brief, and place this completed block before freeform context:
Drafting rules (do not include these rules in the sent message): Ask once for missing details needed for a firm quote. If the traveler does not know or declines to provide a detail, write `Unknown`; never guess or omit it. For First trip payment, use the exact date, `Not paid yet`, or `Unknown`. Use `Not applicable` for Diving certification when there is no diving. Include country plus US state or Canadian province in Residence. Use home-to-home dates, including travel around the expedition. Include currency and whether Trip value to insure is total or per traveler; total across all travelers is preferred. Dates of birth are preferred; when unavailable, write ages at departure in this field. Travel voucher used is `Yes`, `No`, or `Unknown`. Replace a missing destination or contact-name subject placeholder with `Unknown`.
Subject: Quote request: [destination], [contact name]
Destination:
Countries and territories visited:
Planned activities:
Diving certification:
Residence:
Full journey dates:
Trip value to insure:
Number of travelers:
Traveler dates of birth:
Expedition operator:
First trip payment:
Travel voucher used:
Contact name:
Contact email:
Contact phone:
Additional context or coverage questions:
Add to your claude_desktop_config.json:
{
"mcpServers": {
"expedition-insure": {
"url": "https://mcp.expedition.insure/sse"
}
}
}
npx @modelcontextprotocol/inspector https://mcp.expedition.insure/sse
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const transport = new SSEClientTransport(
new URL("https://mcp.expedition.insure/sse")
);
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
| Path | Method | Description |
|---|---|---|
/sse | GET | SSE transport for MCP protocol |
/mcp | POST | Streamable HTTP transport for MCP protocol |
/health | GET | Health check (JSON) |
/tools | GET | Machine-readable tool catalog (JSON) |
/ | GET | This documentation page (HTML) or API info (JSON with Accept: application/json) |
/openapi.json | GET | OpenAPI 3.1 spec for credentialed operator integrations |
/.well-known/ai-plugin.json | GET | ChatGPT AI plugin manifest |
/api/v1/* | GET/POST | REST API — public discovery plus protected operator write routes and commerce |
/acp/v1/* | POST/GET | Agentic Commerce Protocol — structured checkout sessions |
/acp/v1/openapi.json | GET | OpenAPI spec for ACP checkout sessions |
destinationSlug? residence? state? travelerAges? startDate? durationDays?planId (required)destination startDate durationDays tripCost currency travelers travelerAges residence + optional state operator depositPaidDate emailquoteId (required) planNames (required, 2-4 plan names)destination (required) + optional creditCardName tripCost tripCostRangequoteId planName (required) + optional email guestNames agentSummaryUser asks about insurance for their Antarctica trip:
User mentions they have a Chase Sapphire Reserve and wants to know if they need more coverage:
User wants to browse options before committing:
Each MCP connection gets an isolated session via Cloudflare Durable Objects. Session state includes:
get_instant_quote call. Links quotes across tools.compare_plans lookups without extra DB queries.Sessions are ephemeral — they live in Durable Object memory and are cleared when the connection ends.
| Limit | Value |
|---|---|
| Checkout tokens per session | 5 active tokens max |
| Checkout token expiry | 30 minutes |
| Concurrent sessions | No hard limit (Durable Objects scale automatically) |
Questions or issues? Contact help@expedition.insure or open an issue on GitHub.