MCP server that exposes your design system (components + tokens) to AI agents
Four read-only tools with basic descriptions and partial schemas. Tool names follow verb_noun convention (search_*, get_*, list_) which is good. Descriptions exist but are brief (10-50 chars) and lack context on when to use each tool or what downstream actions they enable. Input schemas are present with type declarations, but parameter descriptions are minimal. No output schemas documented. No error handling guidance. Tools are well-scoped (single responsibility) but lack the depth needed for confident LLM selection and chaining.
Get the props/API of a specific component
Get a specific design token by its full name
List all design tokens, optionally filtered by type (color, dimension, fontFamily, etc.)
Search for existing components in the design system by name
Descriptions are too brief (10-50 chars) and lack context. 'Search for existing components in the design system by name' does not explain WHEN to call this vs get_component_props, or what the LLM should do with results. Descriptions should be 50-200 chars and answer: what, when, and what's next.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., does search_components return component IDs for use in get_component_props?). Every tool must document its return type and structure.
Parameter descriptions are minimal or missing context. 'Search term (e.g. button, card, modal)' includes example values that LLMs may reuse literally. Use enums or patterns instead. 'Token type filter (e.g. color, dimension)' should be an enum: ['color', 'dimension', 'fontFamily', ...] to prevent hallucinated token types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No error handling guidance. What happens if a component name is not found? If a token type is invalid? Responses should guide recovery: 'Component not found. Try search_components() with a partial name.' Currently, error behavior is unspecified.
list_tokens accepts optional 'type' parameter but valid values are not enumerated. LLMs will guess: 'color', 'dimension', 'fontFamily', 'fontSize', 'spacing'? Declare as enum in schema and describe in parameter annotation.