Serveur MCP

nhtsa-vehicle-safety-mcp-server

io.github.cyanheads/nhtsa-vehicle-safety-mcp-server
Autres Recherche et exploration Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Decodes vehicle identification numbers and searches NHTSA data for recalls, complaints, crash ratings, and defect investigations.

nhtsa_decode_vin
Nhtsa Decode Vin
Decode a Vehicle Identification Number to extract make, model, year, body type, engine, safety equipment, and manufacturing details. Pass a single 17-character VIN string, or an array of up to 50 VINs for batch decode. Partial VINs accepted — use * for unknown positions.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['vin'], 'properties': {'vin': {'anyOf': [{'type': 'string', 'description': 'A single VIN string (up to 17 characters, * for unknown positions)'}, {'type': 'array', 'items': {'type': 'string'}, 'description': 'An array of up to 50 VINs for batch decode'}], 'description': 'A single 17-character VIN (e.g., "1HGCM82633A004352") or an array of up to 50 VINs for batch decode. Partial VINs accepted â\x80\x94 use * for unknown positions.'}, 'modelYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Model year, a whole number. Helps resolve ambiguity for pre-1980 or partial VINs.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['vehicles', 'effectiveQuery']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['empty_vin_list', 'batch_too_large'], 'description': 'Machine-readable failure mode. Declared by this tool: `empty_vin_list`: No non-empty VIN strings supplied. `batch_too_large`: VIN array exceeds the batch limit. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Present when one or more VINs decoded with VPIC warnings (errorCode != 0) â\x80\x94 check errorCode/errorText per vehicle.'}, 'vehicles': {'type': 'array', 'items': {'type': 'object', 'required': ['vin'], 'properties': {'abs': {'type': 'string', 'description': 'ABS availability'}, 'vin': {'type': 'string', 'description': 'The decoded VIN, echoed back from the request'}, 'make': {'type': 'string', 'description': 'Vehicle manufacturer when provided by VPIC'}, 'trim': {'type': 'string', 'description': 'Trim level'}, 'model': {'type': 'string', 'description': 'Vehicle model when provided by VPIC'}, 'engineHP': {'type': 'string', 'description': 'Engine horsepower'}, 'fuelType': {'type': 'string', 'description': 'Primary fuel type'}, 'bodyClass': {'type': 'string', 'description': 'Body class (e.g., "Sedan/Saloon", "SUV")'}, 'driveType': {'type': 'string', 'description': 'Drive type (e.g., "FWD", "AWD")'}, 'errorCode': {'type': 'string', 'description': 'VPIC error code (0 = no error)'}, 'errorText': {'type': 'string', 'description': 'VPIC error or warning text'}, 'modelYear': {'type': 'string', 'description': 'Model year when provided by VPIC'}, 'plantCity': {'type': 'string', 'description': 'Manufacturing plant city'}, 'plantState': {'type': 'string', 'description': 'Manufacturing plant state'}, 'vehicleType': {'type': 'string', 'description': 'Vehicle type (e.g., "PASSENGER CAR")'}, 'manufacturer': {'type': 'string', 'description': 'Full manufacturer name'}, 'plantCountry': {'type': 'string', 'description': 'Manufacturing plant country'}, 'airBagLocKnee': {'type': 'string', 'description': 'Knee airbag info'}, 'airBagLocSide': {'type': 'string', 'description': 'Side airbag locations'}, 'airBagLocFront': {'type': 'string', 'description': 'Front airbag locations'}, 'engineCylinders': {'type': 'string', 'description': 'Number of engine cylinders'}, 'tractionControl': {'type': 'string', 'description': 'Traction control availability'}, 'airBagLocCurtain': {'type': 'string', 'description': 'Curtain airbag info'}, 'engineDisplacementL': {'type': 'string', 'description': 'Engine displacement in liters'}, 'electronicStabilityControl': {'type': 'string', 'description': 'ESC availability'}}, 'description': 'Decoded details for a single VIN', 'additionalProperties': False}, 'description': 'Decoded vehicle information per VIN'}, 'effectiveQuery': {'type': 'string', 'description': 'Number of VINs decoded and the path taken (single or batch).'}}, 'additionalProperties': False}
nhtsa_get_safety_ratings
Nhtsa Get Safety Ratings
Get NCAP crash test ratings and ADAS feature availability for a vehicle. Use when the user specifically wants crash test stars, rollover risk, or wants to compare safety features across vehicles. NCAP data available from 1990+, best coverage for 2011+.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'make': {'type': 'string', 'description': 'Vehicle manufacturer. Required with model and modelYear when vehicleId is omitted.'}, 'model': {'type': 'string', 'description': 'Vehicle model. Required with make and modelYear when vehicleId is omitted.'}, 'modelYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Model year, a whole number. Required with make and model when vehicleId is omitted. NCAP coverage increases significantly for 2011+.'}, 'vehicleId': {'type': 'number', 'description': 'Specific NCAP vehicle ID (from prior results). Skips the year/make/model lookup.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['ratings']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['missing_required_combo'], 'description': 'Machine-readable failure mode. Declared by this tool: `missing_required_combo`: Neither vehicleId nor a complete vehicle triple was supplied. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Guidance when no NCAP ratings are found â\x80\x94 e.g. coverage notes or adjacent year suggestion.'}, 'ratings': {'type': 'array', 'items': {'type': 'object', 'required': ['vehicleId', 'frontalCrash', 'sideCrash', 'rollover', 'adasFeatures'], 'properties': {'rollover': {'type': 'object', 'properties': {'rating': {'type': 'string', 'description': 'Rollover resistance rating'}, 'probability': {'type': 'number', 'description': 'Rollover probability (0-1 scale)'}, 'dynamicTipResult': {'type': 'string', 'description': 'Dynamic tip test result'}}, 'description': 'Rollover risk assessment', 'additionalProperties': False}, 'sideCrash': {'type': 'object', 'properties': {'pole': {'type': 'string', 'description': 'Side pole crash rating'}, 'overall': {'type': 'string', 'description': 'Overall side crash rating'}, 'driverSide': {'type': 'string', 'description': 'Driver-side rating'}, 'passengerSide': {'type': 'string', 'description': 'Passenger-side rating'}, 'barrierOverall': {'type': 'string', 'description': 'Side barrier overall rating'}, 'combinedBarrierPoleRear': {'type': 'string', 'description': 'Combined barrier/pole rear rating'}, 'combinedBarrierPoleFront': {'type': 'string', 'description': 'Combined barrier/pole front rating'}}, 'description': 'Side crash test results', 'additionalProperties': False}, 'vehicleId': {'type': 'number', 'description': 'NCAP vehicle ID'}, 'adasFeatures': {'type': 'object', 'properties': {'laneDepartureWarning': {'type': 'string', 'description': 'Lane departure warning availability'}, 'forwardCollisionWarning': {'type': 'string', 'description': 'Forward collision warning availability'}, 'electronicStabilityControl': {'type': 'string', 'description': '"Standard", "Optional", or "Not Available"'}}, 'description': 'Advanced driver assistance features', 'additionalProperties': False}, 'frontalCrash': {'type': 'object', 'properties': {'overall': {'type': 'string', 'description': 'Overall frontal crash rating'}, 'driverSide': {'type': 'string', 'description': 'Driver-side rating'}, 'passengerSide': {'type': 'string', 'description': 'Passenger-side rating'}}, 'description': 'Frontal crash test results', 'additionalProperties': False}, 'recallsCount': {'type': 'number', 'description': 'Recalls linked by NHTSA to this specific NCAP record. Variant-scoped â\x80\x94 for vehicle-level totals call nhtsa_search_recalls.'}, 'overallRating': {'type': 'string', 'description': 'Overall safety rating (1-5 stars or "Not Rated")'}, 'complaintsCount': {'type': 'number', 'description': 'Complaints linked by NHTSA to this specific NCAP record. Variant-scoped â\x80\x94 for vehicle-level totals call nhtsa_search_complaints.'}, 'investigationCount': {'type': 'number', 'description': 'Investigations linked by NHTSA to this specific NCAP record. Variant-scoped â\x80\x94 for vehicle-level totals call nhtsa_search_investigations.'}, 'vehicleDescription': {'type': 'string', 'description': 'Vehicle variant description'}}, 'description': 'Safety ratings for a single vehicle variant', 'additionalProperties': False}, 'description': 'Safety ratings per vehicle variant'}}, 'additionalProperties': False}
nhtsa_get_vehicle_safety
Nhtsa Get Vehicle Safety
Get a comprehensive safety profile for a vehicle. Combines NCAP crash test ratings, recalls, and complaint summary into a single response. Use as the default when asked about vehicle safety, reliability, or purchase decisions.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['make', 'model', 'modelYear'], 'properties': {'make': {'type': 'string', 'description': 'Vehicle manufacturer (e.g., "Toyota", "Ford"). Case-insensitive.'}, 'model': {'type': 'string', 'description': 'Vehicle model (e.g., "Camry", "F-150"). Case-insensitive.'}, 'modelYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Model year, a whole number (e.g., 2020).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['sectionStatus', 'warnings', 'effectiveQuery']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'description': 'Machine-readable failure mode.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Guidance when no NHTSA records matched the vehicle â\x80\x94 e.g. how to verify make/model/year spelling.'}, 'recalls': {'type': 'array', 'items': {'type': 'object', 'required': ['campaignNumber', 'manufacturer', 'component', 'summary', 'consequence', 'remedy', 'reportReceivedDate'], 'properties': {'parkIt': {'type': 'boolean', 'description': 'Do-not-drive advisory when provided by NHTSA'}, 'remedy': {'type': 'string', 'description': 'Corrective action'}, 'summary': {'type': 'string', 'description': 'Recall summary'}, 'component': {'type': 'string', 'description': 'Affected component'}, 'consequence': {'type': 'string', 'description': 'Safety consequence'}, 'parkOutSide': {'type': 'boolean', 'description': 'Park-outside advisory when provided by NHTSA'}, 'manufacturer': {'type': 'string', 'description': 'Vehicle/equipment manufacturer'}, 'campaignNumber': {'type': 'string', 'description': 'NHTSA campaign number'}, 'overTheAirUpdate': {'type': 'boolean', 'description': 'OTA update availability when provided by NHTSA'}, 'reportReceivedDate': {'type': 'string', 'description': 'Date recall was reported'}}, 'description': 'A single recall campaign', 'additionalProperties': False}, 'description': 'All recalls for this vehicle when available'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Warnings about sections that could not be loaded from NHTSA'}, 'safetyRatings': {'type': 'array', 'items': {'type': 'object', 'required': ['vehicleId', 'frontalCrash', 'sideCrash', 'rollover', 'adasFeatures'], 'properties': {'rollover': {'type': 'object', 'properties': {'rating': {'type': 'string', 'description': 'Rollover resistance rating'}, 'probability': {'type': 'number', 'description': 'Rollover probability (0-1 scale)'}, 'dynamicTipResult': {'type': 'string', 'description': 'Dynamic tip test result'}}, 'description': 'Rollover risk assessment', 'additionalProperties': False}, 'sideCrash': {'type': 'object', 'properties': {'pole': {'type': 'string', 'description': 'Side pole crash rating'}, 'overall': {'type': 'string', 'description': 'Overall side crash rating'}, 'driverSide': {'type': 'string', 'description': 'Driver-side rating'}, 'passengerSide': {'type': 'string', 'description': 'Passenger-side rating'}, 'barrierOverall': {'type': 'string', 'description': 'Side barrier overall rating'}, 'combinedBarrierPoleRear': {'type': 'string', 'description': 'Combined barrier/pole rear rating'}, 'combinedBarrierPoleFront': {'type': 'string', 'description': 'Combined barrier/pole front rating'}}, 'description': 'Side crash test ratings', 'additionalProperties': False}, 'vehicleId': {'type': 'number', 'description': 'NCAP vehicle ID for follow-up queries'}, 'adasFeatures': {'type': 'object', 'properties': {'laneDepartureWarning': {'type': 'string', 'description': 'LDW availability'}, 'forwardCollisionWarning': {'type': 'string', 'description': 'FCW availability'}, 'electronicStabilityControl': {'type': 'string', 'description': 'ESC availability'}}, 'description': 'Advanced driver assistance features', 'additionalProperties': False}, 'frontalCrash': {'type': 'object', 'properties': {'overall': {'type': 'string', 'description': 'Overall frontal crash rating'}, 'driverSide': {'type': 'string', 'description': 'Driver-side frontal crash rating'}, 'passengerSide': {'type': 'string', 'description': 'Passenger-side frontal crash rating'}}, 'description': 'Frontal crash test ratings', 'additionalProperties': False}, 'overallRating': {'type': 'string', 'description': 'Overall safety rating (1-5 stars or "Not Rated")'}, 'vehicleDescription': {'type': 'string', 'description': 'Vehicle variant description'}}, 'description': 'Safety ratings for a single vehicle variant', 'additionalProperties': False}, 'description': 'Crash test ratings per vehicle variant (e.g., FWD vs AWD)'}, 'sectionStatus': {'type': 'object', 'required': ['safetyRatings', 'recalls', 'complaints'], 'properties': {'recalls': {'enum': ['available', 'partial', 'unavailable'], 'type': 'string', 'description': 'Availability of recall data in this response'}, 'complaints': {'enum': ['available', 'partial', 'unavailable'], 'type': 'string', 'description': 'Availability of complaint data in this response'}, 'safetyRatings': {'enum': ['available', 'partial', 'unavailable'], 'type': 'string', 'description': 'Availability of NCAP safety ratings in this response'}}, 'description': 'Availability of each data section in this response', 'additionalProperties': False}, 'effectiveQuery': {'type': 'string', 'description': 'The vehicle queried, as "make model modelYear".'}, 'complaintSummary': {'type': 'object', 'required': ['totalCount', 'componentBreakdown', 'crashCount', 'fireCount', 'injuryCount', 'deathCount'], 'properties': {'fireCount': {'type': 'number', 'description': 'Total complaints involving fires'}, 'crashCount': {'type': 'number', 'description': 'Total complaints involving crashes'}, 'deathCount': {'type': 'number', 'description': 'Total deaths across all complaints'}, 'totalCount': {'type': 'number', 'description': 'Total complaints filed'}, 'injuryCount': {'type': 'number', 'description': 'Total injuries across all complaints'}, 'componentBreakdown': {'type': 'array', 'items': {'type': 'object', 'required': ['component', 'count', 'crashCount', 'fireCount', 'injuryCount', 'deathCount'], 'properties': {'count': {'type': 'number', 'description': 'Number of complaints'}, 'component': {'type': 'string', 'description': 'Component name'}, 'fireCount': {'type': 'number', 'description': 'Complaints involving fires'}, 'crashCount': {'type': 'number', 'description': 'Complaints involving crashes'}, 'deathCount': {'type': 'number', 'description': 'Total deaths reported'}, 'injuryCount': {'type': 'number', 'description': 'Total injuries reported'}}, 'description': 'Complaint counts for a single component', 'additionalProperties': False}, 'description': 'Complaints grouped by component'}}, 'description': 'Summary of consumer complaints', 'additionalProperties': False}}, 'additionalProperties': False}
nhtsa_lookup_vehicles
Nhtsa Lookup Vehicles
Look up valid makes, models, and vehicle types in NHTSA's database. Use to resolve ambiguous vehicle names, find correct make/model spelling, or discover what models a manufacturer produces.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['operation'], 'properties': {'make': {'type': 'string', 'description': 'Make name (required for "models" and "vehicle_types"). Partial match supported.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max results in the returned slice. Defaults to 100; max 200.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset into the full result list. Defaults to 0.'}, 'modelYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Filter models to a specific year, a whole number. Only for "models" operation.'}, 'operation': {'enum': ['makes', 'models', 'vehicle_types', 'manufacturer'], 'type': 'string', 'description': '"makes" (all NHTSA makes), "models" (models for a make), "vehicle_types" (types for a make), "manufacturer" (manufacturer details).'}, 'manufacturer': {'type': 'string', 'description': 'Manufacturer name or ID (for "manufacturer" operation). Partial match supported.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['operation', 'totalCount', 'returned', 'offset', 'limit', 'effectiveQuery']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'cap': {'type': 'number', 'description': 'Maximum manufacturer records a single lookup retrieves.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['missing_operation_arg'], 'description': 'Machine-readable failure mode. Declared by this tool: `missing_operation_arg`: A required argument for the chosen operation was not provided. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'limit': {'type': 'number', 'description': 'Pagination limit used for this response'}, 'makes': {'type': 'array', 'items': {'type': 'object', 'required': ['makeId', 'makeName'], 'properties': {'makeId': {'type': 'number', 'description': 'VPIC make ID'}, 'makeName': {'type': 'string', 'description': 'Make name'}}, 'description': 'A single make entry', 'additionalProperties': False}, 'description': 'Results for "makes" operation'}, 'shown': {'type': 'number', 'description': 'Manufacturer records retrieved before pagination, when the cap was reached.'}, 'models': {'type': 'array', 'items': {'type': 'object', 'required': ['modelId', 'modelName', 'makeId', 'makeName'], 'properties': {'makeId': {'type': 'number', 'description': 'VPIC make ID'}, 'modelId': {'type': 'number', 'description': 'VPIC model ID'}, 'makeName': {'type': 'string', 'description': 'Make name'}, 'modelName': {'type': 'string', 'description': 'Model name'}}, 'description': 'A single model entry', 'additionalProperties': False}, 'description': 'Results for "models" operation'}, 'notice': {'type': 'string', 'description': 'Guidance when the result set is empty or the page is out of bounds.'}, 'offset': {'type': 'number', 'description': 'Pagination offset used for this response'}, 'returned': {'type': 'number', 'description': 'Number of results in the returned slice'}, 'operation': {'type': 'string', 'description': 'The operation that was performed'}, 'truncated': {'type': 'boolean', 'description': 'True when the "manufacturer" lookup stopped at its retrieval cap and further matches may exist upstream.'}, 'totalCount': {'type': 'number', 'description': 'Results retrieved before pagination. For "manufacturer" this is capped â\x80\x94 check the truncated field, since VPIC reports no match total.'}, 'vehicleTypes': {'type': 'array', 'items': {'type': 'object', 'required': ['vehicleTypeId', 'vehicleTypeName'], 'properties': {'vehicleTypeId': {'type': 'number', 'description': 'Vehicle type ID'}, 'vehicleTypeName': {'type': 'string', 'description': 'Vehicle type name'}}, 'description': 'A single vehicle-type entry', 'additionalProperties': False}, 'description': 'Results for "vehicle_types" operation'}, 'manufacturers': {'type': 'array', 'items': {'type': 'object', 'required': ['manufacturerId', 'manufacturerName', 'vehicleTypes'], 'properties': {'country': {'type': 'string', 'description': 'Country of origin when provided'}, 'vehicleTypes': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'id': {'type': 'number', 'description': 'Vehicle type ID'}, 'name': {'type': 'string', 'description': 'Vehicle type name'}}, 'description': 'A single vehicle-type entry produced by this manufacturer', 'additionalProperties': False}, 'description': 'Vehicle types produced'}, 'manufacturerId': {'type': 'number', 'description': 'Manufacturer ID'}, 'manufacturerName': {'type': 'string', 'description': 'Manufacturer name'}}, 'description': 'A single manufacturer entry', 'additionalProperties': False}, 'description': 'Results for "manufacturer" operation'}, 'effectiveQuery': {'type': 'string', 'description': 'The operation with key args, e.g. "models make=Toyota year=2020".'}}, 'additionalProperties': False}
nhtsa_search_complaints
Nhtsa Search Complaints
Search consumer safety complaints filed with NHTSA for a specific vehicle. Returns a component breakdown over all matching complaints plus a paginated slice of the most recent complaints. Use for common problems, failure patterns, or owner-reported issues.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['make', 'model', 'modelYear'], 'properties': {'make': {'type': 'string', 'description': 'Vehicle manufacturer.'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max complaint narratives to return. Defaults to 20; max 50. componentBreakdown always reflects all matching complaints.'}, 'model': {'type': 'string', 'description': 'Vehicle model.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset into the filing-date-descending complaint list. Defaults to 0. componentBreakdown is unaffected by pagination.'}, 'component': {'type': 'string', 'description': 'Filter to a specific component (uppercase, e.g., "ENGINE", "AIR BAGS", "ELECTRICAL SYSTEM"). Matches within comma-separated component lists. Omit to see all.'}, 'modelYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Model year, a whole number.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['totalCount', 'returned', 'offset', 'limit', 'componentBreakdown', 'complaints', 'effectiveQuery']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'description': 'Machine-readable failure mode.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'limit': {'type': 'number', 'description': 'Pagination limit used for this page'}, 'notice': {'type': 'string', 'description': 'Guidance when no complaints match the vehicle, or when the requested page overshoots the result set.'}, 'offset': {'type': 'number', 'description': 'Pagination offset used for this page'}, 'returned': {'type': 'number', 'description': 'Number of complaints in this page'}, 'complaints': {'type': 'array', 'items': {'type': 'object', 'properties': {'vin': {'type': 'string', 'description': 'VIN prefix (partial)'}, 'fire': {'type': 'boolean', 'description': 'Involved a fire'}, 'crash': {'type': 'boolean', 'description': 'Involved a crash'}, 'summary': {'type': 'string', 'description': 'Consumer-reported description'}, 'odiNumber': {'type': 'number', 'description': 'NHTSA complaint ID'}, 'components': {'type': 'string', 'description': 'Affected components (comma-separated)'}, 'dateOfIncident': {'type': 'string', 'description': 'Date the incident occurred (ISO YYYY-MM-DD)'}, 'numberOfDeaths': {'type': 'number', 'description': 'Number of deaths'}, 'numberOfInjuries': {'type': 'number', 'description': 'Number of injuries'}, 'dateComplaintFiled': {'type': 'string', 'description': 'Date complaint was filed (ISO YYYY-MM-DD)'}, 'unreliableIncidentDate': {'type': 'object', 'required': ['reported', 'reason'], 'properties': {'reason': {'enum': ['postdates_filing', 'predates_model_year'], 'type': 'string', 'description': 'What the reported date contradicts: "postdates_filing" â\x80\x94 it falls after this complaint was filed; "predates_model_year" â\x80\x94 it falls before a vehicle of this model year existed.'}, 'reported': {'type': 'string', 'description': 'The incident date NHTSA reported, ISO YYYY-MM-DD'}}, 'description': "An incident date NHTSA reported that this complaint's own filing date or model year rules out â\x80\x94 report it as contradicted, never as when the incident happened. Appears in place of dateOfIncident, never alongside it; both absent means NHTSA reported no incident date at all.", 'additionalProperties': False}}, 'description': 'A single consumer complaint', 'additionalProperties': False}, 'description': 'Paginated slice of the most recent complaints, date-descending'}, 'totalCount': {'type': 'number', 'description': 'Total complaints matching criteria'}, 'effectiveQuery': {'type': 'string', 'description': '"make model modelYear" with optional component filter applied, as the server used it.'}, 'componentBreakdown': {'type': 'array', 'items': {'type': 'object', 'required': ['component', 'count', 'crashCount', 'fireCount', 'injuryCount', 'deathCount'], 'properties': {'count': {'type': 'number', 'description': 'Number of complaints'}, 'component': {'type': 'string', 'description': 'Component name'}, 'fireCount': {'type': 'number', 'description': 'Complaints involving fires'}, 'crashCount': {'type': 'number', 'description': 'Complaints involving crashes'}, 'deathCount': {'type': 'number', 'description': 'Total deaths reported'}, 'injuryCount': {'type': 'number', 'description': 'Total injuries reported'}}, 'description': 'Complaint counts for a single component', 'additionalProperties': False}, 'description': 'Complaints grouped by component, sorted by frequency'}}, 'additionalProperties': False}
nhtsa_search_investigations
Nhtsa Search Investigations
Search NHTSA defect investigations from the ODI flat file — covering Preliminary Evaluations (PE), Engineering Analyses (EA), Defect Petitions (DP), Recall Queries (RQ), Audit Queries (AQ), and additional ODI types. make, model, and component are structured filters against the investigation record's vehicle associations. All filters are ANDed. Use nhtsaId to fetch one investigation by its exact ID — including the investigationId nhtsa_search_recalls returns for a campaign. Investigations may link to a resulting recall campaign via recallCampaign.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'make': {'type': 'string', 'description': 'Structured filter â\x80\x94 matches against the investigation\'s associated vehicle makes (e.g., "TOYOTA"). ANDed with other filters.'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Max investigations to return. Defaults to 20; max 25. The cap is lower than the other paginated tools because a single investigation summary can run several thousand characters and is rendered in full.'}, 'model': {'type': 'string', 'description': "Structured filter â\x80\x94 matches against the investigation's associated vehicle models. ANDed with other filters."}, 'query': {'type': 'string', 'description': 'Free-text search across investigation ID, subject, and summary.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset into the matching investigations. Defaults to 0.'}, 'status': {'enum': ['O', 'C'], 'type': 'string', 'description': 'Filter by status: "O" (Open) or "C" (Closed). Omit to include both.'}, 'nhtsaId': {'type': 'string', 'description': 'Exact NHTSA investigation ID (e.g. "EA23003"), case-insensitive. Fetches that one record â\x80\x94 mutually exclusive with every other filter.'}, 'component': {'type': 'string', 'description': 'Structured filter â\x80\x94 matches against the investigation\'s affected components (e.g., "STEERING"). ANDed with other filters.'}, 'investigationType': {'type': 'string', 'description': 'Filter by ODI investigation type code (the leading letters of the NHTSA ID). Named types: "PE" (Preliminary Evaluation), "EA" (Engineering Analysis), "DP" (Defect Petition), "RQ" (Recall Query), "AQ" (Audit Query). Additional valid codes present in the dataset: "SQ", "EQ", "RP", "ID", "TA", "C". Pass any code exactly as it appears in the investigation ID prefix.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['totalCount', 'returned', 'offset', 'limit', 'investigations', 'effectiveQuery']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['mode_conflict'], 'description': 'Machine-readable failure mode. Declared by this tool: `mode_conflict`: nhtsaId was combined with another filter. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'limit': {'type': 'number', 'description': 'Pagination limit used for this page'}, 'notice': {'type': 'string', 'description': 'Guidance when no investigations match the filters, or when the requested page overshoots the result set.'}, 'offset': {'type': 'number', 'description': 'Pagination offset used for this page'}, 'returned': {'type': 'number', 'description': 'Number of investigations in this page'}, 'totalCount': {'type': 'number', 'description': 'Total matching investigations'}, 'effectiveQuery': {'type': 'string', 'description': 'Applied filters as a readable string, e.g. make="Ford" status="O".'}, 'investigations': {'type': 'array', 'items': {'type': 'object', 'properties': {'makes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Associated vehicle makes'}, 'years': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Associated model years'}, 'models': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Associated vehicle models'}, 'status': {'type': 'string', 'description': 'Status code (O=Open, C=Closed)'}, 'nhtsaId': {'type': 'string', 'description': 'NHTSA investigation ID'}, 'subject': {'type': 'string', 'description': 'Investigation subject'}, 'summary': {'type': 'string', 'description': 'Investigation summary'}, 'openDate': {'type': 'string', 'description': 'Date investigation opened (YYYY-MM-DD)'}, 'closeDate': {'type': 'string', 'description': 'Date investigation closed (YYYY-MM-DD), if closed'}, 'components': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Affected components'}, 'statusName': {'type': 'string', 'description': 'Status name'}, 'manufacturer': {'type': 'string', 'description': 'Manufacturer name'}, 'recallCampaign': {'type': 'string', 'description': 'Linked recall campaign number (if any) â\x80\x94 use with nhtsa_search_recalls'}, 'investigationType': {'type': 'string', 'description': 'Investigation type code'}, 'investigationTypeName': {'type': 'string', 'description': 'Investigation type name'}}, 'description': 'A single NHTSA investigation', 'additionalProperties': False}, 'description': 'Matching investigations'}}, 'additionalProperties': False}
nhtsa_search_recalls
Nhtsa Search Recalls
Search recall campaigns by vehicle or campaign number. Use for specific recall lookups, recall history for a vehicle, or looking up a known campaign number.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'make': {'type': 'string', 'description': 'Vehicle manufacturer. Required with model and modelYear when not using campaignNumber.'}, 'model': {'type': 'string', 'description': 'Vehicle model. Required with make and modelYear.'}, 'dateRange': {'type': 'object', 'properties': {'after': {'type': 'string', 'description': 'Only recalls received after this date (ISO 8601, e.g., "2025-01-01").'}, 'before': {'type': 'string', 'description': 'Only recalls received before this date (ISO 8601, e.g., "2026-01-01").'}}, 'description': 'Filter recalls by received date. Applied locally since the API lacks native date filtering.'}, 'modelYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Model year, a whole number. Required with make and model.'}, 'campaignNumber': {'type': 'string', 'description': 'NHTSA campaign number (e.g., "20V682000"). When provided, returns the campaign detail plus every vehicle it covers. Mutually exclusive with make/model/modelYear.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['recalls', 'totalCount', 'effectiveQuery']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['mode_conflict', 'missing_required_combo', 'campaign_not_found', 'invalid_date'], 'description': 'Machine-readable failure mode. Declared by this tool: `mode_conflict`: Both campaignNumber and vehicle params were provided. `missing_required_combo`: Neither campaignNumber nor a complete vehicle triple was supplied. `campaign_not_found`: The campaignNumber did not match any NHTSA recall. `invalid_date`: A dateRange bound could not be parsed as a date. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Guidance when no recalls are found â\x80\x94 e.g. how to verify make/model/year spelling.'}, 'recalls': {'type': 'array', 'items': {'type': 'object', 'required': ['campaignNumber', 'manufacturer', 'summary', 'consequence', 'remedy', 'reportReceivedDate'], 'properties': {'parkIt': {'type': 'boolean', 'description': 'Do-not-drive advisory when provided by NHTSA'}, 'remedy': {'type': 'string', 'description': 'Corrective action'}, 'summary': {'type': 'string', 'description': 'Recall summary'}, 'component': {'type': 'string', 'description': 'Affected component (vehicle-scoped queries)'}, 'consequence': {'type': 'string', 'description': 'Safety consequence'}, 'parkOutSide': {'type': 'boolean', 'description': 'Park-outside advisory when provided by NHTSA'}, 'manufacturer': {'type': 'string', 'description': 'Vehicle/equipment manufacturer'}, 'campaignNumber': {'type': 'string', 'description': 'NHTSA campaign number'}, 'investigationId': {'type': 'string', 'description': 'ODI investigation that preceded this campaign, when NHTSA links one (campaign queries) â\x80\x94 pass it as nhtsaId to nhtsa_search_investigations for the full record.'}, 'affectedVehicles': {'type': 'array', 'items': {'type': 'object', 'properties': {'make': {'type': 'string', 'description': 'Vehicle make'}, 'model': {'type': 'string', 'description': 'Vehicle model'}, 'modelYear': {'type': 'number', 'description': 'Model year'}}, 'description': 'One vehicle covered by the campaign', 'additionalProperties': False}, 'description': 'Every distinct make/model the campaign covers (campaign queries). Equipment and tire campaigns name the part here â\x80\x94 make is the brand, model is the part â\x80\x94 and carry no model year.'}, 'overTheAirUpdate': {'type': 'boolean', 'description': 'OTA update availability when provided by NHTSA'}, 'reportReceivedDate': {'type': 'string', 'description': 'Date received by NHTSA (ISO YYYY-MM-DD)'}, 'potentialUnitsAffected': {'type': 'number', 'description': 'Units affected (campaign queries)'}}, 'description': 'A single recall campaign', 'additionalProperties': False}, 'description': 'Matching recall campaigns'}, 'totalCount': {'type': 'number', 'description': 'Total recalls matching criteria'}, 'effectiveQuery': {'type': 'string', 'description': 'The search key used: campaign number, or "make model modelYear" for vehicle queries.'}}, 'additionalProperties': False}
Ajouté
nhtsa_lookup_vehicles
17 September 2026 12:41
Ajouté
nhtsa_search_investigations
17 September 2026 12:41
Ajouté
nhtsa_decode_vin
17 September 2026 12:41
Ajouté
nhtsa_get_safety_ratings
17 September 2026 12:41
Ajouté
nhtsa_search_complaints
17 September 2026 12:41
Ajouté
nhtsa_search_recalls
17 September 2026 12:41
Ajouté
nhtsa_get_vehicle_safety
17 September 2026 12:41