Back to Directory/Developer Tools

io.github.daedalus/mcp-sigrok

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

Developer ToolsPythonv0.1.0

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

pip install mcp-sigrok

Requirements

  • sigrok-cli must be installed on the system

Installing sigrok-cli

Debian/Ubuntu:

sudo apt install sigrok-cli

macOS:

brew install sigrok-cli

From source:

git clone git://sigrok.org/sigrok-cli
cd sigrok-cli
./autogen.sh
./configure
make
sudo make install

Usage

As MCP Server

# Run as stdio MCP server
mcp-sigrok

Or configure in your MCP settings:

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

Python API

from mcp_sigrok import (
    check_sigrok_cli,
    get_version,
    list_drivers,
    scan_devices,
    capture_samples,
    load_input_file,
)

# Check if sigrok-cli is available
if cli_path := check_sigrok_cli():
    print(f"Found sigrok-cli at: {cli_path}")

# Get version info
info = get_version()

# List available drivers
drivers = list_drivers()

# Scan for devices
devices = scan_devices()

# Capture samples
result = 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

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

Decode I2C protocol

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

Scan for devices

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

Development

git clone https://github.com/daedalus/mcp-sigrok.git
cd mcp-sigrok
pip install -e ".[test]"

# run tests
pytest

# format
ruff format src/ tests/

# lint
ruff check src/ tests/

# type check
mypy src/

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

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx mcp-sigrok

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-daedalus-mcp-sigrok": {
      "command": "uvx",
      "args": [
        "mcp-sigrok"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

mcp-sigrokpypi

Compatible MCP Clients

io.github.daedalus/mcp-sigrok works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More