MCP server that returns a Next.js App Router project's UI component hierarchy as a structured tree (markdown + JSON) so AI coding agents can ground image/description-based UI edits in exact file/component locations.
Four tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. All tools are READ_ONLY and well-scoped (single responsibility), but descriptions lack actionable detail for LLM selection. Parameter descriptions are minimal or absent. No documented output schemas, error handling guidance, or recovery paths. Naming is clear and verb-based (get_, focus_, find_), following conventions. However, the server lacks the depth expected for production use, descriptions average ~60 chars (below 194-char baseline), and parameter annotations are sparse.
Searches the component hierarchy for components with specific CSS classes or inline styles
Searches the component hierarchy for components containing specific text content
Focuses on a specific component or file in the hierarchy and returns its subtree
Returns the complete UI component hierarchy for a Next.js App Router project as a structured tree
No documented output schemas. Tools return results but LLMs cannot plan downstream calls or extract required fields. Violates pattern:tool requirement that output structure be explicit.
Parameter descriptions are minimal or missing. 'componentName' in focus-on has a description, but find-by-style has two parameters ('className', 'style') with no guidance on which is required, what format they accept, or how they interact.
Tool descriptions are too brief (45 - 50 chars) to guide LLM selection. 'Searches the component hierarchy for components containing specific text content' lacks context on when to use find-by-text vs find-by-style, what the search scope is, or what structure is returned.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
No error handling or recovery guidance. If a component is not found, or if a search returns no results, the tool provides no actionable error message or next steps for the LLM.
find-by-style has two optional parameters with unclear relationship. Are both required? Mutually exclusive? The schema shows neither is required, but the description does not clarify the intended usage or what happens if both are omitted.