更新记录
1.0.0(2026-11-04) 下载此版本
首个版本:
- 54 个 MCP 工具:编辑器、文件、项目、HBuilderX、浏览器、Electron、开发命令、后台服务、HTTP、代码智能
- 状态面板、复制客户端配置、重启桥接
- 支持 Claude Code、Claude Desktop、Cursor、OpenCode 等 MCP 客户端
- 浏览器自动化使用系统 Chrome / Edge,支持截图、控制台日志与 CDP 附加
- 通过 HBuilderX CLI 发行 uni-app / uni-app x 项目
平台兼容性
| HbuilderX/cli最低兼容版本 |
|---|
| 3.0.0 |
# Viry MCP
让 HBuilderX 直接接入 AI 编程客户端。
安装后,Claude Code、Cursor、Claude Desktop、OpenCode 等支持 MCP 的客户端就可以读取你正在编辑的文件、搜索项目、修改代码、执行 HBuilderX 命令,甚至触发 uni-app 发行构建。
当前版本:1.0.0 · 插件 ID:
viry
功能一览
- 读取当前文件、选中文本和光标位置
- 在编辑器中插入、替换、批量修改代码
- 搜索项目内容、读写文件、列出目录
- 打开文件并跳转到指定行、保存、格式化
- 执行 HBuilderX 内置命令、触发 uni-app 发行
- 通过
cli.exe导入 / 关闭项目 - 查找符号定义、引用,查看近似悬停信息和本地诊断
- 浏览器自动化:启动 Chrome/Edge、截图、点击、输入、读取控制台和网络请求
- Electron / Chromium 客户端:启动 Electron 或通过 CDP 附加到 Chrome、Edge、CEF、WebView2
- 测试与调试:运行 lint、typecheck、test、build(只允许测试/检查类脚本)
- 后台服务:启动/停止
npm run dev、npm run start,等待端口就绪并读取日志 - HTTP 接口测试:直接发 GET/POST/PUT 等请求,返回状态码、响应头和 JSON
- 内置 MCP 状态面板:查看连接、工具、日志,一键复制客户端配置
环境要求
| 项目 | 要求 |
|---|---|
| HBuilderX | 3.0 及以上(建议 5.x,浏览器自动化需要内置 Node 18+) |
| Node.js | 18 及以上(推荐 20 / 22;仅基础 MCP 功能可用 16) |
| 操作系统 | Windows / macOS / Linux |
| AI 客户端 | 支持 MCP stdio 的任意客户端 |
Node.js 只用于运行 MCP 客户端进程;浏览器自动化引擎
playwright-core已随插件打包,不需要额外安装。浏览器与 Electron 自动化需要 HBuilderX 内置 Node 18 及以上;旧版本仍可使用文件、编辑器和命令类工具。
安装
方式一:插件市场安装(推荐)
- 打开 HBuilderX:工具 → 插件安装
- 搜索 Viry MCP,点击安装
- 重启 HBuilderX
方式二:离线安装
把插件文件夹复制到以下目录,然后重启 HBuilderX:
<HBuilderX安装目录>/plugins/viry-mcp
通过插件市场安装的插件位于
%APPDATA%\HBuilder X\extensions\viry-mcp(macOS 为~/Library/Application Support/HBuilder X/extensions/viry-mcp),该目录由 HBuilderX 管理;手动离线安装建议使用上面的plugins目录。
确认安装成功
安装并重启后:
- 状态栏右下角出现
MCP :27810 - 菜单 工具 中出现
Viry MCP: 打开状态面板等选项 - 打开状态面板,能看到「运行中」和 54 个工具
如果状态栏没有出现,请检查 设置 → 插件配置 → Viry MCP 中的 viry.enabled 是否为开启状态。
连接 AI 客户端
MCP 客户端会启动插件自带的 mcp/stdio.js,由它自动读取端点文件并连接 HBuilderX,你不需要手动填写端口或 token。
最省事的方式:复制配置
在 HBuilderX 中任选一种:
- 状态面板 → 复制客户端配置
- 菜单 工具 → Viry MCP: 复制客户端配置
- 状态栏
MCP :端口→ 面板 → 复制
复制到的内容已经包含正确的绝对路径,直接粘到客户端配置里即可。
Claude Code
claude mcp add viry -- node "C:/Users/<你的用户名>/AppData/Roaming/HBuilder X/extensions/viry/mcp/stdio.js"
Claude Desktop
编辑 claude_desktop_config.json:
{
"mcpServers": {
"viry": {
"command": "node",
"args": ["C:/Users/<你的用户名>/AppData/Roaming/HBuilder X/extensions/viry/mcp/stdio.js"]
}
}
}
Cursor
编辑全局 ~/.cursor/mcp.json,或项目内的 .cursor/mcp.json:
{
"mcpServers": {
"viry": {
"command": "node",
"args": ["C:/Users/<你的用户名>/AppData/Roaming/HBuilder X/extensions/viry/mcp/stdio.js"]
}
}
}
OpenCode
编辑 opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"viry": {
"type": "local",
"command": ["node", "C:/Users/<你的用户名>/AppData/Roaming/HBuilder X/extensions/viry/mcp/stdio.js"],
"enabled": true
}
}
}
手动安装时的路径
如果你是把插件放在 HBuilderX 安装目录下,路径改为:
<HBuilderX安装目录>/plugins/viry-mcp/mcp/stdio.js
Windows 路径建议使用 /,或在 JSON 中使用 \\。
验证是否连接成功
- 保持 HBuilderX 打开
- 重启 AI 客户端(或重新加载 MCP 配置)
- 打开状态面板,连接数 应该变成
1或更多 - 在 AI 客户端中问一句「调用 hbx_status 看看 HBuilderX 状态」,能返回版本和端口即成功
状态面板
状态面板以非模态弹窗的形式打开,不会占用侧边视图,也不会阻塞编辑。打开方式:
- 菜单 工具 → Viry MCP: 打开状态面板
- 点击状态栏
MCP :端口
再次点击会把已经打开的面板带到前台;关闭后再次打开会重新创建一个。
面板内容:
| 区域 | 说明 |
|---|---|
| 状态卡片 | 运行状态、端口、连接数、请求数、错误数、工具数、运行时长 |
| 连接 | 监听地址、进程 ID、端点文件路径、搜索上限 |
| 工具 | 54 个工具按类别分组,支持筛选,点击工具名可复制 |
| 日志 | bridge 最近的请求、连接、错误日志,每 2 秒刷新 |
| 快捷操作 | 复制客户端配置、重启桥接服务、打开端点目录 |
右上角 ◐ 可以切换明暗主题,默认会跟随 HBuilderX 的配色。
使用方式
安装并连接后,不需要记任何工具名,直接用自然语言告诉 AI 你想做什么即可。下面是常见场景。
读代码
读取我当前打开的文件,解释一下这个页面的数据流。
我选中了一段代码,帮我解释它做了什么。
改代码
把当前文件里所有
console.log删掉。在第 20 行下面加一个
onLoad生命周期。把当前选区替换成使用
async/await的写法。
搜项目
在项目里搜索所有调用
uni.request的地方,列出来。找一下
useUserStore是在哪里定义的,有哪些地方引用。
文件与项目
列出
pages目录下的所有页面。在
utils目录下新建一个format.js,写一个日期格式化函数。帮我打开
pages/index/index.vue并跳到第 50 行。
保存与格式化
保存当前文件并格式化。
AI 通过编辑器工具修改内容后默认会立即保存到磁盘(配置项
viry.autoSave,默认开启)。部分 HBuilderX 版本的单文件保存命令无效,插件会自动退化为“全部保存”,因此其它未保存文件也可能一起保存;关闭该配置后可用hbx_save_file手动保存。
HBuilderX 与发行
执行 HBuilderX 的关闭所有编辑器命令。
把 ViryUniApp 发行到 H5,等构建结束告诉我输出目录。
用 cli 把
E:/projects/demo导入 HBuilderX。弹出提示告诉我构建完成了。
网页与 Electron 测试
启动 Chrome 打开
http://localhost:5173,截一张图。点击「登录」按钮,在用户名输入框填
admin,密码填123456,再点击提交。看一下浏览器控制台有没有报错,把错误列出来。
启动 ViryApp,截一张登录页,然后点击「设置」看看。
启动 ViryServer 后端,等 3001 端口就绪,然后调用登录接口测试
sun/123456。看一下 ViryServer 最近的日志,有没有报错。
跑一下
npm run build,如果失败把错误贴出来。跑一下 lint 和 typecheck,只看 error。
说明
- 编辑器修改类工具作用于 当前激活文件;要改其它文件,请先让 AI 打开它。
- 直接调用工具时,
line/character默认是 0 基(第一行是 0),需要 1 基时传oneBased: true。 - 发行通过 HBuilderX CLI 执行并等待构建结束,返回输出目录;首次发行需要下载编译器时耗时可达数分钟,可用
timeout调大。 - 浏览器自动化默认使用系统 Chrome,失败会自动尝试 Edge;默认无头模式,传
headless: false可以看到真实窗口。 - Electron 自动化需要项目先构建(例如
npm run build),或对已经带--remote-debugging-port启动的客户端使用hbx_web_attach。 - 测试/调试命令只允许
lint、test、typecheck、check、build类脚本,以及 eslint / vue-tsc / tsc / vitest / jest。
工具清单
共 54 个工具,AI 会根据你的描述自动选择。你也可以在状态面板中查看完整列表。
状态
| 工具 | 说明 |
|---|---|
hbx_status |
检查桥接服务是否在线,返回版本、端口、连接数 |
编辑器
| 工具 | 说明 |
|---|---|
hbx_get_active_file |
读取当前文件全文和基本信息 |
hbx_get_selection |
读取选中文本、选区范围和光标位置 |
hbx_list_open_files |
列出打开过的文档 |
hbx_get_file_text |
读取指定文件,优先使用编辑器内未保存内容 |
hbx_replace_selection |
替换当前选区 |
hbx_insert_text |
在光标或指定位置插入文本 |
hbx_replace_range |
替换指定范围 |
hbx_apply_edits |
一次性应用多处修改 |
hbx_set_selection |
设置选区或光标 |
hbx_save_file |
保存当前文件或全部文件 |
hbx_open_file |
打开文件并跳转行 |
hbx_revert_file |
用磁盘内容回填当前编辑器缓冲区 |
hbx_format_file |
格式化当前文件 |
文件与项目
| 工具 | 说明 |
|---|---|
hbx_read_file |
从磁盘读取文本文件 |
hbx_write_file |
写入文件(自动创建目录) |
hbx_list_dir |
列出目录内容 |
hbx_search_files |
按关键字或正则搜索项目 |
hbx_stat_path |
查看路径类型、大小、修改时间 |
hbx_get_workspace_info |
获取项目列表和运行环境 |
hbx_get_configuration |
读取 HBuilderX 配置项 |
HBuilderX 专有
| 工具 | 说明 |
|---|---|
hbx_show_message |
在右下角弹出提示 |
hbx_execute_command |
执行任意 HBuilderX 命令 |
hbx_clipboard |
读写系统剪贴板 |
hbx_console_logs |
查看桥接服务自身日志 |
hbx_publish |
触发 uni-app 发行(H5 / 小程序 / App 资源) |
hbx_cli_project |
通过 CLI 列出、导入、关闭项目 |
hbx_open_console |
打开指定项目的底部控制台 |
hbx_open_terminal |
打开指定项目的内置终端 |
浏览器与 Electron 自动化
| 工具 | 说明 |
|---|---|
hbx_web_launch |
启动 Chrome/Edge,返回 sessionId |
hbx_web_attach |
通过 CDP 附加到已运行的 Chrome/Edge/Electron/CEF/WebView2 |
hbx_web_goto |
页面跳转 |
hbx_web_screenshot |
截屏,返回图片并保存到本地 |
hbx_web_click |
按选择器或坐标点击 |
hbx_web_input |
fill/type/press/select/hover/check 等交互 |
hbx_web_wait |
等待元素、文本或指定时间 |
hbx_web_eval |
在页面中执行 JavaScript |
hbx_web_logs |
读取控制台日志、页面错误、网络响应 |
hbx_web_sessions |
列出当前会话 |
hbx_web_close |
关闭会话 |
hbx_electron_launch |
启动 Electron 应用并接入自动化 |
测试与调试
| 工具 | 说明 |
|---|---|
hbx_dev_run_script |
运行 lint / test / typecheck / check / build 类 npm 脚本 |
hbx_dev_lint |
运行本地 eslint |
hbx_dev_typecheck |
运行 vue-tsc 或 tsc(默认 --noEmit) |
hbx_dev_test |
运行本地 vitest 或 jest |
服务与接口
| 工具 | 说明 |
|---|---|
hbx_service_start |
后台启动 dev / start 脚本,等待端口就绪 |
hbx_service_stop |
停止服务(Windows 下结束进程树) |
hbx_service_status |
查看 MCP 启动的服务状态 |
hbx_service_logs |
读取服务日志 |
hbx_http_request |
发送 HTTP/HTTPS 请求,测试接口 |
命令执行只开放测试/检查类脚本和工具,不允许执行任意 shell 命令;后台服务只允许
dev/start脚本。
代码智能
| 工具 | 说明 |
|---|---|
hbx_find_definition |
查找符号声明位置 |
hbx_find_references |
查找符号引用 |
hbx_hover |
查看光标处符号的行内容和声明候选 |
hbx_diagnostics |
JSON 校验、JS 语法检查 |
HBuilderX 目前没有公开语言服务的 hover / definition / references 查询接口,因此这四个工具是基于项目文本索引的近似实现,适合辅助定位,不能完全替代 IDE 的智能跳转。
配置项
打开 设置 → 插件配置 → Viry MCP:
| 配置 | 默认值 | 说明 |
|---|---|---|
viry.enabled |
true |
HBuilderX 启动时是否自动启动桥接服务 |
viry.port |
27810 |
起始端口,仅监听 127.0.0.1,被占用会自动向后尝试 |
viry.maxSearchResults |
200 |
单次搜索返回的最大结果数 |
修改端口等配置后,建议执行一次 工具 → Viry MCP: 重启桥接服务。
环境变量
一般不需要设置,高级场景可用:
| 变量 | 说明 |
|---|---|
VIRY_MCP_PORT |
指定端口,跳过端点文件 |
VIRY_MCP_HOST |
指定主机,默认 127.0.0.1 |
VIRY_MCP_TOKEN |
指定 token |
VIRY_MCP_ENDPOINT_FILE |
指定端点文件路径 |
VIRY_MCP_DEBUG |
设置后向 stderr 输出调试日志 |
HBUILDERX_CLI |
手动指定 cli.exe 路径 |
常见问题
状态栏没有显示 MCP :端口
- 确认插件已安装并启用:工具 → 插件安装
- 检查 设置 → 插件 → Viry MCP →
viry.enabled是否开启 - 菜单 工具 → Viry MCP: 查看状态,看是否提示启动失败
- 端口被占用时会自动换端口,状态栏显示的是实际端口
状态面板打不开
状态面板是弹窗,依赖 HBuilderX 3.0+ 的 createWebViewDialog:
- 确认 HBuilderX 版本 ≥ 3.0
- 如果提示「内置浏览器不存在」或弹出下载提示,请按提示安装内置浏览器插件
- 尝试 工具 → Viry MCP: 重启桥接服务,再重新打开面板
- 仍然不行时重启 HBuilderX,并查看
%APPDATA%\HBuilder X\.log中的报错
AI 客户端提示「未找到 HBuilderX 桥接端点信息」
说明客户端进程找不到端点文件:
- HBuilderX 是否正在运行?
- Viry MCP 插件是否启用?
~/.viry-mcp/endpoint.json是否存在?- 如果刚刚重启过 HBuilderX,重启一下 AI 客户端
AI 客户端提示「无法连接 127.0.0.1:xxxx」
通常是端点文件指向了已经退出的实例:
- 在 HBuilderX 执行 Viry MCP: 重启桥接服务
- 重启 AI 客户端
- 仍然不行时,删除
~/.viry-mcp/endpoint.json后重启 HBuilderX
同时开了多个 HBuilderX 窗口
每个窗口都会启动一个桥接服务,最后启动的实例会覆盖端点文件,客户端默认连接最后一个。建议只保留一个窗口;确需多窗口时,请分别在各个窗口执行 Viry MCP: 查看状态 确认端口,并让客户端连接你实际需要的那一个。
写入文件后编辑器内容没变
hbx_write_file 在文件已打开且没有未保存修改时,会自动同步编辑器缓冲区;如果编辑器里有未保存修改,则不会覆盖并给出提示。遇到编辑器仍显示旧内容,可调用 hbx_revert_file 用磁盘内容强制回填。要让 AI 改当前打开的文件,优先使用编辑器类工具(读取当前文件、替换选区等)。
发行构建没有输出
hbx_publish 通过 HBuilderX CLI 执行并等待构建结束,会返回退出码、输出末尾和输出目录(如 unpackage/dist/build/web)。首次发行需要下载编译器时可能耗时数分钟,可调大 timeout。
通过 CLI 操作项目时中文乱码
插件已对 cli.exe 的输出做 GBK 自动识别并去掉颜色控制符;如果仍有乱码,请反馈具体的 CLI 命令。
「运行到浏览器 / 手机」没有对应工具
HBuilderX 没有稳定公开的运行命令 ID。可以尝试让 AI 执行内置命令 workbench.toolbar.run 打开运行菜单,或直接在 HBuilderX 中操作。
浏览器启动失败
- 确认系统安装了 Chrome 或 Edge
- 可以传
browser: "msedge"或executablePath指定浏览器 - 传
headless: false可以看到真实窗口,方便排查 - 仍失败时检查 HBuilderX 内置 Node 是否为 18 及以上
截图过大或返回失败
截图默认 JPEG quality 80。整页截图或长页面建议:
{ "type": "jpeg", "quality": 60, "fullPage": false }
Electron 启动失败
- 先执行
npm run build,确保package.json的main指向已构建入口 - 确认
node_modules/electron/dist存在 - 也可以手动启动 Electron 并加
--remote-debugging-port=9222,再用hbx_web_attach附加
命令被拒绝
测试/调试工具只允许检查类脚本和工具,npm run dev、npm run format 等会被拒绝,这是有意为之。需要运行开发服务器时,请使用终端或 hbx_open_terminal。
启动后端服务失败
hbx_service_start只允许dev/start脚本- 日志文件在
~/.viry-mcp/services/,可用hbx_service_logs查看 - 端口被占用时先停止旧服务,或换一个端口
- 服务记录保存在
~/.viry-mcp/services/services.json,进程退出后状态会显示为已停止
HTTP 接口请求失败
- 确认 URL 和端口,例如
http://127.0.0.1:3001/api/login - 跨域是否允许由目标服务决定
- 响应过大时会截断,可调整
maxBytes - 需要 JSON 请求体时传
json字段,会自动设置Content-Type: application/json
安全提示
- 桥接服务只监听
127.0.0.1,不对外网开放。 - 每次启动都会生成新的随机 token,保存在用户目录的端点文件中。
hbx_execute_command可以执行任意 HBuilderX 命令,hbx_write_file可以写任意路径,请只在可信的 AI 客户端中使用。- 不需要使用 MCP 时,可以在设置中关闭
viry.enabled。
反馈
遇到问题时,请附上:
- HBuilderX 版本
- Viry MCP 版本(状态面板底部)
- 状态面板的「最近日志」
- AI 客户端的报错信息

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 0
赞赏 0
下载 12739115
赞赏 1959
赞赏
京公网安备:11010802035340号