MCP Server

ExpeditionInsure

Travel insurance quoting for polar and safari expeditions, accessible to any AI agent via the Model Context Protocol.

Quick Start

Connect via Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "expedition-insure": {
      "url": "https://mcp-app.expedition.insure/sse"
    }
  }
}

Connect via MCP Inspector

npx @modelcontextprotocol/inspector https://mcp-app.expedition.insure/sse

Connect programmatically

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";

const transport = new SSEClientTransport(
  new URL("https://mcp-app.expedition.insure/sse")
);
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);

Endpoints

PathMethodDescription
/sseGETSSE transport for MCP protocol
/mcpPOSTStreamable HTTP transport for MCP protocol
/healthGETHealth check (JSON)
/toolsGETMachine-readable tool catalog (JSON)
/GETThis documentation page (HTML) or API info (JSON with Accept: application/json)
/openapi.jsonGETOpenAPI 3.1 spec for REST API (use with ChatGPT GPT Actions)
/.well-known/ai-plugin.jsonGETChatGPT AI plugin manifest
/api/v1/*GET/POSTREST API — destinations, products, quotes, coverage-gap, checkout-link handoff

Tools

Discovery

discovery
get_destinations
List all expedition destinations with minimum evacuation coverage requirements.
No inputs required.
discovery
list_products
List insurance plans filtered by destination, residence, traveler ages, and trip dates.
Inputs: destinationSlug? residence? state? travelerAges? startDate? durationDays?
discovery
get_plan_details
Full coverage details for a specific plan: medical limits, evacuation, cancellation, eligibility, carrier info.
Inputs: planId (required)

Quoting

quoting
get_instant_quote
Create a persisted quote and get premium estimates for all eligible plans. Returns a quoteId for subsequent tools.
Inputs: destination startDate durationDays tripCost travelers travelerAges residence + optional state operator currency depositPaidDate email
quoting
compare_plans
Side-by-side comparison of 2-4 plans from an existing quote. Uses session state for fast lookups.
Inputs: quoteId (required) planNames (required, 2-4 plan names)

Coverage Analysis

coverage
analyze_coverage_gap
Compare a customer's credit card travel benefits against what their expedition requires. Identifies evacuation, cancellation, and other coverage gaps.
Inputs: destination (required) + optional creditCardName tripCost tripCostRange

Example Flows

Quick Quote Flow

User asks about insurance for their Antarctica trip:

get_destinations get_instant_quote compare_plans

Coverage Analysis Flow

User mentions they have a Chase Sapphire Reserve and wants to know if they need more coverage:

analyze_coverage_gap get_instant_quote

Plan Research Flow

User wants to browse options before committing:

get_destinations list_products get_plan_details

Session & State

Each MCP connection gets an isolated session via Cloudflare Durable Objects. Session state includes:

Sessions are ephemeral — they live in Durable Object memory and are cleared when the connection ends.

Compliance & Disclosures

Required disclosures when presenting quotes to users:
  1. You are interacting with an AI assistant. ExpeditionInsure is an insurance marketplace, not a licensed insurance advisor.
  2. All quotes are estimates for informational purposes and do not constitute a binding insurance contract. Final pricing is confirmed during the application process.
  3. For complex needs or personalized advice, offer to connect the user with a human representative at hello@expedition.insure.

Rate Limits

LimitValue
Concurrent sessionsNo hard limit (Durable Objects scale automatically)
No API key required. This is a public MCP server. No authentication is needed to connect and use the tools. This profile is informational and does not expose checkout or in-chat purchase tools.

Support

Questions or issues? Contact hello@expedition.insure or open an issue on GitHub.