Skip to content

FreightFA

by mcp.freightfa.com · remote · no sign-in to list tools · v0.4.1 · published by com.freightfa.mcp

Freight rate benchmarks (truckload, LTL, rail, intermodal, barge), market outlooks, FMCSA checks.

Changes · 13

27 tools: 13 change things and 14 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http freightfa https://mcp.freightfa.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "get_freight_brief" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_freight_brief" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

27 tools

Changes things 13Claude Code: ask
  • ask_freight_analystAsk FreightFA's AI freight analyst a question in plain language: lane rates, mode choice, capacity, fuel, carrier vetting, market news, or drafting an RFP.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Ask FreightFA's AI freight analyst a question in plain language: lane rates, mode choice, capacity, fuel, carrier vetting, market news, or drafting an RFP. Answers cite their sources and can include a priced rate card. Pass session_id from a previous answer to continue the same conversation. Each question counts toward the account's monthly FreightFA allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: false
    • idempotentHint: false
    • openWorldHint: true
  • calculate_marginMargin on a load from the buy rate (carrier cost) and sell rate (what the shipper pays): margin in dollars and percent of sell, the per-mile spread when miles are given, and the se…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Margin on a load from the buy rate (carrier cost) and sell rate (what the shipper pays): margin in dollars and percent of sell, the per-mile spread when miles are given, and the sell price needed to hit a target margin. Pure arithmetic; does not count toward the allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • create_rate_alertCreate a lane rate alert for the signed-in user.No findings

    Why it is in this group

    • The name "create_rate_alert" says "create": a word for a change.
    Description, as the server wrote it
    Create a lane rate alert for the signed-in user. Notifies them when the benchmark crosses the threshold.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: false
    • openWorldHint: false
  • create_rfpCreate a draft freight RFP in the user's FreightFA account with up to 50 lanes, and benchmark each lane against the market.No findings

    Why it is in this group

    • The name "create_rfp" says "create": a word for a change.
    Description, as the server wrote it
    Create a draft freight RFP in the user's FreightFA account with up to 50 lanes, and benchmark each lane against the market. Returns the RFP id, a link to finish and send it in the RFP Builder, and each lane's benchmark. Free accounts can have one RFP.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: false
    • idempotentHint: false
    • openWorldHint: false
  • draft_pushback_emailDraft an email to a broker or carrier pushing back on a truckload quote, using the market benchmark for the lane and this week's market direction.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Draft an email to a broker or carrier pushing back on a truckload quote, using the market benchmark for the lane and this week's market direction. Set want_counter to true to also draft a counter-offer. If no benchmark is given, the national all-in rate for the equipment is used. Included with FreightFA Pro and Desk accounts.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: false
    • openWorldHint: false
  • estimate_barge_rateEstimate an inland waterway barge freight rate for a bulk commodity, origin, destination, distance, and weight, from USDA's weekly downbound grain barge rates.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Estimate an inland waterway barge freight rate for a bulk commodity, origin, destination, distance, and weight, from USDA's weekly downbound grain barge rates. Only priced when both ends are Mississippi/Illinois/Ohio River ports, the lane runs downriver, and the shipment is at least one barge-load (~1,500 short tons, 3,000,000 lb); otherwise returns available: false with the reason. Priced on river miles. Returns a directional benchmark for planning. Each call counts as one estimate toward the account's monthly FreightFA allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: false
    • openWorldHint: false
  • estimate_intermodal_rateEstimate a door-to-door domestic intermodal (rail + truck) rate between two U.S.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Estimate a door-to-door domestic intermodal (rail + truck) rate between two U.S. places: drayage to the nearest Class I ramp, the rail line-haul, and drayage from the destination ramp, with the ramps used. Says when a lane has no intermodal service. Each call counts as one estimate toward the account's monthly FreightFA allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: false
    • openWorldHint: true
  • estimate_ltl_rateEstimate a less-than-truckload rate using FreightFA's CzarLite-basis tariff calculator.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Estimate a less-than-truckload rate using FreightFA's CzarLite-basis tariff calculator. Returns a directional benchmark for planning. Each call counts as one estimate toward the account's monthly FreightFA allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: false
    • openWorldHint: false
  • estimate_network_costPrice a supply chain of up to 10 legs (factory to port to warehouse to store, domestic or international) and total it, with each leg's mode, cost, and transit time.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Price a supply chain of up to 10 legs (factory to port to warehouse to store, domestic or international) and total it, with each leg's mode, cost, and transit time. Saved to the user's Network Builder. Full costs are included with FreightFA Desk; other accounts can spend a one-time trial run by setting use_trial_run to true, otherwise legs come back without costs.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: false
    • idempotentHint: false
    • openWorldHint: true
  • estimate_rail_rateEstimate a Class I carload rail freight rate for a commodity, distance, and weight.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Estimate a Class I carload rail freight rate for a commodity, distance, and weight. Pass origin and destination to check for active freight track near both ends (USDOT rail network): rail_access names the railroads nearby, and a lane with no track within 50 miles of an end returns available: false with the reason instead of a price. Don't quote rail on such a lane. Returns a directional benchmark for planning. Each call counts as one estimate toward the account's monthly FreightFA allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: false
    • openWorldHint: true
  • estimate_truckload_rateEstimate a full-truckload freight rate for a lane using FreightFA's DAT-basis rate engine.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Estimate a full-truckload freight rate for a lane using FreightFA's DAT-basis rate engine. Returns a directional benchmark for planning. Each call counts as one estimate toward the account's monthly FreightFA allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: false
    • openWorldHint: false
  • get_freight_briefStart here for any general freight market question.1 finding

    Why it is in this group

    • The name "get_freight_brief" says "get": a word for reading.
    • The description's first verb is "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_freight_brief" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_freight_brief" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Start here for any general freight market question. FreightFA's daily freight brief in one call, with no inputs: today's U.S. national truckload rates per mile (dry van, reefer, flatbed, all-in including fuel) and diesel, next week's truck rate outlook, truck capacity, how rail carload prices are moving, ocean, air, and barge readings with their outlooks, and FreightFA's newest stories with links. Every figure carries its date and source, and a figure that failed FreightFA's checks is listed as held back, with the reason, instead of being shown. Rebuilt several times a day; cite it as FreightFA with the date. Does not count toward the estimate allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • recommend_modeRank the freight modes (dry van, reefer, flatbed, intermodal, rail, barge, dump truck) for a shipment between two U.S.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Rank the freight modes (dry van, reefer, flatbed, intermodal, rail, barge, dump truck) for a shipment between two U.S. places, with the reasons for each, and return the lane distance in miles. Use it first when you only have city names or ZIPs, then pass the distance to an estimate_* tool for a price. International lanes return the ocean/air routing instead. Does not count toward the estimate allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
Only reads 14Claude Code: allow
  • check_freight_billCompare what a shipper was billed (or quoted) for one truckload or LTL load with today's market price for the same lane.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "compare": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: false
    • openWorldHint: true
  • explain_freight_termPlain-English definition of a freight market index, ratio, or charge from the FreightFA glossary: OTRI, OTVI, load-to-truck ratio, NTI, Cass Freight Index, RCAF, fuel surcharge, fr…No findings

    Why it is in this group

    • The name "explain_freight_term" says "explain": a word for reading.
    Description, as the server wrote it
    Plain-English definition of a freight market index, ratio, or charge from the FreightFA glossary: OTRI, OTVI, load-to-truck ratio, NTI, Cass Freight Index, RCAF, fuel surcharge, freight class, detention and demurrage, DIM weight, bill of lading, deadhead, accessorials, linehaul, and more. Returns who publishes it, how to read it, and why it matters. Omit the term to list every entry with its link. Does not count toward the allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • find_intermodal_hubsLook up U.S.No findings

    Why it is in this group

    • The name "find_intermodal_hubs" says "find": a word for reading.
    Description, as the server wrote it
    Look up U.S. intermodal rail hubs by city or state: which Class I railroads serve the metro, the named ramps to ask a carrier about, and notes. Leave both out to list every hub. Does not count toward the allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_barge_outlookUSDA weekly downbound grain barge rates for the river corridor between two Mississippi, Illinois, or Ohio River places, with next week's outlook where it has passed a backtest.No findings

    Why it is in this group

    • The name "get_barge_outlook" says "get": a word for reading.
    Description, as the server wrote it
    USDA weekly downbound grain barge rates for the river corridor between two Mississippi, Illinois, or Ohio River places, with next week's outlook where it has passed a backtest. Says when the places aren't on a priced corridor. Does not count toward the allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_freight_index_outlookLatest reading and next-period outlook for a global freight index: drewry_wci (Drewry World Container Index, $/40ft container), baltic_dry_index (dry bulk shipping), tac_air_index …No findings

    Why it is in this group

    • The name "get_freight_index_outlook" says "get": a word for reading.
    Description, as the server wrote it
    Latest reading and next-period outlook for a global freight index: drewry_wci (Drewry World Container Index, $/40ft container), baltic_dry_index (dry bulk shipping), tac_air_index (air cargo rates), or iata_jet_fuel (jet fuel price). Omit the index to get all four. A forecast band is shown only where it has passed a backtest and the source readings are consistent; otherwise the answer says what was held back and why. Does not count toward the allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_freight_newsFreightFA's newest freight news: FreightFA Pulse market stories and updates (truck, rail, ocean, industry), articles from The FreightFA Brief newsletter, videos, and podcast episod…No findings

    Why it is in this group

    • The name "get_freight_news" says "get": a word for reading.
    Description, as the server wrote it
    FreightFA's newest freight news: FreightFA Pulse market stories and updates (truck, rail, ocean, industry), articles from The FreightFA Brief newsletter, videos, and podcast episodes. Returns titles, dates, short summaries and links, newest first. Filter by source or by a topic keyword such as 'intermodal' or 'tariffs'. Works with no inputs. Use it for what is happening in freight right now; cite the linked page. Does not count toward the monthly allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_market_outlookFreightFA's forecast for next week's U.S.No findings

    Why it is in this group

    • The name "get_market_outlook" says "get": a word for reading.
    Description, as the server wrote it
    FreightFA's forecast for next week's U.S. national spot rate per mile (all-in including fuel) for dry van, reefer, or flatbed: the current weekly average, a p10/p50/p90 band, and whether rates look to be rising, falling, or stable, with the rationale and caveat. Omit the equipment type to get all three. National, not lane-specific. Does not count toward the estimate allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_market_snapshotToday's U.S.No findings

    Why it is in this group

    • The name "get_market_snapshot" says "get": a word for reading.
    Description, as the server wrote it
    Today's U.S. national truckload rates per mile for dry van, reefer, and flatbed (all-in including fuel, with linehaul and fuel split), FreightFA's live-quote index, and EIA diesel, each with its source week and the change over the last 7 days. Use it for 'what are truck rates right now' questions; cite it as FreightFA with the as-of date. Does not count toward the estimate allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_rail_market_outlookHow U.S.No findings

    Why it is in this group

    • The name "get_rail_market_outlook" says "get": a word for reading.
    Description, as the server wrote it
    How U.S. rail carload prices are moving: the change in Class I railroads' average revenue per carload versus a year earlier, from their SEC filings (fuel surcharges included), for Agricultural or Industrial freight, with the outlook where it has passed a backtest. Omit the group to get both. National, not lane-specific. Does not count toward the allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_rfpFetch one of the signed-in user's RFP documents, including its lanes.Reads private dataNo findings

    Why it is in this group

    • The name "get_rfp" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "fetch" and "document": it reads documents.
    Description, as the server wrote it
    Fetch one of the signed-in user's RFP documents, including its lanes.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • list_rate_alertsList the signed-in user's lane rate alerts.No findings

    Why it is in this group

    • The name "list_rate_alerts" says "list": a word for reading.
    Description, as the server wrote it
    List the signed-in user's lane rate alerts.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • list_recent_searchesList the signed-in user's recent freight rate searches and the lanes they priced (website, chat and assistant), newest first, each with its price breakdown (linehaul, fuel, market …Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "list_recent_searches" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "chat": it reads messages.
    • untrusted-inputThe description's first sentence says "list" and "website": it reads web pages, which anyone can write.
    Description, as the server wrote it
    List the signed-in user's recent freight rate searches and the lanes they priced (website, chat and assistant), newest first, each with its price breakdown (linehaul, fuel, market quote, target, floor) and how often it was priced.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • list_rfpsList the signed-in user's RFP documents, newest first, with lane counts.Reads private dataNo findings

    Why it is in this group

    • The name "list_rfps" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "document": it reads documents.
    Description, as the server wrote it
    List the signed-in user's RFP documents, newest first, with lane counts.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • lookup_carrierVet a U.S.Reads text others writeNo findings

    Why it is in this group

    • The name "lookup_carrier" says "lookup": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Vet a U.S. motor carrier from FMCSA SAFER data: operating authority, safety rating, insurance on file, driver and vehicle out-of-service rates, and FreightFA's risk flags. Search by USDOT number, MC number, or carrier name (give one). Data is cached for 24 hours. Does not count toward the estimate allowance.

    Annotations the server declares

    • destructiveHint: false
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Reads private data3
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write8
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Install

Pinned to version 0.4.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http freightfa https://mcp.freightfa.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__freightfa__get_market_snapshot",
      "mcp__freightfa__get_market_outlook",
      "mcp__freightfa__get_rail_market_outlook",
      "mcp__freightfa__get_freight_index_outlook",
      "mcp__freightfa__get_barge_outlook",
      "mcp__freightfa__lookup_carrier",
      "mcp__freightfa__find_intermodal_hubs",
      "mcp__freightfa__explain_freight_term",
      "mcp__freightfa__get_freight_news",
      "mcp__freightfa__check_freight_bill",
      "mcp__freightfa__list_rfps",
      "mcp__freightfa__get_rfp",
      "mcp__freightfa__list_rate_alerts",
      "mcp__freightfa__list_recent_searches"
    ],
    "ask": [
      "mcp__freightfa__get_freight_brief",
      "mcp__freightfa__estimate_truckload_rate",
      "mcp__freightfa__estimate_ltl_rate",
      "mcp__freightfa__estimate_rail_rate",
      "mcp__freightfa__estimate_intermodal_rate",
      "mcp__freightfa__estimate_barge_rate",
      "mcp__freightfa__recommend_mode",
      "mcp__freightfa__ask_freight_analyst",
      "mcp__freightfa__calculate_margin",
      "mcp__freightfa__draft_pushback_email",
      "mcp__freightfa__create_rfp",
      "mcp__freightfa__estimate_network_cost",
      "mcp__freightfa__create_rate_alert"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as freightfa. Review it before you use it.

Capability tags behind 10 rules
  • mcp__freightfa__estimate_rail_rate untrusted-input
  • mcp__freightfa__estimate_intermodal_rate untrusted-input
  • mcp__freightfa__recommend_mode untrusted-input
  • mcp__freightfa__ask_freight_analyst untrusted-input
  • mcp__freightfa__lookup_carrier untrusted-input
  • mcp__freightfa__check_freight_bill untrusted-input
  • mcp__freightfa__list_rfps private-data
  • mcp__freightfa__get_rfp private-data
  • mcp__freightfa__estimate_network_cost untrusted-input
  • mcp__freightfa__list_recent_searches private-data, untrusted-input