Customer goal or server-issued references
Explain, compare or verify exact records
Explain, compare or verify exact records
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
nullrequestCatalogSelectionInputrequired
actionbrowse | explain | compare | verifyoptional
"explain"4 allowed valuesoffsetintegeroptional
0min 0max 10000qualifiersobjectoptional
recordsCatalogRecordReference[]optional
record_idstringrequired
result_set_idstringrequired
requested_fieldsstring[]optional
result_set_idstring | nulloptional
nullvehicleComparisonVehicle | nulloptional
null{
"request": {
"action": "explain",
"records": [
{
"result_set_id": "11111111-1111-4111-8111-111111111111",
"record_id": "server-issued-record-id"
}
]
}
} Compare the two package variants I selectedWhat each upstream call needs—and earns.
Conditional calls are labeled. Validation describes the exact rule that allows evidence to advance to the next stage.
getAutoCareVersionResolve 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
evaluate_selectionpoc/opticat-mcp-v2/src/opticat_mcp_v2/result_sets.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.