The six tools
Six tools, named and shaped after the Universal Commerce Protocol shopping service (source/services/shopping/mcp.openrpc.json). They are not yet schema-validated against the UCP JSON schemas. Variant ids look like mouser:<sku> or digikey:<sku>. One distributor per checkout.
search_catalog
Search components by MPN or keyword across Mouser and DigiKey, priced at your own distributor account (one install is one company). Every match comes back with its manufacturer: an MPN can be made by several, and they are never merged into one row.
catalog.query: MPN or keywordcatalog.filters.categories: optional listcatalog.pagination.limit: 1 to 50
get_product
Product detail: stock, minimum order quantity, order multiple and price breaks at your pricing.
catalog.id: an MPN or a variant idcatalog.manufacturer: optional, for an MPN that more than one manufacturer makes
An MPN that resolves to more than one manufacturer is not guessed. The tool returns the error ambiguous_mpn with manufacturers and every matching offer (variant id, stock, minimum order quantity, price). Repeat the call with catalog.manufacturer, or use a variant id.
create_checkout
Create a checkout from variant ids and quantities.
checkout.line_items[]: each withitem.id, optionalitem.manufacturerandquantity(integer, 1 or more)
A bare MPN that more than one manufacturer makes is refused with ambiguous_mpn, as above; add item.manufacturer or use a variant id. A quantity that is not a multiple of the part's order multiple (for example a 12000 piece reel) is refused with invalid_quantity_multiple and a suggested_quantity, the next valid one.
update_checkout
Replace the line items and re-price. Use it after a failed re-quote. The same rules as create_checkout apply.
id: the checkout idcheckout.line_items[]: as above
complete_checkout
Place the order. Over your approval threshold it waits for a human.
id: the checkout idmeta["idempotency-key"]or anIdempotency-Keyheader: required
Over the threshold the checkout reports complete_in_progress and the order is pending_approval. Poll get_order.
get_order
Order state, including pending_approval and confirmed, and the distributor's order number.
id: the order id