io.github.daedalus/mcp-sigrok
MCP server exposing sigrok-cli functionality for logic analyzer hardware and protocol decoding
Versions
0.1.0latestTools 13
capture Capture samples from hardware. Args: driver: Driver name (e.g., "fx2lafw"). samples: Number of samples to capture (default: 1000). channels: Channel specification (e.g., "0-3" or "0=Vcc,1=CS"). output_file: Output file path. output_format: Output format (e.g., "binary", "hex", "csv"). config: Driver config (key=value). wait_trigger: Wait for trigger before capturing. triggers: Trigger specification. Returns: Dictionary with capture results. Example: >>> capture("fx2lafw", samples=100) {"success": True, "output": "..."}
version Get sigrok-cli version information. Returns: Dictionary with version info and supported features. Example: >>> version() {"installed": True, "version_output": "sigrok-cli 0.5.0..."}
list_supported List all supported hardware drivers, file formats, and protocol decoders. Returns: Dictionary with all supported features. Example: >>> list_supported() {"success": True, "output": "..."}
list_hardware_drivers List available hardware drivers. Returns: Dictionary with driver list. Example: >>> list_hardware_drivers() {"success": True, "drivers": ["fx2lafw", "ols", ...]}
list_input_file_formats List supported input file formats. Returns: Dictionary with format list. Example: >>> list_input_file_formats() {"success": True, "formats": ["sigrok session", "binary", ...]}
list_output_file_formats List supported output file formats. Returns: Dictionary with format list. Example: >>> list_output_file_formats() {"success": True, "formats": ["binary", "hex", "csv", ...]}
list_protocol_decoders List available protocol decoders. Returns: Dictionary with decoder list. Example: >>> list_protocol_decoders() {"success": True, "decoders": ["i2c", "spi", "uart", ...]}
scan_for_devices Scan for detectable hardware devices. Returns: Dictionary with found devices. Example: >>> scan_for_devices() {"success": True, "devices": ["fx2lafw-1.2:...", ...]}
show_device_info Show device information for a driver. Args: driver: Driver name (e.g., "fx2lafw", "ols:conn=/dev/ttyACM0"). Returns: Dictionary with device info. Example: >>> show_device_info("fx2lafw") {"success": True, "driver": "fx2lafw", "info": "..."}
capture_for_time Capture data for specified duration. Args: driver: Driver name. duration_ms: Capture duration in milliseconds. channels: Channel specification. output_file: Output file path. output_format: Output format. config: Driver config. Returns: Dictionary with capture results. Example: >>> capture_for_time("fx2lafw", duration_ms=3000) {"success": True, "output": "..."}
load_file Load and process input file. Args: input_file: Input file path. input_format: Input format (auto-detected if not specified). protocol_decoders: Protocol decoders to apply. output_file: Output file path. Returns: Dictionary with processing results. Example: >>> load_file("capture.sr", protocol_decoders="i2c") {"success": True, "output": "..."}
show_decoder_docs Show protocol decoder documentation. Args: decoder: Decoder name (e.g., "i2c", "spi"). Returns: Dictionary with decoder docs. Example: >>> show_decoder_docs("i2c") {"success": True, "decoder": "i2c", "docs": "..."}
set_config Set driver configuration without acquisition. Args: driver: Driver name. config: Configuration to set (key=value). Returns: Dictionary with result. Example: >>> set_config("lascar-el-usb", "datalog=on") {"success": True, "output": "..."}
Permissions 2
filesystem low shell high