Mcp Sigrok

io.github.daedalusPublished by GitHub account daedalusv0.1.0Updated Nov 3, 2026

MCP server exposing sigrok-cli functionality for logic analyzer hardware and protocol decoding

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Wraps sigrok-cli so an assistant can drive logic analyzers: list drivers and decoders, scan devices, capture samples and decode protocols.

What you can do
  • Check sigrok-cli version and list supported features, hardware drivers, and input/output file formats
  • Scan for connected devices and show device information for a driver
  • Capture samples from logic analyzer hardware, including timed captures, and set driver configuration
  • Load and process capture files, and show protocol decoder documentation
When to use it
Useful when you work with logic analyzer hardware or sigrok capture files and want an assistant to scan devices, take captures, or decode protocols such as I2C from the conversation instead of running sigrok-cli by hand.
Requirements
Runs as a local stdio process installed from PyPI (pip install mcp-sigrok). sigrok-cli must already be installed on the system (apt, brew, or from source). No accounts, API keys, or environment variables are declared.
Before you install
It drives real hardware and writes output files, so captures and file processing act on your machine and devices. It depends on an external sigrok-cli binary being present and trusted on the PATH.

Installation

In SourceWeft

  1. Open Mcp Sigrok in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcp-sigrok — MCP server for sigrok-cli

[PyPI] [Python]

MCP server that exposes all functionality of sigrok-cli as MCP tools. sigrok-cli is a cross-platform command-line utility for the sigrok software suite, used for hardware initialization, acquisition, protocol decoding, and saving logic analyzer sessions.

Install

bash
pip install mcp-sigrok

Requirements

  • sigrok-cli must be installed on the system

Installing sigrok-cli

Debian/Ubuntu:

bash
sudo apt install sigrok-cli

macOS:

bash
brew install sigrok-cli

From source:

bash
git clone git://sigrok.org/sigrok-clicd sigrok-cli./autogen.sh./configuremakesudo make install

Usage

As MCP Server

bash
# Run as stdio MCP servermcp-sigrok

Or configure in your MCP settings:

json
{  "mcpServers": {    "sigrok": {      "command": "mcp-sigrok"    }  }}

Python API

python
from mcp_sigrok import (    check_sigrok_cli,    get_version,    list_drivers,    scan_devices,    capture_samples,    load_input_file,)
# Check if sigrok-cli is availableif cli_path := check_sigrok_cli():    print(f"Found sigrok-cli at: {cli_path}")
# Get version infoinfo = get_version()
# List available driversdrivers = list_drivers()
# Scan for devicesdevices = scan_devices()
# Capture samplesresult = capture_samples("fx2lafw", samples=1000)

MCP Tools

ToolDescription
versionGet sigrok-cli version info
list_supportedList all supported features
list_hardware_driversList available hardware drivers
list_input_file_formatsList supported input formats
list_output_file_formatsList supported output formats
list_protocol_decodersList available protocol decoders
scan_for_devicesScan for detectable devices
show_device_infoShow device info for a driver
captureCapture samples from hardware
capture_for_timeCapture data for duration
load_fileLoad and process input file
show_decoder_docsShow protocol decoder docs
set_configSet driver configuration

Examples

Capture from logic analyzer

python
# Capture 1000 samples from fx2lafw deviceresult = capture(    driver="fx2lafw",    samples=1000,    channels="0-7",    output_format="hex")

Decode I2C protocol

python
# Load capture file and decode I2Cresult = load_file(    input_file="capture.sr",    protocol_decoders="i2c",    output_file="decoded.txt")

Scan for devices

python
# Find available devicesdevices = scan_for_devices()for device in devices.get("devices", []):    print(f"Found: {device}")

Development

bash
git clone https://github.com/daedalus/mcp-sigrok.gitcd mcp-sigrokpip install -e ".[test]"
# run testspytest
# formatruff format src/ tests/
# lintruff check src/ tests/
# type checkmypy src/

mcp-name: io.github.daedalus/mcp-sigrok

Source: README.md at commit 4c58b69

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts