Bullet-proof MCP for styles.refero.design — natural-language search across the curated DESIGN.md library.
Seven tools with complete input schemas and descriptions. Naming follows verb_noun pattern (refero_search, refero_get, refero_list). Descriptions are detailed (100-250 chars) and explain WHEN to use each tool. Parameters are typed with enums where appropriate (theme: light|dark). However, output schemas are not documented, LLMs cannot see what fields to expect from responses. Error handling is present but generic. No tool annotations (readOnlyHint/destructiveHint) despite clear risk distinctions (refero_design_md and refero_refresh are WRITE operations). Missing parameter descriptions for some optional fields (e.g., 'limit' lacks min/max bounds).
Render a Refero style as an agent-friendly DESIGN.md (frontmatter, north star, color table, fonts, dos/donts, tags). When `save_to_project` is set, writes the file to <vault>/05-Projects/<NAME>/DESIGN.md.
Discover what the catalog actually contains: ranked font stacks, color names, and theme counts. Call this BEFORE guessing search terms — the catalog has no tag taxonomy, so invented tags match nothing, while any font or color returned here can be passed straight to refero_search as a query.
Fetch the full design system for a single style. Accepts a uuid, a hostname/URL (e.g. cursor.com), or a site name (e.g. "Cursor"). Fuzzy-matches site names within Levenshtein distance 2.
Browse the local catalog mirror with optional theme/tag filters. Returns paginated, stably-ordered results (newest first, then site name).
Force a full re-fetch of the styles.refero.design catalog and overwrite the local mirror. Useful after the catalog has changed and you don't want to wait for the 24h TTL.
Output schemas not documented. LLMs cannot see what fields refero_search, refero_get, refero_list return, forcing them to guess structure and breaking downstream tool chaining.
No tool annotations (readOnlyHint/destructiveHint). refero_design_md (WRITE to vault) and refero_refresh (WRITE to catalog) lack destructiveHint, preventing agents from understanding side effects and retry safety.
Numeric parameters (limit, page) lack min/max bounds in descriptions. 'limit' can be 1-50 but description omits this; agents may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Natural-language search over the styles.refero.design catalog. Returns the top matches scored by an embedding model (when OPENAI_API_KEY is set) or a BM25-lite keyword fallback. The local catalog is mirrored on first call and refreshed automatically every 24 hours.
Refero's own "similar styles" recommendation list for a given style. Useful for follow-up exploration once you've found a candidate via refero_search.
refero_design_md save_to_project parameter description mentions sanitization rule '[A-Za-z0-9_.-]' but does not explain what happens if the rule is violated or if the vault path does not exist.
refero_search description mentions 'embedding model (when OPENAI_API_KEY is set) or BM25-lite keyword fallback' but does not document what the fallback behavior is or how to control it. Agents cannot predict which scoring method will be used.