Typed client for the Shopify Global Catalog (UCP) — agent-ready, keyless by default. Provides three catalog tools: search, lookup, and get_product.
catalog-kit exposes 3 read-only tools with basic naming (verb_noun pattern) and minimal descriptions. Tool names are clear (searchCatalog, lookupCatalog, getProduct), but descriptions are terse (10-50 chars) and lack context on when to use each tool or what they return. Input schemas are present but incomplete: parameters lack type constraints (enums, ranges), and descriptions are generic. No output schemas documented. Error handling and recovery guidance absent. The server appears to be a TypeScript library wrapper around Shopify's UCP API, not a full MCP server implementation, transport mechanism is unknown, and no evidence of MCP protocol compliance (no _meta, no tool annotations, no structured error responses).
Run a `get_product` call for a single product.
Run a `lookup_catalog` call for 1–50 product ids.
Run a `search_catalog` call from a {@link CatalogConfig}.
Descriptions are too brief (10 - 50 chars) and lack context. 'Run a search_catalog call' does not explain when to use searchCatalog vs lookupCatalog, what filters are available, or what the response contains.
Input schemas lack type constraints and enums. 'config' parameter in searchCatalog is typed as 'object' with no nested schema; 'selected' and 'preferences' in getProduct are untyped objects. LLMs cannot infer valid structure.
No output schemas documented. LLMs do not know what fields searchCatalog, lookupCatalog, or getProduct return, making it impossible to plan downstream tool calls or extract required data.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If a search fails or a product ID is invalid, the LLM receives no actionable error message or next steps.
Transport mechanism unknown. No evidence of MCP protocol implementation (no _meta, no tool annotations, no structured error responses). Appears to be a library, not an MCP server.