{
  "markdown": "# mcp-sigrok — MCP server for sigrok-cli\n\n[![PyPI](https://img.shields.io/pypi/v/mcp-sigrok.svg)](https://pypi.org/project/mcp-sigrok/)\n[![Python](https://img.shields.io/pypi/pyversions/mcp-sigrok.svg)](https://pypi.org/project/mcp-sigrok/)\n\nMCP 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.\n\n## Install\n\n```bash\npip install mcp-sigrok\n```\n\n## Requirements\n\n- sigrok-cli must be installed on the system\n\n### Installing sigrok-cli\n\n**Debian/Ubuntu:**\n```bash\nsudo apt install sigrok-cli\n```\n\n**macOS:**\n```bash\nbrew install sigrok-cli\n```\n\n**From source:**\n```bash\ngit clone git://sigrok.org/sigrok-cli\ncd sigrok-cli\n./autogen.sh\n./configure\nmake\nsudo make install\n```\n\n## Usage\n\n### As MCP Server\n\n```bash\n# Run as stdio MCP server\nmcp-sigrok\n```\n\nOr configure in your MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"sigrok\": {\n      \"command\": \"mcp-sigrok\"\n    }\n  }\n}\n```\n\n### Python API\n\n```python\nfrom mcp_sigrok import (\n    check_sigrok_cli,\n    get_version,\n    list_drivers,\n    scan_devices,\n    capture_samples,\n    load_input_file,\n)\n\n# Check if sigrok-cli is available\nif cli_path := check_sigrok_cli():\n    print(f\"Found sigrok-cli at: {cli_path}\")\n\n# Get version info\ninfo = get_version()\n\n# List available drivers\ndrivers = list_drivers()\n\n# Scan for devices\ndevices = scan_devices()\n\n# Capture samples\nresult = capture_samples(\"fx2lafw\", samples=1000)\n```\n\n## MCP Tools\n\n| Tool | Description |\n|------|-------------|\n| `version` | Get sigrok-cli version info |\n| `list_supported` | List all supported features |\n| `list_hardware_drivers` | List available hardware drivers |\n| `list_input_file_formats` | List supported input formats |\n| `list_output_file_formats` | List supported output formats |\n| `list_protocol_decoders` | List available protocol decoders |\n| `scan_for_devices` | Scan for detectable devices |\n| `show_device_info` | Show device info for a driver |\n| `capture` | Capture samples from hardware |\n| `capture_for_time` | Capture data for duration |\n| `load_file` | Load and process input file |\n| `show_decoder_docs` | Show protocol decoder docs |\n| `set_config` | Set driver configuration |\n\n## Examples\n\n### Capture from logic analyzer\n\n```python\n# Capture 1000 samples from fx2lafw device\nresult = capture(\n    driver=\"fx2lafw\",\n    samples=1000,\n    channels=\"0-7\",\n    output_format=\"hex\"\n)\n```\n\n### Decode I2C protocol\n\n```python\n# Load capture file and decode I2C\nresult = load_file(\n    input_file=\"capture.sr\",\n    protocol_decoders=\"i2c\",\n    output_file=\"decoded.txt\"\n)\n```\n\n### Scan for devices\n\n```python\n# Find available devices\ndevices = scan_for_devices()\nfor device in devices.get(\"devices\", []):\n    print(f\"Found: {device}\")\n```\n\n## Development\n\n```bash\ngit clone https://github.com/daedalus/mcp-sigrok.git\ncd mcp-sigrok\npip install -e \".[test]\"\n\n# run tests\npytest\n\n# format\nruff format src/ tests/\n\n# lint\nruff check src/ tests/\n\n# type check\nmypy src/\n```\n\nmcp-name: io.github.daedalus/mcp-sigrok",
  "bytes": 3157,
  "sha": "687bd4706b161d8128895d7cfdf531057ca5895c328ce7c4185b38f680c87a37",
  "repo_slug": "daedalus/mcp-sigrok",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_daedalus_mcp_sigrok_5ba0e4ca/readme"
}