Carrier Ledger
Server Details
Check U.S. trucking carriers and freight brokers in FMCSA records: authority, insurance, notices.
- Status
- Healthy
- Uptime
- 100.0% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- equinoxaifinance-rgb/carrier-ledger-docs
- GitHub Stars
- 0
TDQS
Scored across 3 tools
The three tools have reasonably distinct purposes: bulk screening of a shortlist, single-record lookup, and a time-based feed of suspension notices. check_carrier_list vs lookup_carrier differ mainly by batch size and could be confused by a hurried agent, but the descriptions explicitly frame the list-vs-single distinction and the outputs differ in detail level.
All names use snake_case and are carrier-domain readable, giving a generally predictable surface. However, check_carrier_list and lookup_carrier follow a verb_noun pattern while recent_suspension_notices uses an adjective_noun form with no verb, a minor deviation from the rest.
Three tools is slightly thin but defensible for a focused FMCSA screening server, since the domain is narrow and each tool maps to a distinct workflow (screen a list, inspect one carrier, see recent suspensions). There is little redundancy, though a fourth tool could earn its place.
The surface covers screening, detailed lookup, and a recent-suspension feed, forming a usable loop for pre-booking checks. Notable gaps remain: no lookup or search by carrier name, no way to track a carrier over time, and suspension data is limited to 'recent' with no history or filtering.
Available Tools
3 toolscheck_carrier_listCheck a list of carriersARead-onlyIdempotentInspect
Checks up to 25 U.S. carriers or brokers at once (USDOT numbers; MC numbers also accepted, up to 10) and returns each one's most important red flag from FMCSA public records, urgent ones first. Use to screen a carrier list or a load board shortlist.
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes | USDOT or MC numbers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description still adds real value beyond them: it discloses the return contract ('each one's most important red flag ... urgent ones first') and a hidden input constraint ('MC numbers also accepted, up to 10') not present in the schema. 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 the batch capability and limits, then the use case. Every clause carries information (count, identifier type, per-type cap, data source, return ordering) with no filler.
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 exists, so the description must carry the return contract, and it does describe what comes back (the single most important red flag per carrier, urgent first). It stops short of describing per-carrier output shape or behavior on invalid/unknown numbers, which leaves a small gap for a screening 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?
With one parameter at 100% schema coverage, the baseline is 3, but the description genuinely adds meaning the schema lacks: MC numbers are accepted but capped at 10 while USDOT supports the full 25. The schema description ('USDOT or MC numbers') conveys none of that nuance.
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 ('Checks ... U.S. carriers or brokers') with precise batch scope ('up to 25 ... at once') and the source of truth (FMCSA public records). It implicitly separates itself from the singular sibling lookup_carrier via 'at once,' but never names the alternative, so differentiation is inferred rather than stated.
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 a clear triggering context: 'Use to screen a carrier list or a load board shortlist.' That tells the agent when to reach for this tool. However, it offers no exclusions or explicit routing (e.g. 'for a single carrier use lookup_carrier'), so the agent must infer the boundary with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_carrierCheck a trucking company or freight brokerARead-onlyIdempotentInspect
Looks up a U.S. motor carrier or freight broker in FMCSA public records by USDOT number or MC number. Returns its operating authority, liability insurance and bond on file, suspension or revocation notices, and plain-English red flags, each citing the FMCSA dataset it came from. Use before booking or paying a carrier or broker. Not a rating or a vetting decision.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | USDOT number (e.g. "2544963") or MC/docket number (e.g. "MC-885837") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive. The description adds meaningful behavioral context beyond them: the returned fields (operating authority, insurance and bond, suspension or revocation notices, red flags), dataset provenance for each flag, and the caveat that it is not a rating or vetting decision. 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?
Three front-loaded sentences cover purpose, return contents, and usage boundary with no filler. The most important selection constraints come first, and 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 exists, so the description usefully summarizes returned data and states the vetting caveat. It is close to complete for a read-only lookup, but it still gives no guidance on invalid-number handling or how it relates to the sibling batch and recent-notice tools.
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%, and the schema itself gives examples of both USDOT and MC number formats. The description repeats the lookup keys but adds no syntax, validation, or fallback behavior beyond what the schema already provides, making the baseline 3 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?
States a specific verb ('Looks up'), resource ('U.S. motor carrier or freight broker'), source ('FMCSA public records'), and identifiers ('USDOT number or MC number'). It does not name or contrast with the sibling tools check_carrier_list or recent_suspension_notices, so it misses full sibling differentiation.
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 explicit usage context ('Use before booking or paying a carrier or broker') and a clear boundary ('Not a rating or a vetting decision'). However, it does not say when to choose this over check_carrier_list or recent_suspension_notices, leaving alternatives unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_suspension_noticesRecent FMCSA suspension noticesARead-onlyIdempotentInspect
Lists carriers and brokers FMCSA recently served an involuntary suspension notice (usually because insurance was cancelled), with the date each suspension takes effect. Until that date FMCSA still shows the company as "Active".
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many, newest first (default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds genuinely non-obvious domain behavior: the notice has an effective date and FMCSA continues to report the company as "Active" until that date, which is exactly the kind of caveat an agent needs to interpret results correctly.
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 scope statement comes first and the interpretation caveat second. Every clause carries information an agent can act on.
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 one-parameter read-only list with no output schema, the description covers what is returned (carriers/brokers, effective date) and the key interpretive caveat about "Active" status. Nothing essential to correct invocation is missing.
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% and the single limit parameter is fully documented in the schema (including its default of 25). The description's "newest first" phrasing echoes the schema rather than adding new meaning, so the baseline 3 applies.
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: lists carriers/brokers that received an FMCSA involuntary suspension notice, and names the usual cause (insurance cancelled). It is distinguishable from the per-carrier siblings lookup_carrier and check_carrier_list by being a notice feed, though that contrast is left implicit rather than stated.
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 by the content (a recent-notices feed with newest-first default), but there is no explicit when-to-use, when-not-to-use, or pointer to the sibling lookup tools. An agent can infer the context but is not routed.
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.
1 tool update
- Added
check_carrier_list
2 tool updates
- First observed
lookup_carrier - First observed
recent_suspension_notices
Related MCP Connectors
US carrier lookup from public FMCSA data: USDOT/MC records, authority, insurance, safety.
Vet US trucking carriers by USDOT/MC: authority, insurance, OOS, PASS/REVIEW/FAIL/INCOMPLETE.
Check a US motor carrier's FMCSA authority, insurance and safety record: a dated GO/CAUTION/STOP.
Freight carrier intel: new FMCSA authority feed, carrier lookup by DOT/MC, safety screen (CSA/SMS).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides keyless access to US FMCSA motor-carrier registry data, enabling lookup of DOT/MC numbers, names, operating authority, and safety information.417 npm1MIT
- AlicenseNot gradedqualityCmaintenanceProvides FMCSA motor-carrier risk intelligence over MCP, with tools for carrier lookup, risk scoring, and timestamped evidence reports for AI agents and freight brokers.MIT
- AlicenseNot gradedqualityAmaintenanceEnables evidence-driven motor-carrier search, qualification, risk assessment, monitoring, and TMS integration directly from Claude Code and MCP clients.1Apache 2.0
- AlicenseAqualityCmaintenanceReal-time LTL freight fuel surcharge rates for 9 US carriers and US state ABC liquor license compliance lookups (CA, TX, NY, FL). Every response includes a verifiability block with extraction confidence and source URL so agents can assess data quality before acting.638 PyPI1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.