Curri's Model Context Protocol server gives any MCP-aware agent — Claude Desktop, Claude Code, Cursor, your own server-to-server bot — the same delivery, account, and operations tools Curri uses internally.
In Claude Code, one command connects Curri MCP and the OAuth flow walks you through sign-in — no token to manage, no config file to edit. Same path works in Cursor and any other MCP client that supports OAuth dynamic client registration.
claude mcp add --transport http curri-api https://mcp.curri.com/mcp --scope userSame OAuth flow, different client. Hand this prompt to the agent running on your machine — it knows where its own config file lives and will wire Curri MCP up correctly.
@curri.com emails while we ramp the consent flow. External users should use an API key (see section 03).For non-Curri-email accounts and for any server-to-server caller. Grab a user ID and API key from your Curri dashboard, then hand them to your AI with the prompt below — it generates the base64-encoded Basic-auth header and writes the right config for whichever client you're running.
If you'd rather do it without an AI in the loop, here are the steps the prompt above is asking for.
1. Generate the token.
echo -n "user_XXXXXXXXXX:YOUR-API-KEY" | base642a. Claude Code:
claude mcp add --transport http curri-api https://mcp.curri.com/mcp \
--header "Authorization: Basic $TOKEN" --scope user2b. Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json and add:
{
"mcpServers": {
"curri-api": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.curri.com/mcp",
"--header",
"Authorization: Basic $TOKEN"
]
}
}
}For backend agents, batch jobs, and anything that isn't a local MCP client. Any HTTP library that can POST JSON-RPC 2.0 with a Basic-auth header works.
curl -X POST https://mcp.curri.com/mcp \
-H "Authorization: Basic $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'The server forwards each tool call to api.curri.com/graphql with your credentials, so resolver-level auth and validation apply just like a normal Curri API client.
5 tools available. Every entry below is the title and name an MCP client sees on tools/list.
Quote a delivery across one or more stops using the same logged-in pricing flow as the curri-app booking wizard. Returns the per-vehicle price for the requested priority, plus a price comparison across all three priority tiers, plus accessorial and toll breakdowns. Pass the returned quote `id` to `book_delivery` to book.
Book a delivery using a quote id from `quote_delivery`. Returns the delivery id, external id, tracking URL, and status. For a multi-stop booking, supply `deliveryPayloadInputs` referencing the per-leg quote ids.
Book a delivery without first calling `quote_delivery` — sets `skipQuote: true` on the underlying bookDelivery mutation. Supply the origin, destination, vehicle type, priority, and contacts and the delivery is created in a single round-trip. Use this when your agent already knows the vehicle type and doesn't need to show the caller a quote first.
Look up a delivery by any of its identifiers (internal id, external id, hashed public id, or payload external id). Returns status, tracking info, origin/destination, and scheduling fields.
List deliveries visible to the authenticated API user, with optional filters by free-text query, account, vehicle type, or status. Returns a compact summary of each delivery (ids, status, priority, timestamps, tracking URL, origin/destination city-state). Use `get_delivery` to fetch full details for a specific id.