Unofficial MCP Server for OpenHarmony/HarmonyOS English Documentation
Three tools with complete schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. All tools are READ_ONLY and well-named with action verbs (find_, read_, list_). Descriptions are adequate (100-150 chars) but lack specificity about return structure and when to use each tool. The 'limit' parameter in find_docs has a default but no min/max bounds. Output schemas are not documented, LLMs cannot predict what fields to expect from search results or document content. Error handling is minimal (generic 'not found' messages). No parameter validation guidance or recovery hints.
Search through HarmonyOS/OpenHarmony application development documentation. Use this to find UI components, APIs, or architectural guidance.
List all available documentation categories to understand the structure of the HarmonyOS SDK.
Read the full content of a specific documentation file to get code examples and detailed API usage.
Output schemas not documented. LLMs cannot predict the structure of search results (fields returned by find_docs) or topic listings (fields in list_doc_topics response). This forces agents to guess at field names and risks extraction errors.
Parameter 'limit' in find_docs has a default (10) but no documented min/max bounds. Unbounded numeric parameters let LLMs pass absurd values (e.g., limit=999999) that could break performance or cause timeouts.
Error messages are generic ('No documents found', 'Document not found'). They do not guide the LLM on recovery steps (e.g., 'Try a broader query' or 'Call list_doc_topics to see available categories').
Tool descriptions lack context on when to use each tool. 'find_docs' vs 'list_doc_topics' distinction is unclear, should an agent call list_doc_topics first to discover categories, or jump straight to find_docs? No guidance provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
The 'objectId' parameter in read_doc is documented as 'obtained from find_docs', but the actual format and structure of objectId is not explained. LLMs may not understand that objectId is a derived identifier (path-based, with slashes replaced by hyphens).