MCP Server for Shopify API, enabling interaction with store data through GraphQL API.
Server has 7 tools with explicit Zod schemas and descriptions. All tools are READ_ONLY except addCustomerTags (WRITE). Naming follows verb_noun pattern (find, list, get, add). However, descriptions are minimal (10-50 chars), parameter descriptions lack detail on constraints/formats, and output schemas are not documented. Error handling exists but is generic. No tool annotations (readOnlyHint/destructiveHint). Schemas are present but sparse, many parameters lack constraint documentation (e.g., limit ranges, enum values for sortKey are defined but not explained in description).
Add tags to a customer
Get shopify orders with advanced filtering and sorting
Get all products or search by title
Get products by their IDs
Get product variants by their IDs
Get shopify customers with pagination support
Get products from a specific collection
Descriptions are too brief (10-50 chars). Rubric baseline is 194 chars. LLMs cannot determine when/why to select tools without context on use cases, prerequisites, or return value structure.
Output schemas are not documented. Tools return formatted text via formatProduct() and formatOrder(), but LLMs cannot parse structured fields or chain results to downstream tools. No documented return type schema.
Parameter descriptions lack constraint details. 'limit' parameter has no min/max bounds stated in description (rubric requires 'page_size 1 - 100' style). 'sortKey' enum is defined in schema but not explained in description text.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). addCustomerTags is a WRITE operation but lacks destructiveHint annotation. Current MCP spec (2026-07-28) supports tool annotations for agent safety.
Error handling is generic. handleError() function returns text but does not categorize errors as retryable/user-fixable/fatal or provide recovery guidance. LLMs cannot determine next steps from 'Failed to retrieve products data'.