MCP server for AI-powered Etsy SEO generation. Use with Claude Desktop to generate optimized product titles, descriptions, and tags in seconds.
Seerxo demonstrates solid definition quality with well-structured tool schemas, consistent descriptions, and clear parameter documentation. All 5 tools have explicit input and output schemas with type definitions. Descriptions are detailed and actionable (average ~180 chars), exceeding the baseline. Tool names follow verb_noun convention appropriately. However, several medium-severity issues prevent a higher score: (1) Parameter descriptions lack actionable constraints (e.g., 'product_name' has no length limits or format guidance); (2) Output schemas for generate_etsy_seo lack field-level descriptions; (3) Error handling and recovery guidance is absent across all tools; (4) No parameter validation rules documented (e.g., how many tags are allowed, length limits per tag). The toolAnnotations feature is implemented correctly with readOnlyHint, destructiveHint, idempotentHint fields, which is a strength.
Generate a complete SEO-optimized Etsy listing with a title, description, and 13 tags from a product name and optional category.
Audit an existing Etsy listing. Returns an SEO score (0-100) with per-field sub-scores, ranked weak points (each with severity and a concrete fix), missing keywords, and tag-slot utilization. Call it with whatever listing fields are available (title, tags, description); at least one is required.
Rewrite an Etsy listing to fix its audit findings: improved title, description, and tag set, each mapped to the finding it resolves, with a before/after SEO score. Etsy limits (140-char title, 13 tags, 20 chars per tag) are enforced server-side and the result never scores below the original. Provide the current listing fields.
Use this when the user asks how many Seerxo credits remain. Returns the authenticated account's monthly usage and remaining quota without consuming a credit.
Get ranked Etsy keyword suggestions for a product or seed phrase, sampled from Etsy's own search autocomplete (relative demand rank, never fabricated volumes). Each keyword comes with a placement recommendation (title / tags / description) and whether the listing already uses it. Pass the listing fields too when you have them for better placement advice.
Output schema for generate_etsy_seo lacks field-level descriptions and does not document Etsy limits (140-char title, 13 tags, 20 chars per tag). Schema only shows {'title': string, 'description': string, 'tags': array} with generic descriptions.
Parameter validation rules not documented for any tool. Missing: minimum/maximum string lengths, array bounds (tags array is always 13?), URL format validation, seed phrase constraints. Descriptions state constraints ('up to 13') but lack machine-parseable definitions (minItems, maxItems, pattern, format).
Error handling and recovery guidance absent. No tool describes what to do on failure (e.g., 'If authentication fails, check your Seerxo API key', 'If quota is exceeded, upgrade your account'). No error classification (retryable vs user-fixable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 21 | - | v1 |
No tool documents idempotency guarantees beyond seerxo_quota. Agents retry on ambiguous failures, if generate_etsy_seo is called twice with the same input, does it consume quota twice? Does it return identical output? No guidance provided.
Parameter descriptions for seerxo_suggest_keywords and seerxo_analyze_listing include disclaimers ('A URL alone is NOT enough, Etsy blocks server-side fetching') that suggest implementation complexity not fully abstracted. LLM must reason about parameter dependencies, increasing error likelihood.
AUDIT_OUTPUT_SCHEMA includes 'WEAK_POINT_SCHEMA' with an 'id' field described as 'Stable identifier for the failed SEO check' but does not enumerate valid ID values or document their meaning. LLM cannot reason about what IDs to expect or how to handle them.
seerxo_optimize_listing description promises 'before/after SEO score' but output schema does not include before_seoScore or after_seoScore fields. Output schema only shows title, description, tags, no score comparison metadata.