A hardened, read-only MCP server that exposes Strake's design tokens and component metadata as agent-queryable tools — the design system as a queryable API.
Strake-MCP is a read-only design system API with 4 well-named tools following verb_noun convention (list_*, get_*). All tools have descriptions (avg 95 chars, within 10-1024 range) and input schemas with type definitions. However, parameter descriptions are sparse or missing entirely: list_tokens has 'group' and 'query' with descriptions, but get_token's 'name' parameter lacks guidance on format (CSS var vs dotted path is mentioned in tool description, not param description). list_components and get_component have empty input schemas with no parameter descriptions. Output schemas are undocumented, LLMs cannot infer what fields to expect from responses. Error handling is absent from descriptions. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Composition is sound: tools chain naturally (list → get). Naming is clear and action-oriented.
Get one Strake component: import, props, accessibility notes, and a usage snippet. Read-only.
Get one Strake token by CSS variable name (e.g. "--strake-color-accent") or dotted path (e.g. "color.accent"). Read-only.
List Strake components with a category and one-line summary (read-only).
List Strake design tokens (read-only). Optionally filter by `group` (e.g. "color", "space") or a `query` substring on the token name/path.
Output schemas undocumented. LLMs cannot infer response structure (fields, types, nesting). Forces agents to guess what data is available after calling list_tokens, get_token, list_components, get_component.
Parameter descriptions missing or incomplete. get_token's 'name' param lacks format guidance (CSS var '--strake-color-accent' vs dotted 'color.accent' is in tool description, not param description). list_components and get_component have empty input schemas with no descriptions.
No tool annotations despite all tools being read-only and idempotent. Missing readOnlyHint and idempotentHint annotations prevent clients from optimizing caching and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
No error handling guidance in tool descriptions. LLMs cannot determine what to do if a token or component is not found, or if the query is malformed.
list_tokens lacks pagination parameters (limit, offset, cursor). If token count grows, unbounded results will blow context windows. No documented result limit.