MCP server for generating Element Plus Vue 3 components using LLM services
Single tool 'generate-component' with reasonable schema definition but significant documentation and naming gaps. Tool name lacks action verb clarity (should be 'generate_element_plus_component' or similar). Description is lengthy (392 chars, above baseline 194 median) and includes use-case scenarios but lacks conciseness. Schema parameters have type definitions and descriptions present, but descriptions are in Chinese, limiting LLM comprehension in English-dominant contexts. No explicit output schema documentation. Error handling returns text responses but lacks structured guidance for recovery. Tool is read-only with no state modifications, reducing risk but also reducing practical utility.
根据用户描述生成 Element Plus 组件代码。 使用场景: - 用户提到 /ui 或需要创建新的 UI 组件 - 用户描述了按钮、表单、表格、卡片等组件需求 - 用户需要快速原型设计 工具会返回完整的 Vue 3 组件代码(包含 <template>、<script setup> 和样式)。
Tool name 'generate-component' lacks action verb in verb_noun format. Should be 'generate_component' (kebab-case used inconsistently with MCP convention) or better yet follow standard pattern like 'create_element_plus_component' or 'generate_vue_component' to signal intent clearly to LLMs. Current hyphenated form is ambiguous about whether it generates or modifies.
Tool description and all parameter descriptions are in Chinese (e.g., '根据用户描述生成 Element Plus 组件代码'). While culturally appropriate for a Chinese component library, descriptions in non-English force LLMs to translate or fail comprehension, reducing selection accuracy. Descriptions should be in English for maximum LLM compatibility.
No explicit output schema documented. Tool returns McpToolResult with a text field containing markdown, but LLMs cannot reliably parse the response structure to extract generated code, component name, or other fields. Should return structured JSON with fields like 'component_name', 'code', 'reason', 'documentation_url' for reliable downstream chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | 2024-11-05+ | v1 |
Parameter 'llmConfig' exposes LLM configuration details (modelType enum, temperature) as tool parameters. This couples agent behavior to model selection and complicates prompting. Model selection should be server-side configuration; if per-request customization is needed, use more abstract parameters like 'generation_style' (concise|detailed|optimized) instead.
Error handling returns human-readable markdown text but does not categorize errors as retryable vs. fatal. If API key is invalid, should respond with 'fatal - reconfigure server'. If network timeout, should respond with 'retryable'. Current catch-all error guidance does not guide LLM recovery strategy.
Tool accepts free-form 'description' and optional 'componentType' string parameters without length limits or regex patterns. LLMs may pass extremely long descriptions (>10KB) or invalid component types. Schema should add minLength, maxLength, and constrain componentType to an enum of known Element Plus components (button, input, table, form, card, modal, etc.).