AUTO411 Vehicle Intelligence
Server Details
Identity-first automotive intelligence for vehicle resolution, specs, safety and efficiency.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct data category: identity resolution, efficiency, fitment, safety, and specifications. The descriptions clearly delineate scope and reinforce that safety and efficiency facts are YMM-scoped while identity resolution is separate, leaving no overlap in purpose.
All tools use a consistent snake_case verb_noun pattern: get_vehicle_efficiency, get_vehicle_fitment, get_vehicle_safety, get_vehicle_specs, and resolve_vehicle. The single different verb 'resolve' is still verb_noun and appropriately signals the identity-resolution action.
Five tools are well-scoped for a vehicle intelligence server, with each tool covering a core data category (identity, specs, efficiency, safety, fitment). No tool feels redundant or extraneous, and the count is comfortably within the ideal 3–15 range.
The set covers identity resolution and four major vehicle fact categories (specs, efficiency, safety, fitment), enabling core workflows. Minor gaps exist in adjacent data such as pricing, dimensions, or maintenance schedules, but agents can work around these for most stated purposes.
Available Tools
5 toolsget_vehicle_efficiencyGet Vehicle EfficiencyARead-onlyInspect
Use this for available EPA city, highway, and combined MPG, MPGe, range, fuel-cost, emissions, and related efficiency facts after vehicle identity resolves safely. Ambiguous EPA variants remain NEEDS_IDENTITY.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | No | Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model. | |
| make | No | Vehicle make. Required with year and model when VIN is not provided. | |
| trim | No | Optional identity refinement. Use only an explicitly known trim. | |
| year | No | Model year. Required with make and model when VIN is not provided. | |
| model | No | Customer-facing model family. Required with year and make when VIN is not provided. | |
| engine | No | Optional identity refinement. Use only an explicitly known engine. | |
| drivetrain | No | Optional identity refinement. Use only an explicitly known drivetrain. | |
| configuration_id | No | AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| choices | No | |
| conflicts | No | |
| candidates | No | |
| efficiency | No | |
| fact_scope | No | |
| choice_count | No | |
| completeness | No | |
| missing_fields | No | |
| evidence_status | No | |
| configuration_id | No | |
| agent_instruction | Yes | |
| canonical_vehicle | No | |
| resolution_status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds the identity-resolution precondition and the NEEDS_IDENTITY disambiguation outcome, which is genuine behavioral context, but it says nothing about return format, coverage gaps, or rate/availability behavior.
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 'Use this for...' trigger, and no filler. The second sentence is terse and slightly cryptic ('remain NEEDS_IDENTITY') but carries actionable information rather than padding.
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?
With an output schema present, the description need not explain return values, and the 100%-covered schema handles parameters. What remains is the identity precondition and the NEEDS_IDENTITY behavior, both of which the description supplies, making it essentially complete for an 8-param, 0-required read 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?
Schema description coverage is 100%, so the schema already fully documents all 8 identity parameters (VIN path vs year/make/model, optional trim/engine/drivetrain, configuration_id). The description adds no parameter-level syntax or format detail beyond the identity-resolution framing, 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?
The description names a specific resource domain (EPA city/highway/combined MPG, MPGe, range, fuel-cost, emissions) which clearly separates it from get_vehicle_safety, get_vehicle_fitment, and get_vehicle_specs. It states what the tool returns rather than restating the name. It stops short of explicitly naming a sibling as the alternative, so it lands at a solid 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'after vehicle identity resolves safely' gives a real precondition for invoking the tool, and 'Ambiguous EPA variants remain NEEDS_IDENTITY' tells the agent what to expect when resolution fails. It does not explicitly route to resolve_vehicle as the prerequisite or state when-not-to-use cases, so it is clear context without full alternatives coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vehicle_fitmentGet Wheel and Tire FitmentARead-onlyInspect
Use this for wheel and tire fitment after identifying a vehicle by VIN or year, make, and model. Returns available OEM tire sizes, bolt pattern / PCD, center bore, wheel offset, and thread / lug size without guessing through ambiguous configurations.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | No | Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model. | |
| make | No | Vehicle make. Required with year and model when VIN is not provided. | |
| trim | No | Optional identity refinement. Use only an explicitly known trim. | |
| year | No | Model year. Required with make and model when VIN is not provided. | |
| model | No | Customer-facing model family. Required with year and make when VIN is not provided. | |
| engine | No | Optional identity refinement. Use only an explicitly known engine. | |
| drivetrain | No | Optional identity refinement. Use only an explicitly known drivetrain. | |
| configuration_id | No | AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| choices | No | |
| fitment | No | |
| conflicts | No | |
| fact_scope | No | |
| choice_count | No | |
| completeness | No | |
| missing_fields | No | |
| evidence_status | No | |
| policy_withheld | No | |
| configuration_id | No | |
| agent_instruction | Yes | |
| canonical_vehicle | No | |
| resolution_status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful context by listing the returned attributes and framing the tool as resolving 'ambiguous configurations' without guessing. It says nothing about auth requirements, rate limits, or error/lookup-failure behavior beyond what the schema and annotations imply.
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 tight sentences with no filler: the first leads with purpose and prerequisite, the second with the concrete return payload. Every clause 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?
With annotations, a 100%-documented schema, and an output schema present, the description covers the identity prerequisite and the returned fitment data well. It omits mention of the configuration_id continuation path from a prior NEEDS_IDENTITY response, though the schema documents that parameter, leaving a minor gap.
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%, so each parameter is fully documented in the schema itself. The description restates the two identity paths (VIN or year/make/model) but adds no syntax or format detail beyond that. Baseline 3 is appropriate when the schema carries the parameter burden.
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?
The description states a specific verb and resource ('wheel and tire fitment') and enumerates the returned data (OEM tire sizes, bolt pattern/PCD, center bore, offset, lug size), which clearly separates it from siblings like get_vehicle_specs or get_vehicle_efficiency. It does not explicitly name the sibling tools, so differentiation is implied by domain 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?
It gives a clear usage condition and a prerequisite: use it for fitment 'after identifying a vehicle by VIN or year, make, and model.' This routes the agent to resolve the vehicle first. However, it names no explicit alternatives or exclusions for when fitment is the wrong choice versus specs or safety.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vehicle_safetyGet Vehicle Safety InformationARead-onlyInspect
Use this for available NHTSA-backed recalls, complaints, investigations, manufacturer communications, and safety ratings. Safety facts remain explicitly YMM-scoped and never establish configuration identity.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | No | Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model. | |
| make | No | Vehicle make. Required with year and model when VIN is not provided. | |
| trim | No | Optional identity refinement. Use only an explicitly known trim. | |
| year | No | Model year. Required with make and model when VIN is not provided. | |
| limit | No | Maximum records per safety category | |
| model | No | Customer-facing model family. Required with year and make when VIN is not provided. | |
| engine | No | Optional identity refinement. Use only an explicitly known engine. | |
| drivetrain | No | Optional identity refinement. Use only an explicitly known drivetrain. | |
| configuration_id | No | AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| safety | No | |
| choices | No | |
| conflicts | No | |
| fact_scope | No | |
| choice_count | No | |
| completeness | No | |
| source_errors | No | |
| missing_fields | No | |
| evidence_status | No | |
| configuration_id | No | |
| agent_instruction | Yes | |
| canonical_vehicle | No | |
| resolution_status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds a genuine behavioral caveat — that safety facts are YMM-scoped and 'never establish configuration identity' — which usefully tells the agent not to treat results as identity resolution. It does not, however, cover return granularity or the external-source semantics implied by 'NHTSA-backed'.
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, zero filler, with the capability list front-loaded ahead of the scoping caveat. The second sentence is dense but carries distinct meaning, so little is wasted.
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?
With a full output schema, 100% parameter coverage, and read-only annotations, the description only needs to frame the data family and the YMM-scoping constraint — which it does. The one gap is a lack of explicit routing versus sibling tools such as resolve_vehicle, but the core call context is complete.
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%, so the schema fully documents the VIN-vs-YMM identity paths, optional refinements (trim, engine, drivetrain), configuration_id, and limit. The description adds no parameter-level syntax or defaults, 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?
The description names a specific resource set (NHTSA recalls, complaints, investigations, manufacturer communications, safety ratings), which clearly distinguishes it topically from siblings like get_vehicle_efficiency, get_vehicle_fitment, and get_vehicle_specs. The verb 'Use this for' is a usage cue rather than a crisp action verb, but the data categories are concrete enough that an agent knows what it retrieves.
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?
The opening 'Use this for available NHTSA-backed...' signals when to select the tool, and its topic contrast against the other get_vehicle_* siblings is implied. However, it never names an alternative explicitly, gives no precedence rule against resolve_vehicle, and states no exclusions, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vehicle_specsGet Vehicle SpecificationsARead-onlyInspect
Use this when engine and powertrain specifications are needed for a vehicle identified by VIN or year, make, and model. Returns normalized supported facts such as engine, displacement, cylinders, horsepower, transmission, drivetrain, and fuel type only after identity resolves safely.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | No | Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model. | |
| make | No | Vehicle make. Required with year and model when VIN is not provided. | |
| trim | No | Optional identity refinement. Use only an explicitly known trim. | |
| year | No | Model year. Required with make and model when VIN is not provided. | |
| model | No | Customer-facing model family. Required with year and make when VIN is not provided. | |
| engine | No | Optional identity refinement. Use only an explicitly known engine. | |
| drivetrain | No | Optional identity refinement. Use only an explicitly known drivetrain. | |
| configuration_id | No | AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| choices | No | |
| conflicts | No | |
| fact_scope | No | |
| choice_count | No | |
| completeness | No | |
| missing_fields | No | |
| specifications | No | |
| evidence_status | No | |
| policy_withheld | No | |
| configuration_id | No | |
| agent_instruction | Yes | |
| canonical_vehicle | No | |
| resolution_status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, not open-world), so the bar is lower. The description still adds real context beyond them: results are 'normalized supported facts,' implying partial coverage, and are returned 'only after identity resolves safely,' signaling an identity-resolution gate before data is emitted.
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, both earning their place: the first front-loads the use case and identity paths, the second characterizes the output. No filler or repetition.
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 an 8-parameter tool with no required fields, an output schema, and a non-trivial identity model (VIN vs. attributes vs. configuration_id), the description covers the two identity paths and the resolution gate adequately. The NEEDS_IDENTITY-to-configuration_id retry flow is left to the schema.
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%, so every parameter including the optional trim/engine/drivetrain refinements and configuration_id is already documented. The description restates the VIN vs year/make/model identity split but adds no syntax or refinement details beyond the schema, 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 (vehicle specifications) and enumerates the returned domains: engine, displacement, cylinders, horsepower, transmission, drivetrain, fuel type. The 'engine and powertrain' scoping implicitly separates it from siblings like get_vehicle_safety or get_vehicle_efficiency, but no sibling is named explicitly.
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?
'Use this when engine and powertrain specifications are needed' gives a clear triggering condition, and it names the two accepted identity paths (VIN, or year/make/model). There is no exclusion guidance or explicit reference to resolve_vehicle when identity is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_vehicleResolve Vehicle IdentityARead-onlyInspect
Use this when identifying a vehicle from a full VIN or from year, make, and model with optional configuration refinements. Returns MATCHED_SINGLE, NEEDS_IDENTITY, or NO_MATCH and never silently chooses among legitimate configurations.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | No | Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model. | |
| make | No | Vehicle make. Required with year and model when VIN is not provided. | |
| trim | No | Optional identity refinement. Use only an explicitly known trim. | |
| year | No | Model year. Required with make and model when VIN is not provided. | |
| model | No | Customer-facing model family. Required with year and make when VIN is not provided. | |
| engine | No | Optional identity refinement. Use only an explicitly known engine. | |
| drivetrain | No | Optional identity refinement. Use only an explicitly known drivetrain. | |
| configuration_id | No | AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| choices | No | |
| conflicts | No | |
| fact_scope | No | |
| choice_count | No | |
| completeness | No | |
| missing_fields | No | |
| evidence_status | No | |
| configuration_id | No | |
| agent_instruction | Yes | |
| canonical_vehicle | No | |
| resolution_status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the bar is lower; the description adds genuinely new behavior: the three outcome codes (MATCHED_SINGLE, NEEDS_IDENTITY, NO_MATCH) and the guarantee that it 'never silently chooses among legitimate configurations.' That disambiguation contract is exactly the kind of context annotations cannot convey.
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 usage trigger and followed by the outcome contract. No filler, no restatement of the title, and nothing an agent must skip over before acting.
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?
An output schema exists, so return shapes need not be spelled out, yet the description still surfaces the three outcome states, which is the key decision input for the agent. Combined with 100% schema coverage and explicit conditional requirements on the parameters, only the multi-step NEEDS_IDENTITY resolution loop is left implicit.
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 each parameter already documents its role and the VIN-vs-YMM conditional requirement, so the schema does the heavy lifting. The description adds no syntax, formatting, or refinement guidance (e.g. how trim/engine strings are matched) beyond what the schema already says.
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?
The description states a specific verb+resource ('identifying a vehicle') and enumerates the two identity paths (full VIN, or year/make/model with refinements). That is clearly distinct from the sibling retrieval tools (specs, safety, efficiency, fitment), but the description never names or contrasts a sibling explicitly, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when identifying a vehicle...' gives a clear triggering condition and the acceptable input shapes. It also implies the follow-up flow via configuration_id ('returned by a prior NEEDS_IDENTITY response'), but it stops short of stating when NOT to use this tool or which sibling to pick instead for lookups like specs or fitment.
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.
5 tool updates
- Changed
get_vehicle_efficiency9 fields changed- added
Input schema / properties / configuration_id / descriptionAdded value: +"AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response." - added
Input schema / properties / drivetrain / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known drivetrain." - added
Input schema / properties / engine / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known engine." - added
Input schema / properties / make / descriptionAdded value: +"Vehicle make. Required with year and model when VIN is not provided." - added
Input schema / properties / model / descriptionAdded value: +"Customer-facing model family. Required with year and make when VIN is not provided." - added
Input schema / properties / trim / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known trim." - changed
Input schema / properties / vin / descriptionPrevious value: -"17-character VIN"New value: +"Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model." - added
Input schema / properties / year / descriptionAdded value: +"Model year. Required with make and model when VIN is not provided." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "agent_instruction": { + "type": "string" + }, + "candidates": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "canonical_vehicle": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "make": { + "type": "string" + }, + "model": { + "type": "string" + }, + "trim": { + "type": [ + "string", + "null" + ] + }, + "year": { + "type": [ + "number", + "string" + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "choice_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "choices": { + "items": { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "evidence_status": { + "type": "string" + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "trim": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "configuration_id" + ], + "type": "object" + }, + "type": "array" + }, + "completeness": { + "type": "string" + }, + "configuration_id": { + "type": [ + "number", + "null" + ] + }, + "conflicts": { + "items": {}, + "type": "array" + }, + "efficiency": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "annual_fuel_cost": { + "type": "number" + }, + "city_mpg": { + "type": "number" + }, + "city_mpge": { + "type": "number" + }, + "co2_grams_per_mile": { + "type": "number" + }, + "combined_mpg": { + "type": "number" + }, + "combined_mpge": { + "type": "number" + }, + "electric_range_miles": { + "type": "number" + }, + "fuel_type": { + "type": "string" + }, + "highway_mpg": { + "type": "number" + }, + "highway_mpge": { + "type": "number" + }, + "phev_blended_range_miles": { + "type": "number" + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "error": { + "additionalProperties": {}, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code" + ], + "type": "object" + }, + "evidence_status": { + "type": "string" + }, + "fact_scope": { + "type": "string" + }, + "missing_fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "resolution_status": { + "enum": [ + "INVALID_INPUT", + "MATCHED_SINGLE", + "NEEDS_IDENTITY", + "NO_MATCH", + "UNAVAILABLE", + "SOURCE_UNAVAILABLE" + ], + "type": "string" + } + }, + "required": [ + "resolution_status", + "agent_instruction" + ], + "type": "object" +}
- Changed
get_vehicle_fitment9 fields changed- added
Input schema / properties / configuration_id / descriptionAdded value: +"AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response." - added
Input schema / properties / drivetrain / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known drivetrain." - added
Input schema / properties / engine / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known engine." - added
Input schema / properties / make / descriptionAdded value: +"Vehicle make. Required with year and model when VIN is not provided." - added
Input schema / properties / model / descriptionAdded value: +"Customer-facing model family. Required with year and make when VIN is not provided." - added
Input schema / properties / trim / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known trim." - changed
Input schema / properties / vin / descriptionPrevious value: -"17-character VIN"New value: +"Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model." - added
Input schema / properties / year / descriptionAdded value: +"Model year. Required with make and model when VIN is not provided." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "agent_instruction": { + "type": "string" + }, + "canonical_vehicle": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "make": { + "type": "string" + }, + "model": { + "type": "string" + }, + "trim": { + "type": [ + "string", + "null" + ] + }, + "year": { + "type": [ + "number", + "string" + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "choice_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "choices": { + "items": { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "evidence_status": { + "type": "string" + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "trim": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "configuration_id" + ], + "type": "object" + }, + "type": "array" + }, + "completeness": { + "type": "string" + }, + "configuration_id": { + "type": [ + "number", + "null" + ] + }, + "conflicts": { + "items": {}, + "type": "array" + }, + "error": { + "additionalProperties": {}, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code" + ], + "type": "object" + }, + "evidence_status": { + "type": "string" + }, + "fact_scope": { + "type": "string" + }, + "fitment": { + "additionalProperties": {}, + "properties": { + "bolt_pattern": { + "additionalProperties": {}, + "properties": { + "evidence": { + "additionalProperties": {}, + "properties": { + "evidence_status": { + "type": "string" + }, + "fact_scope": { + "type": "string" + } + }, + "type": "object" + }, + "facts": { + "additionalProperties": {}, + "properties": { + "bolt_pattern": { + "description": "Normalized wheel bolt pattern / PCD.", + "type": "string" + }, + "center_bore": { + "description": "Center bore when individually unambiguous.", + "type": "string" + }, + "offset": { + "description": "Wheel offset or range when individually unambiguous.", + "type": "string" + }, + "thread_size": { + "description": "Thread or lug size when individually unambiguous.", + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "values": { + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "tires": { + "additionalProperties": {}, + "properties": { + "evidence": { + "additionalProperties": {}, + "properties": { + "evidence_status": { + "type": "string" + }, + "fact_scope": { + "type": "string" + } + }, + "type": "object" + }, + "facts": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "values": { + "description": "Available normalized OEM tire-size values.", + "items": {}, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "missing_fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "policy_withheld": { + "items": { + "additionalProperties": {}, + "properties": { + "category": { + "type": "string" + }, + "policy_state": { + "type": "string" + } + }, + "required": [ + "category", + "policy_state" + ], + "type": "object" + }, + "type": "array" + }, + "resolution_status": { + "enum": [ + "INVALID_INPUT", + "MATCHED_SINGLE", + "NEEDS_IDENTITY", + "NO_MATCH", + "UNAVAILABLE", + "SOURCE_UNAVAILABLE" + ], + "type": "string" + } + }, + "required": [ + "resolution_status", + "agent_instruction" + ], + "type": "object" +}
- Changed
get_vehicle_safety9 fields changed- added
Input schema / properties / configuration_id / descriptionAdded value: +"AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response." - added
Input schema / properties / drivetrain / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known drivetrain." - added
Input schema / properties / engine / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known engine." - added
Input schema / properties / make / descriptionAdded value: +"Vehicle make. Required with year and model when VIN is not provided." - added
Input schema / properties / model / descriptionAdded value: +"Customer-facing model family. Required with year and make when VIN is not provided." - added
Input schema / properties / trim / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known trim." - changed
Input schema / properties / vin / descriptionPrevious value: -"17-character VIN"New value: +"Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model." - added
Input schema / properties / year / descriptionAdded value: +"Model year. Required with make and model when VIN is not provided." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "agent_instruction": { + "type": "string" + }, + "canonical_vehicle": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "make": { + "type": "string" + }, + "model": { + "type": "string" + }, + "trim": { + "type": [ + "string", + "null" + ] + }, + "year": { + "type": [ + "number", + "string" + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "choice_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "choices": { + "items": { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "evidence_status": { + "type": "string" + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "trim": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "configuration_id" + ], + "type": "object" + }, + "type": "array" + }, + "completeness": { + "type": "string" + }, + "configuration_id": { + "type": [ + "number", + "null" + ] + }, + "conflicts": { + "items": {}, + "type": "array" + }, + "error": { + "additionalProperties": {}, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code" + ], + "type": "object" + }, + "evidence_status": { + "type": "string" + }, + "fact_scope": { + "type": "string" + }, + "missing_fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "resolution_status": { + "enum": [ + "INVALID_INPUT", + "MATCHED_SINGLE", + "NEEDS_IDENTITY", + "NO_MATCH", + "UNAVAILABLE", + "SOURCE_UNAVAILABLE" + ], + "type": "string" + }, + "safety": { + "additionalProperties": {}, + "properties": { + "communications": { + "additionalProperties": {}, + "properties": { + "completeness": { + "type": "string" + }, + "count": { + "type": "number" + }, + "freshness": {}, + "records": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "scope": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "type": "object" + }, + "complaints": { + "additionalProperties": {}, + "properties": { + "completeness": { + "type": "string" + }, + "count": { + "type": "number" + }, + "freshness": {}, + "records": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "scope": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "type": "object" + }, + "investigations": { + "additionalProperties": {}, + "properties": { + "completeness": { + "type": "string" + }, + "count": { + "type": "number" + }, + "freshness": {}, + "records": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "scope": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "type": "object" + }, + "recalls": { + "additionalProperties": {}, + "properties": { + "completeness": { + "type": "string" + }, + "count": { + "type": "number" + }, + "freshness": {}, + "records": { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "scope": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "type": "object" + }, + "safety_ratings": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "source_errors": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "source", + "code" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "resolution_status", + "agent_instruction" + ], + "type": "object" +}
- Changed
get_vehicle_specs9 fields changed- added
Input schema / properties / configuration_id / descriptionAdded value: +"AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response." - added
Input schema / properties / drivetrain / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known drivetrain." - added
Input schema / properties / engine / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known engine." - added
Input schema / properties / make / descriptionAdded value: +"Vehicle make. Required with year and model when VIN is not provided." - added
Input schema / properties / model / descriptionAdded value: +"Customer-facing model family. Required with year and make when VIN is not provided." - added
Input schema / properties / trim / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known trim." - changed
Input schema / properties / vin / descriptionPrevious value: -"17-character VIN"New value: +"Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model." - added
Input schema / properties / year / descriptionAdded value: +"Model year. Required with make and model when VIN is not provided." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "agent_instruction": { + "type": "string" + }, + "canonical_vehicle": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "make": { + "type": "string" + }, + "model": { + "type": "string" + }, + "trim": { + "type": [ + "string", + "null" + ] + }, + "year": { + "type": [ + "number", + "string" + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "choice_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "choices": { + "items": { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "evidence_status": { + "type": "string" + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "trim": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "configuration_id" + ], + "type": "object" + }, + "type": "array" + }, + "completeness": { + "type": "string" + }, + "configuration_id": { + "type": [ + "number", + "null" + ] + }, + "conflicts": { + "items": {}, + "type": "array" + }, + "error": { + "additionalProperties": {}, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code" + ], + "type": "object" + }, + "evidence_status": { + "type": "string" + }, + "fact_scope": { + "type": "string" + }, + "missing_fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "policy_withheld": { + "items": { + "additionalProperties": {}, + "properties": { + "category": { + "type": "string" + }, + "policy_state": { + "type": "string" + } + }, + "required": [ + "category", + "policy_state" + ], + "type": "object" + }, + "type": "array" + }, + "resolution_status": { + "enum": [ + "INVALID_INPUT", + "MATCHED_SINGLE", + "NEEDS_IDENTITY", + "NO_MATCH", + "UNAVAILABLE", + "SOURCE_UNAVAILABLE" + ], + "type": "string" + }, + "specifications": { + "additionalProperties": { + "additionalProperties": {}, + "properties": { + "evidence": { + "additionalProperties": {}, + "properties": { + "evidence_status": { + "type": "string" + }, + "fact_scope": { + "type": "string" + } + }, + "type": "object" + }, + "facts": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "values": { + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "resolution_status", + "agent_instruction" + ], + "type": "object" +}
- Changed
resolve_vehicle9 fields changed- added
Input schema / properties / configuration_id / descriptionAdded value: +"AUTO411 configuration identifier returned by a prior NEEDS_IDENTITY response." - added
Input schema / properties / drivetrain / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known drivetrain." - added
Input schema / properties / engine / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known engine." - added
Input schema / properties / make / descriptionAdded value: +"Vehicle make. Required with year and model when VIN is not provided." - added
Input schema / properties / model / descriptionAdded value: +"Customer-facing model family. Required with year and make when VIN is not provided." - added
Input schema / properties / trim / descriptionAdded value: +"Optional identity refinement. Use only an explicitly known trim." - changed
Input schema / properties / vin / descriptionPrevious value: -"17-character VIN"New value: +"Full 17-character VIN. Use VIN by itself as the identity path, or omit it and provide year, make, and model." - added
Input schema / properties / year / descriptionAdded value: +"Model year. Required with make and model when VIN is not provided." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "agent_instruction": { + "type": "string" + }, + "canonical_vehicle": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "make": { + "type": "string" + }, + "model": { + "type": "string" + }, + "trim": { + "type": [ + "string", + "null" + ] + }, + "year": { + "type": [ + "number", + "string" + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "choice_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "choices": { + "items": { + "additionalProperties": {}, + "properties": { + "configuration_id": { + "type": "number" + }, + "drivetrain": { + "type": [ + "string", + "null" + ] + }, + "engine": { + "type": [ + "string", + "null" + ] + }, + "evidence_status": { + "type": "string" + }, + "generation": { + "type": [ + "string", + "null" + ] + }, + "identity": { + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "trim": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "configuration_id" + ], + "type": "object" + }, + "type": "array" + }, + "completeness": { + "type": "string" + }, + "configuration_id": { + "type": [ + "number", + "null" + ] + }, + "conflicts": { + "items": {}, + "type": "array" + }, + "error": { + "additionalProperties": {}, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code" + ], + "type": "object" + }, + "evidence_status": { + "type": "string" + }, + "fact_scope": { + "type": "string" + }, + "missing_fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "resolution_status": { + "enum": [ + "INVALID_INPUT", + "MATCHED_SINGLE", + "NEEDS_IDENTITY", + "NO_MATCH", + "UNAVAILABLE", + "SOURCE_UNAVAILABLE" + ], + "type": "string" + } + }, + "required": [ + "resolution_status", + "agent_instruction" + ], + "type": "object" +}
5 tool updates
- First observed
get_vehicle_efficiency - First observed
get_vehicle_fitment - First observed
get_vehicle_safety - First observed
get_vehicle_specs - First observed
resolve_vehicle
Publisher details
- Operator
- AUTO411 / 411specs.com · Publisher source
- Operator website
- https://411specs.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- Not available
- Trust center
- Not available
- Restrictions
- Requires an AUTO411 MCP credential for tool calls. Public tool discovery is available without authentication. AUTO411 MCP is $39/month.
Related MCP Connectors
Vehicle data for AI: VIN decoder, automotive specs, stolen checks, valuation and way more.
VIN decoding and European vehicle data for automotive workflows.
Decode any VIN and check open NHTSA safety recalls. Free official US government data, no auth.
Free US VIN decoding and research; VIN-optional market appraisals via a separate pilot endpoint.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables access to comprehensive vehicle information including VIN decoding, license plate OCR, vehicle history checks (theft, title, salvage records), market valuations, specifications, and warranty data for vehicles across North America and Europe.611MIT
- AlicenseAqualityAmaintenanceDecode VINs, look up specs, history, recalls, market value, and OBD codes. Recognize license plates and VINs from images. Access comprehensive vehicle data by year, make, and model to power automotive workflows.121MIT

Vincario MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables AI assistants to decode VINs, check stolen vehicle databases, and retrieve market valuations through natural language.2-- AlicenseNot gradedqualityDmaintenanceProvides comprehensive vehicle reports by aggregating data from multiple public sources to decode VINs, check recalls, and view safety ratings. It enables users to validate VINs locally and retrieve technical specifications, fuel economy, and vehicle photos without requiring API keys.16 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.