MCP server that provides CH32V003 microcontroller development documentation and code examples for WCH SDK and ch32fun frameworks
Single tool with adequate schema but significant description and naming issues. Tool name 'read_ch32v003_guide_book' is verbose and non-standard (should be 'get_' prefix). Description is 280+ chars, exceeds recommended 200-char ceiling, and contains Japanese text with typos ('していしてください'). Parameters have enums and types, but descriptions lack actionable detail on when/why to use the tool. No output schema documented. Error handling returns generic error messages without recovery guidance. Tool is read-only (safe), but lacks the polish expected of production tools.
CH32V003の実装方法を説明したドキュメントを返します。CH32V003の開発の際には参照してください。CH32V003の開発フレームワークには、WCH SDKとch32funがあります。利用する場合にはしていしてください。作りたいものに応じて、指定してください。
Tool name violates verb_noun convention. 'read_ch32v003_guide_book' is non-standard; should be 'get_ch32v003_guide' or 'get_guide_section'. LLMs expect 'get_', 'list_', 'create_', 'search_' prefixes to infer intent.
Description is 280+ characters, exceeds 200-char baseline. Contains Japanese text with apparent typos ('していしてください'). Descriptions should be concise, English, and free of grammatical errors to guide LLM selection.
No output schema documented. Tool returns markdown text, but LLMs cannot plan downstream actions without knowing the response structure. Document: returns string (markdown content with sections: main guide, item guide, code samples).
Error messages are generic ('Invalid framework', 'Invalid item', 'code documents not found'). Per pattern:recovery-guide, errors should guide recovery: 'Invalid framework: got "X". Valid options: WCH SDK, ch32fun. Call with one of these values.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
Parameter 'item' description lists valid values inline ('内容(ADC, GPIO, ...)') instead of using enum constraint. Enum is present in schema, but description should reference it: 'Item name (see enum for valid options)' to avoid LLM confusion.