重磅升级:我给 harmony-mcp 集成了鸿蒙 HDC,让 AI 能直接调试 HarmonyOS 设备
定位:项目升级发布 + 实操工作流分享
目标读者:正在用 Cursor、Claude、Kiro 等 AI 工具做小程序或 HarmonyOS 开发的开发者
之前做的 harmony-mcp,主要解决的是微信小程序开发里的重复操作:环境检查、编译诊断、包体积分析、合规预检、一键上传。
这次是一次比较大的升级:在原有小程序能力基础上,我给 harmony-mcp 集成了鸿蒙 HDC 设备自动化。
也就是说,现在 AI 不只可以帮你操作微信开发者工具,还可以通过 HDC 直接操作 HarmonyOS 真机或模拟器:
- 检查 HDC 环境
- 列出已连接设备
- 安装 HAP 包
- 启动指定 Ability
- 抓取 hilog 日志
- 推送文件到设备
- 从设备拉取文件
- 卸载应用
目标还是同一个:让 AI 不只"告诉你该执行什么命令",而是能在本地安全边界内直接调用工具,执行、验证、再反馈结果。
先说效果
以前调试鸿蒙应用,我的流程通常是这样的:
- 打开终端,确认
hdc能不能用 - 执行
hdc list targets看设备有没有连上 - 找到 HAP 包路径
- 执行
hdc install xxx.hap - 手写
aa start命令拉起 Ability - 再执行
hdc hilog看日志 - 遇到多设备,还要手动补
-t connectKey
现在可以直接对 AI 说:
text
帮我检查鸿蒙环境,列出设备,然后把这个 HAP 安装到模拟器上并启动 EntryAbility
AI 会按顺序调用:
text
harmony_ready_check
harmony_list_devices
harmony_install
harmony_start
harmony_log
如果 HDC 找不到、设备没连、存在多设备但没指定 target,工具会返回结构化错误和修复建议。AI 不需要猜命令输出,用户也不用在终端里来回复制。
原理:MCP + HDC
MCP(Model Context Protocol)可以理解为 AI 调用外部工具的标准协议。
text
以前:AI 给你一段命令,你复制到终端执行
现在:AI 通过 MCP 调用工具,工具再调用本地 HDC,并返回结构化结果
HDC 是 HarmonyOS 官方设备连接工具,常见命令包括:
bash
hdc list targets
hdc install entry-default-signed.hap
hdc uninstall com.example.app
hdc shell aa start -a EntryAbility -b com.example.app
hdc shell hilog -x
hdc file send local.txt /data/local/tmp/local.txt
hdc file recv /data/local/tmp/local.txt local-back.txt
直接让 AI 裸跑 shell 当然也能做,但稳定性和安全边界都不够好。
所以这次升级的核心不是"让 AI 拼命令",而是把 HDC 能力封装成明确的 MCP tools:每个工具都有固定名称、入参 schema、行为说明和安全标记。
这次新增的 8 个鸿蒙工具
| 工具 | 能力 |
|---|---|
harmony_ready_check |
检测 HDC 路径、HDC 版本、设备连接状态 |
harmony_list_devices |
列出鸿蒙真机和模拟器,返回 connectKey |
harmony_install |
安装 HAP 包,支持异步任务 |
harmony_uninstall |
按 bundleName 卸载应用 |
harmony_start |
启动指定 bundleName 和 abilityName |
harmony_log |
抓取 hilog 日志,支持行数和关键词过滤 |
harmony_file_push |
推送本地文件到设备 |
harmony_file_pull |
从设备拉取文件到本地 |
所有能力都基于华为官方 HDC CLI,不涉及逆向,也不调用非公开接口。
5 分钟配置
前置条件
- 已安装 DevEco Studio 或 HarmonyOS SDK
- 本机能找到 HDC 工具
- 已启动 DevEco 模拟器,或已连接 HarmonyOS 真机
- 真机已开启开发者模式和 USB 调试
- Node.js >= 18
如果 HDC 没有加入 PATH,也可以用环境变量或本地配置指定路径。
环境变量方式:
bash
HDC_PATH=你的hdc可执行文件完整路径
或者在项目根目录创建 harmony-mcp.json:
json
{
"hdcPath": "D:\\Huawei\\Sdk\\default\\toolchains\\hdc.exe"
}
Cursor 配置
在项目根目录创建 .cursor/mcp.json:
json
{
"mcpServers": {
"harmony-mcp": {
"command": "npx",
"args": ["-y", "@yujiamei/harmony-mcp"]
}
}
}
重启 Cursor,在 MCP 面板里看到 harmony-mcp 可用即可。
Windows 用户如果 npx 启动不稳定,可以先全局安装:
bash
npm install -g @yujiamei/harmony-mcp
然后配置改成:
json
{
"mcpServers": {
"harmony-mcp": {
"command": "harmony-mcp",
"args": []
}
}
}
Claude Desktop、Kiro 等支持 MCP 的客户端配置方式类似。
我的 5 个鸿蒙高频使用场景
场景 1:环境预检
以前我会先在终端里确认:
bash
hdc version
hdc list targets
现在直接对 AI 说:
text
帮我检查鸿蒙开发环境
AI 会调用 harmony_ready_check,一次性检查:
- HDC 路径是否能找到
- HDC 版本是否能读取
- 当前是否有真机或模拟器连接
如果 HDC 找不到,返回结果里会带修复建议,例如设置 HDC_PATH、检查 SDK 安装目录、把 toolchains 加入 PATH。
这个能力看起来简单,但很实用。很多问题不是代码错,而是设备、SDK、HDC 服务状态不对。
场景 2:多设备自动识别
鸿蒙调试经常遇到多设备场景,比如同时开着模拟器,又插着一台真机。
以前要自己看:
bash
hdc list targets
然后手动复制某个 connectKey,再给后续命令补:
bash
hdc -t 127.0.0.1:5555 install xxx.hap
现在可以说:
text
列出当前所有鸿蒙设备
AI 调用 harmony_list_devices 后会拿到结构化结果:
json
{
"status": "OK",
"deviceCount": 2,
"devices": [
{
"connectKey": "127.0.0.1:5555",
"status": "Connected",
"kind": "emulator"
},
{
"connectKey": "FMR0223C13000649",
"status": "Connected",
"kind": "device"
}
]
}
后续安装、启动、抓日志都可以复用这个 connectKey。
场景 3:安装 HAP 并启动 Ability
以前的手动流程:
bash
hdc install D:\demo\entry-default-signed.hap
hdc shell aa start -a EntryAbility -b com.example.demo
现在可以直接说:
text
把 D:/demo/entry-default-signed.hap 安装到模拟器上,然后启动 com.example.demo 的 EntryAbility
AI 会调用:
text
harmony_install
harmony_start
harmony_install 还做了异步任务设计。安装 HAP 可能耗时较长,如果客户端支持 MCP Tasks,可以先返回 taskId,再轮询最终结果,避免整个对话被安装过程阻塞。
如果客户端不支持 Tasks,也可以降级成同步结果。
场景 4:抓 hilog 定位问题
应用拉起后,最常见的下一步就是看日志。
以前我要手动执行:
bash
hdc shell hilog -x
日志多了以后还得自己过滤。
现在可以直接说:
text
看一下设备最近 100 行日志,只保留包含 App 的行
AI 调用 harmony_log,传入:
json
{
"lines": 100,
"keyword": "App"
}
工具会返回结构化结果,包括日志行数、过滤关键词和日志内容。
这一步的价值在于,AI 可以继续基于日志判断下一步:是启动失败、权限问题、bundleName 错误,还是应用自身 crash。
场景 5:文件推送和拉取
有些调试需要把配置、日志、测试数据放到设备里,或者从设备里拉文件出来。
以前要自己执行:
bash
hdc file send C:\test\hello.txt /data/local/tmp/hello.txt
hdc file recv /data/local/tmp/hello.txt C:\test\hello-back.txt
现在可以对 AI 说:
text
把 C:/test/hello.txt 推送到设备的 /data/local/tmp/hello.txt,然后再拉回到 C:/test/hello-back.txt 验证
AI 会调用:
text
harmony_file_push
harmony_file_pull
这类动作本身不复杂,但很适合交给 AI 串流程,尤其是在调试脚本、复现问题、收集设备文件时。
为什么不直接让 AI 执行 shell
这个问题我在做鸿蒙模块时想了很久。
让 AI 直接执行:
bash
hdc install xxx.hap
确实最快,但工程上有几个问题:
- HDC 输出不是稳定 API,不同版本和设备可能不一样
- 多设备场景下,AI 容易忘记指定
-t - 安装、卸载、文件写入这些动作需要明确风险标记
- 原始 stdout/stderr 不利于 AI 后续决策
- 很难写可回归的测试
MCP tool 的好处是把这些不稳定性收敛到工具层。
AI 看到的是:
text
harmony_install(hapPath, target)
harmony_start(bundleName, abilityName, target)
harmony_log(lines, keyword, target)
工具层负责处理 HDC 路径、命令拼接、超时、错误映射和输出解析。
这次升级里我最重视的一点:HDC 输出样本库
HDC 输出并不是一个严格稳定的 JSON API。
所以项目里新增了一个 fixture 样本库:
text
test/fixtures/hdc-outputs/
里面收集各种 HDC stdout/stderr 样本:
text
list-targets-empty.txt
list-targets-single-device.txt
list-targets-single-emulator.txt
list-targets-multi.txt
install-success.txt
install-signature-error.txt
install-no-space.txt
uninstall-success.txt
uninstall-not-installed.txt
aa-start-success.txt
aa-start-not-found.txt
hilog-normal.txt
hilog-crash.txt
file-send-success.txt
file-recv-success.txt
error-device-not-found.txt
error-cannot-connect.txt
error-timeout.txt
version.txt
每个样本第一行都会标记来源:
text
# source: official-docs
# source: deveco-simulator-3.1
# source: community-issue-123
# source: synthetic
现在有些样本仍然是 synthetic,也就是基于文档和常见输出推测出来的。后续如果有真机或模拟器输出,就可以把它们替换成真实样本。
这样做的目的很明确:不要靠想象写解析逻辑,要用真实输出反向校准工具行为。
测试覆盖
这次鸿蒙模块不是只写了工具注册,还补了几层测试:
| 测试层 | 覆盖内容 |
|---|---|
| 单元测试 | CLI 参数拼接、parseDeviceList、超时和错误映射 |
| MCP 协议测试 | 8 个工具的注册、入参 schema、契约一致性 |
| Mock E2E | 通过 mock-hdc 模拟完整链路 |
| Fixture-driven 测试 | 基于 test/fixtures/hdc-outputs/ 校准解析逻辑 |
当前解析层、错误处理层和 MCP 协议层已经有测试覆盖。
但我也要把边界说清楚:真机和模拟器的完整链路还需要更多社区反馈,尤其是不同 HarmonyOS 版本、不同 HDC 版本下的输出差异。
常见问题
Q:这个是替代 DevEco Studio 吗?
不是。它是把 HDC 设备操作接入 AI 工作流。开发、构建、签名、调试 UI 仍然依赖 DevEco Studio 和 HarmonyOS SDK。
Q:需要华为账号或密钥吗?
不需要。当前鸿蒙能力只调用本地 HDC,不需要把账号、密钥交给 AI。
Q:支持真机吗?
设计上支持真机和 DevEco 模拟器。真机需要开启开发者模式、USB 调试,并在首次连接时允许调试。
Q:支持多设备吗?
支持。先调用 harmony_list_devices 获取 connectKey,后续工具用 target 指定设备。
Q:会不会误删应用?
harmony_uninstall 被标记为 destructive 工具。支持 MCP 安全提示的客户端会在执行前提示风险。实际使用时也建议明确传入 bundleName 和 target。
Q:为什么强调需要社区反馈?
因为 HDC 输出可能随设备、系统版本、SDK 版本变化。真实 stdout/stderr 样本越多,解析逻辑越可靠。
推荐 Prompt
装好之后,可以直接复制这些 prompt 试一下:
| 场景 | Prompt |
|---|---|
| 环境检查 | "检查一下我的鸿蒙 HDC 环境是否正常" |
| 设备列表 | "列出当前连接的鸿蒙真机和模拟器" |
| 安装应用 | "把 D:/demo/entry-default-signed.hap 安装到模拟器上" |
| 启动应用 | "启动 com.example.demo 的 EntryAbility" |
| 查看日志 | "抓取最近 200 行 hilog,只看包含 Error 的日志" |
| 文件推送 | "把 C:/test/config.json 推送到设备 /data/local/tmp/config.json" |
| 文件拉取 | "把设备 /data/local/tmp/log.txt 拉到 C:/test/log.txt" |
| 完整流程 | "检查鸿蒙环境,选择模拟器,安装 HAP,启动 EntryAbility,然后抓最近 100 行日志" |
数据
| 指标 | 数据 |
|---|---|
| 新增鸿蒙工具 | 8 个 |
| 设备操作来源 | 华为官方 HDC CLI |
| 支持设备 | HarmonyOS 真机 / DevEco 模拟器 |
| 支持客户端 | Cursor / Claude Desktop / Kiro / 任何支持 MCP 的客户端 |
| 测试方式 | 单元测试 / MCP 协议测试 / Mock E2E / Fixture-driven 测试 |
| 核心样本目录 | test/fixtures/hdc-outputs/ |
链接
- GitHub:github.com/xiaoxuzhu30...
- npm:www.npmjs.com/package/@yu...
- 安装:
npx -y @yujiamei/harmony-mcp - 手动验收清单:
docs/MANUAL_VERIFICATION.md - HDC 输出样本库:
test/fixtures/hdc-outputs/ - MCP Registry:
io.github.xiaoxuzhu303-prog/harmony-mcp
如果你手上有 HarmonyOS 真机或 DevEco 模拟器,欢迎跑一遍 docs/MANUAL_VERIFICATION.md。
如果实际 HDC 输出和样本不一致,欢迎把 stdout/stderr 回贡到 fixtures。
这会直接提升这个工具在真实设备上的可靠性。
这次升级之后,
harmony-mcp不再只是小程序 AI 工作流工具,而是在原有基础上开始覆盖鸿蒙设备调试。下一步我会继续补真机样本、错误场景和更多自动化链路。
我给 harmony-mcp 接入了鸿蒙 HDC,让 AI 直接调试 HarmonyOS 设备
适合发布平台:掘金 / V2EX / 微信开放社区 / 鸿蒙开发者社区
定位:项目升级发布 + 实操工作流分享
目标读者:正在用 Cursor、Claude、Kiro 等 AI 工具做小程序或 HarmonyOS 开发的开发者
之前我做 harmony-mcp,主要解决的是微信小程序开发里的重复操作:环境检查、编译诊断、包体积分析、合规预检、一键上传。
这次是一次比较大的升级:在原有小程序能力基础上,我给 harmony-mcp 集成了鸿蒙 HDC 设备自动化。
也就是说,现在 AI 不只可以帮你操作微信开发者工具,还可以通过 HDC 直接操作 HarmonyOS 真机或模拟器:
- 检查 HDC 环境
- 列出已连接设备
- 安装 HAP 包
- 启动指定 Ability
- 抓取 hilog 日志
- 推送文件到设备
- 从设备拉取文件
- 卸载应用
目标还是同一个:让 AI 不只"告诉你该执行什么命令",而是能在本地安全边界内直接调用工具,执行、验证、再反馈结果。
先说效果
以前调试鸿蒙应用,我的流程通常是这样的:
- 打开终端,确认
hdc能不能用 - 执行
hdc list targets看设备有没有连上 - 找到 HAP 包路径
- 执行
hdc install xxx.hap - 手写
aa start命令拉起 Ability - 再执行
hdc hilog看日志 - 遇到多设备,还要手动补
-t connectKey
现在可以直接对 AI 说:
text
帮我检查鸿蒙环境,列出设备,然后把这个 HAP 安装到模拟器上并启动 EntryAbility
AI 会按顺序调用:
text
harmony_ready_check
harmony_list_devices
harmony_install
harmony_start
harmony_log
如果 HDC 找不到、设备没连、存在多设备但没指定 target,工具会返回结构化错误和修复建议。AI 不需要猜命令输出,用户也不用在终端里来回复制。
原理:MCP + HDC
MCP(Model Context Protocol)可以理解为 AI 调用外部工具的标准协议。
text
以前:AI 给你一段命令,你复制到终端执行
现在:AI 通过 MCP 调用工具,工具再调用本地 HDC,并返回结构化结果
HDC 是 HarmonyOS 官方设备连接工具,常见命令包括:
bash
hdc list targets
hdc install entry-default-signed.hap
hdc uninstall com.example.app
hdc shell aa start -a EntryAbility -b com.example.app
hdc shell hilog -x
hdc file send local.txt /data/local/tmp/local.txt
hdc file recv /data/local/tmp/local.txt local-back.txt
直接让 AI 裸跑 shell 当然也能做,但稳定性和安全边界都不够好。
所以这次升级的核心不是"让 AI 拼命令",而是把 HDC 能力封装成明确的 MCP tools:每个工具都有固定名称、入参 schema、行为说明和安全标记。
这次新增的 8 个鸿蒙工具
| 工具 | 能力 |
|---|---|
harmony_ready_check |
检测 HDC 路径、HDC 版本、设备连接状态 |
harmony_list_devices |
列出鸿蒙真机和模拟器,返回 connectKey |
harmony_install |
安装 HAP 包,默认同步返回,兼容不支持 Tasks 的客户端 |
harmony_uninstall |
按 bundleName 卸载应用 |
harmony_start |
启动指定 bundleName 和 abilityName |
harmony_log |
抓取 hilog 日志,支持行数和关键词过滤 |
harmony_file_push |
推送本地文件到设备 |
harmony_file_pull |
从设备拉取文件到本地 |
所有能力都基于华为官方 HDC CLI,不涉及逆向,也不调用非公开接口。
5 分钟配置
前置条件
- 已安装 DevEco Studio 或 HarmonyOS SDK
- 本机能找到 HDC 工具
- 已启动 DevEco 模拟器,或已连接 HarmonyOS 真机
- 真机已开启开发者模式和 USB 调试
- Node.js >= 18
如果 HDC 没有加入 PATH,也可以用环境变量或本地配置指定路径。
环境变量方式:
bash
HDC_PATH=你的hdc可执行文件完整路径
或者在项目根目录创建 harmony-mcp.json:
json
{
"hdcPath": "D:\\Huawei\\Sdk\\default\\toolchains\\hdc.exe"
}
Cursor 配置
在项目根目录创建 .cursor/mcp.json:
json
{
"mcpServers": {
"harmony-mcp": {
"command": "npx",
"args": ["-y", "@yujiamei/harmony-mcp"]
}
}
}
重启 Cursor,在 MCP 面板里看到 harmony-mcp 可用即可。
Windows 用户如果 npx 启动不稳定,可以先全局安装:
bash
npm install -g @yujiamei/harmony-mcp
然后配置改成:
json
{
"mcpServers": {
"harmony-mcp": {
"command": "harmony-mcp",
"args": []
}
}
}
Claude Desktop、Kiro 等支持 MCP 的客户端配置方式类似。
我的 5 个鸿蒙高频使用场景
场景 1:环境预检
以前我会先在终端里确认:
bash
hdc version
hdc list targets
现在直接对 AI 说:
text
帮我检查鸿蒙开发环境
AI 会调用 harmony_ready_check,一次性检查:
- HDC 路径是否能找到
- HDC 版本是否能读取
- 当前是否有真机或模拟器连接
如果 HDC 找不到,返回结果里会带修复建议,例如设置 HDC_PATH、检查 SDK 安装目录、把 toolchains 加入 PATH。
这个能力看起来简单,但很实用。很多问题不是代码错,而是设备、SDK、HDC 服务状态不对。
场景 2:多设备自动识别
鸿蒙调试经常遇到多设备场景,比如同时开着模拟器,又插着一台真机。
以前要自己看:
bash
hdc list targets
然后手动复制某个 connectKey,再给后续命令补:
bash
hdc -t 127.0.0.1:5555 install xxx.hap
现在可以说:
text
列出当前所有鸿蒙设备
AI 调用 harmony_list_devices 后会拿到结构化结果:
json
{
"status": "OK",
"deviceCount": 2,
"devices": [
{
"connectKey": "127.0.0.1:5555",
"status": "Connected",
"kind": "emulator"
},
{
"connectKey": "FMR0223C13000649",
"status": "Connected",
"kind": "device"
}
]
}
后续安装、启动、抓日志都可以复用这个 connectKey。
场景 3:安装 HAP 并启动 Ability
以前的手动流程:
bash
hdc install D:\demo\entry-default-signed.hap
hdc shell aa start -a EntryAbility -b com.example.demo
现在可以直接说:
text
把 D:/demo/entry-default-signed.hap 安装到模拟器上,然后启动 com.example.demo 的 EntryAbility
AI 会调用:
text
harmony_install
harmony_start
harmony_install 目前默认同步返回,优先兼容 Cursor Inspector 这类不支持 MCP Tasks 的客户端。这样做的好处是更直接:装完就返回结果,不需要再处理 taskId 和轮询状态。
场景 4:抓 hilog 定位问题
应用拉起后,最常见的下一步就是看日志。
以前我要手动执行:
bash
hdc shell hilog -x
日志多了以后还得自己过滤。
现在可以直接说:
text
看一下设备最近 100 行日志,只保留包含 App 的行
AI 调用 harmony_log,传入:
json
{
"lines": 100,
"keyword": "App"
}
工具会返回结构化结果,包括日志行数、过滤关键词和日志内容。
这一步的价值在于,AI 可以继续基于日志判断下一步:是启动失败、权限问题、bundleName 错误,还是应用自身 crash。
场景 5:文件推送和拉取
有些调试需要把配置、日志、测试数据放到设备里,或者从设备里拉文件出来。
以前要自己执行:
bash
hdc file send C:\test\hello.txt /data/local/tmp/hello.txt
hdc file recv /data/local/tmp/hello.txt C:\test\hello-back.txt
现在可以对 AI 说:
text
把 C:/test/hello.txt 推送到设备的 /data/local/tmp/hello.txt,然后再拉回到 C:/test/hello-back.txt 验证
AI 会调用:
text
harmony_file_push
harmony_file_pull
这类动作本身不复杂,但很适合交给 AI 串流程,尤其是在调试脚本、复现问题、收集设备文件时。
为什么不直接让 AI 执行 shell
这个问题我在做鸿蒙模块时想了很久。
让 AI 直接执行:
bash
hdc install xxx.hap
确实最快,但工程上有几个问题:
- HDC 输出不是稳定 API,不同版本和设备可能不一样
- 多设备场景下,AI 容易忘记指定
-t - 安装、卸载、文件写入这些动作需要明确风险标记
- 原始 stdout/stderr 不利于 AI 后续决策
- 很难写可回归的测试
MCP tool 的好处是把这些不稳定性收敛到工具层。
AI 看到的是:
text
harmony_install(hapPath, target)
harmony_start(bundleName, abilityName, target)
harmony_log(lines, keyword, target)
工具层负责处理 HDC 路径、命令拼接、超时、错误映射和输出解析。
这次升级里我最重视的一点:HDC 输出样本库
HDC 输出并不是一个严格稳定的 JSON API。
所以项目里新增了一个 fixture 样本库:
text
test/fixtures/hdc-outputs/
里面收集各种 HDC stdout/stderr 样本:
text
list-targets-empty.txt
list-targets-single-device.txt
list-targets-single-emulator.txt
list-targets-multi.txt
install-success.txt
install-signature-error.txt
install-no-space.txt
uninstall-success.txt
uninstall-not-installed.txt
aa-start-success.txt
aa-start-not-found.txt
hilog-normal.txt
hilog-crash.txt
file-send-success.txt
file-recv-success.txt
error-device-not-found.txt
error-cannot-connect.txt
error-timeout.txt
version.txt
每个样本第一行都会标记来源:
text
# source: official-docs
# source: deveco-simulator-3.1
# source: community-issue-123
# source: synthetic
现在有些样本仍然是 synthetic,也就是基于文档和常见输出推测出来的。后续如果有真机或模拟器输出,就可以把它们替换成真实样本。
这样做的目的很明确:不要靠想象写解析逻辑,要用真实输出反向校准工具行为。
测试覆盖
这次鸿蒙模块不是只写了工具注册,还补了几层测试:
| 测试层 | 覆盖内容 |
|---|---|
| 单元测试 | CLI 参数拼接、parseDeviceList、超时和错误映射 |
| MCP 协议测试 | 8 个工具的注册、入参 schema、契约一致性 |
| Mock E2E | 通过 mock-hdc 模拟完整链路 |
| Fixture-driven 测试 | 基于 test/fixtures/hdc-outputs/ 校准解析逻辑 |
当前解析层、错误处理层和 MCP 协议层已经有测试覆盖。
除此之外,我还在 DevEco 模拟器上手动跑通了一轮真实链路,已经验证:
harmony_ready_checkharmony_list_devicesharmony_installharmony_startharmony_uninstallharmony_log底层hdc shell hilog -x可用,工具层也已经补了限流和关键词过滤
但我也要把边界说清楚:不同 HarmonyOS 版本、不同 HDC 版本下,输出细节仍可能存在差异,真机样本和社区反馈依然很重要。
常见问题
Q:这个是替代 DevEco Studio 吗?
不是。它是把 HDC 设备操作接入 AI 工作流。开发、构建、签名、调试 UI 仍然依赖 DevEco Studio 和 HarmonyOS SDK。
Q:需要华为账号或密钥吗?
不需要。当前鸿蒙能力只调用本地 HDC,不需要把账号、密钥交给 AI。
Q:支持真机吗?
设计上支持真机和 DevEco 模拟器。真机需要开启开发者模式、USB 调试,并在首次连接时允许调试。
Q:支持多设备吗?
支持。先调用 harmony_list_devices 获取 connectKey,后续工具用 target 指定设备。
Q:会不会误删应用?
harmony_uninstall 被标记为 destructive 工具。支持 MCP 安全提示的客户端会在执行前提示风险。实际使用时也建议明确传入 bundleName 和 target。
Q:为什么强调需要社区反馈?
因为 HDC 输出可能随设备、系统版本、SDK 版本变化。真实 stdout/stderr 样本越多,解析逻辑越可靠。
推荐 Prompt
装好之后,可以直接复制这些 prompt 试一下:
| 场景 | Prompt |
|---|---|
| 环境检查 | "检查一下我的鸿蒙 HDC 环境是否正常" |
| 设备列表 | "列出当前连接的鸿蒙真机和模拟器" |
| 安装应用 | "把 D:/demo/entry-default-signed.hap 安装到模拟器上" |
| 启动应用 | "启动 com.example.demo 的 EntryAbility" |
| 查看日志 | "抓取最近 200 行 hilog,只看包含 Error 的日志" |
| 文件推送 | "把 C:/test/config.json 推送到设备 /data/local/tmp/config.json" |
| 文件拉取 | "把设备 /data/local/tmp/log.txt 拉到 C:/test/log.txt" |
| 完整流程 | "检查鸿蒙环境,选择模拟器,安装 HAP,启动 EntryAbility,然后抓最近 100 行日志" |
数据
| 指标 | 数据 |
|---|---|
| 新增鸿蒙工具 | 8 个 |
| 设备操作来源 | 华为官方 HDC CLI |
| 支持设备 | HarmonyOS 真机 / DevEco 模拟器 |
| 支持客户端 | Cursor / Claude Desktop / Kiro / 任何支持 MCP 的客户端 |
| 测试方式 | 单元测试 / MCP 协议测试 / Mock E2E / Fixture-driven 测试 |
| 核心样本目录 | test/fixtures/hdc-outputs/ |
链接
- GitHub:github.com/xiaoxuzhu30...
- npm:www.npmjs.com/package/@yu...
- 安装:
npx -y @yujiamei/harmony-mcp - 手动验收清单:
docs/MANUAL_VERIFICATION.md - HDC 输出样本库:
test/fixtures/hdc-outputs/ - MCP Registry:
io.github.xiaoxuzhu303-prog/harmony-mcp
如果你手上有 HarmonyOS 真机或 DevEco 模拟器,欢迎跑一遍 docs/MANUAL_VERIFICATION.md。
如果实际 HDC 输出和样本不一致,欢迎把 stdout/stderr 回贡到 fixtures。
这会直接提升这个工具在真实设备上的可靠性。
这次升级之后,
harmony-mcp不再只是小程序 AI 工作流工具,而是在原有基础上开始覆盖鸿蒙设备调试。下一步我会继续补真机样本、错误场景和更多自动化链路。