From 4f6cdb161cce7c88f347b348dc15488890d9d0e8 Mon Sep 17 00:00:00 2001 From: woooooooooolf Date: Thu, 27 Aug 2026 22:19:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=9A=E9=80=82?= =?UTF-8?q?=E9=85=8D=20ZCode=20=E6=8F=92=E4=BB=B6=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 .zcode-plugin/plugin.json 插件清单:复用现有 skills/ 与 bin/ 预编译二进制, MCP 服务器经 ${ZCODE_PLUGIN_ROOT}/bin/ser2mcp 启动(Windows 由 Node/libuv 解析同名 ser2mcp.exe,Linux/macOS 由 POSIX 启动脚本选择对应二进制) - 新增仓库根 marketplace.json:仓库本身作为 ZCode 单插件市场,可在 设置 → 插件管理 → 发现 → + 输入 woooooooolf/ser2mcp 一键安装 - 中英文 README 增加 ZCode 安装章节;CHANGELOG 在 Unreleased 下记录 不影响现有 Reasonix / DeepSeek-Harness 接入:reasonix-plugin.json、.mcp.json、 skills/、bin/ 与源码均未改动。 --- .zcode-plugin/plugin.json | 24 ++++++++++++++++++++++++ CHANGELOG.md | 4 ++++ README.en.md | 8 +++++++- README.md | 8 +++++++- marketplace.json | 17 +++++++++++++++++ 5 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 .zcode-plugin/plugin.json create mode 100644 marketplace.json diff --git a/.zcode-plugin/plugin.json b/.zcode-plugin/plugin.json new file mode 100644 index 0000000..b2836ed --- /dev/null +++ b/.zcode-plugin/plugin.json @@ -0,0 +1,24 @@ +{ + "name": "ser2mcp", + "version": "0.8.7", + "description": "UART serial port MCP server: expose local serial ports to AI assistants as standard MCP tools.", + "description_i18n": { + "en": "UART serial port MCP server: expose local serial ports to AI assistants as standard MCP tools.", + "zh-CN": "UART 串口 MCP 服务器:把本地串口设备封装成标准 MCP 工具,让 AI 直接读写串口。" + }, + "author": { + "name": "woooooooooolf" + }, + "license": "MIT OR Apache-2.0", + "homepage": "https://github.com/woooooooooolf/ser2mcp", + "repository": "https://github.com/woooooooooolf/ser2mcp", + "skills": "skills", + "mcpServers": { + "ser2mcp": { + "type": "stdio", + "command": "${ZCODE_PLUGIN_ROOT}/bin/ser2mcp", + "args": [], + "timeoutMs": 90000 + } + } +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cf8bfa..c37db37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ ## [Unreleased] +### Added + +- 适配 ZCode 插件市场:新增 `.zcode-plugin/plugin.json` 插件清单与仓库根 `marketplace.json` 单插件市场定义,可在 ZCode 中添加 `woooooooooolf/ser2mcp` 为市场后一键安装;MCP 服务器经 `${ZCODE_PLUGIN_ROOT}/bin/ser2mcp` 启动,Windows 自动解析同名 `ser2mcp.exe`,Linux/macOS 由 POSIX 启动脚本选择对应二进制,现有 Reasonix / DSH 接入方式不受影响 + ## [0.8.7] - 2026-08-18 ### Added diff --git a/README.en.md b/README.en.md index 9a8b580..04eb8ef 100644 --- a/README.en.md +++ b/README.en.md @@ -62,6 +62,12 @@ Tell the Agent in DSH: The Agent should follow the configuration and directory conventions of the installed DSH version, register the stdio MCP server, and install both SKILLs from this repository. +### ZCode Plugin Marketplace Install + +The repository is also a ZCode plugin marketplace (`marketplace.json`), with the plugin manifest at `.zcode-plugin/plugin.json`. In ZCode, open **Settings → Plugin Management → Discover**, click **+** to add a marketplace, enter `woooooooooolf/ser2mcp`, then install and enable the plugin with one click. + +Once installed, all `uart_*` MCP tools (exposed as `mcp__ser2mcp__*`) and both SKILLs (`ser2mcp:ser2mcp-usage`, `ser2mcp:ser2mcp-file-transfer`) become available, working across all three platforms: Windows resolves the matching `ser2mcp.exe`, while Linux/macOS use the `bin/ser2mcp` script to select their platform binary. Verify with `uart_list_ports`; an empty array still means the server is working, just with no enumerable serial ports. For offline installation, add this repository directory as a local directory marketplace. + ## Tools | Tool | Purpose | @@ -86,7 +92,7 @@ The repository includes two portable Agent Skills: - [`ser2mcp-usage`](skills/ser2mcp-usage/SKILL.md): complete interactive-tool parameters, selection, encoding, completion detection, buffering, and recovery - [`ser2mcp-file-transfer`](skills/ser2mcp-file-transfer/SKILL.md): complete file-tool parameters, authorization, estimation, peer setup, EOF, cancellation, and end-to-end reconciliation -Reasonix installs both SKILLs with the plugin. Claude Code, Codex, and other agents can mount `skills/` into their respective skill directories. +Reasonix and ZCode install both SKILLs with the plugin. Claude Code, Codex, and other agents can mount `skills/` into their respective skill directories. Important semantic boundaries: diff --git a/README.md b/README.md index 25f94dd..21479b1 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,12 @@ Windows 路径示例:`"command": "C:\\tools\\ser2mcp.exe"`。日志写入 stde Agent 应以当前 DSH 版本的配置和目录约定为准,完成 stdio MCP 服务器注册,并安装仓库内的两个 SKILL。 +### ZCode 插件市场安装 + +仓库同时是一个 ZCode 插件市场(`marketplace.json`),插件清单位于 `.zcode-plugin/plugin.json`。在 ZCode 中打开 **设置 → 插件管理 → 发现**,点击 **+** 添加市场,输入 `woooooooooolf/ser2mcp` 后一键安装并启用。 + +安装后即可获得全部 `uart_*` MCP 工具(以 `mcp__ser2mcp__*` 出现)与两个 SKILL(`ser2mcp:ser2mcp-usage`、`ser2mcp:ser2mcp-file-transfer`),三平台通用:Windows 由启动器解析同名 `ser2mcp.exe`,Linux/macOS 由 `bin/ser2mcp` 脚本选择对应二进制。安装后调用 `uart_list_ports` 验证;返回空数组也表示服务器已正常工作,只是当前没有可枚举串口。离线安装时把本仓库目录作为本地目录市场添加。 + ## 工具 | 工具 | 用途 | @@ -86,7 +92,7 @@ Agent 应以当前 DSH 版本的配置和目录约定为准,完成 stdio MCP - [`ser2mcp-usage`](skills/ser2mcp-usage/SKILL.md):串口交互工具的完整参数、选择、编码、完成判定、缓冲与故障处理 - [`ser2mcp-file-transfer`](skills/ser2mcp-file-transfer/SKILL.md):文件工具的完整参数、发送授权、估算、接收端准备、EOF、取消和端到端对账 -Reasonix 安装插件后会同时获得这两个 SKILL。Claude Code、Codex 等 Agent 可把 `skills/` 挂载到各自的技能目录。 +Reasonix 与 ZCode 安装插件后会同时获得这两个 SKILL。Claude Code、Codex 等 Agent 可把 `skills/` 挂载到各自的技能目录。 最重要的语义边界: diff --git a/marketplace.json b/marketplace.json new file mode 100644 index 0000000..297d16c --- /dev/null +++ b/marketplace.json @@ -0,0 +1,17 @@ +{ + "name": "woooooooooolf-plugins", + "plugins": [ + { + "name": "ser2mcp", + "source": ".", + "version": "0.8.7", + "description": "UART serial port MCP server plugin: expose local serial ports to AI assistants as standard MCP tools.", + "description_i18n": { + "en": "UART serial port MCP server plugin: expose local serial ports to AI assistants as standard MCP tools.", + "zh-CN": "UART 串口 MCP 服务器插件:把本地串口设备封装成标准 MCP 工具,让 AI 直接读写串口。" + }, + "homepage": "https://github.com/woooooooooolf/ser2mcp", + "author": "woooooooooolf" + } + ] +} From 43ffd52601bf02028b901f7d24295d068f896daa Mon Sep 17 00:00:00 2001 From: woooooooooolf Date: Thu, 27 Aug 2026 22:35:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=9A=E5=AE=8C?= =?UTF-8?q?=E5=96=84=20ZCode=20=E6=8F=92=E4=BB=B6=E5=85=83=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=8E=E5=8F=91=E5=B8=83=E5=90=8C=E6=AD=A5=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .zcode-plugin/plugin.json | 7 ++++--- CHANGELOG.md | 2 +- README.en.md | 4 ++-- README.md | 4 ++-- docs/RELEASE.md | 31 +++++++++++++++++++------------ marketplace.json | 21 +++++++++++++++++---- 6 files changed, 45 insertions(+), 24 deletions(-) diff --git a/.zcode-plugin/plugin.json b/.zcode-plugin/plugin.json index b2836ed..412613f 100644 --- a/.zcode-plugin/plugin.json +++ b/.zcode-plugin/plugin.json @@ -1,10 +1,10 @@ { "name": "ser2mcp", "version": "0.8.7", - "description": "UART serial port MCP server: expose local serial ports to AI assistants as standard MCP tools.", + "description": "UART serial-port MCP server that exposes local serial devices as standard tools for AI assistants.", "description_i18n": { - "en": "UART serial port MCP server: expose local serial ports to AI assistants as standard MCP tools.", - "zh-CN": "UART 串口 MCP 服务器:把本地串口设备封装成标准 MCP 工具,让 AI 直接读写串口。" + "en": "UART serial-port MCP server that exposes local serial devices as standard tools for AI assistants.", + "zh-CN": "UART 串口 MCP 服务器,将本地串口设备封装为标准工具,供 AI 助手直接读写。" }, "author": { "name": "woooooooooolf" @@ -12,6 +12,7 @@ "license": "MIT OR Apache-2.0", "homepage": "https://github.com/woooooooooolf/ser2mcp", "repository": "https://github.com/woooooooooolf/ser2mcp", + "keywords": ["uart", "serial", "mcp", "hardware"], "skills": "skills", "mcpServers": { "ser2mcp": { diff --git a/CHANGELOG.md b/CHANGELOG.md index c37db37..e98b39a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ ### Added -- 适配 ZCode 插件市场:新增 `.zcode-plugin/plugin.json` 插件清单与仓库根 `marketplace.json` 单插件市场定义,可在 ZCode 中添加 `woooooooooolf/ser2mcp` 为市场后一键安装;MCP 服务器经 `${ZCODE_PLUGIN_ROOT}/bin/ser2mcp` 启动,Windows 自动解析同名 `ser2mcp.exe`,Linux/macOS 由 POSIX 启动脚本选择对应二进制,现有 Reasonix / DSH 接入方式不受影响 +- 新增 ZCode 插件清单与仓库市场定义,可从 `woooooooooolf/ser2mcp` 市场安装并自动加载 MCP 服务及两个 SKILL;现有 Reasonix / DSH 接入方式不受影响 ## [0.8.7] - 2026-08-18 diff --git a/README.en.md b/README.en.md index 04eb8ef..4cd8f51 100644 --- a/README.en.md +++ b/README.en.md @@ -64,9 +64,9 @@ The Agent should follow the configuration and directory conventions of the insta ### ZCode Plugin Marketplace Install -The repository is also a ZCode plugin marketplace (`marketplace.json`), with the plugin manifest at `.zcode-plugin/plugin.json`. In ZCode, open **Settings → Plugin Management → Discover**, click **+** to add a marketplace, enter `woooooooooolf/ser2mcp`, then install and enable the plugin with one click. +The root `marketplace.json` exposes this repository as a ZCode plugin marketplace, with the plugin manifest at `.zcode-plugin/plugin.json`. In ZCode, open **Settings → Plugins**, choose **Create → Add Marketplace**, enter `woooooooooolf/ser2mcp`, then install and enable `ser2mcp`. -Once installed, all `uart_*` MCP tools (exposed as `mcp__ser2mcp__*`) and both SKILLs (`ser2mcp:ser2mcp-usage`, `ser2mcp:ser2mcp-file-transfer`) become available, working across all three platforms: Windows resolves the matching `ser2mcp.exe`, while Linux/macOS use the `bin/ser2mcp` script to select their platform binary. Verify with `uart_list_ports`; an empty array still means the server is working, just with no enumerable serial ports. For offline installation, add this repository directory as a local directory marketplace. +Installation loads all `uart_*` MCP tools and both repository SKILLs. Verify with `uart_list_ports`; an empty array still means the server is working, with no serial ports currently enumerable. For offline installation, add the repository directory as a local marketplace source. ## Tools diff --git a/README.md b/README.md index 21479b1..4578f49 100644 --- a/README.md +++ b/README.md @@ -64,9 +64,9 @@ Agent 应以当前 DSH 版本的配置和目录约定为准,完成 stdio MCP ### ZCode 插件市场安装 -仓库同时是一个 ZCode 插件市场(`marketplace.json`),插件清单位于 `.zcode-plugin/plugin.json`。在 ZCode 中打开 **设置 → 插件管理 → 发现**,点击 **+** 添加市场,输入 `woooooooooolf/ser2mcp` 后一键安装并启用。 +仓库根目录的 `marketplace.json` 提供 ZCode 插件市场,插件清单位于 `.zcode-plugin/plugin.json`。在 ZCode 中打开 **设置 → 插件**,点击右上角 **创建 → 添加插件市场**,输入 `woooooooooolf/ser2mcp`,然后安装并启用 `ser2mcp`。 -安装后即可获得全部 `uart_*` MCP 工具(以 `mcp__ser2mcp__*` 出现)与两个 SKILL(`ser2mcp:ser2mcp-usage`、`ser2mcp:ser2mcp-file-transfer`),三平台通用:Windows 由启动器解析同名 `ser2mcp.exe`,Linux/macOS 由 `bin/ser2mcp` 脚本选择对应二进制。安装后调用 `uart_list_ports` 验证;返回空数组也表示服务器已正常工作,只是当前没有可枚举串口。离线安装时把本仓库目录作为本地目录市场添加。 +安装后会自动加载全部 `uart_*` MCP 工具和仓库内的两个 SKILL。调用 `uart_list_ports` 验证;返回空数组也表示服务器已正常工作,只是当前没有可枚举串口。离线安装时可把仓库目录作为本地市场源。 ## 工具 diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 5aa345e..c1d4e8e 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -11,12 +11,12 @@ ```text 发布准备提交 ── annotated tag vX.Y.Z ── GitHub Release 与远端构建产物 │ - └── main 后续提交:同步 Reasonix 版本和 bin/ 预编译二进制,不再打 tag + └── main 后续提交:同步插件清单版本和 bin/ 预编译二进制,不再打 tag ``` - 只有得到明确发布授权后,才能创建 tag 或 GitHub Release。 - tag 必须指向“发布准备提交”,不能指向后续的二进制同步提交。 -- `reasonix-plugin.json` 和 `bin/` 在远端 Release 成功前保持上一版本。 +- `reasonix-plugin.json`、`.zcode-plugin/plugin.json`、`marketplace.json` 和 `bin/` 在远端 Release 成功前保持上一版本。 - 仓库 `bin/` 只能使用对应 tag 的 GitHub Release 资产;本地 `target/release/` 不能替代远端产物。 - 下载的压缩包必须先通过配套 `.sha256` 校验,再提取和复制二进制。 - `bin/ser2mcp` 是多平台入口文件,发布同步时不得替换或修改。 @@ -28,7 +28,7 @@ | 对象 | 格式 | 示例 | | --- | --- | --- | -| Cargo / Reasonix 版本 | `X.Y.Z` | `0.8.6` | +| Cargo / 插件清单版本 | `X.Y.Z` | `0.8.6` | | Git tag | `vX.Y.Z`,小写 `v` | `v0.8.6` | | Release 标题 | `ser2mcp VX.Y.Z` | `ser2mcp V0.8.6` | | 包内版本前缀 | `VX.Y.Z`,大写 `V` | `V0.8.6` | @@ -43,7 +43,7 @@ Release workflow 当前生成以下六个自定义资产: 工作流会在构建前核对 `RUNNER_ARCH`。架构与名称不一致时必须失败,不能发布错误标注的产物。 -每个压缩包包含平台二进制、README、许可证、`skills/` 和 Rust 文档。Release 包不包含 `reasonix-plugin.json` 或仓库 `bin/` 目录。 +每个压缩包包含平台二进制、README、许可证、`skills/` 和 Rust 文档。Release 包不包含 `reasonix-plugin.json`、`.zcode-plugin/plugin.json`、`marketplace.json` 或仓库 `bin/` 目录。 ## 3. 发布前置检查 @@ -87,6 +87,8 @@ Release workflow 当前生成以下六个自定义资产: 此时不得提前修改: - `reasonix-plugin.json` +- `.zcode-plugin/plugin.json` +- `marketplace.json` - `bin/ser2mcp.exe` - `bin/ser2mcp-linux` - `bin/ser2mcp-macos` @@ -249,8 +251,9 @@ $LauncherHashBefore = (Get-FileHash -Algorithm SHA256 -LiteralPath 'bin/ser2mcp' 提取压缩包后,将三个平台二进制复制到上表目标,并执行以下更新: -1. 把 `reasonix-plugin.json` 的 `version` 更新为 `X.Y.Z`。 -2. 重建 `bin/SHA256SUMS`,内容顺序和格式保持为: +1. 把 `reasonix-plugin.json`、`.zcode-plugin/plugin.json` 与 `marketplace.json` 中插件条目的 `version` 同步更新为 `X.Y.Z`。 +2. 核对 `.zcode-plugin/plugin.json` 与 `marketplace.json` 插件条目的 `name`、`version`、`description` 和 `description_i18n` 完全一致;市场顶层 `name` / `owner` 以及插件 `source` 仍指向既有仓库结构。 +3. 重建 `bin/SHA256SUMS`,内容顺序和格式保持为: ```text *ser2mcp-linux @@ -258,7 +261,7 @@ $LauncherHashBefore = (Get-FileHash -Algorithm SHA256 -LiteralPath 'bin/ser2mcp' *ser2mcp-macos ``` -3. 再次计算 `bin/ser2mcp` 哈希,必须与 `$LauncherHashBefore` 相同。 +4. 再次计算 `bin/ser2mcp` 哈希,必须与 `$LauncherHashBefore` 相同。 Windows 可能因正在运行的 `bin/ser2mcp.exe` 而拒绝覆盖。此时先精确确认占用进程的 `ExecutablePath`: @@ -272,6 +275,8 @@ Windows 可能因正在运行的 `bin/ser2mcp.exe` 而拒绝覆盖。此时先 至少完成: - `reasonix-plugin.json` 可解析,版本为 `X.Y.Z`,command 仍为 `bin/ser2mcp` +- `.zcode-plugin/plugin.json` 与 `marketplace.json` 均可解析,两个插件版本都为 `X.Y.Z`,重复的名称和描述字段一致 +- ZCode MCP command 仍为 `${ZCODE_PLUGIN_ROOT}/bin/ser2mcp`,市场插件 `source` 仍为 `.` - `bin/SHA256SUMS` 与三个实际二进制一致 - Windows 二进制执行 `--version` 输出目标版本 - Linux 文件为 ELF64 X64,macOS 文件为 Mach-O ARM64,Windows 文件为 PE X64 @@ -280,10 +285,12 @@ Windows 可能因正在运行的 `bin/ser2mcp.exe` 而拒绝覆盖。此时先 - `git diff --check` 通过 - fmt、clippy、全部 feature 测试再次通过 -期望此阶段仅修改五个文件: +期望此阶段仅修改七个文件: ```text reasonix-plugin.json +.zcode-plugin/plugin.json +marketplace.json bin/SHA256SUMS bin/ser2mcp.exe bin/ser2mcp-linux @@ -293,7 +300,7 @@ bin/ser2mcp-macos ### 6.5 创建二进制同步提交并等待 CI ```powershell -git add -- reasonix-plugin.json bin/SHA256SUMS bin/ser2mcp.exe bin/ser2mcp-linux bin/ser2mcp-macos +git add -- reasonix-plugin.json .zcode-plugin/plugin.json marketplace.json bin/SHA256SUMS bin/ser2mcp.exe bin/ser2mcp-linux bin/ser2mcp-macos git commit -m "构建:更新 VX.Y.Z 预编译二进制" git push origin main $BinaryCommit = git rev-parse HEAD @@ -317,7 +324,7 @@ git for-each-ref --format="%(objectname) %(objecttype) %(*objectname) %(*objectt - tag 仍指向发布准备提交,不是二进制同步提交 - Release workflow 和二进制同步后的 CI 均成功 - Release 非 draft、非 prerelease,六个资产与说明完整 -- 当前仓库 Reasonix 版本、三个 `bin` 二进制和 `bin/SHA256SUMS` 一致 +- 当前仓库 Reasonix / ZCode 插件版本、三个 `bin` 二进制和 `bin/SHA256SUMS` 一致 ## 8. 必须停止并报告的情况 @@ -337,13 +344,13 @@ git for-each-ref --format="%(objectname) %(objecttype) %(*objectname) %(*objectt - [ ] 已取得创建 tag 和 Release 的明确授权 - [ ] `main` 干净且与 `origin/main` 分歧 `0 0` -- [ ] Cargo/lock/CHANGELOG 已更新,Reasonix 与 `bin` 尚未提前更新 +- [ ] Cargo/lock/CHANGELOG 已更新,Reasonix / ZCode 插件清单与 `bin` 尚未提前更新 - [ ] 本地发布门禁通过;相关串口改动已完成硬件验证 - [ ] 发布准备提交已推送,精确提交的三平台 CI 成功 - [ ] annotated tag 已推送,peeled commit 正确 - [ ] Release workflow 成功,说明和六个资产通过验收 - [ ] 三个远端压缩包的 sidecar SHA-256 校验通过 -- [ ] Reasonix 版本和三个 `bin` 二进制已用远端产物更新 +- [ ] Reasonix / ZCode 插件版本和三个 `bin` 二进制已用远端产物更新,ZCode 两份 JSON 的重复字段一致 - [ ] `bin/SHA256SUMS` 已重建,`bin/ser2mcp` 未改变 - [ ] 二进制同步提交已推送,精确提交的三平台 CI 成功 - [ ] 最终工作区干净,远端分歧 `0 0` diff --git a/marketplace.json b/marketplace.json index 297d16c..b03e3fa 100644 --- a/marketplace.json +++ b/marketplace.json @@ -1,17 +1,30 @@ { "name": "woooooooooolf-plugins", + "description": "ZCode plugin marketplace for ser2mcp.", + "description_i18n": { + "en": "ZCode plugin marketplace for ser2mcp.", + "zh-CN": "ser2mcp 的 ZCode 插件市场。" + }, + "owner": { + "name": "woooooooooolf", + "url": "https://github.com/woooooooooolf" + }, "plugins": [ { "name": "ser2mcp", "source": ".", "version": "0.8.7", - "description": "UART serial port MCP server plugin: expose local serial ports to AI assistants as standard MCP tools.", + "description": "UART serial-port MCP server that exposes local serial devices as standard tools for AI assistants.", "description_i18n": { - "en": "UART serial port MCP server plugin: expose local serial ports to AI assistants as standard MCP tools.", - "zh-CN": "UART 串口 MCP 服务器插件:把本地串口设备封装成标准 MCP 工具,让 AI 直接读写串口。" + "en": "UART serial-port MCP server that exposes local serial devices as standard tools for AI assistants.", + "zh-CN": "UART 串口 MCP 服务器,将本地串口设备封装为标准工具,供 AI 助手直接读写。" }, "homepage": "https://github.com/woooooooooolf/ser2mcp", - "author": "woooooooooolf" + "author": { + "name": "woooooooooolf" + }, + "category": "developer-tools", + "keywords": ["uart", "serial", "mcp", "hardware"] } ] }