sigrok MCP Server — MCP-сервер для Claude Code
Обёртка над sigrok-cli для ИИ-агентов: находит подключённый логический анализатор, снимает данные и расшифровывает протоколы вроде I2C, SPI или UART.
claude mcp add --env SIGROK_CLI_PATH=<SIGROK_CLI_PATH> --env SIGROK_TIMEOUT_SECONDS=<SIGROK_TIMEOUT_SECONDS> --env SIGROK_WORKING_DIR=<SIGROK_WORKING_DIR> --transport stdio sigrok-mcp-server -- docker run -i --rm -e SIGROK_CLI_PATH -e SIGROK_TIMEOUT_SECONDS -e SIGROK_WORKING_DIR ghcr.io/kenosinc/sigrok-mcp-server:0.2.0Что делает sigrok MCP Server
Сервер работает как прослойка между агентом и sigrok-cli: тот запускается через exec.Command, а текстовый вывод разбирается в JSON. Одиннадцать инструментов делятся на два лагеря. Захват данных умеет только capture_data, остальные десять — запросы: scan_devices ищет подключённое железо, show_driver_details и show_decoder_details показывают возможности драйвера и декодера, list_supported_hardware, list_supported_decoders, list_input_formats и list_output_formats дают списки, show_version и check_firmware_status отвечают на служебные вопросы, decode_protocol разбирает уже снятый файл.
Связь идёт по stdio, JSON-RPC. Сам бинарник на Go, но без C-привязок — весь sigrok доступен только через CLI. Запускать проще всего в Docker: docker run -i ghcr.io/kenosinc/sigrok-mcp-server. Если хотите собирать из исходников, понадобится Go 1.25+ и установленный sigrok-cli.
Часть драйверов требует прошивок, которые в образ не вложены из-за лицензий. Без них сервер работает с demo и с тем, что не нуждается в файлах. Для Kingst LA2016 или Saleae Logic16 придётся смонтировать каталог прошивок в /usr/local/share/sigrok-firmware, а проверить наличие поможет check_firmware_status. Ещё нюанс: из контейнера USB-устройства видны только с флагом --privileged. Три переменные окружения — SIGROK_CLI_PATH (по умолчанию sigrok-cli), SIGROK_TIMEOUT_SECONDS (30) и SIGROK_WORKING_DIR — задают путь к бинарнику, лимит на команду и рабочий каталог.
Какие задачи решает
- увидеть список подключённых логических анализаторов, не набирая команды sigrok-cli вручную
- снять трафик с пина устройства и сохранить его в файл
- расшифровать захваченный дамп по декодеру I2C, SPI, UART или CAN
- выяснить, какие каналы и опции есть у конкретного драйвера или декодера
- проверить, лежит ли прошивка на месте, когда плата не определяется
Примеры запросов агенту
- Просканируй подключённые устройства и покажи, что нашлось
- Сними данные с канала D0 и сохрани в файл, таймаут 30 секунд
- Расшифруй
capture.srдекодером SPI и объясни, что идёт по шине
Как установить sigrok MCP Server
Командой платформы
claude mcp add --env SIGROK_CLI_PATH=<SIGROK_CLI_PATH> --env SIGROK_TIMEOUT_SECONDS=<SIGROK_TIMEOUT_SECONDS> --env SIGROK_WORKING_DIR=<SIGROK_WORKING_DIR> --transport stdio sigrok-mcp-server -- docker run -i --rm -e SIGROK_CLI_PATH -e SIGROK_TIMEOUT_SECONDS -e SIGROK_WORKING_DIR ghcr.io/kenosinc/sigrok-mcp-server:0.2.0Вместо <…> подставьте свои значения
Командой платформы
codex mcp add sigrok-mcp-server --env SIGROK_CLI_PATH=<SIGROK_CLI_PATH> --env SIGROK_TIMEOUT_SECONDS=<SIGROK_TIMEOUT_SECONDS> --env SIGROK_WORKING_DIR=<SIGROK_WORKING_DIR> -- docker run -i --rm -e SIGROK_CLI_PATH -e SIGROK_TIMEOUT_SECONDS -e SIGROK_WORKING_DIR ghcr.io/kenosinc/sigrok-mcp-server:0.2.0Вместо <…> подставьте свои значения
Файл настроек
{
"mcpServers": {
"sigrok-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SIGROK_CLI_PATH",
"-e",
"SIGROK_TIMEOUT_SECONDS",
"-e",
"SIGROK_WORKING_DIR",
"ghcr.io/kenosinc/sigrok-mcp-server:0.2.0"
],
"env": {
"SIGROK_CLI_PATH": "<SIGROK_CLI_PATH>",
"SIGROK_TIMEOUT_SECONDS": "<SIGROK_TIMEOUT_SECONDS>",
"SIGROK_WORKING_DIR": "<SIGROK_WORKING_DIR>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"servers": {
"sigrok-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SIGROK_CLI_PATH",
"-e",
"SIGROK_TIMEOUT_SECONDS",
"-e",
"SIGROK_WORKING_DIR",
"ghcr.io/kenosinc/sigrok-mcp-server:0.2.0"
],
"env": {
"SIGROK_CLI_PATH": "<SIGROK_CLI_PATH>",
"SIGROK_TIMEOUT_SECONDS": "<SIGROK_TIMEOUT_SECONDS>",
"SIGROK_WORKING_DIR": "<SIGROK_WORKING_DIR>"
}
}
}
}Вместо <…> подставьте свои значения
Командой платформы
gemini mcp add -e SIGROK_CLI_PATH=<SIGROK_CLI_PATH> -e SIGROK_TIMEOUT_SECONDS=<SIGROK_TIMEOUT_SECONDS> -e SIGROK_WORKING_DIR=<SIGROK_WORKING_DIR> sigrok-mcp-server docker run -i --rm -e SIGROK_CLI_PATH -e SIGROK_TIMEOUT_SECONDS -e SIGROK_WORKING_DIR ghcr.io/kenosinc/sigrok-mcp-server:0.2.0Вместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о sigrok MCP Server
Как установить sigrok MCP Server в Claude Code?
Одной командой: `claude mcp add --env SIGROK_CLI_PATH=<SIGROK_CLI_PATH> --env SIGROK_TIMEOUT_SECONDS=<SIGROK_TIMEOUT_SECONDS> --env SIGROK_WORKING_DIR=<SIGROK_WORKING_DIR> --transport stdio sigrok-mcp-server -- docker run -i --rm -e SIGROK_CLI_PATH -e SIGROK_TIMEOUT_SECONDS -e SIGROK_WORKING_DIR ghcr.io/kenosinc/sigrok-mcp-server:0.2.0`. Подставьте свои значения переменных до запуска.
Что делает sigrok MCP Server?
Даёт агенту инструменты sigrok-cli: поиск железа, захват сигнала в файл и разбор записанного дампа протокольными декодерами. Остальные запросы только читают — списки драйверов, декодеров, форматов и сведения о них.
Почему плата не находится в контейнере?
Скорее всего нет доступа к USB: добавьте --privileged. Вторая причина — отсутствующая прошивка; для Kingst LA2016 и Saleae Logic16 смонтируйте её каталог в /usr/local/share/sigrok-firmware и проверьте через check_firmware_status.