Read-only MCP procurement service for verified crystal bracelets and sourcing guidance for beads, accessories, and raw materials.
Crystal Suppliers MCP demonstrates solid definition quality with complete input/output schemas, comprehensive parameter descriptions, and thoughtful domain-specific constraints. All 6 tools have explicit Zod schemas with typed fields and descriptions. Tool names follow verb_noun convention (search_, get_, list_, build_, prepare_). Descriptions are domain-aware and include coverage disclaimers (e.g., 'advisory only' for non-bracelet categories). However, descriptions average ~180 chars (within baseline 194), some parameter descriptions are terse, and error handling lacks recovery guidance. Output schemas are well-structured with coverage/sourceUrls/warnings fields, but error responses are not visible in the code sample.
Build a deterministic shortlist across crystal categories. Verified products are limited to catalog bracelets; other categories remain separate advisory items.
Get one verified bracelet by exact SKU or slug, with normalized materials, source URL, related products, and explicit manual-confirmation status for commercial terms.
Get source-linked procurement checks for bracelets, loose beads, accessories, or raw materials. Adjacent categories are advisory only and never return invented SKUs or stock.
List normalized materials and real SKU counts from the verified bracelet catalog. Counts do not claim inventory for loose beads, components, or raw crystals.
Prepare a draft supplier inquiry email with validated SKUs, classification (hot/warm/cold), and required fields. Never submit; always review before sending.
Search the verified 104-SKU bracelet catalog by SKU, name, material, or theme. Beads, accessories, and raw materials return advisory-only coverage. Pricing, MOQ, inventory, lead time, and certificates are never inferred.
Error handling lacks recovery guidance. No visible error responses with actionable next steps (e.g., 'Try search_products() first' or 'Invalid SKU format'). LLMs cannot self-correct without explicit error classification.
Parameter descriptions for optional fields are minimal. E.g., 'channel' is described as 'Sales channel (1-160 characters)' but does not explain valid values, examples, or when it affects results. LLMs cannot infer intent from bare constraints.
No confirmation or dry-run pattern for crystal_prepare_inquiry, which generates draft emails. Tool description says 'Never submit; always review before sending' but no mechanism enforces this or prevents accidental submission if the tool were extended.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Tool names use underscores but lack clear action verbs for some operations. 'crystal_build_procurement_shortlist' is clear, but 'crystal_prepare_inquiry' could be 'crystal_draft_inquiry' for consistency with 'prepare' being ambiguous (prepare for what?).
Output schema for getProductOutput includes 'relatedProducts' array but no guidance on when/why related products are returned or how to use them. LLMs may not recognize this as a chaining opportunity.