mcpField
S
Sigrok Mcp Server

Sigrok Mcp Server

本地服务
kenosinc.github.io开发工具1323 周前更新

关于 Sigrok Mcp Server

Sigrok Mcp Server 让 AI 客户端通过 sigrok-cli 检查逻辑分析仪和测量设备的信号,支持采集、协议解码及结构化结果,适用于硬件调试。

主要功能

  1. 01发现已连接设备
  2. 02采集信号并保存文件
  3. 03解码已采集的协议数据
  4. 04查看硬件与解码器详情
  5. 05检查固件可用情况

适用场景

  1. 01采集 I2C、SPI 或 UART 通信
  2. 02解码已保存的信号记录
  3. 03排查设备检测或固件问题

MCP 相关

这是通过 stdio 和 JSON-RPC 通信的 MCP 服务,向 MCP 客户端提供 sigrok-cli 的硬件发现、信号采集、解码和信息查询工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sigrok": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SIGROK_CLI_PATH",
"-e",
"SIGROK_TIMEOUT_SECONDS",
"-e",
"SIGROK_WORKING_DIR",
"ghcr.io/kenosinc/sigrok-mcp-server:0.2.0"
],
"env": {
"SIGROK_CLI_PATH": "<SIGROK_CLI_PATH>",
"SIGROK_TIMEOUT_SECONDS": "<SIGROK_TIMEOUT_SECONDS>",
"SIGROK_WORKING_DIR": "<SIGROK_WORKING_DIR>"
}
}
}
}
启动命令docker run -i --rm -e SIGROK_CLI_PATH -e SIGROK_TIMEOUT_SECONDS -e SIGROK_WORKING_DIR ghcr.io/kenosinc/sigrok-mcp-server:0.2.0
需要配置的环境变量
SIGROK_CLI_PATHPath to sigrok-cli binary
SIGROK_TIMEOUT_SECONDSCommand execution timeout in seconds
SIGROK_WORKING_DIRWorking directory for sigrok-cli execution

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/kenosinc/sigrok-mcp-server:0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

sigrok-mcp-server

CI Go Version License: MIT GitHub Release

一个适用于 sigrok 的 模型上下文协议(MCP) 服务,可让 Claude Code、Codex 和 Cursor 等 AI Agent 从逻辑分析仪和测量设备采集、解码和分析信号。通过 sigrok-cli 支持 I2C、SPI、UART、CAN 和 100 多种协议。

文档 | 快速入门

工具

工具说明
list_supported_hardware列出所有受支持的硬件驱动程序
list_supported_decoders列出所有受支持的协议解码器
list_input_formats列出所有受支持的输入文件格式
list_output_formats列出所有受支持的输出文件格式
show_decoder_details显示协议解码器的详细信息(选项、通道、文档)
show_driver_details显示硬件驱动程序的详细信息(功能、扫描选项、设备)
show_version显示 sigrok-cli 和库的版本信息
scan_devices扫描已连接的硬件设备
capture_data从设备采集通信数据并保存到文件
decode_protocol使用协议解码器解码采集文件中的协议数据
check_firmware_status检查 sigrok 固件目录中固件文件的可用情况

快速入门

Docker
docker pull ghcr.io/kenosinc/sigrok-mcp-server
docker run -i ghcr.io/kenosinc/sigrok-mcp-server
从源代码构建

需要 Go 1.25+,并且系统中已安装 sigrok-cli。

go build -o sigrok-mcp-server ./cmd/sigrok-mcp-server
./sigrok-mcp-server

服务通过 stdio(stdin/stdout JSON-RPC)进行通信。

配置

通过环境变量进行配置:

变量默认值说明
SIGROK_CLI_PATHsigrok-clisigrok-cli 二进制文件的路径
SIGROK_TIMEOUT_SECONDS30命令执行超时时间(秒)
SIGROK_WORKING_DIR(空)sigrok-cli 的工作目录

MCP 客户端配置

Claude Desktop

将以下内容添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "sigrok": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/kenosinc/sigrok-mcp-server"]
    }
  }
}

若要从容器访问 USB 设备:

{
  "mcpServers": {
    "sigrok": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "--privileged", "ghcr.io/kenosinc/sigrok-mcp-server"]
    }
  }
}

若要为需要固件的设备(例如 Kingst LA2016)提供固件文件:

{
  "mcpServers": {
    "sigrok": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--privileged",
        "-v", "/path/to/sigrok-firmware:/usr/local/share/sigrok-firmware:ro",
        "ghcr.io/kenosinc/sigrok-mcp-server"
      ]
    }
  }
}
Claude Code
claude mcp add sigrok -- docker run -i --rm ghcr.io/kenosinc/sigrok-mcp-server

启用 USB 访问并提供固件:

claude mcp add sigrok -- docker run -i --rm --privileged -v /path/to/sigrok-firmware:/usr/local/share/sigrok-firmware:ro ghcr.io/kenosinc/sigrok-mcp-server

固件

由于许可限制,部分硬件驱动程序所需的固件文件无法随此服务一起分发。不需要固件的设备(例如 demo、仅进行协议分析)无需固件即可使用此服务。对于需要固件的设备(例如 Kingst LA2016、Saleae Logic16),请将你的固件目录挂载到容器中的 /usr/local/share/sigrok-firmware。

使用 check_firmware_status 工具验证固件是否可用,并诊断设备检测问题。

有关设备固件的提取说明,请参阅 sigrok wiki。

架构

MCP Client (LLM)
    |  stdio (JSON-RPC)
    v
sigrok-mcp-server (Go)
    |  exec.Command
    v
sigrok-cli
    |
    v
libsigrok / libsigrokdecode
  • 传输:stdio(stdin/stdout JSON-RPC)
  • 无 C 绑定:sigrok-cli 是与 sigrok 交互的唯一接口
  • 采集与解码:capture_data 从设备采集数据;所有其他工具都只进行只读查询
  • 结构化输出:将 sigrok-cli 的原始文本输出解析为 JSON

工作流示例

使用 Claude 进行信号分析的典型工作流:

  1. scan_devices — 发现已连接的硬件
  2. show_driver_details — 检查驱动程序功能
  3. capture_data — 将通信数据捕获到文件
  4. decode_protocol — 使用协议解码器解码捕获的数据
  5. Claude 分析解码后的输出并解释通信内容

开发

# Build
go build ./...

# Test
go test ./... -race

# Lint
golangci-lint run ./...
项目结构
cmd/sigrok-mcp-server/     Entry point
internal/
  config/                  Environment-based configuration
  sigrok/
    executor.go            sigrok-cli command execution with timeout
    parser.go              Output parsing (list, decoder, driver, version, scan)
    testdata/              Real sigrok-cli output fixtures
  tools/
    tools.go               MCP tool definitions and registration
    handlers.go            Tool handler implementations

许可证

MIT(Kenos, Inc.)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。