Carrierscore

io.carrierscore由 carrierscore.io 發布官方發布者v0.1.0更新於 Oct 25, 2026

FMCSA motor-carrier risk scores, monitoring, and carrier-selection evidence reports for AI agents.

已驗證Streamable HTTP可網頁執行資料與分析商業與電商

概覽

AI 產生的概覽

CarrierScore 讓助理依美國 DOT 編號查詢 FMCSA 貨運業者身分、風險評分、批次篩選,以及附時間戳的業者選擇佐證報告。

可以做什麼
依 DOT 編號查詢業者身分、營運狀態、安全評等、車隊規模與登記日期,並取得含分項明細與硬性標記(例如生效中的停運令、保險失效)的風險評分。產出文字或 JSON 格式、附時間戳的 Montgomery 業者選擇佐證報告。每次呼叫可批次篩選最多 100 個 DOT 編號,用於某批貨物或現有業者名冊。儲存具名業者清單以進行每日監控,讀取其警示紀錄,並依雜湊列出或驗證歸檔的佐證報告。
適用情境
適合貨運仲介以及 AI 訂艙或調度助理:在訂艙前確認業者確實存在並判斷其風險,一次篩選多個候選業者,或保留可驗證的業者選擇書面佐證。
執行需求
遠端 Streamable HTTP 端點,無需安裝。無金鑰使用為限速免費層。付費層需在 X-API-Key 標頭提供 API 金鑰;自架時改用 CARRIERSCORE_API_KEY 變數,並需要 Node.js 與 CARRIERSCORE_API_URL。
安裝前請注意
儲存業者清單、讀取警示、JSON 佐證報告、稽核項目與佐證驗證均需付費 API 金鑰,可能產生費用。評分是根據公開 FMCSA 資料的統計指標,並非官方安全適運認定;儲存或引用結果時應保留其內嵌免責聲明。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Carrierscore,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.carrierscore%2Fcarrierscore/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "carrierscore": {
      "type": "http",
      "url": "https://mcp.carrierscore.io/mcp"
    }
  }
}

README

[CarrierScore]

CarrierScore MCP Server

FMCSA motor-carrier risk intelligence for AI agents, over the Model Context Protocol.

CarrierScore answers "how risky is this carrier, and what was knowable about it on a given date?" for freight brokers and AI booking/dispatch agents. It builds longitudinal risk scores (0–100, higher = riskier) and timestamped carrier-selection evidence reports ("Montgomery files") from daily archives of public FMCSA / US DOT safety data: census, inspections, crashes, out-of-service orders, operating authority, and insurance filings.

Website: carrierscore.io · Agent docs: carrierscore.io/llms.txt

Hosted endpoint (recommended)

No install needed — a hosted Streamable HTTP MCP endpoint is live:

https://mcp.carrierscore.io/mcp

Keyless requests get a rate-limited free tier (lookups, scores, text evidence reports). Paid tiers add carrier-list monitoring, structured JSON evidence reports, and higher volume — see pricing. Paid tiers authenticate with an X-API-Key header (or CARRIERSCORE_API_KEY when self-hosting).

Tools

ToolWhat it does
carrier_lookupCarrier identity by US DOT number: legal name, DBA, operating status, FMCSA safety rating, fleet size, address, registration dates. Use first to confirm a DOT is real and matches the rate confirmation.
carrier_scoreThe CarrierScore risk score (0–100, higher = riskier) with full component breakdown, hard flags (active OOS order, no active insurance, reincarnated-carrier link), and data-sufficiency indicator.
montgomery_fileTimestamped carrier-selection evidence report — the documented artifact a broker retains at the moment of booking (post Montgomery v. Caribe Transport II). Text format on the free tier; JSON on paid tiers.
monitor_carriersBatch score summary + flags for up to 100 DOT numbers per call — screen candidates for a load or re-check an active roster.

Connect from a client

Claude Code

bash
claude mcp add --transport http carrierscore https://mcp.carrierscore.io/mcp

Claude Desktop / claude.ai

Settings → Connectors → Add custom connector → URL https://mcp.carrierscore.io/mcp.

Cursor

.cursor/mcp.json:

json
{  "mcpServers": {    "carrierscore": {      "url": "https://mcp.carrierscore.io/mcp"    }  }}

Generic MCP client (Streamable HTTP)

json
{  "mcpServers": {    "carrierscore": {      "type": "streamable-http",      "url": "https://mcp.carrierscore.io/mcp"    }  }}

Self-hosting

The server in this repo is a thin Streamable HTTP client over the CarrierScore REST API (https://api.carrierscore.io).

bash
npm installnpm run buildCARRIERSCORE_API_URL=https://api.carrierscore.io npm start# MCP endpoint: POST http://127.0.0.1:8322/mcp

Environment variables:

VariableDefaultPurpose
CARRIERSCORE_API_URLhttp://127.0.0.1:8321Base URL of the CarrierScore REST API
CARRIERSCORE_API_KEY(unset)Optional API key for paid tiers; unset = rate-limited free tier
PORT8322Port for the MCP HTTP endpoint (POST /mcp)

Disclaimer

CarrierScore scores are computed statistical indicators built from public FMCSA data under a documented, transparent methodology (population percentiles plus hard flags). They are not safety fitness determinations, are not endorsed by FMCSA, and do not substitute for a carrier's official safety rating or your own judgment. Every score and evidence report embeds this disclaimer — retain it when storing or quoting results.

License

MIT © SYMBOLIQ LLC. Contact: [email protected]

來源:README.md,提交 01a37b2

工具

8

carrier_lookup

Look Up Carrier Identity

Look up an FMCSA-registered motor carrier's identity by US DOT number: legal name, DBA, operating status, FMCSA safety rating, fleet size (power units, drivers), physical address, and registration dates. Use this first when a booking/dispatch agent needs to confirm WHO a carrier is — that a DOT number is real, active, and matches the company name on a rate confirmation. It does not return risk indices (use carrier_score for those). Returns JSON: { dot_number, legal_name, dba_name, status_code, safety_rating, power_units, total_drivers, phy_street, phy_city, phy_state, phy_zip, add_date, mcs150_date }. Errors: 404 if the DOT is not in the FMCSA census (likely a typo or a fraudulent/never-registered carrier — treat as a red flag for booking).

輸入參數dot_number必填

carrier_score

Get Carrier Risk Indices

Get the CarrierScore risk indices for a carrier by US DOT number: two first-class, separately validated indices (0-100, HIGHER = RISKIER), each with a full component breakdown. This is the core "is this carrier safe to book?" signal for AI booking agents. Served methodology v0.5 returns TWO indices, both population-relative and built from point-in-time public FMCSA data: - inspection_risk — inspection / compliance risk: violations and out-of-service rates per roadside inspection (24-month chronic, 6-month acute). Historically validated against the carrier's future out-of-service rate (validation block on the index). - crash_risk — crash risk: reportable crashes, fatal/injury crashes and tow-away crashes per roadside inspection (24 months). Historically validated against future reportable crashes (validation block on the index). Present BOTH indices; do not collapse them into one number. Hard flags (active out-of-service order, no active insurance filing, high-confidence reincarnated-carrier link) add explicit surcharges — a carrier with any flag deserves extra scrutiny regardless of index values. Returns JSON: { dot_number, legal_name, inspection_risk: { label, description, score, base, surcharge, percentile_basis, band, band_note, data_sufficiency, components: { <name>: { label, value, percentile, weight } }, validation: { auc_holdout, label, holdout_origins, post_selection_origin, source, text } }, crash_risk: { ...same shape... }, legacy_composite: { score, base_score, surcharge, rule, rule_text, validated: false, note }, carrier_score (backward-compatible: == legacy_composite.score under v0.5), base_score, surcharge, score_version ("0.5"), methodology_note, components (flat, backward-compatible), flags: string[], data_sufficiency (0-1, share of the components resting on observed vs neutral-imputed data), scored_as_of, disclaimer }. Older opt-in methodologies keep their shapes: v0 (six components), v0.3 (sub_indices), v0.4 (indices + composite). Interpreti

輸入參數dot_number必填

montgomery_file

Generate Montgomery Evidence File

Generate a timestamped Montgomery file — a carrier-selection evidence report — for a carrier by US DOT number. Since Montgomery v. Caribe Transport II (SCOTUS, May 2026), freight brokers are exposed to state-law negligent-selection claims and need documented, timestamped, safety-data-based carrier selection. This report is that artifact: the two risk indices (inspection / compliance risk and crash risk, each with its components, percentiles, activity-band context and its own historical-validation line), the legacy composite (labelled backward-compatibility only), hard flags, FMCSA safety rating, and the methodology disclaimer, dated as of the scoring run. A booking agent should generate and retain this file at the moment a carrier is selected for a load. Args: - dot_number: US DOT number, digits only - format: "text" (default; the filing-ready plain-text report, available on the free tier) or "json" (structured fields; requires an API key on the monitor or compliance tier) Returns: format="text" gives the plain-text report (structured field report_text); format="json" gives structured fields { report, generated, dot_number, legal_name, dba_name, safety_rating, status_code, power_units, inspection_risk, crash_risk, legacy_composite (v0.5), carrier_score (backward-compatible), components, flags, data_sufficiency, score_version, scored_as_of, disclaimer } (v0.4 parquets return indices + composite instead). Every report embeds the disclaimer verbatim — keep it when storing or quoting the report. Audit archive (paid tiers): every report generated with an API key is stored immutably server-side and the result carries audit_entry_id + sha256 (SHA-256 of the plain-text report). Quote both when citing the report; later, verify_evidence(entry_id) proves the archived copy is unchanged and audit_entries lists what was generated. Monitor keys can retrieve the last 90 days (2,000 reports/month); Compliance keys have unlimited retention and reports. Errors: 403 if format=

輸入參數formatdot_number必填

monitor_carriers

Monitor Carrier List

Batch risk check for a list of carriers by US DOT number (max 100 per call): score summary and hard flags for each. Use when an agent is screening multiple candidate carriers for a load, or re-checking a broker's active carrier roster ("did any of my carriers pick up an out-of-service order or drop insurance?"). For a full breakdown of any single carrier that looks risky here, follow up with carrier_score or montgomery_file. Args: - dot_numbers: array of DOT number strings, 1-100 entries Returns JSON: { scored_as_of, requested, found, carriers: [{ dot_number, legal_name, inspection_risk (0-100 inspection / compliance risk index, higher = riskier), crash_risk (0-100 crash risk index), carrier_score (legacy composite under v0.5 — backward compatibility only; use the two indices), data_sufficiency, flags: string[] }], not_found: string[], disclaimer }. DOTs in not_found are absent from the scored population — verify them with carrier_lookup; an unknown DOT on your roster is itself a red flag. Errors: 400 if the list is empty or exceeds 100 (split into batches); 503 if scores are not computed yet.

輸入參數dot_numbers必填

save_carrier_list

Save Carrier List for Daily Monitoring

Save a named list of carriers (by US DOT number) for continuous monitoring. Requires a paid CarrierScore API key (Monitor or Compliance tier) — connect with your key via OAuth (or set CARRIERSCORE_API_KEY on a self-hosted server); the free tier gets a 403 with an upgrade link. Once saved, CarrierScore diffs every carrier on the list against the previous day's scoring run after each daily run and records alerts: new out-of-service order (critical), operating authority lost (critical), insurance filing lapsed (high), operating status leaving Active (high), risk score up 10+ points (medium), high-confidence reincarnated-carrier link appearing (medium). Alerts are always retrievable with list_alerts; optionally they are also pushed to a webhook (JSON POST, HMAC-signed via the X-CarrierScore-Signature header with the per-key secret from GET /v1/lists) and/or summarized in one daily digest email. Use this when a broker asks to "watch" or "keep an eye on" their carrier roster. Caps: 500 DOTs total across all lists on the Monitor tier, 5000 on Compliance; up to 50 lists per key. Saving the same DOT twice in one list is deduped. Args: - name: short label for the list (1-100 chars) - dot_numbers: array of DOT number strings (1-8 digits each) - webhook_url (optional): https URL to POST new alerts to - email (optional): address for the daily digest Returns JSON: { list_id, name, dots, created, updated, webhook_url?, email? }. Keep list_id — list_alerts needs it. Errors: 403 without a paid key; 400 on invalid DOTs, empty list, or exceeding the tier cap (message says which); 401 bad key.

輸入參數name必填emaildot_numbers必填webhook_url

list_alerts

Get Alerts for a Saved Carrier List

Retrieve the alert history for a saved carrier list (see save_carrier_list), newest first. Requires the same paid API key that saved the list. Each alert records one change detected between consecutive daily scoring runs for one carrier: type (oos_order_activated, authority_lost, insurance_lapsed, status_changed, inspection_risk_jump, crash_risk_jump, score_jump, reincarnation_link), severity (critical / high / medium / low), the field that changed with its before/after values, the DOT and legal name, and the scoring dates compared. inspection_risk_jump / crash_risk_jump (index base up >= 10 points, medium) are the primary deterioration signals; score_jump on the legacy composite is emitted at low severity for backward compatibility. Use it to answer "did anything change on my carrier list?" — critical alerts (new OOS order, authority lost) mean the carrier should not be dispatched until verified; follow up with carrier_score or montgomery_file for the full picture. Args: - list_id: the lst_... id returned by save_carrier_list - since (optional): YYYY-MM-DD; only alerts from scoring runs on/after this date Returns JSON: { list_id, since, count, alerts: [{ ts, as_of, prev_as_of, list_id, list_name, dot, legal_name, type, severity, field, before, after }] }. An empty alerts array means no monitored change since the given date (alerts only exist once two daily scoring runs have happened). Errors: 403 without a paid key; 404 if the list id is unknown for this key; 400 if since is not YYYY-MM-DD.

輸入參數sincelist_id必填

audit_entries

List Archived Evidence Reports

List the immutable audit-archive entries for the caller's API key: every Montgomery evidence report the key generated (text or json), newest first, each with its entry id, generation timestamp, DOT number, scoring date, methodology version and the SHA-256 of the archived report text. Requires a paid CarrierScore API key. Use it to answer "which carriers did we generate evidence for, and when?" and to find the entry id to cite or verify for a given carrier and date. Monitor keys see the last 90 days; Compliance keys see everything ever archived. Args: - dot_number (optional): only entries for this US DOT number - since (optional): YYYY-MM-DD; only entries generated on/after this date (UTC) - limit (optional): 1-500, default 50 Returns JSON: { tier, retention_days, total_entries, matched, count, entries: [{ entry_id, generated_at, dot_number, sha256, format_requested, scored_as_of, score_version }] }. Errors: 403 without a paid key; 400 if since is malformed.

輸入參數limitsincedot_number

verify_evidence

Verify Archived Evidence Report Hash

Verify an archived Montgomery evidence report by its audit entry id: CarrierScore re-reads the immutable stored copy, recomputes its SHA-256 and reports whether it matches the hash recorded at generation time (and, optionally, a hash the caller supplies — e.g. the sha256 printed on a broker's filed copy). Requires the same paid API key that generated the report. Use it when a broker or auditor needs to prove that a filed evidence report is exactly what CarrierScore produced on the stated date. match=true means the archived report is byte-identical to what was served; match_supplied compares against the caller's own hash. Follow up with the audit_entries list to find ids, or with montgomery_file to generate a fresh report. Args: - entry_id: the audit_entry_id returned by montgomery_file (also listed by audit_entries) - sha256 (optional): a 64-hex SHA-256 to compare against the archived report (text or canonical json) Returns JSON: { entry_id, dot_number, generated_at, scored_as_of, score_version, format_requested, sha256_stored, sha256_computed, match, sha256_json_stored, sha256_json_computed, match_json, sha256_supplied?, match_supplied? }. Errors: 403 without a paid key, or (Monitor tier) if the entry is older than the 90-day retrieval window; 404 if the entry id is unknown for this key.

輸入參數sha256entry_id必填

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分