Skip to main content
Glama
seayniclabs

Bench

by seayniclabs

Bench — это нативный macOS MCP-сервер, который предоставляет ИИ-инструментам, таким как Claude Code, Cursor и Windsurf, возможность видеть подключенное USB-оборудование. Он идентифицирует устройства, находит последовательные порты и распознает популярные платы для разработчиков — чтобы ваш ИИ-ассистент знал, что находится на вашем рабочем столе.

Никаких 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

Определение точного типа чипа ESP32/микроконтроллера через esptool

Мониторинг

Инструмент

Описание

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 секунд (логи загрузки, отладочный вывод)

Возможности

  • Классификация устройств — автоматическая категоризация устройств как накопители, устройства ввода, концентраторы, видео, последовательные адаптеры, микроконтроллеры или отладчики

  • Обнаружение последовательных портов — сопоставление USB-устройств с их последовательными портами /dev/cu.* (самый частый вопрос мейкеров)

  • 83+ известных плат — распознавание Arduino, Raspberry Pi, ESP32, Adafruit, SparkFun, Teensy, STM32 и распространенных USB-serial чипов

  • Информация о накопителях — точки монтирования, емкость и свободное место на USB-дисках

  • USB-мониторинг — отслеживание событий, снимки состояния, запросы диагностических логов и анализ питания

  • Прошивка — прямая прошивка плат ESP32, STM32, Arduino AVR и RP2040

  • HID-взаимодействие — отправка и получение отчетов от Stream Deck, макро-падов и пользовательских HID-устройств

  • Последовательная связь — открытие, чтение, запись и мониторинг последовательных портов с настраиваемой скоростью, битами данных, четностью и стоповыми битами

Требования

  • macOS 14+ (Sonoma или новее) на Apple Silicon

  • MCP-совместимый ИИ-инструмент (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": []
    }
  }
}

Использование

После подключения просто поговорите со своим ИИ-инструментом:

  • "Какие USB-устройства подключены?"

  • "На каком порту находится мой Arduino?"

  • "Идентифицируй устройство на /dev/cu.usbserial-2120"

  • "Извлеки Samsung T7"

  • "Покажи мне все устройства хранения"

  • "Открой последовательное соединение с /dev/cu.usbserial-2120 на скорости 9600 бод"

  • "Мониторь последовательный вывод с моего ESP32 в течение 10 секунд"

Как это работает

Bench использует фреймворк Apple IOKit для нативного перечисления USB-устройств в macOS. Он дополняет результаты обнаружением последовательных портов (сканирование /dev/cu.*), информацией о накопителях (diskutil) и встроенной базой данных известных плат для разработчиков. Он взаимодействует с ИИ-инструментами через stdio, используя Model Context Protocol (JSON-RPC).

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

Никаких специальных разрешений не требуется. Перечисление USB через IOKit работает без прав доступа для CLI-бинарного файла.

Сборка

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

Bench требует Swift 6.1+ и предназначен для macOS 14+.

Лицензия

MIT

Авторы

Создано Seaynic Labs.

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/seayniclabs/bench'

If you have feedback or need assistance with the MCP directory API, please join our Discord server