Opticat item search MCP reviewPhase 1 discovery, validation, and path forward
Before and after architecture

Same catalog. A stronger boundary between data and answer.

Customers ask for an outcome, not an API operation. The language layer identifies the task; the MCP service retrieves and validates OptiCat evidence; the assistant explains only what that evidence supports.

Sequence diagram

How a customer sentence becomes a supported answer

The model interprets language. The service establishes catalog truth. Keeping those responsibilities separate is what makes the experience both fast and dependable.

  1. 01 · Customer
    Ask for an outcome

    Use normal language, catalog terminology, shorthand, or a follow-up question.

    The wording is input, not catalog proof.
  2. 02 · Host model
    Interpret intent and entities

    Normalize synonyms, formatting, and low-risk language variation; identify what remains ambiguous.

    The model may interpret the request but may not create a vehicle, part, fitment, or relationship fact.
  3. 03 · Task-level MCP
    Choose the customer task

    Call vehicle search, VIN, fitment, interchange, supersession, or details—not a raw endpoint-shaped workflow.

    Tool selection follows intent; tool output remains typed and reviewable.
  4. 04 · OptiCat adapter
    Orchestrate API operations

    Resolve identity, retrieve required records and pages, and classify entitlement, empty, partial, and unavailable states.

    Only current entitled API responses establish catalog truth.
  5. 05 · Evidence gate
    Preserve and validate

    Keep totals, qualifiers, lifecycle, relationships, assets, warnings, and evidence attached to the record they govern.

    Every firm claim needs matching evidence; incomplete retrieval cannot prove absence.
  6. 06 · Assistant
    Answer, clarify, or abstain

    Explain supported results quickly, ask one material question, or state why the evidence is insufficient.

    The final answer cannot add catalog claims that were absent from the tool result.

Data flow diagram

What may be interpreted
  • Intent and requested journey
  • Synonyms and normal customer wording
  • Punctuation and low-risk formatting
  • Which returned ambiguity needs a question
The model can translate the request. It cannot supply catalog truth.

API interaction diagram

What requires current evidence
  • Vehicle and exact part identity
  • Fitment, qualifiers, and application notes
  • Interchange, supersession, and lifecycle
  • Completeness, entitlement, assets, and errors
A task-level MCP call may orchestrate several OptiCat operations, pages, and checks before answering.
NL
Different wording, the same supported task

Users do not need to know endpoint names, brand codes, base-vehicle IDs, or call order.

brake pads for a 97 Mustang
need frt pads, stang 97
disc pads for my 1997 Ford Mustang
Task-level MCPsearch_parts_for_vehicle

Resolve the same vehicle/part task, then ask only for a returned qualifier that changes the products.

what cars use Bosch 9619?
applications for 9619 by Bosch
will this plug fit my car?
Task-level MCPget_part_fitments / verify_part_fitment

Resolve exact identity, preserve applications and conditions, then answer yes, no, conditional, or unverified.

what replaces GM 19210284?
is there a newer number?
show a successor and aftermarket equivalents
Task-level MCPlookup_part_supersession / lookup_part_interchanges

Keep lifecycle replacement and interchange as separate evidence-backed relationships.

Architecture diagram

The answer boundary moves into the service

The catalog foundation stays. Identity, completeness, errors, and evidence become portable controls that every host receives.

Three states, three different evidence labels

Original is reconstructed from supplied source and deployment artifacts. Current is implemented, with tool-level proof shown below. Customer-trial controls are planned and are not presented as production-ready.

Original POCA sound connection with a lossy answer boundary
Reconstructed from source

Python, FastMCP, and direct OptiCat access were sensible choices. The risk appeared after retrieval, where deployment-specific tools shortened rich catalog responses into prose for the host model to interpret.

  1. 01
    Host agent

    A separately installed prompt chose and sequenced tools.

  2. 02
    Drifting tool surfaces

    16 FastMCP tools, 16 Lambda schemas, and a seven-tool gateway binding.

  3. 03
    Tool-local request logic

    Each function assembled OptiCat calls and selected fields itself.

  4. 04
    OptiCat operations

    The source catalog often returned richer identity and fitment data.

  5. 05
    Prose result

    Caps, qualifiers, lifecycle, and error distinctions could disappear before the model answered.

Evidence boundary

The model had to decide whether an identity was exact, a list was complete, and the evidence was sufficient.

Supplied server, host prompt, Lambda adapter, gateway schema, and deployment files
Verification-first POCOne structured contract around catalog evidence
Implemented today

The current web experience routes a customer request through a versioned remote MCP contract. Identity, paging, qualifiers, relationships, and failure classes are handled before the model explains the result.

  1. 01
    Question + context

    The planner extracts intent and carries customer-selected identities across turns.

  2. 02
    Health + contract gate

    The web app checks reachability, commit, and contract compatibility.

  3. 03
    Streamable HTTP MCP

    The primary path calls one of eight task-shaped, read-only tools.

  4. 04
    Resolution + API budget

    Shared resolvers and the OptiCat client own exact identity, calls, paging, and time limits.

  5. 05
    Normalization + validation

    The service preserves qualifiers, lifecycle, typed relationships, errors, and completeness.

  6. 06
    Qualified answer + trace

    Structured evidence becomes the customer answer and a redacted operational record.

Evidence boundary

A bounded direct-adapter recovery path is used only when MCP transport fails, a server credential exists, and the request still has time; otherwise the failure remains explicit.

Current query route, TypeScript MCP client, eight-tool Python service, contracts, and live proof
Customer-trial architectureThe same verification core with operating controls
Planned — not implemented

Customer trials do not require a larger data platform. They require authorized partner access, one supported MCP surface, entitlement visibility, monitoring, release ownership, and a controlled correction loop.

  1. 01
    Authorized partner hosts

    Named partners and approved assistants enter through scoped access.

  2. 02
    Partner + entitlement policy

    Identity, catalog scope, VIN access, and limits are known before lookup.

  3. 03
    One canonical MCP contract

    Every host sees the same versioned tools and evidence rules.

  4. 04
    Existing verification core

    Resolvers, adapter, normalizers, and validation gates remain the center.

  5. 05
    Operational evidence

    Version, latency, entitlement drift, failures, and releases are monitored.

  6. 06
    Support + controlled change

    Corrections have an owner, an audit trail, and a tested release path.

Evidence boundary

The future work hardens access and operation around the proven service; it does not replace OptiCat or introduce an unnecessary catalog copy.

Phase 2 and customer-trial recommendation; no production-readiness claim
Why

Why MCP is the right boundary for this catalog

MCP is useful here because the domain has exact read-only jobs, a source-of-truth API, and claims that must remain tied to returned evidence.

01

Natural language needs a bounded action layer

People ask in ordinary automotive language; MCP turns that request into a small set of exact catalog jobs instead of giving the model open-ended data access.

02

The work is naturally read-only

Search, decode, verify, and relationship lookups have clear inputs and low-risk side effects—the shape MCP tools handle well.

03

OptiCat stays the source of truth

The service calls the catalog directly. A vector database, copied inventory, or parallel retrieval platform would add drift without fixing fitment correctness.

04

One boundary can serve many hosts

The evidence rules travel with the MCP server, so a different model or interface cannot silently redefine completeness, identity, or fitment.

05

Every answer can be tested

Structured status, totals, qualifiers, warnings, and operation evidence make the path repeatable, inspectable, and suitable for a release gate.

Right-sized by design. OptiCat remains the catalog of record. The architecture does not need a vector database, a copied parts index, a workflow engine, or multiple agents to make these five journeys dependable.

Flow

Five requests, shown across all three versions

Open any journey to see the original tool path, the current MCP gates and evidence, and the operating controls required for customer trials.

01
Customer request · “brake pads for a 1997 Ford Mustang”

Vehicle → parts

Turn readable vehicle and part language into qualified, paged catalog candidates.

search_parts_for_vehicle
Original POCHost-composed prose flow
search_parts_by_vehicle
  1. 01
    Resolve by substring

    Make and model facets stopped at the first plausible match.

  2. 02
    Search one page

    The tool requested 20 parts and rendered only the first 10.

  3. 03
    Return prose

    Some facet hints survived, but IDs, continuation, and per-part evidence did not.

Current POCVerification-first MCP flow
  1. 01
    Resolve exact identities

    Vehicle and part-type resolvers return one identity or catalog-backed choices.

  2. 02
    Search with scoped filters

    Brand, attributes, ACES qualifiers, and customer selections stay in the request.

  3. 03
    Return candidates + boundary

    Parts, open qualifier dimensions, total, returned count, paging, and evidence share one contract.

Customer trialsPlanned operating flowNot implemented
  1. 01
    Apply partner scope

    Catalog entitlement and request limits are known before retrieval.

  2. 02
    Measure configuration coverage

    Trials monitor which vehicle and qualifier combinations are answered or deferred.

  3. 03
    Release against approved cases

    No change ships if it reintroduces unsupported candidates or silent truncation.

Evidence today

Vehicle IDs, part type, position, submodel, engine, paging, and completeness remain visible. The live path returned 208 matches, 50 rows, and real Sub Model choices.

02
Customer request · “hvac filter for VIN 4T1BK1EB5GU235558”

VIN → vehicle → parts

Decode one vehicle identity and continue the same request into the requested part search.

decode_vin_and_search
Original POCHost-composed prose flow
get_vehicles_by_vinsearch_parts
  1. 01
    Decode in one tool

    The host received vehicle prose from get_vehicles_by_vin.

  2. 02
    Compose a second tool

    The host had to carry the inferred identity into a general part search.

  3. 03
    Depend on host judgment

    VIN entitlement and missing configuration fields were not a shared response state.

Current POCVerification-first MCP flow
  1. 01
    Validate + classify access

    VIN syntax and key entitlement are checked without turning denial into no vehicle.

  2. 02
    Preserve the decode

    Every returned non-base-vehicle field remains in structured metadata.

  3. 03
    Continue safely

    One resolved base vehicle flows into the requested part type; multiple matches pause for clarification.

Customer trialsPlanned operating flowNot implemented
  1. 01
    Track VIN entitlement

    Partner scope changes are visible before customer requests fail.

  2. 02
    Monitor decode fidelity

    Trials compare returned configuration detail with the answer that reaches the user.

  3. 03
    Own incomplete decodes

    Support can distinguish catalog limits from code or partner configuration issues.

Evidence today

VIN status, baseVehicleId, returned configuration fields, entitlement, and part-search continuation remain distinct. The VIN decoded live to a 2016 Toyota Avalon; the repaired continuation needs retest.

03
Customer request · “What cars does Bosch 9619 fit?” · “Does GMB 730-0003 fit a 2013 Chevrolet Impala?”

Part → fitment

Support both application browsing and an exact part-plus-vehicle decision without flattening qualifiers.

get_part_fitmentsverify_part_fitment
Original POCHost-composed prose flow
get_part_applicationscheck_part_fitment_for_vehicle
  1. 01
    Retrieve applications

    The browse tool rendered the first 10 rows regardless of the requested page size.

  2. 02
    Flatten fitment

    Vehicle names and quantity survived while position, engine, notes, IDs, and paging could disappear.

  3. 03
    Let prose imply certainty

    The host had to decide whether a partial row set proved that a part fit.

Current POCVerification-first MCP flow
  1. 01
    Resolve part and vehicle

    Exact product identity and exact vehicle identity are established independently.

  2. 02
    Compare ACES evidence

    Requested qualifiers are matched with catalog synonyms; missing dimensions stay unevaluated.

  3. 03
    Return a bounded decision

    Browse returns qualified applications; verify returns yes, no, conditional, or unverified with its evidence.

Customer trialsPlanned operating flowNot implemented
  1. 01
    Calibrate negative coverage

    Customer trials measure when complete evidence is sufficient for a definitive no.

  2. 02
    Monitor qualifier drift

    Changes in position, engine, trim, or drive data become release signals.

  3. 03
    Escalate disputed fitment

    A named catalog owner adjudicates data-versus-code disagreements.

Evidence today

Applications retain vehicles, qualifiers, quantity, notes, and completeness; exact verification returns yes, no, conditional, or unverified. Bosch 9619 correctly remained partial at 50 of 93 rows.

04
Customer request · “Show interchanges for Akebono EUR1924”

Part → interchange

Preserve a useful catalog relationship without turning it into an unsafe equivalence or fitment claim.

lookup_part_interchanges
Original POCHost-composed prose flow
get_part_cross_references
  1. 01
    Accept supplied identity

    The tool required a brand code and number before reading part details.

  2. 02
    Format relationship rows

    Cross-references were returned as prose without a shared validation envelope.

  3. 03
    Leave equivalence to the host

    Interchange, compatible specification, and vehicle fitment could be conflated downstream.

Current POCVerification-first MCP flow
  1. 01
    Resolve the complete source

    Ambiguous number, brand, and product type combinations return choices first.

  2. 02
    Read typed relationships

    OE and other relationship kinds remain labeled and preserve direction.

  3. 03
    Validate bounded targets

    Category and comparable attributes are checked; vehicle application remains a separate requirement.

Customer trialsPlanned operating flowNot implemented
  1. 01
    Approve relationship policy

    Partners see which relationship kinds may support which customer language.

  2. 02
    Measure target validation

    Trials expose unvalidated candidates rather than hiding them beyond a cap.

  3. 03
    Keep fitment separate

    Release tests prevent interchange from becoming an install recommendation without vehicle proof.

Evidence today

Source identity, typed relationship, target category/specification checks, and remaining validation are returned separately. Akebono EUR1924 returned ten direct relationships in live proof.

05
Customer request · “What supersedes GM 19210284?”

Part → supersession

Explain lifecycle and directional replacement evidence without relabeling a plain interchange.

lookup_part_supersession
Original POCHost-composed prose flow
get_part_supersession
  1. 01
    Read part details

    The function pulled replaces and replacedBy arrays for a supplied identity.

  2. 02
    Format separate lists

    The host received human-readable relationship prose without shared lifecycle semantics.

  3. 03
    Handle gaps conversationally

    A missing successor could be treated like an active part or be filled from interchange evidence.

Current POCVerification-first MCP flow
  1. 01
    Resolve exact lifecycle identity

    The source part is established before any relationship claim.

  2. 02
    Traverse a bounded chain

    Replaces and replaced-by direction are preserved with cycle detection and a hop limit.

  3. 03
    Label weaker evidence

    Interchange-family evidence is a fallback only; missing explicit succession remains partial.

Customer trialsPlanned operating flowNot implemented
  1. 01
    Adjudicate lifecycle policy

    Catalog owners approve what counts as explicit replacement evidence.

  2. 02
    Monitor chain changes

    Replacement direction and cycles are checked as catalog versions move.

  3. 03
    Control customer wording

    Trials prevent candidates or plain interchanges from being called the replacement.

Evidence today

Lifecycle, replaces/replaced-by direction, explicit relationship count, fallback kind, cycle protection, and a bounded chain remain visible. The explicit live chain still needs domain-approved retest proof.

Core

Two supporting tools complete the eight-tool surface

Readiness establishes whether a lookup can be trusted; product details preserve the complete record and its resources.

Foundation · readiness and key scopeget_catalog_statusNeeds a live retest
Original

No equivalent model-facing readiness contract separated accepted access, entitlement, and upstream availability before catalog work.

Current

Probes catalog version, non-secret brand scope, and VIN entitlement, returning typed access or availability states instead of an empty catalog.

Customer trials · planned

Scheduled readiness and entitlement history warns operators before partner conversations regress.

Product intelligence · exact record and assetsget_part_detailsLive, with a known boundary
Original

The tool returned a shortened overview: three descriptions, five attributes without units, relationship counts, and no dependable asset delivery.

Current

One exact identity returns selected descriptions, attributes with units, lifecycle, typed relationships, origin, and usable part resources.

Customer trials · planned

Customer trials monitor asset availability and product-field fidelity by catalog version and partner scope.

Why

Where the design changes customer outcomes

The same six changes apply across the journey-specific flows above.

Before → after → why the change is necessaryCross-journey synthesis
Before

The host model chooses the first plausible identity

After

The resolver returns one exact identity or a small set of real choices

Why

Prevents similar part numbers, brands, trims, and product categories from being silently mixed.

Before

Each tool formats its own shortened prose

After

Every tool returns the same structured evidence and completeness envelope

Why

The model can see totals, caps, warnings, qualifiers, and what remains unknown.

Before

Fitment is inferred during conversation

After

A dedicated verification gate returns yes, no, conditional, or unverified

Why

A definitive answer is allowed only when the vehicle and application evidence support it.

Before

Unavailable, not entitled, and zero results can look alike

After

The API adapter classifies each state before the assistant responds

Why

A service problem is never described as proof that a part or vehicle does not exist.

Before

Interchange is treated as one relationship lookup

After

Identity, category, relationship, product evidence, and vehicle application are checked in sequence

Why

A catalog relationship remains useful evidence without becoming an unsafe equivalence claim.

Before

Safety depends on one host prompt

After

The MCP server enforces the evidence boundary for every host

Why

The result remains dependable when the model, interface, or deployment changes.

Inspect every current contract

The MCP Tool Atlas shows exact schemas, OptiCat operations, decision branches, live confidence, known gaps, and example requests for all eight tools.

Open the MCP Tool Atlas
Continue the storyThe path forward
View Demo