A backend server that provides icon search and generation service, supporting fuzzy search for icons from multiple icon libraries and AI-powered icon generation.
The server defines 2 tools with basic Zod schemas and Chinese descriptions. Both tools are registered explicitly via server.tool(). However, there are significant quality gaps: (1) Schema completeness is poor, the generate_icon tool has optional parameters without proper enum constraints or validation guidance; (2) Descriptions are present but written in Chinese and lack English context for a global audience; (3) Error handling is minimal and does not guide LLM recovery; (4) Parameter descriptions lack actionable format constraints (e.g., model values are listed in description text, not enums); (5) No output schema documentation, callers cannot plan downstream steps; (6) The search_icons tool accepts a comma-separated string which should either be validated more strictly or converted to a proper array parameter. Tool names (search_icons, generate_icon) follow verb_noun convention, which is positive. However, the definitions fall well short of production readiness.
通过大模型生成图标,支持多种国产AI模型(通义千问、文心一言、智谱AI、Kimi、豆包等)
根据名称搜索图标,支持多个名称(逗号分隔)。支持搜索 Element Plus 和 Ant Design 图标库。
No output schema documentation. Tools return markdown tables and JSON data structures, but callers have no declared schema to plan downstream operations. LLMs cannot determine what fields are available in the returned data.
Enum constraints missing for multi-value parameters. The generate_icon tool lists model options ('openai', 'tongyi', 'wenxin', 'zhipu', 'kimi', 'doubao') as free-form string description text rather than Zod enum validation. LLMs may hallucinate invalid model names.
Weak error guidance. Error responses return raw text ('Names parameter is required', 'Description parameter is required') without suggesting recovery actions or available alternatives. Pattern: recovery-guide missing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
search_icons accepts comma-separated string parameter 'names' instead of an array. This requires the LLM to format input correctly and complicates parsing. Should be an array parameter: names: z.array(z.string()).
Descriptions lack English versions and actionable constraints. E.g., generate_icon's 'style' parameter description says 'element-plus', 'ant-design', 'default' but should declare enum or pattern in Zod, not in description text alone.
No pagination or result limiting declared for search_icons. If icon libraries contain hundreds of results, returning all of them wastes tokens and risks context window overflow. Should accept limit and offset/page parameters.
Tool descriptions are in Chinese. For global use, English descriptions are essential for LLM understanding and tool discovery in international settings.