Customer goal or server-issued references
Build a category-by-category parts job
Build a category-by-category parts job
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 inputScoped request- validated evidence
02 gateCatalog evidenceExact records, source scope and expiry
- validated evidence
03 outputReviewable decisionFull UI records and bounded model context
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.
interactionInteractionContext | nulloptional
nullrequestCatalogJobInputrequired
actionpropose | searchoptional
"propose"2 allowed valuesbase_vehicle_idinteger | nulloptional
nullbase_vehicle_region_idinteger | nulloptional
nullbrandsstring[]optional
categoriesstring[]required
Categories named or confirmed by the customer; proposals are not repair requirements
makestring | nulloptional
nullmake_hintstring | nulloptional
nullmax_resultsintegeroptional
100min 1max 200max_results_per_categoryintegeroptional
50min 1max 100modelstring | nulloptional
nullmodel_hintstring | nulloptional
nullnamestringoptional
"Parts job"max length 120pageintegeroptional
1min 1part_typestring | nulloptional
nullqualifier_filtersobjectoptional
qualifiersQualifierSelection[]optional
typestringrequired
ACES attribute type name or API type token, such as EngineBaseId or PositionId
value_idinteger | stringrequired
ACES attribute value ID returned by a prior clarification
value_namestring | nulloptional
Optional readable label retained for answer assembly
nullsubmodelstring | nulloptional
nullyearintegerrequired
year_abbreviatedbooleanoptional
false{
"request": {
"year": 2018,
"model": "Mustang",
"categories": [
"Disc Brake Pad Set",
"Disc Brake Rotor"
],
"action": "propose"
}
} Propose the categories for a brake job on a 2018 MustangWhat 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 requested category or check the captured source version when the action needs it.- Requires
- authorized session · validated request
- Produces
- captured evidence · coverage
- Validation
- Page/detail reads and exact comparisons do not re-resolve part numbers.
Every important branch has a named outcome.
These are response decisions in the implemented service—not possible future behavior.
Refresh or select a valid record; never substitute a similarly numbered product.
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
nullnext_pageinteger | nulloptional
nullpages_fetchedintegeroptional
0paging_modenone | page | cursor | capped | unknownoptional
"none"5 allowed valuesreturnedintegeroptional
0source_end_reachedbooleanoptional
This response reached the known end of the source query, even when earlier pages were returned separately.
falsetotalinteger | 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[]
- Owner and expiry checked on every read
- No client-provided product facts
- Missing evidence remains unknown
- Job proposals are not repair prescriptions
search_catalog_jobpoc/opticat-mcp-v2/src/opticat_mcp_v2/jobs.pyResultStorepoc/opticat-mcp-v2/src/opticat_mcp_v2/result_store.pymcpToolForPlanlib/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
Live supplier acceptance, production storage configuration and actual native hosts require release validation
Use vendor-issued immutable revision IDs when the API supplies them.