list_supported_hardwareLABSCO SUMMARY
Discovery first, so the agent knows what your hardware can do.
capture_data is the only tool that touches a device; everything else is a read, which makes the exploratory half safe to let an agent run freely. check_firmware_status exists for the one failure everybody hits — a device that does not show up because the firmware it needs cannot ship with the server.
What it is
A Go server that drives sigrok-cli. It parses sigrok's text output into structured JSON, so an agent receives fields rather than a terminal dump, and it holds no C bindings of its own.
What you get
- Hardware drivers, protocol decoders, input formats and output formats listed — list_supported_hardware, list_supported_decoders, list_input_formats, list_output_formats
- One decoder or one driver in detail, and the sigrok and library versions — show_decoder_details, show_driver_details, show_version
- Connected devices scanned, and firmware availability checked when a device refuses to appear — scan_devices, check_firmware_status
- Data captured from a device to a file, then decoded with protocol decoders — capture_data, decode_protocol
- Serial-attached instruments queried directly, independent of sigrok-cli, with device profiles looked up — serial_query, get_device_profile
- I2C, SPI, UART, CAN and 100+ other protocols through sigrok's decoder set
Requirements
Sigrok-cli on the machine, or the published container image ghcr.io/kenosinc/sigrok-mcp-server, which speaks stdio. USB devices need the container run with --privileged. Drivers that require firmware cannot have it bundled for licensing reasons — mount your firmware directory at /usr/local/share/sigrok-firmware. SIGROK_CLI_PATH, SIGROK_TIMEOUT_SECONDS (default 30) and SIGROK_WORKING_DIR are the configuration.
Setup effort
One command — docker pull ghcr.io/kenosinc/sigrok-mcp-server && docker run -i ghcr.io/kenosinc/sigrok-mcp-server
USE CASES
Finding out whether your analyser is usable
Scan for connected devices, then read the driver's capabilities and scan options before you commit to a capture configuration.
Capturing a bus and reading what it said
Capture to a file, then decode it with the right protocol decoder and get the transactions back as JSON rather than as decoder text.
Choosing a decoder for an unfamiliar protocol
List the decoders sigrok supports, then read one decoder's options, channels and documentation before pointing it at a capture.
Debugging a device that will not appear
Check whether the firmware files a driver needs are present in the sigrok firmware directories, which is the usual reason a scan comes back empty.
13 tools
Listed in project docs. Your client may show a different list.
list_supported_decoderslist_input_formatslist_output_formatsshow_decoder_detailsshow_driver_detailsshow_versionscan_devicescapture_datacheck_firmware_statusdecode_protocolserial_queryget_device_profileBEFORE YOU INSTALL
What to know first
Tools you get
13 tools named in the project's documentation.
Requires
docker on PATH
INSTALLATION
Connect your client
Server setup
docker pull ghcr.io/kenosinc/sigrok-mcp-server
docker run -i ghcr.io/kenosinc/sigrok-mcp-serverMCP Clients
Claude Desktop
{
"mcpServers": {
"sigrok": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/kenosinc/sigrok-mcp-server"
]
}
}
}Claude Desktop — USB firmware
{
"mcpServers": {
"sigrok": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--privileged",
"-v",
"<YOUR_PATH_TO_SIGROK_FIRMWARE>:/usr/local/share/sigrok-firmware:ro",
"ghcr.io/kenosinc/sigrok-mcp-server"
]
}
}
}Claude Code
claude mcp add sigrok -- docker run -i --rm ghcr.io/kenosinc/sigrok-mcp-serverBuild from source
go build -o sigrok-mcp-server ./cmd/sigrok-mcp-server
./sigrok-mcp-server