A MCP server project for Shopify API integration
The server defines 4 tools with explicit schemas and descriptions in Japanese. Naming follows verb_noun convention (list_, get_, create_, update_). Schemas are present and structured using JSON Schema with type definitions and descriptions. However, several quality issues reduce the score: (1) Tool descriptions are in Japanese without English fallback, limiting accessibility for international agents. (2) Parameter descriptions lack detail about constraints, valid ranges, and error conditions. (3) Output schemas are not documented, callers cannot see what fields are returned. (4) Error handling is minimal, no guidance on recovery or classification. (5) The variants and options parameters in create_product and update_product are deeply nested objects but lack examples or clear expected structure. (6) No tool annotations (readOnlyHint/destructiveHint) despite clear read vs. write distinctions marked in risk fields. Baseline expectations: 100% of A+ tools document output types; only 6% of production tools omit output schema. This server lacks that.
新しい商品を作成する
商品の詳細情報を取得する
商品一覧を取得する
商品を更新する
All tool descriptions are in Japanese only, blocking international agent understanding and LLM selection logic.
Output schemas are not documented. Callers cannot predict what fields are returned from list_products, get_product, create_product, or update_product.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear distinctions in risk field (READ_ONLY vs WRITE). Agents cannot reason about side effects.
create_product schema has a typo in options.items.properties.position: 'position': 'number' instead of 'type': 'number'. This breaks JSON Schema validation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Parameter descriptions lack actionable detail about constraints, ranges, and error conditions. E.g., variants.items lacks explanation of required fields, image.src lacks URL format specification.
No error handling guidance. Tool implementation (src/shopify_py_mcp/server.py) catches exceptions but no documented error cases, retryability, or recovery hints.
list_products accepts limit param (1 - 250) but no documented pagination or offset mechanism. If user wants 500+ products, behavior is unclear.
No response field naming consistency. If create_product returns product.id, but get_product expects product_id param, agents must infer the mapping.