An MCP server that provides access to integrated data sources (Shopify) through standardized tools for inventory and sales queries, with OAuth-based authentication and admin management interface.
Three tools with complete schemas and descriptions. Tool naming follows verb_noun pattern (list_, get_). Descriptions are detailed and contextual (194 - 280 chars, within baseline 34 - 392). All parameters have types and descriptions. Output schemas are documented with Zod. However, parameter descriptions lack explicit constraints (e.g., 'trimmed' is mentioned but no min/max lengths formalized in schema). Error handling is minimal, no recovery guidance or actionable error messages visible. Composition is sound: tools are single-responsibility and chainable (list_integrations → get_inventory/get_sales). Security: no secrets in parameters, read-only annotations present.
Searches the latest persisted Shopify product inventory by exact SKU, product title, location, or stock state. Use this for stock availability, out-of-stock, low-stock, SKU, and location questions. Results reflect the last completed sync and are not live Shopify data.
Returns bounded sales aggregates from the last persisted Shopify order sync. Sales means the sum of current non-cancelled Shopify order totals after returns, including taxes and discounts; it is not accounting revenue. Average order value uses the same included orders. Optional top-product amounts are current merchandise sales after discounts but before tax, so they need not reconcile to order totals. Use a merchant-timezone period or explicit UTC start/end instants. Standard source coverage is limited to the recent 60 days, and this tool never queries Shopify live.
Lists the integrations compiled into this deployment and their current setup status. Use this to answer which data sources are available or configured.
Parameter constraints not formalized in schema. Descriptions mention '1-128 characters, trimmed' and '1-100 limit' but Zod schema lacks minLength/maxLength/min/max validators. LLMs cannot parse prose constraints reliably.
No error handling or recovery guidance visible. If get_inventory returns no results or get_sales fails (e.g., invalid date range), the response does not guide the LLM on next steps. Missing pattern:recovery-guide.
get_sales parameter 'period' and 'start'/'end' are not documented as mutually exclusive. LLMs may pass both, causing ambiguous behavior. Dependency not stated in descriptions.
Output schema for get_inventory incomplete in source snippet (truncated at 'z.st'). Cannot verify full schema structure, pagination cursor handling, or lastSuccessfulSyncAt field completeness.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2025-06-18+ | v2 |
No batch variants offered. If an agent needs inventory for 10 SKUs, it must call get_inventory 10 times sequentially. Batch operation would reduce latency and token waste.