# io.github.warpfreight/warp-agent-mcp (remote · mcp.wearewarp.com)

Quote, book, and track LTL, FTL, cargo van, and box-truck freight via the Warp API.

- Trust score: 68/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.wearewarp.com`: 68/100 (this document), [markdown](https://verifymcp.io/servers/warpfreight-warp-agent-mcp/api-mcp.md), [page](https://verifymcp.io/servers/warpfreight-warp-agent-mcp/api-mcp)
- npm · `warp-agent-mcp`: 64/100, [markdown](https://verifymcp.io/servers/warpfreight-warp-agent-mcp/warp-agent-mcp.md), [page](https://verifymcp.io/servers/warpfreight-warp-agent-mcp/warp-agent-mcp)

## Channel facts

- Endpoint: `https://mcp.wearewarp.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.16.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (book).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3970 tokens (~116/item across 34 items; 26 tools + 8 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 97% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### Claude

```bash
claude mcp add --transport http warpfreight-warp-agent-mcp https://mcp.wearewarp.com/api/mcp
```

### Codex

```toml
[mcp_servers.warpfreight-warp-agent-mcp]
url = "https://mcp.wearewarp.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "warpfreight-warp-agent-mcp": {
      "type": "remote",
      "url": "https://mcp.wearewarp.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add warpfreight-warp-agent-mcp --url https://mcp.wearewarp.com/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  warpfreight-warp-agent-mcp:
    url: "https://mcp.wearewarp.com/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "warpfreight-warp-agent-mcp": {
      "type": "http",
      "url": "https://mcp.wearewarp.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-01 (score 68, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 67, +8)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 59)

First indexed and scored.

## MCP tools (26)

### `van_quote` (~193 tokens)

Get Cargo Van Quote

Quote a cargo van shipment (1-3 pallets, firm price, 15-min expiry)

Input parameters:

- `commodity` (string): Commodity description
- `delivery_services` (array): Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery
- `destination_zip` (string, required): 5-digit US ZIP code
- `origin_zip` (string, required): 5-digit US ZIP code
- `pallets` (integer, required): Number of pallets (1-3)
- `pickup_date` (string, required): Pickup date YYYY-MM-DD
- `pickup_services` (array): Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup
- `weight_lbs_per_pallet` (number, required): Weight per pallet in lbs

### `box_truck_quote` (~198 tokens)

Get Box Truck Quote

Quote a 26' box truck shipment (1-12 pallets, firm price, 15-min expiry)

Input parameters:

- `commodity` (string): Commodity description
- `delivery_services` (array): Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery
- `destination_zip` (string, required): 5-digit US ZIP code
- `origin_zip` (string, required): 5-digit US ZIP code
- `pallets` (integer, required): Number of pallets (1-12)
- `pickup_date` (string, required): Pickup date YYYY-MM-DD
- `pickup_services` (array): Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup
- `weight_lbs_per_pallet` (number, required): Weight per pallet in lbs

### `ftl_quote` (~110 tokens)

Get Full Truckload Quote

Quote a full truckload (53' dry van). Only origin, destination, and date required.

Input parameters:

- `commodity` (string): Commodity description
- `destination_zip` (string, required): 5-digit US ZIP code
- `origin_zip` (string, required): 5-digit US ZIP code
- `pallets` (integer): Pallets (optional, display only)
- `pickup_date` (string, required): Pickup date YYYY-MM-DD
- `weight_lbs_per_pallet` (number): Weight per pallet (optional)

### `ltl_quote` (~455 tokens)

Get LTL Freight Quote

Quote an LTL shipment — returns Warp's all-inclusive rate FAST (~1-2s) so the user sees a price immediately. The inline quote card shows the Warp rate plus a 'finding other carrier rates…' loading indicator. IMMEDIATELY follow up by calling ltl_market_options with the same parameters to fill in the multi-carrier comparison (~15s). Provide dims + commodity for an exact firm quote; if you don't have dims, quote anyway — it assumes a standard 48x40x48 pallet (FAK, no freight class) for an instant price. Don't block on asking for pallet dimensions; quote first, then pass real dims for an exact rate. When a palletized load could also move by box truck or van, quote LTL alongside those and show the cheapest valid mode. Do not editorialize the results. Do not declare a winner or recommend a specific carrier. Present Warp's quote first, then list market options as context. Let the user decide.

Input parameters:

- `commodity` (string): Commodity description
- `delivery_services` (array): Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery
- `destination_zip` (string, required): 5-digit US ZIP code
- `freight_class` (string): Freight class (optional, FAK rates used if omitted)
- `hazmat` (boolean): Hazardous materials flag
- `height_in` (number): Pallet height in inches
- `length_in` (number): Pallet length in inches
- `origin_zip` (string, required): 5-digit US ZIP code
- `pallets` (integer): Number of pallets
- `pickup_date` (string, required): Pickup date YYYY-MM-DD
- `pickup_services` (array): Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup
- `stackable` (boolean): Whether pallets are stackable
- `weight_lbs_per_pallet` (number): Weight per pallet in lbs
- `width_in` (number): Pallet width in inches

### `ltl_market_options` (~343 tokens)

Compare LTL Carriers

Multi-carrier LTL comparison — returns 30+ carrier rates ranked by price (slow, ~15s). Call IMMEDIATELY AFTER ltl_quote with the same parameters; this fills in the 'finding other carrier rates…' section the fast quote card was showing. Useful when the user wants to compare carriers or pick a specific one. Do not declare a winner or recommend a specific carrier; just present the ranked list.

Input parameters:

- `commodity` (string): Commodity description
- `delivery_services` (array): Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery
- `destination_zip` (string, required): 5-digit US ZIP code
- `freight_class` (string): Freight class (optional, FAK rates used if omitted)
- `hazmat` (boolean): Hazardous materials flag
- `height_in` (number): Pallet height in inches
- `length_in` (number): Pallet length in inches
- `origin_zip` (string, required): 5-digit US ZIP code
- `pallets` (integer): Number of pallets
- `pickup_date` (string, required): Pickup date YYYY-MM-DD
- `pickup_services` (array): Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup
- `stackable` (boolean): Whether pallets are stackable
- `weight_lbs_per_pallet` (number): Weight per pallet in lbs
- `width_in` (number): Pallet width in inches

### `compare_modes` (~584 tokens)

Compare Freight Modes

THE ONE CALL for "what's the cheapest/best way to ship this?". Prices ALL FOUR freight modes (LTL / full truckload / cargo van / 26' box truck) in ONE keyless call to Warp's all-modes engine and returns a decision-complete recommendation: the winning mode, its rate, transit, a bookable quote_id, the trade-off math against the runner-up, and every mode that couldn't price (with the reason). Prefer this over calling the individual quote tools and comparing them yourself — one round trip, and modes Warp can't serve are returned as explicitly unavailable WITH the reason rather than being dropped, so there is never a silently shortened list to guess from. Dims are optional (a standard 48x40x48 pallet is assumed). Set benchmark_market:true to also rank Warp's rate against the live 30+ carrier market for the lane (adds ~15-25s) — that makes the answer decision-complete: the right mode AND whether the price is actually good. Quote-only: it never books. To book, pass the recommended quote_id to `book` after the user confirms.

Input parameters:

- `benchmark_market` (boolean): Also benchmark Warp's rate against the live 30+ carrier LTL market for this lane. Makes the answer decision-complete (is this rate actually good?) but costs ~15-25s — the mode comparison alone return…
- `commodity` (string): Commodity description
- `delivery_services` (array): Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery
- `destination_zip` (string, required): 5-digit US ZIP code
- `freight_class` (string): Freight class (optional, FAK rates used if omitted)
- `hazmat` (boolean): Hazardous materials flag
- `height_in` (number): Pallet height in inches (defaults to 48)
- `length_in` (number): Pallet length in inches (defaults to 48)
- `origin_zip` (string, required): 5-digit US ZIP code
- `pallets` (integer, required): Number of pallets (1-26)
- `pickup_date` (string, required): Pickup date YYYY-MM-DD
- `pickup_services` (array): Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup
- `priority` (string): What to optimize the recommendation for. Defaults to 'cheapest'.
- `stackable` (boolean): Whether pallets are stackable
- `weight_lbs_per_pallet` (number, required): Weight per pallet in lbs
- `width_in` (number): Pallet width in inches (defaults to 40)

### `batch_quote` (~125 tokens)

Batch Quote Lanes

Price MANY lanes in ONE call (parallel, ~1-3s for typical spreadsheets). Use this WHENEVER the user gives you a spreadsheet, CSV, or list of multiple lanes to quote — do NOT call warp_*_quote in a loop. Returns a single batch-quote card with one row per lane (origin → dest · mode · pallets · price · transit). Each priced lane keeps its quote_id and can be booked individually with book ("book row 3").

Input parameters:

- `lanes` (array, required): Array of lane requests (1-50). Each row maps to one quote.

### `book` (~274 tokens)

Book Shipment

Book a quoted shipment using any quote_id or option id returned from a quote tool (Warp or market carrier). Requires quote_id + pickup and delivery addresses. Auth required.

Input parameters:

- `accessorials` (object): Pickup/delivery accessorial services. Should match the accessorials used when quoting.
- `delivery` (object): Delivery address. Required if this lane has not been shipped before.
- `delivery_window` (object): Delivery time window, 24h HH:MM, e.g. { from: '09:00', to: '12:00' }. Defaults to a full business day if omitted.
- `notes` (string): Special instructions for the shipment
- `pickup` (object): Pickup address. Required if no default shipper is saved on your account.
- `pickup_window` (object): Pickup time window, 24h HH:MM, e.g. { from: '08:00', to: '17:00' }. Defaults to a full business day if omitted.
- `quote_id` (string, required): Quote ID from warp_quote_id (Warp) or id field of any market option returned by a quote tool. Use the id from your MOST RECENT quote — market-option ids rotate on every quote call and stale ids are r…
- `reference` (string): Your internal reference number

### `batch_book` (~268 tokens)

Batch Book Shipments

Book MANY already-quoted lanes in ONE call (sequential, one card charge per row). Use this after batch_quote when the user says "book all of them" or "book rows 1, 3, 5" — do NOT call book in a loop. Each row needs a quote_id (the same one batch_quote returned for that row). Pickup/delivery default to the shared addresses at the top level so a single warehouse → many destinations only needs one address pair. Returns a progress card showing per-row Booked/Failed status with tracking numbers.

Input parameters:

- `bookings` (array, required): Array of bookings to confirm (1-25). Each is one freight shipment, one card charge.
- `shared_accessorials` (object)
- `shared_delivery` (object): Delivery address applied to every row that doesn't supply its own. Uncommon (usually each row goes somewhere different).
- `shared_delivery_window` (object)
- `shared_notes` (string): Notes applied to every row without their own.
- `shared_pickup` (object): Pickup address applied to every row that doesn't supply its own (FBA case: one warehouse → many destinations).
- `shared_pickup_window` (object)
- `shared_reference` (string): Reference applied to every row without its own.

### `multistop_quote` (~227 tokens)

Get Multi-stop FTL Quote

Quote a multi-stop FTL route: ONE truck visits 3+ stops in order (first pickup → intermediate stops → final delivery). Use for milk runs, pool distribution, or multi-store replenishment on a single truck — for a simple A→B truckload use ftl_quote. Auth required (free account). Coverage is route-dependent — not every route has a rate yet.

Input parameters:

- `commodity` (string): Commodity description
- `delivery_zip` (string, required): 5-digit ZIP of the final delivery stop
- `pallets` (integer): Total pallets riding the route (default 1)
- `pickup_date` (string, required): Pickup date YYYY-MM-DD
- `pickup_zip` (string, required): 5-digit ZIP of the first pickup stop
- `stop_zips` (array, required): 5-digit ZIPs of the intermediate stops, in route order (at least 1)
- `total_weight_lbs` (number): Total weight across all freight in lbs (default 500 per pallet)
- `vehicle_type` (string): Vehicle code (default DRY_VAN_53)

### `multistop_book` (~138 tokens)

Book Multi-stop FTL

Book a multi-stop FTL route quoted by multistop_quote. Send one shipments[] leg per pickup→delivery pair riding the truck (minimum 2 legs), each leg referencing the quoted stop sequence by stop_index with full address + arrival window. No card charge fires from this call — multi-stop pricing settles via your Warp account. Auth required.

Input parameters:

- `quote_id` (string, required): Quote ID from multistop_quote (PRICING_MULTI_…). Use the id from your MOST RECENT quote — ids expire and rotate.
- `shipments` (array, required): One leg per pickup→delivery pair (the gateway requires at least 2)

### `track` (~43 tokens)

Track Shipment

Track a shipment by ID or tracking number. Auth required.

Input parameters:

- `shipment_id` (string, required): Shipment ID or tracking number (e.g. S-12345-2616)

### `lane_history` (~27 tokens)

View Lane History

Get shipping history for your lanes (past shipments, last consignee, counts). Auth required.

### `list_bookings` (~65 tokens)

List Bookings

List recent bookings for this API key, newest first. Auth required. Renders an interactive shipments card (click a shipment to expand pickup/delivery, freight, and a tracking link).

Input parameters:

- `limit` (integer): Max bookings to return (default 25, max 100)

### `status` (~24 tokens)

Check API Status

Check Warp API health and version. Also validates your API key if one is configured.

### `events` (~44 tokens)

Get Shipment Events

Get the full tracking event history for a shipment (timeline of pickups, in-transit updates, deliveries). Auth required.

Input parameters:

- `shipment_id` (string, required): Shipment ID from book response

### `get_invoice` (~44 tokens)

Get Invoice

Retrieve the invoice for a delivered shipment (line items, taxes, payment status). Auth required.

Input parameters:

- `order_id` (string, required): Order ID (typically the same as shipment_id)

### `get_documents` (~137 tokens)

Get Shipment Documents

List shipment documents (BOL, POD, customs forms, etc.). Returns download URLs. Auth required. To fetch the Bill of Lading, pass document_type='bol' — this is how EXTERNAL / brokered (market-carrier) BOLs are returned now, not just Warp-carrier ones.

Input parameters:

- `document_type` (string): Filter to one document type. Common: 'bol' (Bill of Lading — required for external/market carrier BOLs), 'pod' (proof of delivery). Omit to list all documents.
- `order_id` (string, required): Order ID (typically the same as shipment_id)

### `quote_history` (~42 tokens)

View Quote History

List your recent freight quotes (LTL, van, box truck, FTL) from all sessions. Useful for surfacing prior pricing on similar lanes. Auth required.

### `login` (~62 tokens)

Log In to Warp

Log in to Warp with email and password. Saves credentials locally so booking tools work. Call this if the user needs to authenticate or if payment_status says no key is configured.

Input parameters:

- `email` (string, required): Warp account email
- `password` (string, required): Warp account password

### `payment_status` (~58 tokens)

Check Payment Status

Check if the current Warp account has a payment method on file. Call this if the user asks about their payment status, or before booking if you want to confirm they can book. Returns has_card and onboard_url if a card needs to be added.

### `analytics` (~40 tokens)

View Analytics

Show bookings analytics: total revenue, shipment count, breakdown by source (mcp vs cli). Use this to track how much revenue has been generated through AI tools.

### `locations` (~43 tokens)

List Saved Locations

List the agent's saved pickup/delivery locations (addresses Warp has on file for this account), so you can reuse them when booking instead of re-typing addresses. Auth required.

### `load_templates` (~47 tokens)

List Load Templates

List the agent's saved load templates — reusable shipment configs (name, dims, weight, commodity). Recall one to quote/book a repeat kind of load without re-entering details. Auth required.

### `save_load_template` (~154 tokens)

Save Load Template

Save a reusable load template (a named shipment config) so it can be recalled for repeat lanes. Auth required.

Input parameters:

- `commodity` (string): Commodity description
- `freight_class` (string): Freight class (optional; FAK pricing if omitted)
- `hazmat` (boolean): Whether the freight is hazmat
- `height_in` (number, required): Height in inches
- `length_in` (number, required): Length in inches
- `name` (string, required): Friendly name, e.g. 'Standard 2-pallet LA load'
- `stackable` (boolean): Whether the freight is stackable
- `weight_lbs` (number, required): Total weight in lbs
- `width_in` (number, required): Width in inches

### `delete_load_template` (~43 tokens)

Delete Load Template

Delete a saved load template by its id (starts with lt_). Auth required.

Input parameters:

- `load_template_id` (string, required): Template id to delete (starts with lt_)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/warpfreight-warp-agent-mcp/api-mcp#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 68
- 2026-08-01: 68
- 2026-07-31: 67
- 2026-07-30: 59

## Links

- Remote endpoint: https://mcp.wearewarp.com/api/mcp
- Repository: https://github.com/warpfreight/warp-agent-mcp
- Website: https://wearewarp.com/
- Changelog RSS feed: https://verifymcp.io/servers/warpfreight-warp-agent-mcp/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/warpfreight-warp-agent-mcp/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/warpfreight-warp-agent-mcp/api-mcp
