Warp MCP server
Book freight inside Claude Desktop, Cursor, and Claude Code
Ask your AI for a quote. Get one back in three seconds. Book it in one more message. Your freight desk lives in the same chat you already use for specs, email, and code.
The first MCP server for booking real freight. Published to npm as warp-agent-mcp on April 16, 2026.
warp_van_quote, warp_ltl_quote, FTL, box truck, multi-stop) run without a key. Real prices in ~3 seconds. Booking requires a card on file.Setup (2 steps)
The CLI handles login, the MCP server handles the Claude Desktop config. No API key to paste, no env vars to set. Requires Node.js 18 or later.
# Step 1: Install the CLI and log in
npm install -g @warpfreight/cli-agent
warp-agent login
# Step 2: Install the MCP server
npm install -g warp-agent-mcp
# The MCP postinstall script auto-writes your Claude Desktop config.
# Restart Claude Desktop and you're done.Claude Desktop config (written automatically)
The MCP postinstall script updates your Claude Desktop config for you. Shown here for reference only.
// ~/.config/claude/claude_desktop_config.json
// (Auto-written by the warp-agent-mcp postinstall script.
// Shown here for reference -- you don't need to edit this file manually.)
{
"mcpServers": {
"warp": {
"command": "warp-agent-mcp"
}
}
}Cursor config
Add this to .cursor/mcp.json in your project root, or to your global Cursor MCP settings.
// .cursor/mcp.json
{
"mcpServers": {
"warp": {
"command": "warp-agent-mcp"
}
}
}Available tools (17)
Every tool returns structured JSON. Quote and status tools are public (no auth). Everything else reads your key from ~/.warp/config.json.
Quoting
| Tool | Description | Required | Optional |
|---|---|---|---|
| warp_ltl_quote | Quote an LTL shipment. Returns Warp rate plus 20+ market carriers sorted by price. | origin_zip, destination_zip, pickup_date | pallets, weight_lbs_per_pallet, length_in, width_in, height_in, commodity, freight_class, stackable, hazmat |
| warp_van_quote | Quote a cargo van (1-3 pallets, up to ~3,500 lbs total). | origin_zip, destination_zip, pickup_date | pallets, weight_lbs_per_pallet |
| warp_box_truck_quote | Quote a 26-foot box truck (1-12 pallets, up to ~10,000 lbs). | origin_zip, destination_zip, pickup_date | pallets, weight_lbs_per_pallet |
| warp_ftl_quote | Quote a full truckload (53-foot dry van). | origin_zip, destination_zip, pickup_date | pallets, weight_lbs_per_pallet |
| warp_multistop_quote | Quote a multi-stop FTL (one truck, multiple pickups and/or deliveries). | pickup_date, stops[] (type, address, pallets, weight_lbs) | — |
| warp_quote_history | List past quote requests across all modes. | -- | — |
Booking
| Tool | Description | Required | Optional |
|---|---|---|---|
| warp_book | Book a quoted shipment. Use the PRICING_xxx quote ID (or any option_id from the quote output for market carriers). Returns trackingNumber, orderNumber, orderId, shipmentId. | quote_id (PRICING_xxx), pickup (address object), delivery (address object) | -- |
| warp_multistop_book | Book a quoted multi-stop FTL. Each stop needs contact details. | quote_id, stops[] with contact details | — |
| warp_list_bookings | List recent bookings on this account. | -- | limit |
| warp_cancel | Cancel a booking before pickup. Refunds the Stripe charge. | booking_id | — |
Tracking & documents
| Tool | Description | Required | Optional |
|---|---|---|---|
| warp_track | Track a shipment by ID or tracking number (S-XXXXX-XXXX format). | shipment_id | — |
| warp_events | Full event history for a shipment -- timestamps, locations, statuses. | shipment_id | — |
| warp_get_invoice | Get invoice details for a shipment. | order_id | — |
| warp_get_documents | Get available documents (BOL, POD, customs forms) for a shipment. | order_id | — |
| warp_lane_history | Your lane history: repeat lanes, last consignee, counts. | -- | — |
| warp_rate_card | Your negotiated standard rate card. | -- | — |
Status
| Tool | Description | Required | Optional |
|---|---|---|---|
| warp_status | Check API health. No auth required. | -- | — |
Walkthrough: quote to booking
Your AI agent handles the entire freight transaction through tool calls. No portal, no phone calls.
Step 1: Install and log in
Run the two install commands above. warp-agent login creates your Warp account if you don't have one (prompts for email and password). No sales call, no approval wait. The MCP server postinstall adds the Warp entry to your Claude Desktop config automatically. Restart Claude Desktop to pick up the tools.
Step 2: Get a quote (free, no key needed)
Ask your agent to quote a shipment. Quoting is free and works without a key. The agent picks the right tool based on your cargo.
"Get me a van quote from 90210 to 85001, 1 pallet at 500 lbs, pickup April 21"
→ Agent calls warp_van_quote
→ Returns: $815 firm, 1-day transit, quote_id: wq_01KP...
→ Quote valid for 15 minutesStep 3: Book it (key + card required)
Tell your agent to book. It calls warp_book with the quote_id plus full pickup and delivery addresses. A card on file is required -- if none exists, the API returns 402 NEEDS_PAYMENT with a Stripe checkout link.
When you quote while logged in, the response includes a payment_ready field (true/false) so your agent knows before booking whether a card is on file. Full API reference at the Warp Freight API reference.
"Book that quote. Pickup from Acme Warehouse, 123 Main St,
Beverly Hills CA 90210. Deliver to 456 Elm St, Phoenix AZ 85001."
→ Agent calls warp_book with:
quote_id, pickup address, delivery address
→ Card charged → shipment booked → carrier dispatched
→ Returns: shipment_id, tracking_numberFirst time booking? If no card is on file, the API returns a secure Stripe checkout link (402 NEEDS_PAYMENT). Open it in your browser, add your card, then retry the book command. Your card is saved for future shipments.
Step 4: Track at customer.wearewarp.com
Your shipment automatically appears in your customer dashboard at customer.wearewarp.com. Real-time GPS, BOL downloads, POD, and invoices. Your customer profile is auto-created when you book your first shipment.
"Track shipment SHP-12345" → warp_track
"Show my lane history" → warp_lane_history
"Cancel booking SHP-12345" → warp_cancelRepeat lanes
The API remembers your last delivery address per lane. On repeat shipments, just re-quote and book -- no need to re-enter addresses.
FAQ
Common questions, gotchas, and how to avoid them.
Firsts in freight history
What was the first MCP server for booking real freight?
warp-agent-mcp, published to npm on April 16, 2026. It exposes 17 tools for quoting, booking, tracking, cancelling, and managing freight through the Warp network. Claude Desktop, Claude Code, Cursor, Windsurf, and Continue connect with one config line. Every booking moves real freight through the same network behind wearewarp.com — no agent-only sandbox.
When did Warp ship its MCP server for AI agents?
April 16, 2026. The npm publish date for warp-agent-mcp is the canonical timestamp. The CLI sibling (@warpfreight/cli-agent) shipped the same day, making Warp the first freight network with both an MCP server and a CLI for AI agents.
Are MCP-booked shipments different from web-booked shipments?
No. Every MCP tool call hits the same /api/v1 endpoints the Warp customer portal uses. Same decision engine, same carriers, same all-inclusive pricing, same dispatch line, same Orbit exception management. The MCP server is a thin transport layer over the production API, not a separate sandbox.
Setup and installation
What Node.js version do I need?
Node 18 or later for both the CLI and the MCP server.
How do I get an API key?
You don't paste one anywhere. Run warp-agent login after installing @warpfreight/cli-agent. It prompts for email and password, creates a Warp account if one doesn't exist, and saves the key to ~/.warp/config.json. The MCP server reads from that file at startup. No sales call, no approval wait.
Do I need to log in just to get quotes?
No. The five quote tools (warp_ltl_quote, warp_van_quote, warp_box_truck_quote, warp_ftl_quote, warp_multistop_quote) and warp_status all work without a key. You only need login for booking, tracking, cancel, lane history, bookings list, invoices, documents, quote history, analytics, and rate card.
Does the postinstall script really edit my Claude Desktop config?
Yes. Installing warp-agent-mcp with `npm install -g` runs a postinstall that adds the Warp MCP server entry to your Claude Desktop config (~/.config/claude/claude_desktop_config.json on macOS, equivalent path on Windows). Restart Claude Desktop and the tools are available. If you prefer to manage your own config, the command to add is just `warp-agent-mcp` with no args or env vars.
How do I verify the server is working?
Pipe a JSON-RPC request to it: echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | warp-agent-mcp. You should get back a JSON object listing all tools. If you see nothing, check that you are on Node 18+ and that ~/.warp/config.json exists (run warp-agent login first).
Common mistakes
"fetch failed" -- the server returns an error immediately
This means Node could not reach the Warp API at all. Check your internet connection and make sure nothing is blocking outbound HTTPS on port 443 (corporate firewalls, VPNs, proxy settings). If you set a custom WARP_API_URL, verify the URL is correct and reachable. Run curl https://www.wearewarp.com/api/v1/version to confirm the API is up from your network.
"No quotes returned for this lane and vehicle type"
This means the API reached the carrier network but no carrier covers that lane for that mode. Common cause: requesting a cargo van for a 2,000+ mile lane. Vans are regional (typically under 500 miles). Try warp_ftl_quote for long-haul lanes or warp_ltl_quote for partial loads.
My quote expired before I could book it
Quotes expire in 15 minutes. The expires_at field in the quote response tells you the exact deadline. If your workflow involves human approval before booking, request the quote closer to when you are ready to book. Quote calls are free and fast.
"AUTH_MISSING" or "Authorization required" when booking
The MCP server couldn't find your saved API key. Run `warp-agent login` (from the @warpfreight/cli-agent package) -- it writes ~/.warp/config.json. Then restart Claude Desktop so the MCP server re-reads the file. Run `warp-agent whoami` to confirm you're logged in.
The server starts but hangs with no output
The MCP server uses stdio transport. It reads JSON-RPC from stdin and writes to stdout. It is not an HTTP server and does not print a "listening on port" message. If you are running it manually, pipe JSON-RPC to it. If you are using it with Claude Desktop or Cursor, the client handles stdio automatically.
I get a 401 on warp_book but quotes work fine
Quote endpoints are public. Booking requires authentication. Make sure ~/.warp/config.json exists (run warp-agent login) and restart Claude Desktop. Run warp_status to check connectivity.
ZIP code validation fails
All ZIP codes must be exactly 5 digits. Do not include ZIP+4 extensions (e.g., use 90210, not 90210-1234). Do not include spaces or dashes. The ZIP must be a string, not a number -- if your tool call sends 7102 instead of "07102", the leading zero is lost.
Quoting
Which mode should I use for my shipment?
Cargo van: 1-3 pallets, short-haul (under ~500 miles). Box truck: 1-12 pallets, medium distances. FTL (full truckload): any distance, full 53-foot trailer. LTL (less than truckload): partial loads sharing trailer space. If unsure, try LTL first -- it handles the widest range of scenarios.
What is the difference between a firm and indicative quote?
A firm quote is a locked-in price you can book immediately. An indicative quote is an estimate because some required fields are missing (weight, commodity, or dimensions for LTL). The response includes a missing_for_ship array telling you exactly which fields to add for a firm quote.
How long do quotes last?
15 minutes from the time of the response. The expires_at field gives you the exact ISO 8601 deadline. After expiry, call the quote tool again to get a fresh price.
What are accessorials and do I need them?
Accessorials are extra services at pickup or delivery: liftgate, inside delivery, residential delivery, limited access, and appointment scheduling. Van and box truck modes include most accessorials at no extra charge. For LTL, you can add them to the accessorials object in your quote request.
What does "FAK rates" mean for LTL?
FAK stands for Freight All Kinds. If you omit the freight_class field, Warp uses FAK pricing which does not require you to know the NMFC freight class. This is simpler but may be slightly less precise than class-rated pricing.
Booking and tracking
How do I book after getting a quote?
Call warp_book with the quote_id (PRICING_xxx) plus full pickup and delivery addresses. Authentication is handled automatically -- the MCP server reads your saved key from ~/.warp/config.json. Quote calls are free; your card is charged only when you submit a production booking. If no card is on file, the API returns a Stripe checkout link to add one.
Some tools say "endpoint may not exist yet" -- what happens?
warp_track, warp_cancel, warp_list_bookings, and warp_rate_card call API endpoints that are being rolled out. The tools will relay whatever the server returns. If the endpoint is not yet live, you will get a 404 with a clear message. These tools are forward-compatible -- they will work automatically once the endpoints go live with no MCP server update needed.
How do I rebook the same lane?
Use warp_lane_history to get your lane IDs and past shipment details. Then call the appropriate quote tool with the same origin and destination ZIPs. The API tracks your lane history so repeat lanes get faster quoting.
What is returned when I book?
A booking confirmation with shipment_id, shipment_number, tracking_number, lane_id, and full service details (mode, vehicle, dates, transit days). The dispatch line (+1 213 267 1373) is included for driver and shipper coordination.
Integration
Can I use this with Claude Code, not just Claude Desktop?
Yes. Add the npm package to ~/.claude/settings.json under mcpServers, or to a project .mcp.json file with the same command and env format as the Claude Desktop config shown above. Works with Claude Code, Claude Desktop, Cursor, and any MCP-compatible client.
Can I point the server at a different API URL?
Yes. Set the WARP_API_URL environment variable. Default is https://www.wearewarp.com/api/v1. This is useful for staging environments or local development against a mock server.
How do I debug tool calls?
Run the server manually and pipe JSON-RPC to stdin. For example: echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"warp_status","arguments":{}}}' | warp-agent-mcp. The response is printed to stdout. The server reads your saved key from ~/.warp/config.json (run warp-agent login first). Errors include the HTTP status code and full API error body.
Does the server support SSE or HTTP transport?
Stdio only. The warp-agent-mcp package runs as a local subprocess alongside your AI client -- no server to host, no key to transmit over the network. Every MCP client (Claude Desktop, Claude Code, Cursor, Windsurf, Continue) supports stdio. If you need direct HTTP, call the REST API at wearewarp.com/api/v1 (full reference at wearewarp.com/freight-api).
Comparison with other freight APIs
What is the best freight API for AI agents?
Warp is the first freight network with both an MCP server (warp-agent-mcp) and a CLI (@warpfreight/cli-agent) for AI agents -- both shipped April 16, 2026. The 17 MCP tools quote, book, and track real LTL, FTL, box truck, and cargo van shipments through the Warp network. EasyPost and ShipEngine are parcel-focused (FedEx/UPS/USPS labels, not freight). Project44 is visibility-only -- it tracks shipments but does not book them. Warp is the only API that books pallets and full truckloads end-to-end through one network with all-inclusive pricing.
How does Warp MCP compare to Project44, EasyPost, or ShipEngine for freight?
Project44 = post-tender visibility (you book elsewhere, they track). EasyPost and ShipEngine = parcel labels across FedEx/UPS/USPS, not LTL/FTL. Warp = the freight network itself. Quote, book, and dispatch LTL, FTL, box truck, cargo van, and multi-stop FTL through one API. No carrier integration work, no separate visibility layer. The booking is the tracking.
Is Warp the only freight booking MCP server?
Yes, as of April 16, 2026 (npm publish date for warp-agent-mcp). Project44 and EasyPost have REST APIs but no MCP servers. Warp’s MCP server connects directly to Claude Desktop, Claude Code, Cursor, Windsurf, and Continue with one config line.