Skip to main content
Glama

Bench 是一款原生的 macOS MCP 服务器,它让 Claude Code、Cursor 和 Windsurf 等 AI 工具能够识别已连接的 USB 硬件。它可以识别设备、查找串口并识别常见的创客开发板——让您的 AI 助手了解您的工作台上有什么。

无需 API 密钥。无需驱动程序。一条命令即可安装。

功能概览

涵盖四个类别的 22 个工具:

发现

工具

描述

ping

健康检查 — 返回服务器状态、版本、macOS 版本

list_usb_devices

列出所有已连接的 USB 设备,包括供应商、类型、速度、序列号

get_device_info

通过序列号、位置 ID 或名称获取特定设备的详细信息

identify_device

智能识别 83 种以上的已知创客/开发板

list_serial_ports

枚举串口并匹配对应的 USB 设备

hub_topology

USB 集线器树状视图,显示端口层级和连接情况

device_descriptors

完整的 USB 描述符链 — 接口、端点、类代码

chip_detect

通过 esptool 检测 ESP32/微控制器的确切芯片类型

监控

工具

描述

monitor_events

检测调用期间的 USB 连接/断开事件

snapshot_state

捕获并对比 USB 设备状态快照

diagnose_device

查询系统日志以获取特定设备的 USB 错误

power_info

每个设备的功耗、总线预算、充电检测

管理

工具

描述

eject_device

安全卸载并弹出可移动存储设备

tag_device

为设备设置持久化的用户自定义别名

port_reset

重置 USB 端口以恢复死机的设备

flash_firmware

通过 esptool/dfu-util/avrdude/UF2 烧录固件

hid_send

发送/接收原始 HID 报告

串口通信

工具

描述

serial_open

打开具有可配置波特率、数据位、校验位的串口连接

serial_read

从打开的串口连接中读取可用数据

serial_write

向打开的串口连接写入数据或命令

serial_close

关闭打开的串口连接

serial_monitor

捕获 N 秒的串口输出(启动日志、调试输出)

Related MCP server: dwf-mcp-server

特性

  • 设备分类 — 自动将设备归类为存储、输入、集线器、视频、串口适配器、微控制器或调试器

  • 串口检测 — 将 USB 设备映射到其 /dev/cu.* 串口(创客最常问的问题)

  • 83 种以上已知开发板 — 识别 Arduino、Raspberry Pi、ESP32、Adafruit、SparkFun、Teensy、STM32 以及常见的 USB 转串口芯片

  • 存储信息 — USB 驱动器的挂载点、容量和剩余空间

  • USB 监控 — 事件跟踪、状态快照、诊断日志查询和电源分析

  • 固件烧录 — 直接烧录 ESP32、STM32、Arduino AVR 和 RP2040 开发板

  • HID 交互 — 与 Stream Deck、宏键盘和自定义 HID 设备发送及接收报告

  • 串口通信 — 通过可配置的波特率、数据位、校验位和停止位打开、读取、写入和监控串口

要求

  • macOS 14+ (Sonoma 或更高版本),运行于 Apple Silicon

  • 支持 MCP 的 AI 工具(Claude Code、Cursor、Windsurf 等)

  • 从源码构建:Xcode 16.3+ / Swift 6.1+

安装

Homebrew (推荐)

brew install seayniclabs/tap/bench

从源码构建

git clone https://github.com/seayniclabs/bench.git
cd bench
swift build -c release
codesign --force --sign - --entitlements Sources/Bench/Bench.entitlements .build/release/Bench

二进制文件位于 .build/release/Bench

添加到 Claude Code

claude mcp add bench -- $(which bench)

或者手动添加到 ~/.claude.json

{
  "mcpServers": {
    "bench": {
      "command": "/path/to/bench",
      "args": []
    }
  }
}

使用方法

连接后,直接与您的 AI 工具对话即可:

  • “连接了哪些 USB 设备?”

  • “我的 Arduino 在哪个端口?”

  • “识别 /dev/cu.usbserial-2120 上的设备”

  • “弹出 Samsung T7”

  • “显示所有存储设备”

  • “以 9600 波特率打开到 /dev/cu.usbserial-2120 的串口连接”

  • “监控我的 ESP32 串口输出 10 秒”

工作原理

Bench 使用 Apple 的 IOKit 框架在 macOS 上原生枚举 USB 设备。它通过串口检测(扫描 /dev/cu.*)、存储信息(diskutil)以及内置的已知创客开发板数据库来丰富结果。它通过 Model Context Protocol (JSON-RPC) 使用 stdio 与 AI 工具进行通信。

AI Tool  --stdio/JSON-RPC-->  Bench  --IOKit-->  USB Device Tree
                                     --diskutil-->  Storage Info
                                     --/dev/cu.*-->  Serial Ports
                                     --DeviceDB-->  Board Recognition

无需特殊权限。IOKit USB 枚举无需 CLI 二进制文件的授权即可工作。

构建

swift build             # debug build
swift build -c release  # release build
swift test              # run tests

Bench 需要 Swift 6.1+ 并针对 macOS 14+ 进行编译。

许可证

MIT

致谢

Seaynic Labs 构建。

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables LLMs to communicate with hardware devices via serial ports. Provides tools for listing ports, opening/closing connections, reading/writing data, and controlling serial signals.
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables control of Digilent WaveForms instruments (oscilloscope, AWG, logic analyzer) over USB, supporting devices like Analog Discovery 2/3 and Digital Discovery.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM agents to interact directly with Qualcomm EDL devices over USB, including device enumeration, Sahara protocol handshake, SoC identity queries, Firehose programmer upload, command-mode execution, and device reset.
    GPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to communicate with serial devices such as Arduinos, ESP32s, USB-UART adapters, and RS-232 instruments by discovering ports, opening connections, sending commands, reading responses, and controlling reset lines.
    12
    1
    MIT