# sigrok MCP Server

Обёртка над sigrok-cli для ИИ-агентов: находит подключённый логический анализатор, снимает данные и расшифровывает протоколы вроде I2C, SPI или UART.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 12
- Автор: KenosInc
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/KenosInc/sigrok-mcp-server
- Обновлён: 2026-08-17
- HTML: https://affpapa.org/nevibecode/mcp/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` — задают путь к бинарнику, лимит на команду и рабочий каталог.

## Требования
- Нужно: Docker
- Переменные окружения: `SIGROK_CLI_PATH`, `SIGROK_TIMEOUT_SECONDS`, `SIGROK_WORKING_DIR` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
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

**Командой платформы**
```bash
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
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "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>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "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 CLI

**Командой платформы**
```bash
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
```
Вместо <…> подставьте свои значения

## Когда брать
- увидеть список подключённых логических анализаторов, не набирая команды sigrok-cli вручную
- снять трафик с пина устройства и сохранить его в файл
- расшифровать захваченный дамп по декодеру I2C, SPI, UART или CAN
- выяснить, какие каналы и опции есть у конкретного драйвера или декодера
- проверить, лежит ли прошивка на месте, когда плата не определяется

## Примеры запросов агенту
- Просканируй подключённые устройства и покажи, что нашлось
- Сними данные с канала D0 и сохрани в файл, таймаут 30 секунд
- Расшифруй `capture.sr` декодером SPI и объясни, что идёт по шине

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
