devecocli-mcp
Provides tools for HarmonyOS development, including project creation, building, running apps, device and emulator management, log retrieval, offline official documentation search, and skill market discovery, powered by the devecocli engine.
Click on "Install 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., "@devecocli-mcpsearch docs for ability lifecycle"
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.
devecocli-mcp
统一鸿蒙(HarmonyOS)开发 MCP 服务:精选、封装、编排 deveco-cli 的技能与能力,让 AI 像搜索 RAG 知识库一样检索能力 → 一键调用 CLI → 快捷查询官方文档。
底层引擎:deveco-cli(openharmony-sig,封装 hvigor/ohpm/hdc/hilog 工具链 + 本地官方文档库 + 技能市场)
🚀 快速安装(一句话)
把下面这句话原样复制给任意 AI 编码客户端(Claude Code / opencode / Cursor / DevEco Code 等),它会按本仓库引导完成 skill + MCP 的安装:
按照仓库引导配置 https://github.com/kelai141/devecocli-mcp 中的内容,注意基于本地环境调整,注意询问用户配置于工作区或全局
AI 执行时须遵守:
不假设平台:Windows / macOS / Linux 的命令与路径不同,以本地实际环境为准
先询问用户:MCP 配置到工作区(项目级)还是全局(用户级);SKILL 装到哪个 agent
验证收尾:调用 MCP
status工具确认 devecocli / 文档库 / 工程三项就绪
Related MCP server: CodeArts MCP
为什么需要它
痛点 | 本服务的解法 |
deveco-cli 能力多而杂,AI 不知道用哪个 |
|
每个 AI 工具的 MCP 配置格式不一 | 标准 MCP 服务,任何客户端一行配置接入 |
LLM 缺乏鸿蒙知识 |
|
技能市场找包难 |
|
快速开始(手动安装)
前置要求
# 1. 安装 devecocli(执行引擎)
npm install -g @deveco/deveco-cli
# 2. 确保已安装 DevEco Studio(工具链定位)并初始化文档库(首次 docs 命令会自动初始化)安装本服务
npm install -g devecocli-mcp # 或本地构建: npm run build接入任意 MCP 客户端(一行配置)
Claude Code / Cursor / opencode / DevEco Code 等(标准格式,工作区级 <project>/.mcp.json):
{
"mcpServers": {
"devecocli-mcp": {
"command": "devecocli-mcp",
"env": {
"PROJECT_PATH": "${workspaceFolder}"
}
}
}
}全局级:Claude Code
~/.claude.json、Cursor~/.cursor/mcp.json、opencode~/.config/opencode/opencode.json(Windows%APPDATA%\opencode\)、codex~/.codex/config.toml(TOML 格式)PROJECT_PATH可选:缺省自动从客户端 workspace root / 当前目录探测鸿蒙工程opencode 使用
"type": "local"格式(参见 deveco-cli 配置规范)
安装教学 Skill(推荐)
# 复制 SKILL.md 到你的 agent skills 目录,例如 Claude Code:
cp SKILL.md ~/.claude/skills/deveco-unified-mcp/SKILL.mdSKILL 是操作手册(安装后注入 AI 上下文:工作流/工具速查/高频规范/Recipes/Troubleshooting),MCP 是执行层——两者配套使用,安装引导以本 README 为准。
工具一览(8 个)
工具 | 说明 |
| RAG 式检索精选能力(自然语言 → 能力卡:参数/示例/避坑) |
| 按能力 ID 执行(参数校验 → devecocli 子进程 / 市场 API) |
| 浏览全部能力(按分类) |
| 官方文档全文检索(6 类目录,离线) |
| 按文档 ID 读取全文 |
| 文档分类列表 |
| 技能市场搜索 |
| 环境健康检查(devecocli/文档库/工程) |
另有 MCP Prompt harmonyos-dev(工作流教学)与 Resource capability://registry(完整注册表)、guide://harmonyos-dev(操作指南)。
精选能力注册表(v1,22 项)
工程:project.create
构建:build.project、build.clean
运行:app.run、app.preview(多设备预览器)
设备:device.list、device.view
模拟器:emulator.list、emulator.start、emulator.stop
日志:log.get、log.crash
文档:docs.search、docs.read、docs.catalog
技能市场:skills.find、skills.list、skills.add、skills.remove
初始化:init.skill、init.mcp
维护:cli.update
架构
src/
├── registry/ # 精选能力注册表(22 项,含教学字段)
├── retrieval/ # CJK 分词 + BM25 + 同义词组(离线零配置)
├── executor/ # devecocli 子进程封装(跨平台/超时/截断)+ 能力调度
├── skills/ # 技能市场直连客户端(matrix.openharmony.cn)
├── tools/ # 工具实现与能力卡格式化
├── server.ts # MCP Server(8 工具 + prompt + resource)
├── prompts.ts # harmonyos-dev 工作流教学(注入层核心)
└── index.ts # stdio 入口开发
npm install
npm run build # tsup → dist/index.js
npm test # vitest(含 top-1 命中率验收)
npm run typecheck工作原理
执行引擎:子进程调用
devecocli(DEVECO_CLI_SKIP_VERSION_CHECK=1跳过每次调用的版本检查,加速响应);参数数组传递防注入;非 TTY 下输出无 ANSI 干扰文档通道:
devecocli docs search --format json结构化解析;文档库由 devecocli 自动初始化(SQLite FTS5 + jieba,离线可用)检索层:中文 bigram 分词 + BM25 + 同义词组(每组至多一次加成),纯本地毫秒级
技能市场:直连
matrix.openharmony.cnAPI(HMOS 标签,过滤 DevEco 标签),结构化返回
License
MIT
Available Tools
9 toolscapability_list浏览全部能力A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。列出能力注册表中的全部精选能力(可按分类筛选),供发现与总览。
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | 按分类筛选 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses a prerequisite (must load the SKILL) and that it reads from a capability registry. However, it does not explicitly state that the operation is read-only or describe the return format or behavior when the skill is not loaded. The verb 'list' implies a safe read, but robust behavioral detail is lacking.
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 concise with two sentences and no filler. However, the main purpose appears in the second sentence, following the prerequisite, so it is not ideally front-loaded. Nevertheless, each sentence provides necessary information.
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?
The tool is simple with one optional parameter and no output schema. The description explains the core functionality and a prerequisite, but it does not specify return values or behavior when no category is provided. With no annotations, these gaps leave some ambiguity for an agent.
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 has a single 'category' parameter with enum values and a description, achieving 100% schema description coverage. The description only reiterates the ability to filter by category, which adds no new semantic information beyond the schema. The baseline of 3 applies since the schema is complete.
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 '列出能力注册表中的全部精选能力(可按分类筛选)' with a specific verb (list) and resource (all curated capabilities in the capability registry). This distinguishes it from sibling tools like capability_search by focusing on broad listing and overview rather than targeted searching.
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 provides a clear prerequisite (load the deveco-unified-mcp SKILL before use) and states its purpose is '供发现与总览' (for discovery and overview), which gives context for when to use it. However, it does not explicitly contrast with alternatives like capability_search or specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capability_run执行鸿蒙开发能力A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。按能力 ID 执行(参数校验 → 调 devecocli 或技能市场 API)。能力 ID 通过 capability_search 或 capability_list 获取。构建/运行等操作耗时长,请耐心等待;失败信息通常已含解决提示。
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | 能力参数(键名见能力卡的"参数"字段,如 { product: "oversea", buildMode: "release" }) | |
| capability_id | Yes | 能力 ID,如 build.project、docs.search、skills.find |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that operations may be long-running, failure messages usually contain solution hints, and internally it performs parameter validation before calling devecocli or the skill marketplace API. However, it does not address side effects, permissions, or whether operations are reversible/ cancellable.
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?
Three sentences, each earning its place: prerequisite, execution mechanism, and operational caveats. Information is front-loaded and there is no fluff.
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 generic executor with only 2 parameters and no output schema, the description covers the essential context: prerequisite, ID sourcing, internal flow, time expectations, and failure behavior. It lacks explicit output/return format, but that is reasonable given the absence of an output schema and the tool's generic nature.
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 already provides complete descriptions for both parameters (capability_id with examples, args with key-name guidance). The description adds minor context about sourcing capability IDs from list/search tools and the existence of parameter validation, but these are incremental over the rich 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 clearly identifies the tool as an executor of HarmonyOS development capabilities by ID, with a specific mechanism (parameter validation → devecocli or skill marketplace API). It distinguishes itself from sibling tools by explaining that capability IDs come from capability_search or capability_list, positioning itself as the execution counterpart.
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?
Provides explicit workflow guidance: load the SKILL first, obtain capability IDs via capability_search or capability_list, and warns about long-running build/run operations. However, it does not explicitly state when not to use this tool or name specific alternative tools beyond the ID-acquisition ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capability_search检索鸿蒙开发能力A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。RAG 式检索精选能力注册表。任何 HarmonyOS 开发任务(构建、运行、日志、文档、技能…)都应先用它找到合适的能力,返回的能力卡含完整用法教学(参数/示例/避坑),随后用 capability_run 执行。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数 | |
| query | Yes | 自然语言查询,如"打包 release 产物"、"看崩溃日志"、"创建鸿蒙工程" | |
| category | No | 按分类筛选 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions that the tool performs RAG-style retrieval, returns a capability card with usage teaching, and has a prerequisite (load SKILL). However, it does not explicitly state that the operation is read-only or has no side effects, though this is implied by '检索' (search). It adds moderate context beyond the name and schema.
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 compact, consisting of three sentences that respectively cover prerequisite, purpose, and usage workflow. Every sentence adds value: the SKILL requirement, the retrieval nature, and the follow-up with capability_run. No fluff or redundancy.
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?
The description covers the prerequisite (load SKILL), the tool's purpose, when to use it, what it returns (capability card with parameters/examples/pitfalls), and the follow-up action (capability_run). Given there is no output schema, this sufficiently orients the agent. Minor gaps like explicit mention of pagination or default behavior are not critical for a simple search tool.
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%, with descriptions for all three parameters: query (natural language with examples), limit (return count), and category (with enum). The description does not add extra parameter details, but the schema already provides sufficient semantics. The baseline of 3 is appropriate when the schema fully documents parameters.
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 it is a 'RAG 式检索精选能力注册表' (RAG-style retrieval of curated capability registry), giving a specific verb and resource. It also distinguishes itself from sibling capability_run by explicitly positioning this tool as the first step to find capabilities before executing them. It could more explicitly differentiate from docs_search or skills_find, but its focus on capabilities is clear.
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 clearly states that any HarmonyOS development task (构建、运行、日志、文档、技能…) should first use this tool, and that the returned capability card should then be executed with capability_run. It also gives the prerequisite of loading the deveco-unified-mcp SKILL. It does not explicitly mention when not to use it, but the workflow is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_catalog查看文档分类A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。列出官方文档库的分类(开发指南/API参考/最佳实践/FAQ/版本说明/变更预告)。
| 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 transparency burden. It discloses the tool lists documentation categories and implies a read-only action, but it does not describe the output structure, potential side effects, or why the SKILL must be loaded first. The prerequisite is a useful behavioral note, yet overall behavioral detail is minimal for a tool with no annotations.
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 short sentences: the first is a necessary prerequisite instruction, the second states the core action with examples. No filler or redundancy. Every word earns its place, and the structure front-loads the operational requirement before the main purpose.
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 simple catalog-listing tool with no parameters and no output schema, the description is largely complete: it states what the tool does, gives example output content, and notes a prerequisite. It does not describe the exact return format, but given the simplicity and clear scope, this is a minor gap rather than a significant deficiency.
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 tool has zero parameters, so there is nothing to explain beyond the schema. The description does not need to add parameter meaning, and the empty schema already communicates the absence of inputs. Per calibration rules, zero parameters warrants a baseline score of 4, and the description does not undercut this.
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: '列出官方文档库的分类' (list categories of the official documentation library), with concrete examples of categories. This distinguishes it from sibling tools like docs_search and docs_read, which handle searching/reading content rather than catalog navigation.
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 provides a clear prerequisite: users must load the 'deveco-unified-mcp' SKILL before use. However, it gives no explicit guidance on when to choose this tool over alternatives (e.g., docs_tree) or when not to use it. The usage context is implied but not contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_read读取文档全文A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。按文档 ID 读取 HarmonyOS 官方文档完整内容(markdown)。文档 ID 来自 docs_search 结果的 documentId 字段。
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | 文档 ID,如 harmonyos-guides/application-models/arkts-page-start-overview |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool retrieves full markdown content and that SKILL loading is required, which are useful behavioral details. It doesn't address error handling or side effects, but for a read-only docs tool, this is adequate.
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 prerequisite and then the core purpose. Every sentence earns its place without redundancy.
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?
The tool is simple (one ID parameter). The description covers the return format (full markdown), required prerequisite (SKILL), and ID source (docs_search). It references SKILL.md for more detail. Minor gaps like error behavior don't significantly impair completeness.
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 already fully describes the single parameter with an example. The description adds crucial semantic context: the document ID must come from the documentId field of docs_search results, preventing arbitrary or guessed IDs. This goes beyond 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 clearly states the action (read by document ID), the resource (HarmonyOS official documentation), and the output format (markdown). It distinguishes itself from sibling tools like docs_search (which searches) and docs_catalog/docs_tree (which browse).
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?
It explicitly instructs to load the deveco-unified-mcp SKILL before use and states that the document ID must come from docs_search results, effectively giving the workflow: search first, then read. This is clear guidance on prerequisites and data source, distinguishing when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_search检索官方文档A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。全文检索本地 2000+ 万字 HarmonyOS 官方文档(开发指南/API参考/最佳实践/FAQ/版本说明/变更预告)。编写 ArkTS/ArkUI 代码前遇到不确定的 API、组件、概念时先查文档。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数 | |
| catalog | No | 文档分类 | all |
| keywords | Yes | 搜索关键词数组,如 ["@State", "装饰器"] 或 ["List", "懒加载"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It discloses the corpus scope and included document categories but does not describe result behavior (e.g., snippets, paths, relevance ordering) or any side effects. This is adequate but not more.
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 only three sentences: prerequisite, function, and usage context. Every sentence contributes meaningful operational guidance, and the most important prerequisite is front-loaded. No wasted words.
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 search tool with no output schema, the description covers the corpus, scope, and when to use it, and points to the SKILL manual for workflow standards. It does not explicitly mention how results should be consumed (e.g., via docs_read), but the schema and SKILL reference fill most gaps.
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 covers 100% of parameters with descriptions, defaults, enums, and examples. The tool description adds general purpose and use-case context but no parameter-specific meaning beyond what the schema already provides. Baseline 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 uses a specific verb ('全文检索') and a clearly defined resource: local 2000+万字 HarmonyOS 官方文档 across enumerated categories. It distinguishes this search tool from sibling read/browse tools by positioning it as the pre-coding lookup step.
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 gives explicit usage context: before writing ArkTS/ArkUI code, when unsure about an API, component, or concept. It also mandates loading the SKILL first as a prerequisite. However, it does not explicitly name sibling alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_tree浏览文档目录树A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。浏览官方文档库目录树(分类→章节→页面,页面附标题),先目录定位再全文检索再读全文。页面路径即文档 ID,可直接用于 docs_read。
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 目录锚点,如 "开发指南/ArkUI_方舟UI框架",从该目录展开 | |
| depth | No | 展开深度 | |
| catalog | No | 只看某一分类时指定;缺省全部 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses an important prerequisite (loading the deveco-unified-mcp SKILL) and explains behavioral context: the tree structure, page titles, and the fact that page paths serve as document IDs for docs_read. This goes beyond basic function naming, though it omits details like output format or pagination, which are not critical for a simple browsing 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 three sentences long and every sentence earns its place: the first states a prerequisite, the second defines the core function, and the third explains output usage and connection to docs_read. It is front-loaded with the most important operational requirement and contains no redundant fluff.
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 absence of an output schema, the description adequately communicates the return concept (directory tree with categories, chapters, pages, and titles) and how to use the results (path as document ID). It covers the workflow and relationships with sibling tools. Some details like depth behavior are already in the schema, so the description is complete enough for a straightforward browsing tool.
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 description coverage is 100%, with each parameter (path, depth, catalog) already having clear descriptions in the input schema. The tool's description adds no extra parameter-level meaning; it only mentions that page paths can be used as document IDs, which is output-related rather than parameter-specific. Baseline 3 is appropriate since the schema handles parameter semantics.
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: '浏览官方文档库目录树(分类→章节→页面,页面附标题)' (browse official documentation library directory tree: category→chapter→page, pages have titles). It uses a specific verb plus resource and identifies the hierarchical structure, distinguishing it from sibling tools like docs_search and docs_read by positioning it as the initial navigation step.
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 provides explicit workflow guidance: '先目录定位再全文检索再读全文' (locate via catalog first, then full-text search, then read full text), and notes that page paths from this tool can be used directly with docs_read. It clearly indicates when this tool should be used relative to search and read tools, though it does not explicitly mention when not to use it or compare with docs_catalog.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skills_find搜索技能市场A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。在 HarmonyOS 技能市场(matrix.openharmony.cn)搜索社区/官方专家技能包(多设备适配、崩溃定位、元服务开发等场景)。找到后可用 capability_run 的 skills.add 安装到智能体。
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | 搜索关键词,如 "crash"、"元服务"、"multi-device" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the prerequisite of loading the SKILL and clarifies that installation happens separately via capability_run, implying the search itself is read-only. It does not detail pagination or auth, but the core behavioral context is present.
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 compact: two sentences covering prerequisite, search location, and installation next step. It is front-loaded and every sentence contributes value, though the dense phrasing slightly reduces readability.
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?
With only one simple parameter and no output schema, this is a straightforward search tool. The description covers the prerequisite, the search scope, and the downstream install action, making it reasonably complete for an agent to invoke correctly. It could mention return format, but that is not critical here.
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 already has 100% coverage with a description and examples for the single keyword parameter. The description only echoes the same example categories without adding new param-specific meaning, so it stays at 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 searches the HarmonyOS skills marketplace (matrix.openharmony.cn) for expert skill packs, using specific verbs and resource. It differentiates from sibling tools like docs_search and capability_search by targeting the skills marketplace specifically, and mentions the follow-up install via capability_run.
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?
It provides clear workflow context by requiring the deveco-unified-mcp SKILL to be loaded first, and tells the agent to use capability_run's skills.add to install after finding. It does not explicitly list when not to use it, but the practical guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status环境健康检查A
使用前请先加载 deveco-unified-mcp SKILL(仓库 SKILL.md 为操作手册:工作流与使用规范)。检查本服务运行环境:devecocli 是否安装、官方文档库是否就绪、当前鸿蒙工程检测、以及(可选)连接设备。首次接入时先调用它确认环境。
| Name | Required | Description | Default |
|---|---|---|---|
| check_devices | No | 是否同时检查连接设备(较慢,默认关闭) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses what is checked and notes that the optional device check is slow, which is useful. However, it does not explicitly state whether the tool is read-only, what happens on failure (e.g., missing devecocli), or any side effects. This is adequate but not rich.
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 sentences and to the point. The first sentence is a prerequisite instruction rather than the core purpose, but it is still relevant. It is front-loaded with the SKILL loading requirement, which might be better placed elsewhere, but overall it is efficiently written with no filler.
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?
The tool is simple (one optional parameter, no output schema, no annotations), and the description lists all the checks it performs. However, it does not explain the return format or what happens if the environment is not ready. While the context of first-use is given, the lack of output description is a gap given there is no output schema.
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 covers the single boolean parameter check_devices with a description, so schema coverage is 100%. The tool description adds a slight context by mentioning '(可选)连接设备' but does not go beyond the schema's own description. Since the schema does the heavy lifting, a baseline of 3 is correct.
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 checks the runtime environment (devecocli installation, docs library, HarmonyOS project, optional device connection). The verb '检查' (check) with the listed resources is specific and distinguishes it from sibling tools like docs_* and capability_* which focus on documentation and capabilities. The title also reinforces the purpose.
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 explicitly says to call this tool first on initial access to confirm the environment, and it also notes the prerequisite of loading the deveco-unified-mcp SKILL. This gives a clear usage context. However, it does not explicitly mention when not to use it or provide direct alternative tools, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tools are largely distinct by domain: capability_run/list/search, docs_search/read/catalog/tree, skills_find, and status. There is minor overlap between capability_list and capability_search (both discover capabilities) and between docs_catalog and docs_tree (both browse structure), but descriptions clarify their differing intents.
Most tools follow a consistent pattern of <domain>_<action> (e.g., capability_run, docs_search). The 'status' tool lacks the pattern (could be environment_status), and skills_find uses a different verb than the capability group, but overall the naming is predictable and readable.
Nine tools is well within the ideal 3-15 range and each serves a distinct purpose in the HarmonyOS development workflow—capability execution, documentation lookup, skill discovery, and environment status. No tool feels redundant or unnecessary.
The surface covers the full intended scope: discovering and running capabilities, searching and reading documentation, browsing the doc tree, finding skills, and checking environment readiness. The ability to install skills via capability_run (skills.add) closes the loop, leaving no obvious gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for AI dialogue using various LLM models via AceDataCloud
Official DevSpeak MCP server — translate technical text into formal specs from any AI IDE or agent
Related MCP Servers
- FlicenseDqualityBmaintenanceEnables HarmonyOS device discovery, app build and deployment, UI automation, E2E inspection, and log validation through MCP tools.1812
- AlicenseNot gradedqualityBmaintenanceUnified MCP server that wraps 8 Huawei Cloud CodeArts modules (Req, Repo, Pipeline, Check, TestPlan, Deploy, Build, Artifact) into a standardized toolset, supporting local stdio and shared HTTP modes with session isolation and encrypted credential storage.MIT
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol server for HarmonyOS development, enabling AI assistants to interact with HarmonyOS projects, devices, and applications.782MIT
- AlicenseBqualityAmaintenanceA comprehensive MCP server for developers providing file operations, shell execution, git integration, and smart caching to enhance AI-assisted development.1131MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kelai141/devecocli-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server