ohos-mcp-unofficial
Provides tools for searching, reading, and browsing official HarmonyOS/OpenHarmony documentation, enabling AI agents to retrieve and analyze technical documentation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ohos-mcp-unofficialfind documentation about ArkUI components"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Unofficial OpenHarmony/HarmonyOS MCP Server (English)
This is an unofficial Model Context Protocol (MCP) server that brings the power of HarmonyOS & OpenHarmony English Documentation directly to your AI assistants. It indexes over 5,000 official documentation files for instant, high-context retrieval.
π Quick Start: Zero-Install Method (Recommended)
The easiest way to use this is via npx. No cloning required!
1. Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"ohos-docs": {
"command": "npx",
"args": ["-y", "github:megaacheyounes/ohos-mcp-unofficial"]
}
}
}2. ChatGPT Codex CLI
Add the server using the following command:
codex mcp add ohos -- npx -y github:megaacheyounes/ohos-mcp-unofficial3. OpenCode AI
In the OpenCode settings or config:
Command:
npxArguments:
-y github:megaacheyounes/ohos-mcp-unofficial
4. Cursor / Windsurf / IDEs
Add a new MCP server in the settings:
Type:
commandCommand:
npx -y github:megaacheyounes/ohos-mcp-unofficial
5. Gemini CLI
In your .geminirc:
{
"mcpServers": {
"ohos": {
"command": "npx",
"args": ["-y", "github:megaacheyounes/ohos-mcp-unofficial"]
}
}
}Related MCP server: Apple Dev MCP Server
πΌοΈ Multimodal Support
The documentation has been optimized for AI agents with "vision" capabilities.
Remote Images: All diagrams and screenshots are linked directly to the official Gitee repository.
Agent Action: Multimodal agents can follow these links to download and analyze visual architecture diagrams, UI mockups, and flowcharts to provide more accurate explanations.
π Understanding the Two Modes
1. Stdio Mode (Default)
Used by local assistants (Claude Desktop, Cursor, etc.). The assistant starts the server as a background process.
2. HTTP Mode
Use this for remote access or web integrations.
# Start server
npx -y github:megaacheyounes/ohos-mcp-unofficial --http --port 3456Health Check:
http://localhost:3456/healthTool Calls: POST to
http://localhost:3456/call
π§° Available Tools
find_docs: Search documentation by keywords (e.g., "Navigation", "Canvas").read_doc: Retrieve the full Markdown content of a specific document.list_doc_topics: Browse the documentation hierarchy.
π Credits
Inspired by arkts-helper. This version is specifically optimized for the English-speaking community using OpenHarmony 6.1 (API 23) open-source documentation.
βοΈ Disclaimer
This is an unofficial community project and is not affiliated with, maintained by, or endorsed by Huawei Technologies Co., Ltd. or the OpenHarmony project.
Parts of this project were generated or assisted by AI.
Use of this tool and the documentation it retrieves is at your own risk. Always verify critical information against the official documentation.
π License
MIT Β© megaacheyounes
Available Tools
3 toolsfind_docsA
Search through HarmonyOS/OpenHarmony application development documentation. Use this to find UI components, APIs, or architectural guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 10) | |
| query | Yes | Search query in English (e.g., "AbilityKit", "Canvas", "Navigation migration") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits itself. 'Search' implies a read-only operation, but the description does not explicitly state it is non-mutating or describe the return format (e.g., list of document IDs, snippets). This leaves some uncertainty about what the tool actually does beyond searching, earning a middle score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary action and purpose, followed by usage context. Every word adds value, with no redundancy or filler. It is well-structured and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description covers the core purpose but does not mention what the search returns (e.g., document titles, links, or snippets). Without an output schema, this omission leaves a notable gap in completeness, but the tool is simple enough that the description is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are documented. The description adds value by giving concrete examples of query types (UI components, APIs, architectural guidance), which helps users formulate effective queries beyond the schema's generic description. This extra guidance raises the score above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function as searching HarmonyOS/OpenHarmony documentation, with specifics on what can be found (UI components, APIs, architectural guidance). This distinguishes it from sibling tools like read_doc (reading a specific doc) and list_doc_topics (listing topics), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool ('Use this to find UI components, APIs, or architectural guidance'), providing clear context for search-related tasks. It does not explicitly state when not to use it or mention alternatives, but the context is sufficient for basic selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_doc_topicsA
List all available documentation categories to understand the structure of the HarmonyOS SDK.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure burden. It implies a read-only operation ('List all') but does not explicitly mention safety, missing output details, or any restrictions. For a simple list tool, this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and then provides the purpose. Every word earns its place, and there is no redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers the essential information: what is listed (documentation categories) and why (to understand the SDK structure). It could explicitly mention the return format, but 'List all...' sufficiently implies a list of categories.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, so the baseline for parameter semantics is 4. The description adds context by clarifying the purpose and scope (categories of the HarmonyOS SDK), which goes beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('List all available documentation categories') and identifies the resource (HarmonyOS SDK). It clearly distinguishes from sibling tools like find_docs and read_doc by focusing on the structural overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to understand the SDK structure but does not explicitly contrast it with sibling tools or state when not to use it. No exclusions or alternatives are mentioned, leaving the decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_docA
Read the full content of a specific documentation file to get code examples and detailed API usage.
| Name | Required | Description | Default |
|---|---|---|---|
| objectId | Yes | The unique ID of the document (obtained from find_docs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It says 'Read' and 'full content', which conveys read-only behavior and non-truncation, but does not mention error handling, authentication, or any side effects. This is adequate but minimal for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant or filler words. It front-loads the action ('Read the full content') and adds a clear purpose, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool with no annotations, the description provides sufficient context to understand what the tool returns and why it exists. It could mention error behavior, but the combination of description and schema is largely complete for a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage of the only parameter (objectId) and already notes it is obtained from find_docs. The description adds no additional parameter context beyond the broader purpose, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the full content of a specific documentation file, with a specific purpose (code examples and detailed API usage). This distinguishes it from siblings like find_docs (search) and list_doc_topics (topics) by focusing on retrieving the full content for a known document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when detailed examples are needed, but does not explicitly name alternatives or exclusion criteria. The schema notes the ID comes from find_docs, but that is in the schema rather than the description. Thus, usage context is present but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
find_docs - First observed
list_doc_topics - First observed
read_doc
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: searching, reading, and listing documentation topics. There is no overlap or ambiguity between them.
All three tools follow the consistent verb_noun pattern with underscores: find_docs, read_doc, list_doc_topics. The naming is uniform and predictable.
Three tools is well-scoped for a documentation lookup server. Each tool addresses a necessary step in the workflow without unnecessary bloat.
The tool set covers the full documentation workflow: discover topics, search for specific docs, and read full content. No critical operations are missing for the stated purpose.
Maintenance
Related MCP Connectors
Provide your AI coding tools with token-efficient access to up-to-date technical documentation forβ¦
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analyβ¦
Search your knowledge bases from any AI assistant using hybrid RAG.
Versioned documentation registry and semantic search for AI tools and coding assistants.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to enhance their responses with relevant documentation through a semantic vector search, offering tools for managing and processing documentation efficiently.6 npm64MIT
- AlicenseBqualityFmaintenanceProvides AI assistants with access to Apple's Human Interface Guidelines and technical API documentation across all Apple platforms (iOS, macOS, watchOS, tvOS, visionOS), enabling unified search of design principles and implementation details.372 npm21MIT
- FlicenseAqualityDmaintenanceProvides AI models with direct access to documentation for over 600 technologies from DevDocs.io, including popular languages, frameworks, and tools. It enables comprehensive searching, content retrieval, and offline access via an intelligent local caching system.122-
- FlicenseNot gradedqualityBmaintenanceProvides retrieval of WeChat Work and Feishu developer documentation, enabling AI assistants to query API references without switching browsers.21 npm19-