MCP Server for JsDesign design data - Extract design data from JsDesign (即时设计) and serve it via MCP for pixel-perfect code generation
Server has 5 tools with clear verb-noun naming (get_*, list_) and reasonable descriptions (avg 150 chars). However, critical gaps undermine production readiness: (1) Most tools lack input parameter descriptions, get_page_overview, get_design_tokens, list_components have empty required arrays but no guidance on what they return or when to call them; (2) get_component_detail and get_node_css accept node_id OR node_name but lack documentation of mutual exclusivity or fallback behavior; (3) No output schemas documented, LLMs cannot plan downstream calls or extract structured data; (4) No error handling guidance, 'Node not found' responses lack recovery hints (e.g., 'call list_components first'); (5) include_children defaults to true but no rationale or consequence documented. Tool names are clear and follow verb_noun convention, but parameter design and output documentation are weak.
Get the full style details of a specific component/node by its ID or name. Returns all properties including fills, strokes, effects, auto layout, text styles, and children.
Get the extracted design tokens: all colors, font families, font sizes, spacings, and border radii used in the design. Useful for generating CSS variables or theme configs.
Generate CSS code for a specific node and optionally its children. Returns ready-to-use CSS with class names derived from layer names.
Get an overview of the design page, including top-level frames, design tokens (colors, fonts, spacings), and a summary. Use this first to understand the overall page structure.
List all top-level components and their direct children. Useful for understanding the component hierarchy and choosing which component to inspect in detail.
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing unstructured parsing and preventing downstream tool chaining.
Parameter descriptions missing for node_id and node_name in get_component_detail and get_node_css. No documentation of mutual exclusivity (which takes precedence if both provided?) or fallback behavior.
Error responses lack recovery guidance. 'Node not found' does not suggest calling list_components first or provide available alternatives. Agents cannot self-correct.
No documentation of when to call discovery tools (get_page_overview, list_components) vs detail tools. LLMs lack guidance on optimal call sequencing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
include_children parameter defaults to true with no explanation of performance impact or when to set false. Default behavior not justified.