Freight MCP vs CLI: Which Integration Drives More Density
Warp gives you two programmatic interfaces backed by the same Warp account: an MCP server (warp-agent-mcp) for AI tools and a CLI (@warpfreight/cli-agent) for your terminal. Both handle the full booking lifecycle -- quote, book, track, events, cancel, invoices, documents, and multi-stop FTL. The difference is how they get used, how much friction they introduce, and how that friction affects your network density.
Same network · Different interfaces · Different density impact
The core difference
A freight CLI is a command line tool. You type warp-agent quote with flags and arguments. It returns results to stdout. You parse them and take the next action. The human (or script) drives every step.
A freight MCP server is a protocol layer between your AI tool and the freight network. The AI tool sees what freight operations are available, understands their parameters through typed schemas, and calls them directly. The AI drives the workflow. You describe what you want in natural language.
Same freight network underneath. Same carriers. Same rates. Same tracking. The difference is who does the work of translating intent into action.
Side by side: Same shipment, two approaches
CLI approach
# CLI: Get a freight quote
$ warp-agent ltl quote 30301 60601 \
--pallets 6 --weight 800 --dims 48x40x48 --date 2026-05-01
# Pipe through jq to pick the cheapest option
$ warp-agent ltl quote 30301 60601 [...] | jq '.options | min_by(.rate)'
{ "carrier": "GlovaLink", "rate": 598.54, "option_id": "OPT_xyz" }
# Book the Warp option
$ warp-agent book PRICING_abc-123 [address flags]
# Track it
$ warp-agent track S-80215-2616MCP approach
# MCP: AI handles the full freight workflow You: "Where is S-80215-2616 and how does this lane usually run?" Claude Code calls warp_track with: shipment_id: "S-80215-2616" Returns tracking status + last event + ETA. Claude Code calls warp_lane_history with: origin_zip: "90001" dest_zip: "85001" Returns last 20 shipments on the lane: avg_transit_days: 1.8 on_time_pct: 96.4 avg_per_pallet: $312 You: "What is our current rate card on this lane?" Claude Code calls warp_rate_card with: origin_zip: "90001" dest_zip: "85001" pallets: 2 weight_lbs: 1000 Returns live per-pallet rate + active promo code. One conversation. Three tools. Zero commands typed.
Same result. Different effort. With CLI you need to know the command syntax, the flags, and how to parse the output. With MCP you describe what you want and the AI handles the execution.
Feature comparison
warp-agent --helpCLI use cases: execution and automation
The CLI is for when you know exactly what needs to happen and you want it to happen the same way every time. No interpretation. No reasoning. Just execution. Here are the scenarios where CLI wins.
Nightly batch quoting
Your WMS exports 200 orders at end of day. A cron job runs at midnight: reads the CSV, calls warp-agent quote for each order, writes rates back to a file. Your logistics team has every quote ready at 6am. No human touched it. Same script runs every night.
Automated booking from ERP events
When your ERP marks an order as "ready to ship," a webhook triggers a script that calls warp-agent quote, picks the cheapest option under your budget threshold, and calls warp-agent book. The shipment is booked before your logistics coordinator sees the order. Human only steps in for exceptions.
Recurring lane automation
You ship 15 pallets from your Atlanta warehouse to Chicago every Tuesday. A cron job runs Monday at 3pm: warp-agent quote for that lane, compares against your contracted rate, books if its within 5%. Your highest volume lanes run on autopilot.
Rate benchmarking scripts
Run warp-agent quote across your top 50 lanes every morning. Compare against what you paid last month. Output a report showing where rates improved, where they spiked, and where you should renegotiate. Pipe it to Slack. Your team sees rate trends before the market moves.
CI/CD freight testing
Your shipping feature has integration tests. The test suite calls warp-agent quote with test parameters and validates the response shape. If the API contract changes, your CI catches it before deploy. Freight integration tested like any other dependency.
Tracking monitoring and alerting
A cron job runs every 30 minutes: warp-agent track for all active shipments. If any shipment is more than 2 hours past its ETA, the script sends a Slack alert to the ops channel with the tracking link. Exceptions caught automatically, not by customer complaints.
#!/bin/bash
# CLI excels at: pipeline automation
# Read orders from CSV, quote each, book if under budget
while IFS=, read -r origin dest pallets weight dims date budget; do
QUOTE=$(warp-agent ltl quote "$origin" "$dest" \
--pallets "$pallets" --weight "$weight" --dims "$dims" --date "$date")
QID=$(echo "$QUOTE" | jq -r '.warp_quote_id')
RATE=$(echo "$QUOTE" | jq '.warp_price')
if (( $(echo "$RATE < $budget" | bc -l) )); then
warp-agent book "$QID" [address flags] \
| jq '.trackingNumber'
echo "BOOKED: $origin → $dest at $RATE"
fi
done < orders.csvMCP use cases: visibility and intelligence
MCP is for when you need an AI to reason about freight data, chain multiple lookups together, and respond to questions that don't fit a predefined script. Here are the scenarios where MCP wins.
Operations team morning check
8am. Your ops lead opens Claude Code and says: "Show me all in-transit shipments. Flag anything that looks late or has a missing scan." The AI calls warp_list_bookings, filters for active loads, calls warp_track for each one to pull current status and last event, and returns a prioritized list of shipments that need attention. The ops lead handles 3 exceptions before the rest of the team logs in.
Customer escalation resolution
A customer emails: "Where is my order? Reference number PO-88421." You paste that into Claude Code. The AI calls warp_list_bookings and filters for the reference number, finds the order, calls warp_track for current status, ETA, and the last event location. You reply to the customer in under a minute.
Lane performance analysis
"How are our Atlanta to Chicago shipments performing? Pull the last 20 shipments on that lane and tell me average transit time, on time percentage, and per-pallet rate." The AI calls warp_lane_history with origin and destination ZIPs, gets the rolling 90-day metrics in one call, and identifies trends. Then you follow up: "Compare that to Dallas to Phoenix." Same conversation, no context lost, two more warp_lane_history calls.
Rate card drift detection
"Compare what we paid on our top 5 lanes last month against the live rate card. Flag any where the live rate is more than 10 percent below what we paid." The AI calls warp_list_bookings to pull last month, groups by origin and destination, calls warp_rate_card for each lane to get the current quotable rate, computes variance, and surfaces lanes where you should renegotiate or rebid. Treats the rate card as the live ground truth, not a historical estimate.
Building freight dashboards with live data
In Cursor, you tell the AI: "Build me a React component that shows my active shipments with tracking status. Use real data from my Warp account." The AI calls warp_list_bookings through MCP, sees the actual response shape, and writes a component that matches the real data. No mock data. No guessing at field names. The dashboard works on first render because it was built against your live freight data.
Executive freight summary
"Give me a freight summary for last week. Total shipments, breakdown by lane, any exceptions, on-time pct vs the 90-day average." The AI calls warp_list_bookings for the period, warp_track for status on each, and warp_lane_historyfor the rolling baseline. Your VP of logistics gets the numbers they need without asking anyone to build a report. Follow up with "Compare to the week before" and the AI runs the same analysis for the prior period.
# MCP excels at: AI agent freight visibility
You: "Check all my shipments from last week. Flag anything
late. Tell me which lanes ran best."
Claude Code:
1. warp_list_bookings(limit: 20)
Filters last 7 days, gets shipment IDs
2. warp_track(shipment_id) for each
Pulls current status + last event + ETA
Compares against quoted transit days
3. warp_lane_history(origin_zip, dest_zip)
For each unique lane, pulls 90-day rolling
on-time pct + avg transit + avg per-pallet
4. warp_rate_card(origin_zip, dest_zip, ...)
Checks live rate vs paid rate to spot drift
Returns: flagged late shipments, best-performing
lanes, rate-card vs paid-rate variance.
One conversation. Four tools. No scripts.The density impact
This is where it gets interesting for your network. Density is the structural moat in freight. More shipments per lane means higher fill rates, which means lower cost per pallet, which means lower prices, which means more shipments. The integration method you choose affects how many shipments enter the network.
CLI contributes to density through automation.Shell scripts that run overnight processing hundreds of orders. Cron jobs that automatically rebook recurring lanes. Pipeline triggers that convert warehouse events into freight bookings without human intervention. Each automated shipment is a shipment that wouldn't exist if someone had to manually key it into a portal.
MCP contributes to density through visibility and retention. When tracking freight is as easy as asking a question, operations teams stay on the platform. They catch exceptions faster, audit invoices in real time, and pull documents without logging into a portal. Better visibility means fewer disputes, faster resolution, and more repeat shipments. As quoting and booking tools arrive on MCP, it will also drive direct shipment creation through AI agents.
Together they compound. CLI handles the predictable, recurring volume through quoting and booking automation. MCP handles the visibility, monitoring, and AI driven operations. Both feed the same density flywheel: more shipments per lane, higher fill rates, lower costs, more shipments.
Use both. Feed the flywheel.
Decision framework
Use CLI when:
- -You need the same freight operation to run the same way every time.
- -The workflow is part of a larger shell script or pipeline.
- -You are automating recurring shipments on a schedule.
- -You need to process freight operations without an AI model available.
- -You are building infrastructure that other tools will call.
Use MCP when:
- -You want AI to handle freight visibility end to end.
- -The operation is ad hoc and you don not want to look up syntax.
- -You need the AI to reason about the results before taking next steps.
- -Non technical team members need to check on shipments.
- -You are building and testing freight features in an AI code editor.
Use both when:
- -CLI for quoting, booking, and scheduled automation (nightly batch, recurring lanes, cron monitoring).
- -MCP for visibility (tracking, documents, events, invoices, AI agent monitoring).
- -Maximum density: automated volume through CLI + AI driven visibility through MCP on the same network.
The network behind both
Whether you ship through MCP or CLI, the freight moves on the same Warp network.
- -20,000+ local 3rd-party carriers dispatched through the Warp driver app.
- -9,000+ box trucks and cargo vans in network.
- -50+ Warp operated cross-dock facilities.
- -1,500+ active LTL lanes with all inclusive per pallet pricing.
- -Live GPS tracking, scan events, proof of delivery photos, e-signatures.
- -Our AI backbone, Orbit, monitors every load for exceptions.
- -All inclusive pricing with no fuel surcharges or hidden fees.
Frequently asked questions
Can I use MCP and CLI with the same account?
Yes. Same Warp account, same API key, same freight network. They see the same shipments, invoices, and tracking data.
Does MCP replace the CLI?
No. They serve different use cases. CLI is for deterministic automation. MCP is for AI driven operations. Most teams use both.
Which one is faster to set up?
Both take under 5 minutes. MCP requires adding a JSON config to your AI tool settings. CLI requires installing the npm package and configuring your API key.
What about the REST API?
The REST API is the third option. MCP and CLI both use it underneath. If you are building a custom integration in code, the REST API gives you the most control. MCP is best for AI tools. CLI is best for shell automation.
What does it cost?
No software fees for any integration method. MCP, CLI, and REST API are all free. You pay when you ship with all inclusive per pallet pricing.