Skip to main content
Glama

get_carrier_selection_record

Read-onlyIdempotent

One dated, hashed record of what public FMCSA data shows about a carrier, built for a broker's carrier-vetting file. Paid, flat price.

It gathers, in one response: the carrier's current profile (authority, insurance flags, FMCSA safety rating and its date, out-of-service orders, fleet and classifications, MCS-150 filing date, first authority grant, revocation, suspension and reinstatement history), the SMS inspection and violation summary with out-of-service rates, the trailing-24-month crash summary, the last year's changes, and the identity-linkage triage screen, the insurance continuity history (gaps and cancellations, each with its data-through date) and the authority event history (grants, reinstatements, revocations, suspensions). review_factors lists each factor a documented review commonly considers and whether this record carries it.

It is a record, not a score. It never says a carrier is safe or unsafe, "Unrated" is reported as exactly that, and it is not legal advice or a statement that choosing a carrier was reasonable. This project's own safety_tier_derived is deliberately left out.

Integrity: record_hash is the SHA-256 of the record's canonical JSON (see hash_method) without record_hash and verify_url. Keep the record; later, GET verify_url (free) confirms that we issued exactly that hash, when, and for which carrier, so an edited copy is detectable. If the hash cannot be registered the call returns registry_unavailable and is not billed. An unknown USDOT number is a free not_found.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "usdot_number": "<usdot_number>"
    },
    "name": "get_carrier_selection_record"
  }
}

Input Schema

NameRequiredDescriptionDefault
usdot_numberYesCarrier USDOT number (digits only), the canonical FMCSA carrier identifier.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / usdot_number / description
      Added value: +"Carrier USDOT number (digits only), the canonical FMCSA carrier identifier."
  2. Added

TDQS

A4/5.0
Behavior5/5

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

Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses that the call is paid at a flat price, that an unregistered hash returns registry_unavailable and is not billed, and that an unknown USDOT number is a free not_found — cost and failure-mode behavior an agent cannot get from the schema. It also explains the integrity contract: record_hash is SHA-256 over canonical JSON excluding record_hash and verify_url, and verify_url re-confirms issuance for free.

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?

It is front-loaded with identity and purpose, then contents, then scope disclaimers, then integrity/billing — a sensible order. The long parenthetical enumerations of returned fields are dense but earn their place because there is no output schema; only the repeated negation clauses ('not a score', 'not legal advice', 'not a statement that choosing a carrier was reasonable') 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 full burden of describing returns and does so field-group by field-group, plus explicitly notes that safety_tier_derived is excluded. Billing, error cases, hash verification, and the 'Unrated is reported as exactly that' edge case are all covered, leaving nothing material an agent needs before calling.

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

Parameters3/5

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

With a single parameter at 100% schema description coverage, the schema already defines usdot_number as the canonical FMCSA identifier. The description adds only the behavioral note that an unknown USDOT yields a free not_found, which is about outcomes rather than the parameter itself, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific resource: a dated, hashed record of FMCSA carrier data assembled for a broker's vetting file, and enumerates exactly what it contains (profile, SMS, crashes, insurance continuity, authority events, review_factors). The line 'It is a record, not a score' sharply distinguishes it from any derived-rating tool. It stops short of naming which sibling to use instead, so it lands at 4 rather than 5.

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

Usage Guidelines3/5

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

Usage is implied through the 'broker's carrier-vetting file' framing and the instruction to keep the record and later GET verify_url, which tells an agent where this fits in a workflow. However, there is no explicit when-to-use versus when-not guidance and no named alternative among the many sibling lookup/screening tools, so the agent must infer selection from the field list alone.

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.