Exact product and base vehicle language
Exact part and vehicle decision
Resolve the part and vehicle independently, retrieve filtered ACES applications, and return yes, no, conditional, or unverified without guessing through qualifier gaps.
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 inputPart + vehicle- validated evidence
02 getAutoCareSearchResultsPart identityBrand + number + category
03 getAutoCareVehicleResultsVehicle identityYear + make + model
- validated evidence
04 getAutoCarePartApplicationsFiltered applicationsOnly the resolved baseVehicleId
- validated evidence
05 gateQualifier decisionSynonyms · materiality · completeness
- validated evidence
06 outputFour-state answerYes · no · conditional · unverified
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.
requestFitmentCheckInputrequired
base_vehicle_idinteger | nulloptional
nullbase_vehicle_region_idinteger | nulloptional
nullbrandstring | nulloptional
nullmakestringrequired
modelstringrequired
part_numberstringrequired
part_typestring | nulloptional
Optional readable part-type hint (e.g. 'Engine Oil Filter'). Used to prefer the intended category when a part number exists in multiple unrelated categories; best effort, never erases evidence.
nullpart_type_idinteger | nulloptional
nullqualifiersobjectoptional
yearintegerrequired
{
"request": {
"part_number": "730-0003",
"brand": "GMB",
"year": 2013,
"make": "Chevrolet",
"model": "Impala",
"qualifiers": {}
}
} Does GMB 730-0003 fit a 2013 Chevrolet Impala?What each upstream call needs—and earns.
Conditional calls are labeled. Validation describes the exact rule that allows evidence to advance to the next stage.
getAutoCareSearchResultsResolve the exact part identity and optional readable part type.- Requires
- part_number · brand · optional part type
- Produces
- brandCode · partTypeId · identity choices
- Validation
- Whole-token product-line matching prevents GM→GMB while allowing GMB→GMB North America.
getAutoCareVehicleResultsResolve make and model to one baseVehicleId.- Requires
- year · make · model
- Produces
- makeId · baseVehicleId
- Validation
- Caller-provided IDs are later cross-checked against returned application identity.
getAutoCarePartApplicationsRetrieve applications filtered to the resolved base vehicle.- Requires
- brandCode · partNumber · baseVehicleId
- Produces
- matching rows · qualifiers · paging state
- Validation
- The decision engine canonicalizes keys/values and requires completeness before no.
getAutoCarePartDetailsEnrich a completed fitment decision with product details.- Requires
- resolved product
- Produces
- attributes · assets · lifecycle
- Validation
- An enrichment failure adds a warning and never erases the fitment decision.
Every important branch has a named outcome.
These are response decisions in the implemented service—not possible future behavior.
Exact application evidence supports the requested configuration.
Name every blocking qualifier and the values the catalog records.
List unresolved or unevaluated qualifier families.
A definitive no is forbidden.
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[]
- Part and vehicle resolve independently
- Unknown qualifier types default to material
- No definitive no on truncated evidence
- Detail enrichment cannot overwrite the decision
verify_part_fitmentpoc/opticat-mcp-v2/src/opticat_mcp_v2/service.py_fitment_decisionpoc/opticat-mcp-v2/src/opticat_mcp_v2/service.pyfitmentQualifierslib/mcp.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
The material/informational qualifier table still needs domain sign-off
- 02
The repaired GMB path needs a current live retest
Let users inspect exactly which requested and catalog qualifier values drove the state.
Verify a parts list against one saved vehicle while retaining an independent decision per product.