背景
嵌入式板子池管理。一块物理板跑多个 OS 实例(Android/Linux/Ubuntu VM),
不刷机情况下 N 人共用同一板——预约的是 OS 实例,不是整板。
架构
中心 MCP Server → SSH → bench_host (各台架)
├── adb (Android)
├── ssh (Linux/Ubuntu)
└── fastboot (刷机)
不做每台 bench 的 agent,一套中心 MCP Server SSH 过去执行所有命令。
两级预约锁
| 类型 |
粒度 |
互斥 |
| OS 锁 (light) |
单个 OS 实例 |
同实例互斥,不同实例并行 |
| Board 锁 (heavy) |
整块物理板 |
排斥该板上所有 OS reservation |
CLI 先行,MCP 包 CLI
labbench os list --type android --free
labbench os reserve msm8953-01/android -d 120
labbench os shell msm8953-01/android "dmesg | grep wifi"
labbench os release msm8953-01/android
labbench board power-cycle msm8953-01 # 需 heavy lock
labbench board flash msm8953-01 /images/v2.1/
Board Inventory
~/.labbench/boards.yaml:
boards:
- board_id: "msm8953-01"
board_type: "msm8953"
bench_host: "bench-01.lab.internal"
pdu:
host: "pdu.lab.internal"
port: 3
os_instances:
- os_id: "android"
os_type: "android"
ip: "192.168.1.101"
adb_serial: "ABCD1234"
- os_id: "linux"
os_type: "linux"
ip: "192.168.1.102"
ssh_port: 2222
MCP Tools
OS 级 10 个:list, status, reserve, release, shell, upload, download, reboot, log, ping
Board 级 6 个:list, status, reserve(heavy), release, flash, power_cycle
完整文档
~/workspace/mcp-specs/lab-bench-mcp/
design.md — 硬件接口层 + 预约状态机 + CLI 设计
tools.json — 16 个 MCP tool 的 JSON Schema
背景
嵌入式板子池管理。一块物理板跑多个 OS 实例(Android/Linux/Ubuntu VM),
不刷机情况下 N 人共用同一板——预约的是 OS 实例,不是整板。
架构
不做每台 bench 的 agent,一套中心 MCP Server SSH 过去执行所有命令。
两级预约锁
CLI 先行,MCP 包 CLI
Board Inventory
~/.labbench/boards.yaml:MCP Tools
OS 级 10 个:list, status, reserve, release, shell, upload, download, reboot, log, ping
Board 级 6 个:list, status, reserve(heavy), release, flash, power_cycle
完整文档
~/workspace/mcp-specs/lab-bench-mcp/design.md— 硬件接口层 + 预约状态机 + CLI 设计tools.json— 16 个 MCP tool 的 JSON Schema