Local syntax and forbidden-character check
VIN decode to optional part search
Validate and decode a VIN, preserve every returned configuration detail, require selection when several vehicles resolve, and optionally bridge into the same bounded part taxonomy/search path.
Follow the implementation from request to evidence.
Every node corresponds to a real resolver, operation, validation boundary, or response surface in the current code.
01 input17-character VIN- validated evidence
02 getAutoCareVehiclesByVINVIN serviceBase vehicle(s) + configuration metadata
- validated evidence
03 gateVehicle selectionOne identity or clarification
- validated evidence
04 gateOptional bridgeStop after decode or continue to part type
- part requested
05 getAutoCareSearchResultsPart taxonomyResolve readable request
- validated evidence
06 getAutoCareSearchResultsVehicle-scoped searchPaged parts + applications
- validated evidence
07 outputDecode or candidatesVIN masked in persistence
The exact arguments the MCP server accepts.
This schema is generated from the registered Python tool. Required fields, defaults, nested models, and constraints are not maintained by hand.
requestVinSearchInputrequired
attribute_filtersAttributeFilter[]optional
namestringrequired
PAdb attribute name, e.g. 'Height'
tolerancenumber | nulloptional
Optional relative tolerance override for numeric comparison (default 0.01)
nullunitstring | nulloptional
Unit of the supplied value, e.g. 'mm' or 'in'
nullvaluestring | number | integerrequired
Required value; numeric values compare unit-aware
base_vehicle_idinteger | nulloptional
nullbrandsstring[]optional
Optional catalog brand names or codes
max_resultsintegeroptional
50min 1max 100part_typestring | nulloptional
nullqualifier_filtersobjectoptional
vinstringrequired
{
"request": {
"vin": "4T1BK1EB5GU235558",
"part_type": "Cabin Air Filter",
"max_results": 50
}
} hvac filter for VIN 4T1BK1EB5GU235558What each upstream call needs—and earns.
Conditional calls are labeled. Validation describes the exact rule that allows evidence to advance to the next stage.
getAutoCareVehiclesByVINDecode a locally validated 17-character VIN.- Requires
- VIN
- Produces
- base vehicles · region · configuration details
- Validation
- I/O/Q and length are checked locally; entitlement/unavailable/not-found remain separate outcomes.
getAutoCareSearchResultsResolve an optional readable part type in vehicle scope.- Requires
- decoded baseVehicleId · part_type
- Produces
- partTypeId · taxonomy choices
- Validation
- Ambiguity pauses the continuation instead of guessing.
getAutoCareSearchResultsRetrieve paged parts for the selected decoded vehicle.- Requires
- baseVehicleId · partTypeId
- Produces
- parts · fitments · completeness
- Validation
- No-linkage flags and truncated results remain visible.
Every important branch has a named outcome.
These are response decisions in the implemented service—not possible future behavior.
No upstream call occurs.
Return each baseVehicleId and preserve decode metadata.
Return the decoded identity only.
Taxonomy ambiguity can still pause the flow.
The VIN does not grant permission to overstate completeness.
One shared schema, highlighted for this tool.
Bright fields are populated by this path. Dimmed fields remain part of CatalogResponse but are not a normal output of this tool.
statusResultStatusrequired
summarystringrequired
reason_codeReasonCode | null
queryobject
metadataobject
completenessCompleteness
next_cursorstring | nulloptional
nullpages_fetchedintegeroptional
0paging_modenone | page | cursor | capped | unknownoptional
"none"5 allowed valuesreturnedintegeroptional
0totalinteger | nulloptional
nulltruncatedbooleanoptional
falsevehiclesVehicleIdentity[]
partsPartRecord[]
relationshipsRelationshipRecord[]
relationship_outcomeRelationshipOutcome | null
fitmentFitmentDecision | null
interchange_validationsInterchangeValidation[]
clarificationClarification | null
pending_clarificationsClarification[]
Every open clarification dimension in one round (clarification stays = the first). Ask them together instead of one round trip per dimension.
warningsstring[]
errorCatalogError | null
evidenceEvidenceRecord[]
- Invalid syntax is distinct from entitlement failure
- Multiple decoded vehicles require selection
- VIN storage is masked
- Unreturned engine/trim data is never promised
decode_vin_and_searchpoc/opticat-mcp-v2/src/opticat_mcp_v2/service.pynormalize_vin_vehiclepoc/opticat-mcp-v2/src/opticat_mcp_v2/normalizers.pyredactOperationalDatalib/safe-details.tsWhat is known, and what could become possible.
Current gaps stay separate from product concepts so the visual never implies that an idea has already shipped.
- 01
There is no post-decode exact engine/submodel selection
- 02
The optional part continuation does not yet use the full material-qualifier gate
Turn decoded engine, body, drive, and region evidence into a visible completeness profile.
Reuse a verified VIN-derived identity across searches without repeatedly exposing the VIN.