A Model Context Protocol server that exposes shadcn-ui CLI functionality via MCP tools
The server defines 3 tools with explicit registration in src/index.ts. All tools have names, descriptions, and input schemas visible. However, there are significant gaps: (1) Parameter descriptions are minimal (1-2 line descriptions like 'Absolute path to the project root' vs. 10-20 char minimum standard). (2) No output schemas are documented, callers cannot predict the structure of stdout/stderr responses. (3) No guidance on error recovery or error categorization. (4) Tool naming could be clearer: 'init_shadcn' is vague about what 'shadcn' initialization entails; 'add_component' uses singular noun but accepts plural components array. (5) No indication of destructive vs. read-only operations in descriptions (though risk is marked in metadata). (6) Parameter validation is weak: directory is a string with minimal guidance on path format, components array has no constraint on valid names. Baseline: average production tool description is 194 chars; these are 30-50 chars. Baseline: 100% of A+ tools document outputs; this server documents none.
Add one or more shadcn-ui components to a project
Initialize shadcn-ui in a project directory
List available shadcn-ui components
No output schemas documented for any tool
Parameter descriptions are 30-50 characters, below 72-char baseline. Lack actionable constraint guidance and format specifications.
Example values in parameter descriptions ('e.g. button, card') instead of enum constraints.
No error recovery guidance. runCmd() throws McpError on failure, but LLM receives no hint on what to try next (e.g., 'directory does not exist' → 'verify the path' or 'did you initialize this project?').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 5 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Naming inconsistency: 'add_component' singular vs. 'components' plural parameter. Naming should match form (add_components or add_component with single param).
Tool descriptions do not indicate mutability. add_component and init_shadcn modify state but descriptions lack clear 'This modifies your project' language.
No guidance on tool dependencies. Descriptions do not mention that add_component requires init_shadcn to have run first, or that list_components helps discover valid names.