io.github.daedalus/mcp-sigrok
MCP server exposing sigrok-cli functionality for logic analyzer hardware and protocol decoding
Open source Open in the app JSON README (API)
About
MCP server exposing sigrok-cli functionality for logic analyzer hardware and protocol decoding
Details
- Kind
- MCP servers
- Topic
- Developer tools
- Publisher
- daedalus
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.0
- Stars
- 2
- Forks
- 1
- Last push
- 2026-04-17T23:13:53Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 03:02:40
- Updated
- 2026-08-29 03:02:40
- Origin id
io.github.daedalus/mcp-sigrok
README
# mcp-sigrok — MCP server for sigrok-cli
[](https://pypi.org/project/mcp-sigrok/)
[](https://pypi.org/project/mcp-sigrok/)
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-cli
cd sigrok-cli
./autogen.sh
./configure
make
sudo make install
```
## Usage
### As MCP Server
```bash
# Run as stdio MCP server
mcp-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 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
| Tool | Description |
|------|-------------|
| `version` | Get sigrok-cli version info |
| `list_supported` | List all supported features |
| `list_hardware_drivers` | List available hardware drivers |
| `list_input_file_formats` | List supported input formats |
| `list_output_file_formats` | List supported output formats |
| `list_protocol_decoders` | List available protocol decoders |
| `scan_for_devices` | Scan for detectable devices |
| `show_device_info` | Show device info for a driver |
| `capture` | Capture samples from hardware |
| `capture_for_time` | Capture data for duration |
| `load_file` | Load and process input file |
| `show_decoder_docs` | Show protocol decoder docs |
| `set_config` | Set driver configuration |
## Examples
### Capture from logic analyzer
```python
# Capture 1000 samples from fx2lafw device
result = capture(
driver="fx2lafw",
samples=1000,
channels="0-7",
output_format="hex"
)
```
### Decode I2C protocol
```python
# Load capture file and decode I2C
result = load_file(
input_file="capture.sr",
protocol_decoders="i2c",
output_file="decoded.txt"
)
```
### Scan for devices
```python
# Find available devices
devices = scan_for_devices()
for device in devices.get("devices", []):
print(f"Found: {device}")
```
## Development
```bash
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