Obtain a client-credentials token with the product.compact:read scope as a prerequisite
Call the Locations API with a ZIP code to retrieve nearby store location IDs; store the locationId of the store the user has selected
Issue a GET request to the Products API search endpoint, passing the search term as a query parameter and the locationId to scope results to that store's inventory and pricing
Parse the response to extract product identifiers, descriptions, images, sizes, and per-store price and availability data
Implement pagination using the limit and start (or equivalent cursor) parameters to retrieve additional result pages when the product count exceeds the page size
Cache product results with a short TTL to avoid redundant API calls; re-query when the user changes their selected store
Known gotchas
Product availability and pricing in the Products API response are scoped to the requested locationId — omitting or using the wrong locationId may return stale or incorrect prices
Some product fields are only present in the full response shape; ensure your app has the product.full:read scope if you need complete nutritional or aisle data, not just product.compact:read
Search relevance is managed by Kroger's catalog — very specific UPCs may not surface in keyword searches; use a UPC/barcode lookup path if available to your app tier
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp