Skip to main content
Glama
DarCas
by DarCas

refero-design-mcp

TypeScript Node.js Version npm

Tests

License: MIT

Buy me a coffee

The underlying data belongs to Refero Design. This is an unofficial client; no affiliation or endorsement is implied.

An MCP server for discovering, searching and extracting design systems from the public pages of styles.refero.design.

Give an assistant a real design system — palette, type scale, spacing, surfaces, do/don't guidance — instead of one it invented.


Why it is built this way

Two decisions shape everything else.

The JSON API is not used. styles.refero.design/robots.txt disallows /api/, and the endpoint is gated in practice: it answers 403 to every non-browser client and 200 to a real browser, which points at TLS fingerprinting rather than authentication. Spoofing headers would not fix that, and would not be the right thing to do regardless.

So this server reads only what Allow: / permits — the published sitemap and the public style pages — reachable with a plain curl and no pretending to be anything else. Requests are conditional, concurrency-capped, and sent with a User-Agent that identifies the project.

Coverage is reported, never implied. A style page is a few hundred KB and there are over a thousand of them, so the local index grows on demand. That makes "I found no matches" ambiguous — it usually means "I looked at 30 of 1,340", not "nothing exists". Every search states its own coverage, and refero_index_status exists so the model can check before concluding a style is absent.

Related MCP server: CDS Components MCP Server

Tools

Tool

Purpose

refero_index_status

Published styles vs. locally indexed styles

refero_search_styles

Free-text search over names, north stars, colours, fonts, URLs

refero_match_style

Ranks styles against a prose design brief

refero_get_design_md

Renders a style as design.md, by section

refero_get_style

Parsed design system plus measured tokens, as JSON

refero_list_style_ids

Style UUIDs from the sitemap, without reading any page

A resource, refero://style/{id}/design.md, is exposed for clients that prefer resource reads over tool calls.

Sections

refero_get_design_md takes sections, and honours it:

overview · colors · typography · type_scale · spacing · surfaces
imagery · principles · components · similar · custom

Sections with no data are dropped rather than rendered as empty headings.

Installation

npm install -g @darcas/refero-design-mcp

Installs the refero-design-mcp command — the binary name stays unscoped, so client configs stay short.

Configuration

Point a client at the binary, either installed globally or run on demand:

{
  "mcp": {
    "servers": {
      // installed with `npm install -g @darcas/refero-design-mcp`
      "refero": {
        "command": ["refero-design-mcp"]
      },
      // or run on demand — no install step, first run downloads the package
      "refero-on-demand": {
        "command": ["npx", "-y", "@darcas/refero-design-mcp"]
      }
    }
  }
}

-y suppresses the install prompt, which would otherwise block startup. The npx form starts in about 2s on a cold cache and under 1s once cached; the global form starts immediately and needs no network. Either works, and the server behaves identically.

The package is scoped but the binary is not, so the command is refero-design-mcp with no @darcas/ prefix.

Transport is stdio. Diagnostics go to stderr only — stdout carries JSON-RPC frames and nothing else. A server started by hand (npm start) will appear to hang: it is waiting for a client on stdin, which is correct behaviour.

Environment variables

Every setting is optional.

Variable

Default

Purpose

REFERO_SITE_URL

https://styles.refero.design

Origin base URL

REFERO_STYLES_SITEMAP

{site}/sitemaps/styles.xml

Style index

REFERO_MAX_FETCHES

25

Max page fetches per tool call

REFERO_CONCURRENCY

4

Max simultaneous requests

REFERO_TIMEOUT_MS

30000

Per-request timeout

REFERO_CACHE_TTL_MS

604800000

Cache freshness window (7 days)

REFERO_CACHE_DIR

~/.cache/refero-design-mcp

On-disk cache location

REFERO_USER_AGENT

see src/config.ts

Request identification

REFERO_MAX_RESPONSE_CHARS

40000

Response budget

REFERO_VERBOSE

false

Diagnostics to stderr

Example session

// The model calls these in sequence
{ "name": "refero_index_status", "arguments": {} }
// → "Published styles: 1342 / Indexed locally: 1 / Coverage: <1% (1 styles)"

{ "name": "refero_match_style", "arguments": { "brief": "dark, dense dashboard for engineers" } }
// → ranked styles, each with matched terms and the north star that drove the match

{ "name": "refero_get_design_md", "arguments": {
    "style_id": "a73148b9-449b-42cd-9f38-86ef694f500e",
    "sections": ["overview", "colors", "typography"]
} }
// → # Apple, with the palette table and type scale

How styles are indexed

sitemaps/styles.xml  →  list of ids + lastmod        (small, fetched once)
        ↓
/style/{id}          →  Next.js RSC payload in HTML  (~300 KB, fetched on demand)
        ↓
result.meta / result.raw / result.designSystem         (parsed, validated, cached)

The style record is located by styleId. A page embeds a dozen or more related styles that share the same key names, so anchoring on the id is what prevents returning a neighbour's palette.

The RSC format is internal to Next.js and may change. Every failure surfaces as a typed error rather than a partially-filled object that looks like a valid answer.

Development

npm install
npm run dev        # watch mode
npm run verify     # typecheck + lint + test + build

Script

Action

npm run build

Compile to dist/

npm start

Run the compiled server

npm run typecheck

tsc --noEmit

npm run lint

ESLint, type-aware rules

npm test

Vitest

npm run verify

All of the above, in order

npm run clean

Remove dist/

npm run deploy

Test, build, then publish to npm

Testing

67 tests across 7 files.

Unit tests run offline, against a byte-for-byte fixture of a real RSC payload — the fragile parts (id anchoring, brace matching, lazy reference detection) are exactly the parts worth pinning.

test/e2e.test.ts drives the server against the live site and skips itself when the origin is unreachable. The reachability probe runs at module load rather than in a hook, because describe.skipIf is evaluated during collection: a probe in beforeAll leaves every test silently skipped, which is indistinguishable from a passing suite.

Design notes

  • Schemas derived from real payloads, not from documentation. spacing.radius is a per-element map ({cards: "28px", buttons: "9999px"}), not a string. similar is [{business, why}], not string[]. surfaces is {hex, name, level, purpose}. typeScale sizes arrive as numbers. Every schema is permissive about type and strict about presence, so a partial document degrades instead of throwing away a whole design system.

  • Measured and curated data are both kept. result.raw holds tokens with usage frequency and context; result.designSystem holds the curated reading. Frequency is what separates a signature colour from an incidental one.

  • Truncation respects structure. Cutting markdown with slice(0, n) slices code fences in half, which makes the model read broken CSS as if it were the design. This server trims on a structural boundary instead, and closes any fence it opens, so a shortened document is still valid.

  • Conditional requests everywhere, so a repeat call usually costs a 304.

License

This project is licensed under the MIT License. See the LICENSE file for details.


Made with ❤️ by Dario Casertano (DarCas).

Available Tools

6 tools
refero_get_design_mdGet design.md for a styleA

Render a style as a design.md document. The sections argument is honoured: request only the sections you need to stay within budget. Without it you get the whole document, truncated on a structural boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNoBypass the local cache and refetch (conditional request).
sectionsNoWhich sections to include, in any order: overview, colors, typography, type_scale, spacing, surfaces, imagery, principles, components, similar, custom. Omit for everything.
style_idYesStyle UUID, e.g. "a73148b9-449b-42cd-9f38-86ef694f500e".

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, and it delivers one genuinely useful disclosure: the default response is the entire document, truncated on a structural boundary. That truncation semantics is non-obvious and would otherwise surprise an agent. It does not address read-only status or caching (refresh is only covered in the schema), so it is strong but not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the core purpose is front-loaded before the parameter guidance. Every clause carries actionable information (what it renders, why to pass `sections`, what happens without it).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter, no-annotation tool with no output schema, the description adequately characterizes the output (a design.md document, possibly truncated) and the parameter-driven scoping. The only meaningful gap is that cache/refresh behavior and read-only nature are left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it frames `sections` as a budget-control mechanism and states the fallback behavior when it is omitted. The schema's enum list and the default are documented structurally; the description supplies the rationale and the truncation consequence.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete verb and output artifact: 'Render a style as a design.md document.' That is more specific than the sibling refero_get_style, since it tells the agent the result is a markdown document rather than a raw style record. It stops short of explicitly contrasting itself with those siblings, but the resource/format is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the mention of staying 'within budget' hints that this tool is for budget-sensitive section retrieval, and the default whole-document behavior is noted. There is no explicit when-to-use versus refero_get_style or refero_search_styles, and no stated preconditions, so guidance remains inferential.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refero_get_styleGet a style as structured dataA

Return the parsed design system plus the measured tokens scraped from the live site (colours, fonts, radii, spacing) as JSON. Prefer refero_get_design_md when you want prose to feed into a document.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNoBypass the local cache and refetch (conditional request).
style_idYesStyle UUID.
include_measured_tokensNoInclude the raw extracted token measurements (default true).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the return payload and notes the data is scraped from the live site (implying network fetch), but says nothing about read-only nature, auth requirements, rate limits, or the cache/refresh behavior that the schema hints at. Useful context, but incomplete for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what is returned and immediately followed by the alternative-tool routing. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description must explain the return value, and it does so reasonably by naming the token categories and JSON format. Caching/refresh semantics and failure modes are left to the schema, which is acceptable for a simple three-parameter get-by-id tool, though a note on the read-only/cached nature would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in the schema. The description implicitly connects to two of them (measured tokens, live-site scraping) but adds no syntax, defaults, or format detail beyond what the schema supplies, so the baseline 3 holds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (return) and resource (the parsed design system plus measured tokens scraped from the live site) and enumerates the payload contents (colours, fonts, radii, spacing). It also explicitly distinguishes itself from the sibling refero_get_design_md, so an agent can pick between the two without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear routing rule: prefer refero_get_design_md when prose is wanted for a document, which implies this tool is for structured/JSON consumption. It does not address the other siblings (search_styles, match_style, list_style_ids) or state explicit when-not conditions, but the primary alternative is covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refero_index_statusRefero index coverageA

Report how many published styles exist and how many are indexed locally. Call this before concluding that a style does not exist: a miss usually means it has not been indexed yet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers the key behavioral fact: a search miss typically means the style is unindexed rather than absent, and it discloses that two counts are returned. It omits freshness/staleness of the index and cost of calling, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the output content stated first and the critical usage caveat immediately after. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description must stand alone, and it explains both what is reported and how to interpret a negative search result. It does not specify the returned field names or index refresh behavior, which is a minor remaining gap for a zero-param read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description correctly implies a no-input status query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (report) and resource (counts of published vs locally indexed styles), which is clearly distinct from the search/get/match siblings. It never names a sibling explicitly, so it stops short of the 5-level contrast, but no agent would confuse it with a retrieval tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit call condition: invoke this before concluding a style does not exist, because a miss usually signals pending indexing. That directly routes the agent's decision after a failed lookup, which is exactly the guidance a status tool needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refero_list_style_idsList style ids from the sitemapA

Return published style UUIDs and their last-modified timestamps, straight from the public sitemap. Use this to discover ids without reading any style page.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many ids to return (default 50).
offsetNoZero-based index into the published list (default 0).
updated_sinceNoISO date; return only styles modified after this date.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the burden, and it does disclose the data source (public sitemap) and the shape of the return (UUIDs plus timestamps) plus the read-only, lightweight nature. It omits pagination/rate behavior and what happens on an empty result, so the disclosure is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero waste; the what is front-loaded and the intended use follows immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description names exactly what comes back (UUIDs and last-modified timestamps), which compensates adequately for a simple listing tool. Only minor gaps remain around pagination and default/empty-result behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so limit, offset, and updated_since are already fully documented in the schema; the baseline of 3 applies. The description adds no syntax, format, or interaction details beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns published style UUIDs plus last-modified timestamps. The 'without reading any style page' clause hints at how it differs from page-reading siblings like refero_get_style, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Intended usage is implied ('discover ids'), which is enough to infer this is a lightweight discovery step before fetching a style. There is no explicit when-not guidance and no named alternative such as refero_search_styles for filtered discovery.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refero_match_styleMatch a brief to Refero stylesA

Given a design brief in prose, return the styles that best match it, each with the terms that triggered the match and a short rationale. Use this when the request is qualitative ("I need a dense, data-heavy dashboard") rather than a specific name.

ParametersJSON Schema
NameRequiredDescriptionDefault
briefYesThe design brief, or a description of the interface you are building.
limitNoMaximum matches (default 3).
expandNoPull this many uncached styles into the local index first (default 50).

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure. It usefully reveals the return shape (matches plus triggering terms and rationale), which is real value, but it says nothing about whether the call is read-only, how caching/`expand` affects latency, or any cost implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler: the first states what is returned, the second states when to reach for it. The routing condition is front-loaded after the core behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description responsibly summarizes the return (styles, triggering terms, rationale). The remaining gap is the caching/`expand` behavior and any latency or freshness caveat, which the schema alludes to only through a parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents `brief`, `limit`, and `expand` with defaults and bounds. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (match), the input (a prose design brief), and the resource (Refero styles), plus describes the return payload (matched styles with triggering terms and rationale). It does not name the closest sibling (refero_search_styles) directly, so the differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear selection condition: use it when the request is qualitative ("I need a dense, data-heavy dashboard") rather than a specific name. This implicitly routes name-based lookups elsewhere, but it never names the alternative tool or states explicit when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refero_search_stylesSearch Refero stylesB

Find design styles on styles.refero.design by free text. Matches style names, north-star statements, colours, fonts and URLs on word boundaries. The local index grows on demand, so results improve as more styles are indexed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default 5).
queryYesFree-text query, e.g. "minimal ecommerce" or "brutalist mono".
expandNoPull this many uncached styles into the local index first (default 25, capped by REFERO_MAX_FETCHES).

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and does add real context: word-boundary matching across names/statements/colours/fonts/URLs, and the note that the local index grows on demand so results improve as more styles are indexed. It omits auth requirements, rate limits, and return shape, which keeps it short of a 5 but it is well above the bare minimum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the verb+resource, then matching behavior, then the index caveat. Every sentence adds information with no padding, though it could be marginally more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, so the description bears extra weight. It covers what is searched and the index behavior but never describes what a result looks like or whether results are paginated, leaving a gap for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (query, limit, expand) are already documented in the schema, establishing the baseline of 3. The description adds only marginal value by explaining the index-growth behavior tied to expand, but no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Find design styles on styles.refero.design by free text') with the exact domain and search modality, so an agent knows what it does. It does not explicitly differentiate itself from the sibling refero_match_style, which also sounds search-like, leaving mild overlap ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not, or alternative guidance is given. With a sibling named refero_match_style and refero_get_style, the description never explains which one to pick for a given intent, forcing the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedrefero_get_design_md
    • First observedrefero_get_style
    • First observedrefero_index_status
    • First observedrefero_list_style_ids
    • First observedrefero_match_style
    • First observedrefero_search_styles

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation4/5

Each tool targets a distinct action, and descriptions actively clarify the two closest pairs: search_styles (word-boundary keyword match) vs match_style (qualitative prose brief), and get_design_md (prose) vs get_style (raw JSON tokens). The boundaries are mostly clear, though a naive agent could still reach for search_styles when match_style is intended.

Naming Consistency4/5

All names share the refero_ prefix and snake_case with a verb_noun shape (search_styles, match_style, get_style, get_design_md, list_style_ids). refero_index_status is the one deviation (noun_noun rather than an action verb), but it is still readable and in the same convention.

Tool Count5/5

Six tools is well-scoped for a design-style discovery and rendering server, with each tool earning its place across the discovery, search, match, retrieve, and diagnostic phases.

Completeness4/5

The surface covers the full read lifecycle: discover ids (list_style_ids), search by text (search_styles), match by brief (match_style), retrieve as JSON (get_style) or prose (get_design_md), plus index diagnostics (index_status). Only minor gaps, such as filtered/paginated listing, remain and are workable given the sitemap-backed ids.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers