MCP server — design system enforcement tools and resources for AI coding assistants
KERN MCP Server presents a domain-specific design system enforcement tool with moderate definition quality. All 6 tools are explicitly registered with descriptions and input schemas. Tool naming follows verb_noun convention (kern_*) and is domain-appropriate. However, descriptions lack LLM-optimized context about WHEN to use each tool relative to others, parameter descriptions are minimal or absent in several tools, and output schemas are not documented. Error handling guidance is absent. The server addresses a focused use case (design system validation for AI coding), which aids clarity, but lacks the depth expected of production-grade MCP servers.
Validate code against design system rules. Returns violations with line numbers and auto-fix suggestions. Use to verify your code follows the design system before finishing.
Get the full spec for a specific component: import path, variants, props, example code, and rules. Use when you need details about how to use a particular component.
Get a specific UI composition pattern with full code template and layout structure. Use when building a page section and you need the exact code pattern to follow.
Search for components and patterns that match a UI task. Use after kern_system to find specific patterns for what you're building. Returns ranked matches with code templates.
Get the complete design system. Call this FIRST before writing any UI code. Returns all tokens, rules, components, patterns, and usage instructions in one response.
Get design tokens for a specific category. Returns valid values, forbidden patterns, and Tailwind class mappings. Use when you need the exact token values for colors, spacing, typography, or sizing.
Output schemas completely undocumented across all 6 tools. LLM cannot anticipate response structure, forcing trial-and-error usage and increasing hallucination risk.
No enum constraints for discoverable resources (valid component names, pattern names). LLM must guess or call kern_system first, increasing round-trips and context waste.
kern_check lacks error handling guidance. No categorization of validation failures (retryable, user-fixable, fatal). No guidance on what to do when a violation is found.
Descriptions contain example values (component names, pattern names, query strings) which LLMs tend to reuse literally. Example patterns should be formalized as enums or discoverable via a dedicated tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 60 | - | v1 |
No cross-tool discovery guidance documented. kern_suggest, kern_component, and kern_pattern accept open-ended name/query parameters with no documented way to discover valid values. Breaks the pattern:tool-chain pattern.
kern_suggest lacks guidance on query format. Should specify: free-text UI description only, or does it support structured queries? Should specify token cost or result limit in description.