warp-agent-mcp
Server Details
Quote, book, and track LTL, FTL, cargo van, and box-truck freight via the Warp API.
- Status
- Healthy
- Uptime
- 99.9% over 44 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- warpfreight/warp-agent-mcp
- GitHub Stars
- 5
- Server Listing
- warp-agent-mcp
TDQS
Scored across 33 tools
Most tools target distinct resources or actions, and descriptions explicitly cross-reference to prevent misselection (e.g., compare_modes vs. individual quote tools, ltl_quote vs. ltl_market_options, analytics vs. list_bookings). However, several history/analytics tools and multiple quote tools require careful reading to distinguish, so it is not flawless.
Names are mostly lowercase snake_case, but verb/noun conventions are mixed: verb_noun (get_invoice, list_bookings), noun-only (analytics, events, locations, status), and mode-specific quote nouns (ltl_quote, ftl_quote, van_quote). This is readable but not fully predictable.
33 tools is heavy and some quote/history tools could be consolidated, but the broad freight domain includes genuinely distinct workflows like batch booking, multi-stop quoting, consolidation, and automations. It is borderline over-scoped rather than clearly excessive.
The surface covers quoting, booking, tracking, documents, invoices, history, analytics, templates, locations, automations, and auth, forming a near-complete shipment lifecycle. Explicit cancel/modify shipment, refund/dispute, or carrier-specific booking tools are missing, but agents can mostly work around these gaps.
Available Tools
33 toolsanalyticsSummarise Shipping HistoryARead-onlyInspect
Summarise your own shipping history: how many bookings, what you spent, and the split by mode, status and lane over a window. Both the headline count and every breakdown are computed from ONE population — your bookings via the agent API (warp-site /bookings) — so the total always matches the splits. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many of your most recent bookings to summarise (default 100, max 500) | |
| group_by | No | Which breakdown to lead with. All three are returned regardless; this only orders the response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, and the description does not contradict that. It adds genuinely useful context beyond the annotations: the auth requirement, the single upstream population (agent API /bookings), and the guarantee that the headline total reconciles with every breakdown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is summarised and immediately followed by the reconciliation guarantee. 'Auth required.' is terse but earns its place as a call prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately names what comes back (count, spend, three breakdowns) and the scoping population. Only minor gaps remain, such as the response shape for each breakdown and how limit truncation affects the figures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit and group_by are already fully documented, including the default/max and the fact that group_by only orders the response. The description's 'over a window' and 'split by mode, status and lane' loosely echo those parameters but add no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (summarise) and resource (your own shipping history) and enumerates the outputs: booking count, spend, and splits by mode, status and lane. This clearly separates it in kind from listing siblings like list_bookings or lane_history, though no sibling is named outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is the aggregate/summary counterpart to the raw list tools, and 'over a window' hints at the recency scope. There is no explicit when-to-use or when-not-to-use guidance and no alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_laneAutomate a Recurring LaneAInspect
Set up a RECURRING weekly shipment (standing order): describe the lane once, and after the account owner approves by email, Warp re-quotes it fresh every week and books the best option automatically while the price stays at or under the owner's ceiling. Over-ceiling weeks book nothing and notify the owner. THIS TOOL ONLY PROPOSES — nothing books now, and nothing ever books without the owner's one-time email approval. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | Booking payload used each run — same shape as the book tool's pickup/delivery addresses and contacts (patch.pickup, patch.delivery). quote_id and reference are set automatically each run | |
| label | No | Human-readable lane label for the owner's emails, e.g. 'Ontario CA → Dallas TX, 6 pallets' | |
| quote | Yes | Lane payload re-quoted each run — same fields as the quote tools (add length_in/width_in/height_in and commodity for firm LTL pricing). pickup_date is set automatically each week | |
| weekday | Yes | Pickup day each week: 0=Sunday … 6=Saturday | |
| criteria | No | How to pick the winning option each week (default lowest_price) | |
| end_date | No | Optional YYYY-MM-DD; the automation retires itself after the last pickup on or before this date | |
| ceiling_usd | Yes | Max auto-booked price per shipment in USD; above this the week books nothing and the owner is emailed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, but the description adds significant behavioral detail: it only proposes now, books later automatically only with owner approval, and over-ceiling weeks book nothing and notify. It also states the recurring nature and the ceiling constraint. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the core purpose and then explaining the approval and ceiling mechanics. Some redundancy exists ('nothing books now' and 'nothing ever books without approval'), but it remains efficient. It is appropriately sized for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, nested objects, and no output schema, the description covers the overall workflow and key constraints (approval, ceiling, recurrence). It does not explain the quote/book payload structure, but the schema already does. The description adequately complements the schema for an agent to understand the tool's purpose and invocation flow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the schema. The description does not elaborate on parameter-specific details but does reference the ceiling concept. Since the schema covers parameter meaning thoroughly, the description adds marginal value beyond schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets up a recurring weekly shipment automation, with specific behavior: re-quoting and auto-booking under a ceiling, after owner approval. It explicitly differentiates itself from immediate booking tools by stating 'THIS TOOL ONLY PROPOSES — nothing books now'. The verb 'set up' and resource 'recurring lane' are precise, and the description distinguishes it from siblings like book or batch_book.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use: for standing orders needing weekly re-quoting and auto-booking, and clarifies it does not perform immediate booking. It notes the approval requirement and over-ceiling behavior. Although it does not name specific alternative tools, the context makes it clear this is for automation versus one-off bookings, and the 'Auth required' note adds operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_receiptsAutomation Authorization RecordARead-onlyInspect
Authorization record for an automation's bookings: one entry per booking attempt showing the checks it passed at commit time against the owner's approval — same lane, price within ceiling, automation active, quote live — plus the shipment id it produced. Entries marked confirmation_required did NOT book autonomously; they fell back to owner confirmation. Read-only. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | automation token from automate_lane (so_…) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds critical behavioral context: entries with confirmation_required did not book autonomously and fell back to owner confirmation, and it lists the specific checks performed at commit time. The 'Auth required' note also adds operational nuance not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the tool's purpose ('Authorization record...'), followed by the important behavioral caveat. Every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool, the description covers the record's contents, the confirmation_required exception, and safety/read-only status. It stops short of stating the return shape (e.g., list vs single object), but the token parameter and purpose make that largely clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of token (automation token from automate_lane). The main description does not address parameters, but the schema carries that weight, so no additional explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies it as an authorization record for an automation's bookings, specifying the content (checks passed, shipment id, confirmation_required flag). However, it lacks an explicit action verb like 'get' or 'list', so it reads more as a resource definition than an operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the place to inspect automation booking authorization decisions ('one entry per booking attempt'), but it does not explicitly contrast with sibling tools like list_bookings or events. It mentions read-only and auth required, which helps, but no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_bookBatch Book ShipmentsADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bookings | Yes | Array of bookings to confirm (1-25). Each is one freight shipment, one card charge. | |
| shared_notes | No | Notes applied to every row without their own. | |
| shared_pickup | No | Pickup address applied to every row that doesn't supply its own (FBA case: one warehouse → many destinations). | |
| shared_delivery | No | Delivery address (all fields incl. contact phone and email) applied to every row that doesn't supply its own. Uncommon (usually each row goes somewhere different). | |
| shared_reference | No | Reference applied to every row without its own. | |
| shared_accessorials | No | ||
| shared_pickup_window | No | ||
| shared_delivery_window | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry destructiveHint=true, so the description adds real value: sequential execution, one card charge per row, per-row Booked/Failed outcome, and the session-scoped quote_id expiry warning. It stops short of stating what happens to already-charged rows if a later row fails, or any refund/permission detail, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action and followed by the routing rule, the required key, the address-inheritance shortcut, and the return shape. Dense and mostly waste-free, though the address-inheritance sentence runs long relative to its informational payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive 8-param batch mutation with no output schema, the description covers the return value (progress card with per-row status and tracking), the batching contract, and the inheritance defaults. Remaining gaps are edge-case failure/refund semantics, which are secondary but not covered by any structured field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 63%, the description compensates by explaining the shared_* inheritance model (per-row values fall back to top-level shared values) and the warehouse → many destinations case. The quote_id session constraint and row-count economics are also surfaced. It does not add format detail for windows or accessorials, which the schema leaves bare.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (book), resource (already-quoted lanes), and scope (MANY in ONE call), and explicitly distinguishes itself from the sibling `book` by forbidding the loop pattern. An agent can route between batch_book, book, and batch_quote without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the trigger conditions verbatim ('book all of them', 'book rows 1, 3, 5'), the required prerequisite (after batch_quote, using the same quote_id), and the explicit anti-pattern (do NOT call book in a loop). This is textbook when/when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_quoteBatch Quote LanesARead-onlyInspect
Price up to 50 lanes in one call for a specified mode per row (defaults to LTL). This returns a Warp rate per row, NOT all-mode or all-carrier comparison. For Compare All use compare_modes per shipment; for LTL carrier alternatives use ltl_market_options. Never imply this tool compared every carrier. 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").
| Name | Required | Description | Default |
|---|---|---|---|
| lanes | Yes | Array of lane requests (1-50). Each row maps to one quote. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries the burden of explaining behavior, and it does so richly. It discloses the return format (a single batch-quote card with one row per lane), the output fields (origin → dest, mode, pallets, price, transit), that each row keeps quote_id, and that rows can be individually booked. It also clearly warns against overclaiming comparison coverage, which is exactly the kind of behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact for the amount of behavioral nuance it carries, and the most important capability is front-loaded. There is a small redundancy—'NOT all-mode or all-carrier comparison' and 'Never imply this tool compared every carrier' say similar things—but both serve as deliberate guardrails. Overall, every sentence earns its place for a tool with no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description fully compensates by spelling out the return shape, row fields, quote_id retention, and booking follow-up. It also covers limitations and sibling routing, which is more than sufficient for an agent to invoke the tool correctly and interpret its response. The input side is fully handled by the high-coverage schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the lanes array and nested properties. The description adds value by clarifying the row-to-quote mapping ('each row maps to one quote'), the 50-lane invocation model, and the per-row mode default, which reinforces but does not merely duplicate the schema. It doesn't need to restate each lane field, so this exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Price'), a clear resource ('up to 50 lanes in one call'), and the per-row mode behavior. It differentiates this tool from siblings like compare_modes and ltl_market_options by explicitly stating what it is NOT ('NOT all-mode or all-carrier comparison'). An agent can confidently distinguish this from batch_book, ltl_quote, and compare_modes without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance ('Price up to 50 lanes in one call') and names alternatives with their trigger conditions: compare_modes for Compare All and ltl_market_options for LTL carrier alternatives. It also states a clear exclusion: 'Never imply this tool compared every carrier.' This leaves no ambiguity about when to select this tool versus a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bookBook ShipmentADestructiveInspect
Book a quoted shipment using any quote_id or option id returned from a quote tool (Warp or market carrier). Requires quote_id and the full delivery address with the delivery contact's name, phone and email, every time. Pickup can be omitted only when a default shipper is saved on the account. Collect any missing delivery details from the user BEFORE calling. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Special instructions for the shipment | |
| pickup | No | Pickup address. Required if no default shipper is saved on your account. | |
| delivery | Yes | Delivery address and delivery contact. Required on every booking, with every field: street, city, state, ZIP, contact name, phone and email. Warp never fills delivery from past shipments. Ask the user for anything missing before calling book. | |
| quote_id | Yes | 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 rejected. | |
| reference | No | Your internal reference number | |
| accessorials | No | Pickup/delivery accessorial services. Should match the accessorials used when quoting. | |
| pickup_window | No | Pickup time window, 24h HH:MM, e.g. { from: '08:00', to: '17:00' }. Defaults to a full business day if omitted. | |
| delivery_window | No | Delivery time window, 24h HH:MM, e.g. { from: '09:00', to: '12:00' }. Defaults to a full business day if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation set is thin (only destructiveHint=true), so the description carries most of the burden. It usefully discloses auth requirements, the no-memory 'every time' rule for delivery data, and the conditional pickup rule. However it never says what committing a booking actually does commercially (cost incurred, reversibility, confirmation behavior), which matters for a destructive write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with what the tool does, then preconditions, then the conditional pickup rule and the pre-call instruction. Every sentence carries information, with only mild redundancy between 'requires ... every time' and the schema's own repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with nested objects and no output schema, the description covers the essential call-time requirements (auth, required inputs, conditional pickup, pre-call data gathering). The main remaining gap is the outcome/return behavior of a successful booking, which the description does not address.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters including nested objects and required fields, establishing a baseline of 3. The description reinforces that quote_id and full delivery are required and explains quote_id provenance, but adds little semantic detail beyond what the schema fields already state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('book') and resource ('quoted shipment') and explicitly ties it to output from quote tools (Warp or market carrier), which separates it from siblings like ftl_quote, ltl_quote, and batch_quote. An agent immediately understands this is the terminal booking step after quoting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions: quote_id must come from a quote tool, delivery details are mandatory 'every time', and pickup may be omitted only when a default shipper is saved. It also instructs collecting missing details before calling. It does not differentiate when to use book vs batch_book or multistop_book, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
box_truck_quoteGet Box Truck QuoteARead-onlyInspect
Quote a 26' box truck shipment (1-12 pallets, firm price)
| Name | Required | Description | Default |
|---|---|---|---|
| pallets | Yes | Number of pallets (1-12) | |
| width_in | No | Per-pallet width in inches (defaults to 40) | |
| commodity | No | Commodity description | |
| height_in | No | Per-pallet height in inches (defaults to 48) | |
| length_in | No | Per-pallet length in inches (defaults to 48) | |
| origin_zip | Yes | 5-digit US ZIP code | |
| pickup_date | Yes | Pickup date YYYY-MM-DD | |
| destination_zip | Yes | 5-digit US ZIP code | |
| pickup_services | No | Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup | |
| delivery_services | No | Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery | |
| weight_lbs_per_pallet | Yes | Weight per pallet in lbs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation confirms this is a non-destructive read operation. The description adds 'firm price', implying a committed quote rather than just a range, but it doesn't disclose if rates are guaranteed, whether the quote expires, or if it requires login. With annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the equipment, scope, and output. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a quote tool with 11 parameters and no output schema, the description is concise but covers the key differentiators. It could benefit from mentioning that the quote is based on the provided ZIPs and dimensions, but it's largely complete given the schema's thorough annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are fully documented in the schema. The description adds context by clarifying the pallet range (1-12) and that it's a 26' truck, but doesn't add additional parameter-specific detail beyond the schema. Baseline 3 is exceeded due to helpful constraint reinforcement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the specific equipment (26' box truck), the quantity constraint (1-12 pallets), and the output type (firm price). It clearly distinguishes itself from siblings like van_quote, ftl_quote, or ltl_quote by naming the exact mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need a box truck quote) and states the core constraint. However, it doesn't explicitly say when to choose this over van_quote or ftl_quote (e.g., pallet count thresholds), leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_freight_costsCompare Freight Costs Against EvidenceARead-onlyInspect
Calculate USD cost differences for up to 50 distinct shipments using supplied invoice/quote amounts and explicit comparability evidence. Excludes mismatched or unknown terms, keeps losses, separates quoted opportunities from invoice differences. Does not fetch rates, verify documents, annualize savings, or book. One candidate per shipment per call.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, and the description does not contradict them. The description adds behavioral details: it excludes mismatched/unknown terms, keeps losses, separates quoted opportunities from invoice differences, and lists non-actions (does not fetch rates, verify documents, annualize savings, or book). This goes beyond the annotations, though it does not specify output format or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: the first states the core purpose, the second describes handling of mismatches and losses, and the third lists exclusions and a constraint. Every sentence adds value and is front-loaded with the main action. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex input schema (array of objects with many required fields) and no output schema. The description explains what it does with inputs but does not describe the return format (e.g., list of differences, summary, or error handling). Given the complexity, the description should at least hint at the output structure, which is missing. The constraint 'up to 50 shipments' is in the schema but not emphasized in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'invoice/quote amounts' (baseline_amount_usd, candidate_amount_usd) and 'explicit comparability evidence' (comparison_evidence), but it does not explain the enum fields (baseline_kind, candidate_kind, included_charges, service_requirements, shipment_requirements) or the source fields beyond what the schema already provides. The schema itself has descriptions for several fields, but the description adds little to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (calculate USD cost differences), a specific resource (up to 50 shipments using supplied amounts and evidence), and explicitly lists exclusions (fetch rates, verify documents, annualize, book). This clearly distinguishes it from sibling tools like compare_modes (mode comparison) and batch_quote (quotation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: it requires supplied invoice/quote amounts and explicit comparability evidence, and it excludes mismatched/unknown terms. It also states what it does not do (fetch rates, verify documents, annualize, book), which hints at when to use other tools, but it does not explicitly name an alternative or provide a clear 'use this when...' directive. The constraint 'One candidate per shipment per call' further clarifies usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_modesCompare Freight ModesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hazmat | No | Hazardous materials flag | |
| pallets | Yes | Number of pallets (1-26) | |
| priority | No | What to optimize the recommendation for. Defaults to 'cheapest'. | |
| width_in | No | Pallet width in inches (defaults to 40) | |
| commodity | No | Commodity description | |
| height_in | No | Pallet height in inches (defaults to 48) | |
| length_in | No | Pallet length in inches (defaults to 48) | |
| stackable | No | Whether pallets are stackable | |
| origin_zip | Yes | 5-digit US ZIP code | |
| pickup_date | Yes | Pickup date YYYY-MM-DD | |
| freight_class | No | Freight class (optional, FAK rates used if omitted) | |
| destination_zip | Yes | 5-digit US ZIP code | |
| pickup_services | No | Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup | |
| benchmark_market | No | 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 returns in ~1-2s. Defaults to false. | |
| delivery_services | No | Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery | |
| weight_lbs_per_pallet | Yes | Weight per pallet in lbs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses that dims are optional with a standard pallet assumption, explains the benchmark_market time cost (15-25s), and ensures modes that can't be priced are returned with reasons, preventing silent omissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, every sentence adds value, and it is well-organized without redundancy. It efficiently conveys all necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains the return value including winning mode, rate, transit, quote_id, runner-up comparison, and unavailable modes with reasons. It also covers the benchmark option and the tool's read-only nature, making it completely informative for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3. The description adds some context like default dimensions and benchmark time cost, but does not significantly enhance parameter understanding beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is the single call for comparing freight modes, returning a decision-complete recommendation. It distinguishes itself from individual quote tools by emphasizing efficiency and comprehensive results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to prefer this tool over individual quote tools for mode comparison, and clarifies that it is quote-only and the quote_id should be passed to the `book` tool for booking. Provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
consolidateFind Consolidation SavingsARead-onlyInspect
Find consolidation savings across 2-12 upcoming loads: clusters loads sharing an origin+destination zip whose pickup dates fall within window_days (default 3) that together fit one 53' dry van, then prices each cluster BOTH ways — one combined FTL vs the sum of per-load LTLs — through real quotes with bookable quote ids. Use when the user has several loads to ship this week, asks if anything can ride together, or wants to cut freight spend. Loads that can't consolidate come back with the reason (no lane partner / outside window / exceeds trailer / cluster full) — relay reasons honestly. A truck pricing above its LTLs is shown with recommended:false; don't hide it. To act on a proposal, call book with the consolidated truck's quote_id. Auth optional — works keyless like the quote tools.
| Name | Required | Description | Default |
|---|---|---|---|
| loads | Yes | The loads you plan to ship | |
| window_days | No | Loads picking up within this many days of each other may ride together (default 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the tool is a read-only lookup. The description adds that pricing is done 'through real quotes with bookable quote ids' but does not state that the tool itself is non-destructive. It adds important context including the behavior for unconsolidatable loads (they come back with a reason) and how to handle trucks priced above LTLs (shown with recommended:false; don't hide). The description also notes 'Auth optional — works keyless like the quote tools.' This is valuable behavioral context beyond annotations. However, it does not specify whether the returned quote IDs are always valid or if they expire, which would be useful transparency. Score 4 because it adds significant behavioral detail beyond the readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that packs in purpose, usage guidelines, behavioral notes, and next steps without wasted words. It is front-loaded: the first sentence defines core functionality completely. Every subsequent sentence adds new information: clustering criteria, pricing logic, use cases, failure reasons, honesty policies, next action, and auth requirements. It is concise yet comprehensive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, 100% schema coverage, no output schema, and no nested objects, the description is remarkably complete. It explains the entire workflow: clustering logic, pricing comparison, recommended flag behavior, failure reasons, and the action path (call book). The description even relays expected agent behavior ('relay reasons honestly' and 'don't hide' recommended:false trucks). For a tool without an output schema, the description compensates thoroughly by describing what will be returned and how to handle it. Context signals indicate low complexity, and the description fully addresses all gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters and their descriptions. The description adds semantic value by explaining how parameters are used in the overall consolidation logic: 'clusters loads sharing an origin+destination zip whose pickup dates fall within window_days (default 3) that together fit one 53' dry van.' It also gives a default value for window_days (3). This clarifies the role of parameters beyond the schema descriptions. The description explains what the loads array represents and the criteria for clustering. Score 4 because it adds meaningful usage context while schema already has good parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds consolidation savings across 2-12 upcoming loads by clustering loads sharing origin+destination zip and pickup date window that fit one 53' dry van, then pricing each cluster both ways (combined FTL vs sum of LTLs) through real quotes with bookable quote IDs. This provides a specific verb (find/find consolidation savings) and resource (loads), and distinguishes it from sibling tools which are individual quote/booking tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: 'Use when the user has several loads to ship this week, asks if anything can ride together, or wants to cut freight spend.' It also tells when not to keep hidden: 'A truck pricing above its LTLs is shown with recommended:false; don't hide it.' It provides next-step action: 'To act on a proposal, call `book` with the consolidated truck's quote_id.' It also gives instructions for handling failures: 'Loads that can't consolidate come back with the reason... relay reasons honestly.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_load_templateDelete Load TemplateADestructiveInspect
Delete a saved load template by its id (starts with lt_). Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| load_template_id | Yes | Template id to delete (starts with lt_) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds useful context: auth requirement and the id format (starts with lt_). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every part is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description provides all necessary context: action, resource, id format, and auth requirement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes the parameter well. The description repeats this information without adding new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Delete a saved load template by its id', using a specific verb and resource. It clearly distinguishes from sibling tools like 'save_load_template' and 'load_templates'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Auth required', but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventsGet Shipment EventsARead-onlyInspect
Get the full tracking event history for a shipment (timeline of pickups, in-transit updates, deliveries). Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| shipment_id | Yes | Shipment ID from book response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's mention of 'Auth required' adds value beyond annotations. It discloses the return type (timeline of events) but omits details like pagination, ordering, or error handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with parenthetical examples. Every word adds value; no redundancies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter retrieval tool with no output schema, the description covers purpose, auth requirement, and example content. Minor gaps (e.g., no mention of pagination) are acceptable given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'shipment_id' is described in the schema as 'Shipment ID from book response'. The tool description adds no further parameter details, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('full tracking event history for a shipment'), with concrete examples (pickups, in-transit updates, deliveries). It distinguishes from siblings like 'track' by specifying 'full history' and 'timeline'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Auth required' but does not provide explicit guidance on when to use this tool versus alternatives like 'track' or 'get_documents'. No exclusion criteria or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freight_workflowStart a Freight ReviewARead-onlyInspect
Get a ready-to-use shipment intake CSV header, results CSV header, and starter prompt for shipment quoting, weekly freight comparison, or invoice review. Guidance only: does not read files, fetch rates, schedule work, or book. Use this when an operator asks how to start or supplies invoices/a shipment sheet.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it is non-destructive. The description adds value by confirming it is 'Guidance only' and enumerating specific actions it does not perform (read files, fetch rates, schedule, book), which gives more context than the bare annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The main action and outputs are front-loaded, followed by the scope limitation and usage trigger. Every sentence earns its place, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the purpose, the outputs (CSV headers, starter prompt), the exact use cases, and the limitations. It does not detail the exact format of the CSV headers or prompt, but that is minor and not required for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'workflow' has an enum with three values, and the description names the corresponding use cases ('shipment quoting, weekly freight comparison, or invoice review'), mapping directly to the enum options. This adds meaning beyond the raw schema, which has 0% description coverage, so the description compensates adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it provides CSV headers and a starter prompt for three distinct workflows. It clearly distinguishes itself from siblings by explicitly saying it is 'Guidance only' and does not read files, fetch rates, schedule work, or book, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger condition: 'Use this when an operator asks how to start or supplies invoices/a shipment sheet.' It also lists exclusions (does not read files, fetch rates, etc.), which clarifies what it is not for, effectively routing the agent away from action-oriented tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ftl_quoteGet Full Truckload QuoteARead-onlyInspect
Quote a full truckload (53' dry van). Only origin, destination, and date required.
| Name | Required | Description | Default |
|---|---|---|---|
| pallets | No | Pallets (optional, display only) | |
| commodity | No | Commodity description | |
| origin_zip | Yes | 5-digit US ZIP code | |
| pickup_date | Yes | Pickup date YYYY-MM-DD | |
| destination_zip | Yes | 5-digit US ZIP code | |
| weight_lbs_per_pallet | No | Weight per pallet (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows the tool is safe. The description does not contradict annotations and adds a minor behavioral cue by stating minimal input requirements, but it does not elaborate on the quote generation process or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the core action ('Quote a full truckload') and immediately clarifies the essential scope and required fields. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about the output format (e.g., price, transit time) and does not disambiguate from the sibling tool 'van_quote', which may cause confusion. Given no output schema, more information on return values would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the base expectation is a 3. The description adds value by clarifying that only origin, destination, and date are required, implicitly marking other parameters as optional. This helps the agent understand which fields are essential for the quote.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states that the tool quotes a full truckload (53' dry van) and highlights the minimal required fields (origin, destination, date). This clearly distinguishes it from siblings like ltl_quote or box_truck_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly signals when to use this tool by specifying 'full truckload (53' dry van)' and emphasizing that only three fields are required. It lacks explicit exclusions or alternative recommendations, but the context is clear enough for an AI agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentsGet Shipment DocumentsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order ID (typically the same as shipment_id) | |
| document_type | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. Description adds that auth is required and returns download URLs, providing useful behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, return/auth, and a specific usage note. No fluff, front-loaded, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool with 2 params and no output schema, description covers purpose, return value, auth, and special case. Could mention pagination or empty results but not critical; fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters fully. Description adds value by clarifying that document_type filters to one type and gives common values ('bol', 'pod'), and explains special behavior for 'bol' fetching external BOLs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists shipment documents with examples (BOL, POD, customs forms) and mentions returning download URLs. Differentiates from sibling tools like get_invoice which deals with financial documents, no direct competitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides specific guidance on using document_type='bol' for external BOLs and notes auth required, but does not explicitly state when to avoid this tool or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceGet InvoiceARead-onlyInspect
Retrieve the invoice for a delivered shipment (line items, taxes, payment status). Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order ID (typically the same as shipment_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no contradiction. The description adds value by specifying the conditional context ('for a delivered shipment') and the need for authentication, which annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no redundant words. It front-loads the key action and resource, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially compensates by mentioning returned data (line items, taxes, payment status). However, it omits expected response format (e.g., JSON vs. file) and behavior for non-delivered shipments, leaving gaps for a one-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'order_id' fully documented. The description does not add parameter-specific meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and resource 'invoice for a delivered shipment', listing specific contents (line items, taxes, payment status). This distinguishes it from sibling tools like 'get_documents' (general documents) and 'payment_status' (only status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes 'Auth required' and implies use after shipment delivery, but lacks explicit guidance on when not to use or alternatives (e.g., 'get_documents' for other shipment docs). No exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lane_historyView Lane HistoryARead-onlyInspect
Get shipping history for your lanes (past shipments, last consignee, counts). Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by disclosing authentication requirements and the specific data returned (past shipments, last consignee, counts), which goes beyond the annotated safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that clearly states purpose and key details. Every word contributes value, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, read-only, no output schema), the description adequately covers purpose, required authentication, and return data. It does not specify format or pagination, but for a simple history endpoint it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; baseline score is 4 as per guidelines. The description does not need to compensate for parameter documentation since schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' with clear resource 'shipping history for your lanes', and lists example data (past shipments, last consignee, counts). This distinguishes it from sibling tools like analytics or quote_history, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The description only states 'Auth required', but lacks context on when this tool is preferred over alternatives like analytics or quote_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bookingsList BookingsARead-onlyInspect
List recent bookings for this API key, newest first. Returns shipments across all channels and all time, including cancelled — a broader population than shipper_profile's counts (agent-API bookings over the last 180 days, excluding cancelled), so the totals can differ. Auth required. Renders an interactive shipments card (click a shipment to expand pickup/delivery, freight, and a tracking link).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max bookings to return (default 25, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description adds real value: ordering (newest first), result scope (all channels, all time, including cancelled), and an auth requirement. It also discloses that it renders an interactive shipments card, which is behavior an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and scope in the first two sentences; the auth note and card-rendering detail follow. Every sentence carries information, though the UI-rendering sentence is the least load-bearing for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately covers return scope and ordering, and the readOnlyHint annotation plus the stated auth requirement cover the safety profile. Pagination behavior is only in the schema's limit description, a minor gap for a tool this simple.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and there is a single optional limit parameter fully documented in the schema, so the baseline is 3. The description's 'newest first' hints at ordering but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List recent bookings for this API key, newest first') and explicitly contrasts its scope with the sibling shipper_profile, so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative (shipper_profile) and precisely characterizes the scope difference — all channels, all time, including cancelled, versus 180-day non-cancelled agent-API counts — giving clear context for selection. It stops short of stating an explicit when-not rule, but the comparison is strong routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_templatesList Load TemplatesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the readOnlyHint annotation by specifying that the tool lists reusable shipment configs with fields (name, dims, weight, commodity) and requires authentication. It confirms the read-only nature without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, both highly informative. The first sentence states the primary function, and the second provides usage guidance. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, a readOnlyHint annotation, and no output schema, the description is complete. It clearly explains what is listed, the purpose, and the auth requirement, leaving no significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and the description effectively explains why by describing the type of content returned. It adds meaning beyond the schema by detailing the fields in a template and the use case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'List the agent's saved load templates', clearly specifying the action and resource. It explains what templates contain and distinguishes from sibling tools like save and delete by focusing on listing and recalling for quoting/booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: to recall a template for quoting/booking a repeat load. It also mentions 'Auth required' as a prerequisite. However, it does not provide explicit exclusions or alternatives, which would make it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
locationsList Saved LocationsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'Auth required' beyond the annotations (which only have readOnlyHint=true). This informs the agent of a behavioral requirement. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and benefit. Every sentence earns its place; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no parameters, the description fully informs the agent of what it does, why to use it, and the authentication requirement. No output schema needed as the description explains the content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. The description adds value by explaining that the list contains pickup/delivery addresses, which is useful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('saved pickup/delivery locations'), and explains the benefit ('reuse them when booking'). It clearly distinguishes from sibling tools like 'list_bookings'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use ('so you can reuse them when booking instead of re-typing addresses'), providing clear context. No explicit exclusions or alternatives are given, but it is adequate for a simple list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginLog In to WarpAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Warp account email | ||
| password | Yes | Warp account password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it 'Saves credentials locally so booking tools work', which is a behavioral trait beyond annotations (readOnlyHint=false, destructiveHint=false). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. Front-loaded with purpose, then key behavioral detail and usage guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but tool is simple authentication. Description explains side effect (saves credentials). Could mention error handling or session duration, but still reasonably complete given context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides descriptions for both parameters (email and password) with 100% coverage. Description does not add extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Log in to Warp with email and password', specifying the verb (log in) and resource (Warp). No ambiguity, and it distinguishes from sibling tools which are about shipping/booking functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call this if the user needs to authenticate or if payment_status says no key is configured', giving clear when-to-use guidance. Could elaborate on when not to use (e.g., if already logged in), but still effective.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ltl_market_optionsCompare LTL CarriersARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hazmat | No | Hazardous materials flag | |
| pallets | No | Number of pallets | |
| width_in | No | Pallet width in inches | |
| commodity | No | Commodity description | |
| height_in | No | Pallet height in inches | |
| length_in | No | Pallet length in inches | |
| stackable | No | Whether pallets are stackable | |
| origin_zip | Yes | 5-digit US ZIP code | |
| pickup_date | Yes | Pickup date YYYY-MM-DD | |
| freight_class | No | Freight class (optional, FAK rates used if omitted) | |
| destination_zip | Yes | 5-digit US ZIP code | |
| pickup_services | No | Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup | |
| delivery_services | No | Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery | |
| weight_lbs_per_pallet | No | Weight per pallet in lbs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds valuable behavioral context: the tool is slow (15s), returns a ranked list of 30+ carrier rates. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then usage instructions, then constraints. Every sentence is necessary and efficient, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (14 params), full schema coverage, no output schema, and annotations, the description explains the tool's workflow position, output structure (ranked list of 30+ rates), and behavior. Sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions. The description adds meaning by indicating that parameters are the same as ltl_quote, providing cross-tool consistency. This is useful beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs a multi-carrier LTL comparison, returns 30+ carrier rates ranked by price, and distinguishes itself from sibling tools like ltl_quote by specifying its role in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call IMMEDIATELY AFTER ltl_quote with the same parameters, provides context for when it's useful (compare carriers, pick specific one), and includes a clear constraint: do not declare a winner or recommend a carrier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ltl_quoteGet LTL Freight QuoteARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hazmat | No | Hazardous materials flag | |
| pallets | No | Number of pallets | |
| width_in | No | Pallet width in inches | |
| commodity | No | Commodity description | |
| height_in | No | Pallet height in inches | |
| length_in | No | Pallet length in inches | |
| stackable | No | Whether pallets are stackable | |
| origin_zip | Yes | 5-digit US ZIP code | |
| pickup_date | Yes | Pickup date YYYY-MM-DD | |
| freight_class | No | Freight class (optional, FAK rates used if omitted) | |
| destination_zip | Yes | 5-digit US ZIP code | |
| pickup_services | No | Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup | |
| delivery_services | No | Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery | |
| weight_lbs_per_pallet | No | Weight per pallet in lbs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral context beyond readOnlyHint annotation: describes speed (~1-2s), inline loading indicator, default pallet assumption, and the need to call ltl_market_options. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is somewhat lengthy but front-loaded with key purpose and speed. Every sentence serves a purpose, though some could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, no output schema, and no nested objects, the description comprehensively covers behavior, timing, default assumptions, and follow-up actions. It fully satisfies the contextual needs for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, description adds critical semantics: explains that missing dimensions default to a standard pallet, and that providing dims yields an exact firm quote. This compensates for any ambiguity in parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool quotes an LTL shipment, returns Warp's all-inclusive rate fast, and distinguishes it from sibling tools like ltl_market_options by specifying the follow-up action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: when to quote, to follow up with ltl_market_options, to not block on dimensions, to quote even without dims, and to not editorialize results. Also suggests comparing LTL with other modes when applicable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_automationManage an AutomationADestructiveInspect
Check or stop a recurring lane automation. Actions: 'status' (read-only), 'pause', 'cancel' (permanent), 'skip_next' (skip one week's pickup — nothing books or charges that week). STOP-ONLY by design: there is no agent-side resume, reactivate, or ceiling change — those exist only behind the account owner's emailed approval link. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | automation token from automate_lane (so_…) | |
| action | Yes | status is read-only; pause/cancel/skip_next stop or shrink the automation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description materially extends the annotations' destructiveHint=true by specifying that 'cancel' is permanent and that 'skip_next' stops charges/bookings for one week. It also discloses the auth requirement and that resume/reactivate are gated behind the account owner's emailed approval link, with no contradiction to the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: scope, action semantics, stop-only boundary, and auth requirement. The core verb+resource is front-loaded and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the critical side effects, auth, and unsupported actions well. The only notable gap is that it does not describe what a 'status' call returns, although the action name and read-only hint partially cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both required parameters at 100% coverage, which sets a baseline of 3. The description adds useful action-level semantics beyond the schema, including permanence of cancel and the one-week billing effect of skip_next.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause 'Check or stop a recurring lane automation' names specific verbs and a concrete resource, and the action list makes the scope explicit. It is immediately distinguishable from sibling creation tool automate_lane and related receipt/lane-history tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames the tool as STOP-ONLY and warns there is no agent-side resume, reactivate, or ceiling change, so an agent knows when not to use it. It does not directly name sibling alternatives such as automate_lane in the description, though token provenance in the schema points there, which keeps it just shy of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
multistop_bookBook Multi-stop FTLADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | Quote ID from multistop_quote (PRICING_MULTI_…). Use the id from your MOST RECENT quote — ids expire and rotate. | |
| shipments | Yes | One leg per pickup→delivery pair (the gateway requires at least 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that no card charge fires and auth is required, adding context beyond destructiveHint annotation. Mentions quote ID expiration. Could be improved by describing expected response (e.g., booking ID) but still strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. First sentence front-loads purpose, second explains structure, third covers payment and auth. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Good for selection and basic invocation, but lacks mention of response format (e.g., booking ID or confirmation). With no output schema and nested complexity, some guidance on return value would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant meaning beyond 100% schema coverage, e.g., 'one leg per pickup→delivery pair', 'minimum 2 legs', 'quote IDs expire and rotate', and 'stop_index referencing quoted sequence'. Enhances understanding of how to fill parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it books a multi-stop FTL route quoted by multistop_quote, with specific verb 'Book' and resource, and distinguishes from siblings like 'book' (single stop) and 'batch_book'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly indicates prerequisite (use after multistop_quote) and payment behavior (no card charge, account settlement). Implicitly differentiates from single-stop booking via sibling names, but lacks explicit 'when not to use' or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
multistop_quoteGet Multi-stop FTL QuoteARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pallets | No | Total pallets riding the route (default 1) | |
| commodity | No | Commodity description | |
| stop_zips | Yes | 5-digit ZIPs of the intermediate stops, in route order (at least 1) | |
| pickup_zip | Yes | 5-digit ZIP of the first pickup stop | |
| pickup_date | Yes | Pickup date YYYY-MM-DD | |
| delivery_zip | Yes | 5-digit ZIP of the final delivery stop | |
| vehicle_type | No | Vehicle code (default DRY_VAN_53) | |
| total_weight_lbs | No | Total weight across all freight in lbs (default 500 per pallet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds context about route ordering, authentication requirements, and coverage limitations. No contradictions detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences cover purpose, use cases, alternative, and caveats. No redundancy; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema but describes the tool's behavior, scope, and limitations well. Outperforms a bare-bones description but could mention return format or error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already details each parameter. The description provides no additional parameter-level meaning beyond what's in the schema, meriting a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as quoting a multi-stop FTL route with a specific order (first pickup → intermediate stops → final delivery). It distinguishes itself from the sibling tool 'ftl_quote' by contrasting multi-stop vs simple A→B.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (milk runs, pool distribution, multi-store replenishment) and when not to (simple A→B, use ftl_quote). Also notes authentication requirement and coverage dependency.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payment_statusCheck Payment StatusARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds that it returns has_card and onboard_url if needed. No contradictions. Fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences that front-load the purpose and usage. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool, the description covers purpose, when to use, and return value. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so no additional information needed. Baseline 4 for 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and the resource 'payment method on file'. It distinguishes itself from sibling tools by being the only payment-specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: 'if user asks about payment status' or 'before booking to confirm can book'. While it doesn't state when not to use, the context is clear and no alternatives exist among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_historyView Quote HistoryARead-onlyInspect
List your recent freight quotes (LTL, van, box truck, FTL) from all sessions. Useful for surfacing prior pricing on similar lanes. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that authentication is required, going beyond the readOnlyHint annotation. However, it does not disclose other behavioral traits like pagination, rate limits, or how 'recent' is defined. With annotations already indicating a safe read operation, the description provides minimal additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences front-loaded with purpose and usage. Every sentence provides essential information without redundancy or wordiness, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool, the description covers purpose, scope, and authentication. It could clarify what 'recent' means (e.g., time range) or whether results are ordered, but given the simplicity of the tool, the description is largely complete and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema coverage, so the baseline is 3. The description does not add parameter-level details because there are none. It could have set expectations for the output format, but the dimension focuses on parameters, so the score remains at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'recent freight quotes', specifying the modes (LTL, van, box truck, FTL) and scope 'from all sessions'. This effectively distinguishes it from sibling tools that create individual quotes or fetch specific details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('surfacing prior pricing on similar lanes'), which guides when to use this tool. While it does not explicitly list alternatives or when not to use it, the context implies it is for historical review rather than new quotes or bookings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_load_templateSave Load TemplateAInspect
Save a reusable load template (a named shipment config) so it can be recalled for repeat lanes. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Friendly name, e.g. 'Standard 2-pallet LA load' | |
| hazmat | No | Whether the freight is hazmat | |
| width_in | Yes | Width in inches | |
| commodity | No | Commodity description | |
| height_in | Yes | Height in inches | |
| length_in | Yes | Length in inches | |
| stackable | No | Whether the freight is stackable | |
| weight_lbs | Yes | Total weight in lbs | |
| freight_class | No | Freight class (optional; FAK pricing if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate not read-only and not destructive. Description adds 'Auth required' which provides some behavioral context, but does not disclose whether saving overwrites existing templates, error behavior, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence plus an auth note, front-loading the key action and purpose with no wasted words. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 9 parameters, no output schema, and no behavior beyond creation described. Description explains purpose and auth but omits success/error responses, uniqueness constraints, or update behavior. Adequate but incomplete for complex usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. Description adds no additional semantics beyond what is in the schema, achieving baseline value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Save', resource 'reusable load template (a named shipment config)', and purpose 'so it can be recalled for repeat lanes'. Distinguishes from siblings like delete_load_template and load_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions 'Auth required' but provides no explicit guidance on when to use this tool versus alternatives like load_templates or delete_load_template. Usage context is implied but not differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shipper_profileShipper ProfileAIdempotentInspect
Read how this account actually ships — top lanes with ship counts, typical pallet count, usual pickup weekday, recent booked spend (derived server-side from the account's own quotes and bookings) plus explicit owner-set preferences: default accessorials, preferred mode, standard pallet dims, max transit days. The ship/booking counts here count bookings via the agent API over the last 180 days, excluding cancelled — a narrower population than list_bookings (all channels, all time, including cancelled), so the totals can differ. READ THIS BEFORE asking the user questions it already answers: pre-fill their usual lane, apply their standard dims, include the liftgate they always need. Pass set_preferences to update the explicit half (merge-partial; allowlisted keys only; null clears a key). This profile is CONTEXT, NEVER PERMISSION — it never authorizes anything; spending limits live in spend policy and are read-only. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| set_preferences | No | Omit to read. Provide to merge-update the explicit preferences. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses merge-partial update semantics, allowlisted keys, null behavior for clearing, server-side derivation of spend, the 180-day excluding-cancelled population, and auth requirements. It also adds the crucial safety framing that the profile never authorizes anything. This is rich behavioral context beyond what idempotentHint and destructiveHint already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and long, but every sentence adds operational value: scope, computation method, comparison to a sibling, usage directive, update semantics, and safety warning. It is front-loaded with the read purpose and does not waste words on filler; a slight trim of the enumerated examples could improve it, but the structure is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that both reads and mutates, the description covers the read output composition, the update behavior, the difference from list_bookings, the no-permission caveat, and auth. Since there is no output schema, it would be stronger if it stated what set_preferences returns after an update, but overall the description supplies enough context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents each field and the omit-to-read behavior. The description adds meaningful semantics not visible in the schema: set_preferences is a merge-partial update, only allowlisted keys are accepted, and null clears a key. That goes beyond the baseline, though the nested field meanings are mostly carried by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Read how this account actually ships') and enumerates what it returns: lanes, counts, pallet dims, spend, and owner-set preferences. It explicitly contrasts its booking-count population with list_bookings, so an agent can distinguish it from that sibling. The dual read/update behavior is described precisely rather than left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete directive: read this before asking the user questions it already answers, then lists example pre-fills. It says when to pass set_preferences versus omit it, clarifies that the profile is context never permission, and points to spend policy for limits. It also distinguishes its narrower population from list_bookings, which tells the agent when another tool is more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusCheck API StatusARead-onlyInspect
Check Warp API health and version. Also validates your API key if one is configured.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds that it validates API keys, which is useful behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description is adequate. It covers the main functions, though return format is not described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the baseline is 4. The description correctly identifies the lack of input requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks Warp API health and version, and validates API key. This is specific and distinct from sibling tools like booking or quote tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are mentioned. Usage is implied from the tool's nature as a health check, but no guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trackTrack ShipmentARead-onlyInspect
Track a shipment by ID or tracking number. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| shipment_id | Yes | Shipment ID or tracking number (e.g. S-12345-2616) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description does not need to reiterate that. It adds 'Auth required', which is useful, but does not disclose what the tool returns or other behavioral aspects like real-time nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The key information is front-loaded: action, resource, and identifier types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is present, and the description does not explain what the tool returns (e.g., tracking status, location, timestamps). With many sibling tools related to shipments, more context on the output is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a descriptive parameter including an example. The description adds little beyond the schema ('by ID or tracking number' mirrors the parameter description). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Track' and the resource 'shipment', and specifies the identifier types (ID or tracking number). This distinguishes it from sibling tools like booking or quoting, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Auth required' but does not provide explicit guidance on when to use this tool versus alternatives (e.g., status, events). Usage context is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
van_quoteGet Cargo Van QuoteARead-onlyInspect
Quote a cargo van shipment (1-3 pallets, firm price)
| Name | Required | Description | Default |
|---|---|---|---|
| pallets | Yes | Number of pallets (1-3) | |
| width_in | No | Per-pallet width in inches (defaults to 40) | |
| commodity | No | Commodity description | |
| height_in | No | Per-pallet height in inches (defaults to 48) | |
| length_in | No | Per-pallet length in inches (defaults to 48) | |
| origin_zip | Yes | 5-digit US ZIP code | |
| pickup_date | Yes | Pickup date YYYY-MM-DD | |
| destination_zip | Yes | 5-digit US ZIP code | |
| pickup_services | No | Pickup accessorials: pickup-appointment, liftgate-pickup, residential-pickup, limited-access-pickup, inside-pickup, driver-assist-pickup | |
| delivery_services | No | Delivery accessorials: delivery-appointment, liftgate-delivery, residential-delivery, limited-access-delivery, inside-delivery, driver-assist-delivery | |
| weight_lbs_per_pallet | Yes | Weight per pallet in lbs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the safety profile is covered. The description adds 'firm price' and the 1-3 pallet scope, which are useful behavioral details, but does not explain what happens outside those bounds or describe the quote's return characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It communicates the core action and key constraints immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters fully documented in the schema and readOnlyHint covering safety, the description is minimally adequate. However, for a quote tool with no output schema, it does not clarify return format or how it relates to other quote modes, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters. The description only mentions the pallet range, which is already defined in the schema, so it adds no meaningful parameter semantics beyond what is structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Quote') and resource ('cargo van shipment'), and adds scope ('1-3 pallets, firm price'). It distinguishes the tool from other quote siblings by mode, but does not explicitly name or contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for cargo van shipments of 1-3 pallets, but offers no explicit when-to-use guidance or mention of alternative quote tools (e.g., ltl_quote, ftl_quote). An agent must infer the appropriate context from the mode name and constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
batch_book6 fields changed- changed
Input schema / properties / bookings / items / properties / delivery / descriptionPrevious value: -"Per-row delivery. Omit to inherit from shared_delivery."New value: +"Per-row delivery (all fields incl. contact phone and email). Omit to inherit from shared_delivery; one of the two is required." - added
Input schema / properties / bookings / items / properties / delivery / properties / email / descriptionAdded value: +"Delivery contact email. Required by Warp on every booking." - changed
Input schema / properties / bookings / items / properties / delivery / requiredPrevious value: -[ - "zipCode", - "city", - "state", - "street", - "contactName", - "phone" -]New value: +[ + "zipCode", + "city", + "state", + "street", + "contactName", + "phone", + "email" +] - changed
Input schema / properties / shared_delivery / descriptionPrevious value: -"Delivery address applied to every row that doesn't supply its own. Uncommon (usually each row goes somewhere different)."New value: +"Delivery address (all fields incl. contact phone and email) applied to every row that doesn't supply its own. Uncommon (usually each row goes somewhere different)." - added
Input schema / properties / shared_delivery / properties / email / descriptionAdded value: +"Delivery contact email. Required by Warp on every booking." - changed
Input schema / properties / shared_delivery / requiredPrevious value: -[ - "zipCode", - "city", - "state", - "street", - "contactName", - "phone" -]New value: +[ + "zipCode", + "city", + "state", + "street", + "contactName", + "phone", + "email" +]
- Changed
book4 fields changed- changed
Input schema / properties / delivery / descriptionPrevious value: -"Delivery address. Required if this lane has not been shipped before."New value: +"Delivery address and delivery contact. Required on every booking, with every field: street, city, state, ZIP, contact name, phone and email. Warp never fills delivery from past shipments. Ask the user for anything missing before calling book." - changed
Input schema / properties / delivery / properties / email / descriptionPrevious value: -"Email address (optional — consignee email is often unknown)"New value: +"Delivery contact email. Required by Warp on every booking: ask the user for it if you don't have it." - changed
Input schema / properties / delivery / requiredPrevious value: -[ - "zipCode", - "city", - "state", - "street", - "contactName", - "phone" -]New value: +[ + "zipCode", + "city", + "state", + "street", + "contactName", + "phone", + "email" +] - changed
Input schema / requiredPrevious value: -[ - "quote_id" -]New value: +[ + "quote_id", + "delivery" +]
2 tool updates
- Added
compare_freight_costs - Added
freight_workflow
2 tool updates
- Changed
box_truck_quote3 fields changed- added
Input schema / properties / height_inAdded value: +{ + "description": "Per-pallet height in inches (defaults to 48)", + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / properties / length_inAdded value: +{ + "description": "Per-pallet length in inches (defaults to 48)", + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / properties / width_inAdded value: +{ + "description": "Per-pallet width in inches (defaults to 40)", + "exclusiveMinimum": 0, + "type": "number" +}
- Changed
van_quote3 fields changed- added
Input schema / properties / height_inAdded value: +{ + "description": "Per-pallet height in inches (defaults to 48)", + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / properties / length_inAdded value: +{ + "description": "Per-pallet length in inches (defaults to 48)", + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / properties / width_inAdded value: +{ + "description": "Per-pallet width in inches (defaults to 40)", + "exclusiveMinimum": 0, + "type": "number" +}
2 tool updates
- Changed
batch_book4 fields changed- added
Input schema / properties / bookings / items / properties / delivery / properties / zipCode / patternAdded value: +"^\\d{5}$" - added
Input schema / properties / bookings / items / properties / pickup / properties / zipCode / patternAdded value: +"^\\d{5}$" - added
Input schema / properties / shared_delivery / properties / zipCode / patternAdded value: +"^\\d{5}$" - added
Input schema / properties / shared_pickup / properties / zipCode / patternAdded value: +"^\\d{5}$"
- Changed
book2 fields changed- added
Input schema / properties / delivery / properties / zipCode / patternAdded value: +"^\\d{5}$" - added
Input schema / properties / pickup / properties / zipCode / patternAdded value: +"^\\d{5}$"
1 tool update
- Changed
analytics3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / group_byAdded value: +{ + "description": "Which breakdown to lead with. All three are returned regardless; this only orders the response.", + "enum": [ + "mode", + "status", + "lane" + ], + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "description": "How many of your most recent bookings to summarise (default 100, max 500)", + "maximum": 500, + "minimum": 1, + "type": "integer" +}
2 tool updates
- Added
consolidate - Added
shipper_profile
3 tool updates
- Added
automate_lane - Added
automation_receipts - Added
manage_automation
26 tool updates
- First observed
analytics - First observed
batch_book - First observed
batch_quote - First observed
book - First observed
box_truck_quote - First observed
compare_modes - First observed
delete_load_template - First observed
events - First observed
ftl_quote - First observed
get_documents - First observed
get_invoice - First observed
lane_history - First observed
list_bookings - First observed
load_templates - First observed
locations - First observed
login - First observed
ltl_market_options - First observed
ltl_quote - First observed
multistop_book - First observed
multistop_quote - First observed
payment_status - First observed
quote_history - First observed
save_load_template - First observed
status - First observed
track - First observed
van_quote
Related MCP Connectors
Multi-carrier shipping for AI agents: compare rates, buy labels, track packages, validate addresses
Multi-carrier shipping functionality with built-in, discounted carrier accounts. Compare rates, generate PDF shipping labels, schedule pickups and track packages in automated way or in your chatbox, no coding required. This is a demo server that is functional with no account needed and no auth. For production use please find our production version.
Pack cargo into containers & onto pallets; a verifiable 3D loading plan. Free tier + REST API.
Multi-carrier shipping in Mexico: grouped rates, labels, tracking, pickups, address book, webhooks.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceProvides real-time freight tracking and load visibility for logistics and AI agents: create loads, get live GPS positions, trip stats, and confirm deliveries via geofenced statuses.1MIT

Trackmage MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceProvides shipment tracking api and logistics management capabilities through the TrackMage API. Enables creation and monitoring of shipments and orders, carrier detection, tracking checkpoint retrieval, and comprehensive logistics workflow automation.2MIT
Easyship MCPofficial
AlicenseNot gradedqualityFmaintenanceEnables AI agents to manage global shipping operations, including rate comparison, shipment creation, label purchasing, tracking, pickup scheduling, address validation, billing, and analytics, via natural language.57 npmMIT- AlicenseNot gradedqualityCmaintenanceEnables real-time China-to-USA freight quotes with all-in delivered-duty-paid pricing for small shipments, without requiring an API key or signup.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.