Skip to main content
Glama

Check a freight bill against the market

check_freight_bill
Read-only

Compare what a shipper was billed (or quoted) for one truckload or LTL load with today's market price for the same lane. Use it when the user uploads, pastes, or describes a freight bill, carrier or broker invoice, or rate confirmation and asks whether the price is fair. Read the fields off the document yourself and pass only those; never send the document, its text, company or people's names, street addresses, or invoice, PRO, BOL, or account numbers. If the document doesn't say what kind of truck moved the load, ask the user. Dry Van and LTL return a verdict (above_market, at_market, good_price, below_floor) against FreightFA's market quote, negotiation target, and walk-away floor, plus what negotiating would have saved. Reefer and Flatbed return FreightFA's estimate and the gap with no verdict (no_call). The comparison is all-in with fuel; put detention, lumper, liftgate and other extras in accessorials so they are left out. Bills older than 90 days are not judged. Takes places, not miles. Each call counts as one estimate toward the account's monthly FreightFA allowance.

Input Schema

NameRequiredDescriptionDefault
modeYesWhat moved. A plain truckload or FTL bill is 'Dry Van'.
originYesWhere the load picked up: city and state, or ZIP. Example: 'Chicago, IL 60601'. Not the bill-to or remit-to address.
palletsYesLTL only: pallet count, or null.
ship_dateYesShip or pickup date as YYYY-MM-DD, or null if the bill doesn't say.
weight_lbsYesLTL only: shipment weight in pounds. Null for truckload.
destinationYesWhere the load delivered: city and state, or ZIP.
accessorialsYesThe part of billed_total that is extras (detention, lumper, liftgate, residential, layover), in dollars. Null or 0 when there are none.
billed_totalYesEverything on the bill, in U.S. dollars.
freight_classYesLTL only: NMFC freight class from the bill such as '70' or '92.5', or null.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly/openWorld, but the description adds substantial behavior: verdict sets differ by mode (four verdicts for Dry Van/LTL, no_call for Reefer/Flatbed), the 90-day staleness rule, what is and is not included in the comparison (fuel in, accessorials out), and that each call consumes one estimate from a monthly allowance. It also states a data-handling constraint (never pass document text or PII).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the core comparison comes first, then usage, then the data-handling constraint, then mode-dependent output and edge rules. Nearly every sentence carries load-bearing information, though the allowance and staleness rules could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so: it names the verdict values, what FreightFA returns for each mode, and the no_call case. Combined with the privacy, staleness, and billing rules, an agent has what it needs to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic guidance beyond the schema: 'takes places, not miles', the all-in-with-fuel vs accessorials split, 'read the fields off the document yourself and pass only those', and the instruction to ask the user when the document omits the mode. Mode-to-document mapping ('a plain truckload or FTL bill is Dry Van') is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope: compare a billed/quoted price for one truckload or LTL load against today's market on the same lane. This clearly separates it from the sibling estimate_*_rate tools, which price a load that hasn't been billed yet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger conditions (user uploads, pastes, or describes a bill/invoice/rate confirmation and asks whether the price is fair) plus exclusions (bills older than 90 days are not judged; document contents must not be sent). It does not name a sibling by name when the user is instead asking for a quote on an unbilled load, which is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources