Skip to main content
Glama

get_recalls

Read-onlyIdempotent

Recalls of vehicles and consumer products, vehicle crash test ratings, vehicle owner complaints, trucking carrier safety, and workplace safety, environmental compliance and greenhouse gas emissions of facilities and listed companies (official public data). Vehicle recalls since 1966 (cars, trucks, motorcycles, RVs, and also tires, child car seats and vehicle equipment), consumer product recalls since the 1970s, owner complaints since 1995. view "recalls" (default): recalls, newest first: date, title, manufacturer and its ticker, units affected, hazard group, makes and model years or product type. Filter by ticker (e.g. F, GM, TSLA, TGT, MAT), kind (vehicle or consumer), make, model and model_year, query (words, e.g. "airbag inflator" or "crib"), date_from/date_to; filters e.g. {"hazard": "fire", "product_type": "bicycles", "do_not_drive": true, "category": "tire"}; sort date, units or title. view "recall": one recall (recall = recall_id or slug from view recalls) with what is wrong, what can happen, the remedy, incidents reported and the makes, models and model years it covers. view "totals": recalls counted by year (default), month, kind, category, make, model, model_year, manufacturer, ticker, hazard, product_type or component (by), with the same filters, e.g. a company's recalls per year (ticker, by "year") or the most recalled models of a make (make, by "model"). view "ratings": crash test star ratings (overall, frontal, side, rollover, 1 to 5 stars) and safety features by make, model and model year; filters e.g. {"min_overall": 5, "year_from": 2022, "vehicle_class": "suv"}. view "complaints": owner complaints about vehicles by month (default, newest first), year, make, model, model_year or component (by), with crashes, fires, injuries and deaths reported; filters e.g. {"component": "AIR BAGS"}. Complaints are the owner's account and not verified; popular models get more. Makes and models are written as published, e.g. FORD and F-150 (any case). view "carriers": active US trucking carriers with 10+ power units, largest fleet first: power units, drivers, crashes over 24 months (fatal, injury, tow-away), crash rate per 100 power units, roadside inspections and driver and vehicle out-of-service rates, safety rating, ticker. Find by query (name or carrier number), ticker (e.g. JBHT, KNX, WERN, ODFL, SAIA), filters e.g. {"state": "TX", "kind": "passenger", "operation": "interstate", "safety_rating": "conditional", "min_power_units": 100}; sort power_units, drivers, crashes, fatal_crashes, crash_rate, vehicle_oos_rate, driver_oos_rate (carriers with 20+ inspections) or inspections. view "carrier": one carrier in full (carrier = carrier number or slug from view carriers) with its fleet rank and the averages of all trucking carriers, of its state and of all roadside inspections. view "trucking_stats": all carriers (also small ones) by state (default, last 12 months), month or year (by): active carriers, power units, drivers and fleet sizes (monthly snapshot), new carriers, crashes and deaths (where they happened), inspections and out-of-service rates; date_from/date_to as YYYY-MM, filters e.g. {"state": "TX"}; sort (by state) e.g. crashes or vehicle_oos_rate. Crashes do not say who caused them. Workplace safety, environmental compliance and emissions (2010 on; counts and money, no personal data): view "facilities": facilities with their totals for the last 5 years (date_from/date_to as years): workplace safety inspections, violations (serious = serious, willful or repeat) and penalties; environmental (air, water, waste) inspections, violations, formal enforcement actions, penalties and quarters in noncompliance; newest yearly greenhouse gas emissions. Find by query (part of a name), ticker (e.g. XOM, DUK, TSN, WMT, AMZN), filters e.g. {"state": "TX", "county": "Harris", "zip": "77506", "lat": 29.7, "lon": -95.0, "radius_miles": 5, "kind": "environmental", "program": "air", "naics": "324"}; sort penalties (default), violations, serious_violations, inspections, enforcement_actions, emissions or distance. view "facility": one facility in full (facility = facility_id from view facilities): every year of both kinds and of emissions, owners and listed company. view "compliance_companies": with ticker, a listed company's facilities by year and kind (inspections, violations, penalties, enforcement actions), its emissions by year, largest cases and emitters; without ticker, listed companies ranked (sort penalties, violations, serious_violations, emissions, facilities). view "emissions": greenhouse gas emissions in metric tons CO2e of large facilities, newest year by default (filters {"year": 2022}): by (group_by) facility (default), company, state, sector or year; ticker, filters e.g. {"state": "TX", "sector": "Power Plants"}. Penalties are as recorded; violations are not all equally serious; larger companies have more facilities: compare with care.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_recalls"
  }
}

Input Schema

NameRequiredDescriptionDefault
byNoView totals: year (default), month, kind, category, make, model, model_year, manufacturer, ticker, hazard, product_type or component. View complaints: month (default), year, make, model, model_year or component. View trucking_stats: state (default), month, year or none. View emissions: facility (default), company, state, sector or year.
kindNovehicle or consumer (views recalls and totals; default: both).
makeNoVehicle make as published, e.g. FORD or TOYOTA (several: comma-separated).
sortNorecalls: date, units or title; totals: recalls, units or name; ratings: model_year, overall_stars or rollover_risk_pct; complaints: complaints, crashes, fires, injuries, deaths or name; carriers: power_units, drivers, crashes, fatal_crashes, crash_rate, vehicle_oos_rate, driver_oos_rate, inspections or name; trucking_stats by state: state or a number such as crashes or vehicle_oos_rate; facilities: penalties, violations, serious_violations, inspections, enforcement_actions, emissions or distance; compliance_companies: penalties, violations, emissions or facilities; emissions: total_co2e, methane, co2 or name.
viewNorecalls (default), recall, totals, ratings or complaints; trucking: carriers, carrier or trucking_stats; workplace safety, environmental compliance and emissions: facilities, facility, compliance_companies or emissions.recalls
limitNoRows to return, 1 to 100 (default 25).
modelNoVehicle model as published, e.g. F-150 or CAMRY; use with make.
queryNoWords in the recall title, product or component, e.g. 'airbag inflator' or 'crib' (views recalls and totals); view carriers: part of a carrier name or a carrier number; view facilities: part of a facility name.
offsetNoRows to skip, for the next page.
recallNoFor view recall: a recall_id (e.g. v24v123000 or c27017) or slug from view recalls.
tickerNoTicker of a listed company, e.g. F, GM, TSLA, TGT or MAT: its recalls (view carriers: its trucking carriers, e.g. JBHT, KNX or ODFL; facility views: its facilities, e.g. XOM, DUK, TSN or WMT).
carrierNoFor view carrier: a carrier number or slug from view carriers.
date_toNoLast date: YYYY-MM-DD, YYYY-MM or YYYY (facility views: first and last year).
filtersNoExtra API filters, e.g. {"hazard": "fire"}, {"product_type": "cribs"}, {"min_overall": 5} or {"component": "AIR BAGS"}; trucking e.g. {"state": "TX", "min_power_units": 100}; facilities e.g. {"zip": "77506"} or {"lat": 29.7, "lon": -95.0, "radius_miles": 5}. list_filters('get_recalls') shows all.
facilityNoFor view facility: a facility_id from view facilities, e.g. f110000490166.
date_fromNoFirst date (recall date, or month received for complaints; trucking_stats: first month): YYYY-MM-DD, YYYY-MM or YYYY.
model_yearNoVehicle model year, e.g. 2021.

Output Schema

NameRequiredDescriptionDefault
dataNoThe records: a list of objects (or one object) with the requested data.
noteNoPresent when the answer was shortened, with how to get the rest.
rowsNoNumber of records the API returned (before any shortening).
errorNoPresent when the call failed, with the reason.
detailNoExtra error detail from the API, e.g. which filter is required.
pagingNoFor paged answers: offset, rows_shown, total and next_offset (call again with offset=next_offset for more rows).
endpointNoDataPorium API endpoint that answered, e.g. /company-info.
filters_sentNoFilters sent to the API for this answer.
allowed_filtersNoOn an unknown-filter error: the filters this endpoint accepts.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / paging
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "For paged answers: offset, rows_shown, total and next_offset (call again with offset=next_offset for more rows).",
      +  "title": "Paging"
      +}
  2. Changed9 schema fields changed
    • changedInput schema / properties / by / description
      Previous value: -"View totals: year (default), month, kind, category, make, model, model_year, manufacturer, ticker, hazard, product_type or component. View complaints: month (default), year, make, model, model_year or component. View trucking_stats: state (default), month, year or none."New value: +"View totals: year (default), month, kind, category, make, model, model_year, manufacturer, ticker, hazard, product_type or component. View complaints: month (default), year, make, model, model_year or component. View trucking_stats: state (default), month, year or none. View emissions: facility (default), company, state, sector or year."
    • changedInput schema / properties / date_to / description
      Previous value: -"Last date: YYYY-MM-DD, YYYY-MM or YYYY."New value: +"Last date: YYYY-MM-DD, YYYY-MM or YYYY (facility views: first and last year)."
    • addedInput schema / properties / facility
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "For view facility: a facility_id from view facilities, e.g. f110000490166.",
      +  "title": "Facility"
      +}
    • changedInput schema / properties / filters / description
      Previous value: -"Extra API filters, e.g. {\"hazard\": \"fire\"}, {\"product_type\": \"cribs\"}, {\"min_overall\": 5} or {\"component\": \"AIR BAGS\"}; trucking e.g. {\"state\": \"TX\", \"min_power_units\": 100}. list_filters('get_recalls') shows all."New value: +"Extra API filters, e.g. {\"hazard\": \"fire\"}, {\"product_type\": \"cribs\"}, {\"min_overall\": 5} or {\"component\": \"AIR BAGS\"}; trucking e.g. {\"state\": \"TX\", \"min_power_units\": 100}; facilities e.g. {\"zip\": \"77506\"} or {\"lat\": 29.7, \"lon\": -95.0, \"radius_miles\": 5}. list_filters('get_recalls') shows all."
    • changedInput schema / properties / query / description
      Previous value: -"Words in the recall title, product or component, e.g. 'airbag inflator' or 'crib' (views recalls and totals); view carriers: part of a carrier name or a carrier number."New value: +"Words in the recall title, product or component, e.g. 'airbag inflator' or 'crib' (views recalls and totals); view carriers: part of a carrier name or a carrier number; view facilities: part of a facility name."
    • changedInput schema / properties / sort / description
      Previous value: -"recalls: date, units or title; totals: recalls, units or name; ratings: model_year, overall_stars or rollover_risk_pct; complaints: complaints, crashes, fires, injuries, deaths or name; carriers: power_units, drivers, crashes, fatal_crashes, crash_rate, vehicle_oos_rate, driver_oos_rate, inspections or name; trucking_stats by state: state or a number such as crashes or vehicle_oos_rate."New value: +"recalls: date, units or title; totals: recalls, units or name; ratings: model_year, overall_stars or rollover_risk_pct; complaints: complaints, crashes, fires, injuries, deaths or name; carriers: power_units, drivers, crashes, fatal_crashes, crash_rate, vehicle_oos_rate, driver_oos_rate, inspections or name; trucking_stats by state: state or a number such as crashes or vehicle_oos_rate; facilities: penalties, violations, serious_violations, inspections, enforcement_actions, emissions or distance; compliance_companies: penalties, violations, emissions or facilities; emissions: total_co2e, methane, co2 or name."
    • changedInput schema / properties / ticker / description
      Previous value: -"Ticker of a listed company, e.g. F, GM, TSLA, TGT or MAT: its recalls (view carriers: its trucking carriers, e.g. JBHT, KNX or ODFL)."New value: +"Ticker of a listed company, e.g. F, GM, TSLA, TGT or MAT: its recalls (view carriers: its trucking carriers, e.g. JBHT, KNX or ODFL; facility views: its facilities, e.g. XOM, DUK, TSN or WMT)."
    • changedInput schema / properties / view / description
      Previous value: -"recalls (default), recall, totals, ratings or complaints; trucking: carriers, carrier or trucking_stats."New value: +"recalls (default), recall, totals, ratings or complaints; trucking: carriers, carrier or trucking_stats; workplace safety, environmental compliance and emissions: facilities, facility, compliance_companies or emissions."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "recalls",
      -  "recall",
      -  "totals",
      -  "ratings",
      -  "complaints",
      -  "carriers",
      -  "carrier",
      -  "trucking_stats"
      -]New value: +[
      +  "recalls",
      +  "recall",
      +  "totals",
      +  "ratings",
      +  "complaints",
      +  "carriers",
      +  "carrier",
      +  "trucking_stats",
      +  "facilities",
      +  "facility",
      +  "compliance_companies",
      +  "emissions"
      +]
  3. Changed9 schema fields changed
    • changedInput schema / properties / by / description
      Previous value: -"View totals: year (default), month, kind, category, make, model, model_year, manufacturer, ticker, hazard, product_type or component. View complaints: month (default), year, make, model, model_year or component."New value: +"View totals: year (default), month, kind, category, make, model, model_year, manufacturer, ticker, hazard, product_type or component. View complaints: month (default), year, make, model, model_year or component. View trucking_stats: state (default), month, year or none."
    • addedInput schema / properties / carrier
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "For view carrier: a carrier number or slug from view carriers.",
      +  "title": "Carrier"
      +}
    • changedInput schema / properties / date_from / description
      Previous value: -"First date (recall date, or month received for complaints): YYYY-MM-DD, YYYY-MM or YYYY."New value: +"First date (recall date, or month received for complaints; trucking_stats: first month): YYYY-MM-DD, YYYY-MM or YYYY."
    • changedInput schema / properties / filters / description
      Previous value: -"Extra API filters, e.g. {\"hazard\": \"fire\"}, {\"product_type\": \"cribs\"}, {\"min_overall\": 5} or {\"component\": \"AIR BAGS\"}. list_filters('get_recalls') shows all."New value: +"Extra API filters, e.g. {\"hazard\": \"fire\"}, {\"product_type\": \"cribs\"}, {\"min_overall\": 5} or {\"component\": \"AIR BAGS\"}; trucking e.g. {\"state\": \"TX\", \"min_power_units\": 100}. list_filters('get_recalls') shows all."
    • changedInput schema / properties / query / description
      Previous value: -"Words in the recall title, product or component, e.g. 'airbag inflator' or 'crib' (views recalls and totals)."New value: +"Words in the recall title, product or component, e.g. 'airbag inflator' or 'crib' (views recalls and totals); view carriers: part of a carrier name or a carrier number."
    • changedInput schema / properties / sort / description
      Previous value: -"recalls: date, units or title; totals: recalls, units or name; ratings: model_year, overall_stars or rollover_risk_pct; complaints: complaints, crashes, fires, injuries, deaths or name."New value: +"recalls: date, units or title; totals: recalls, units or name; ratings: model_year, overall_stars or rollover_risk_pct; complaints: complaints, crashes, fires, injuries, deaths or name; carriers: power_units, drivers, crashes, fatal_crashes, crash_rate, vehicle_oos_rate, driver_oos_rate, inspections or name; trucking_stats by state: state or a number such as crashes or vehicle_oos_rate."
    • changedInput schema / properties / ticker / description
      Previous value: -"Ticker of a listed company, e.g. F, GM, TSLA, TGT or MAT: its recalls."New value: +"Ticker of a listed company, e.g. F, GM, TSLA, TGT or MAT: its recalls (view carriers: its trucking carriers, e.g. JBHT, KNX or ODFL)."
    • changedInput schema / properties / view / description
      Previous value: -"recalls (default), recall, totals, ratings or complaints."New value: +"recalls (default), recall, totals, ratings or complaints; trucking: carriers, carrier or trucking_stats."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "recalls",
      -  "recall",
      -  "totals",
      -  "ratings",
      -  "complaints"
      -]New value: +[
      +  "recalls",
      +  "recall",
      +  "totals",
      +  "ratings",
      +  "complaints",
      +  "carriers",
      +  "carrier",
      +  "trucking_stats"
      +]
  4. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description goes well beyond: 'Complaints are the owner's account and not verified; popular models get more', 'Penalties are as recorded; violations are not all equally serious', and 'Crashes do not say who caused them.' These are substantive data-quality caveats that change how an agent should present results.

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?

Long, but the length is justified by twelve distinct views that each need their own contract. It is front-loaded with the data-domain overview before the per-view detail, and each view line is dense but earns its place. Minor redundancy with the schema's own view/filter descriptions keeps it from a 5.

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?

An output schema exists, so return values need not be documented, and the description still fully covers view selection, per-view filters, sort semantics, identifier formats (recall_id, carrier number, facility_id), date formats and the list_filters escape hatch. Nothing an agent needs to invoke any of the twelve views is missing.

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 value on top: concrete filter examples per view ({"hazard": "fire"}, {"min_overall": 5}), ticker examples for different domains (F, GM vs JBHT, KNX vs XOM, DUK), and sort options per view. This meaningfully extends the schema rather than restating it.

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, enumerated set of data domains with verbs and scope: vehicle/consumer recalls since 1966/1970s, crash ratings, complaints, trucking carrier safety, workplace safety, environmental compliance and GHG emissions. It clearly distinguishes this tool from all listed siblings (airline, bank, stock prices, etc.) by naming the exact public datasets it serves.

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

Usage Guidelines5/5

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

The view-by-view breakdown is effectively explicit usage routing: 'view recalls (default)', 'view recall: one recall', 'view totals: recalls counted by year', etc., each with what to pass and how to filter. It tells the agent which view to select for which question (e.g. company recalls per year via ticker + by 'year'), which is exactly the guidance needed for a 12-view tool.

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