Model Context Protocol server for Etsy's Open API v3. Read-only listing, shop, order, inventory, and stats tools for Claude and other MCP clients.
Eight read-only tools with consistent naming (verb_noun pattern: etsy_search_*, etsy_get_*) and complete input schemas. All tools have descriptions (avg 95 chars) and typed parameters with descriptions. However, output schemas are not documented, responses are JSON envelopes with generic 'data' fields, forcing LLMs to infer structure. Error handling returns JSON with 'ok' flag and error messages, but lacks recovery guidance (e.g., 'try search_listings first'). No tool annotations (readOnlyHint, idempotentHint). Parameter descriptions are adequate but lack format constraints (e.g., 'period' accepts '7d', '30d', '90d' but no enum or pattern). Date parameters (date_from, date_to) lack ISO 8601 format hints in descriptions.
List active listings for a shop, paginating transparently.
Fetch the current inventory record (variations + offerings) for a listing.
Fetch the full record for a single listing.
Fetch full receipt (order) detail including transactions.
Fetch the shop record for a single shop.
Return aggregated stats (orders, favorers, active listings, revenue) for a shop over the given period.
Output schemas not documented. Tools return JSON envelopes with generic 'data' field; LLMs cannot infer what fields to expect in responses, forcing them to guess at downstream field names and types.
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only but lack explicit annotations; LLMs cannot determine which tools are safe to retry or compose without side effects.
Error responses lack recovery guidance. Errors return bare messages (e.g., 'Invalid status') without suggesting next steps or alternative tools (e.g., 'Try search_listings() with a partial query').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Search active Etsy listings by keyword.
Search receipts (orders) created in the inclusive [date_from, date_to] window for a shop.
Parameter constraints not formalized. 'status' in etsy_search_orders lists valid values in description ('open', 'unshipped', etc.) but lacks enum constraint; 'period' in etsy_get_shop_stats lacks pattern or enum for '7d', '30d', '90d' format.
Date parameter descriptions lack format hints. 'date_from' and 'date_to' in etsy_search_orders state 'ISO date (YYYY-MM-DD)' but lack explicit format declaration in schema; LLMs may pass invalid formats.