关于 mcp-sigrok
mcp-sigrok 将 sigrok-cli 的操作提供给 MCP 客户端,用于逻辑分析仪硬件采集与协议解码。用户可通过 MCP 工具扫描设备、采集样本或处理已保存的会话。
主要功能
- 01扫描已连接设备
- 02查看驱动和文件格式
- 03采集硬件样本
- 04加载并解码采集文件
- 05配置驱动并查看解码器文档
适用场景
- 01查找逻辑分析仪设备和驱动信息
- 02采集指定通道的样本
- 03解码已保存会话中的 I2C 数据
MCP 相关
它以 stdio MCP 服务运行,通过工具提供 sigrok-cli 功能,包括设备发现、采集、文件处理和配置。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-sigrok — sigrok-cli 的 MCP 服务
将 sigrok-cli 的所有功能作为 MCP 工具提供的 MCP 服务。sigrok-cli 是 sigrok 软件套件的跨平台命令行工具,用于硬件初始化、采集、协议解码和保存逻辑分析仪会话。
安装
pip install mcp-sigrok
要求
- 系统中必须安装 sigrok-cli
安装 sigrok-cli
Debian/Ubuntu:
sudo apt install sigrok-cli
macOS:
brew install sigrok-cli
从源代码安装:
git clone git://sigrok.org/sigrok-cli
cd sigrok-cli
./autogen.sh
./configure
make
sudo make install
用法
作为 MCP 服务
# Run as stdio MCP server
mcp-sigrok
或者在 MCP 设置中配置:
{
"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 工具
| 工具 | 描述 |
|---|---|
version | 获取 sigrok-cli 版本信息 |
list_supported | 列出所有支持的功能 |
list_hardware_drivers | 列出可用的硬件驱动程序 |
list_input_file_formats | 列出支持的输入格式 |
list_output_file_formats | 列出支持的输出格式 |
list_protocol_decoders | 列出可用的协议解码器 |
scan_for_devices | 扫描可检测的设备 |
show_device_info | 显示驱动程序的设备信息 |
capture | 从硬件采集样本 |
capture_for_time | 在指定时长内采集数据 |
load_file | 加载并处理输入文件 |
show_decoder_docs | 显示协议解码器文档 |
set_config | 设置驱动程序配置 |
示例
从逻辑分析仪采集数据
# Capture 1000 samples from fx2lafw device
result = capture(
driver="fx2lafw",
samples=1000,
channels="0-7",
output_format="hex"
)
解码 I2C 协议
# Load capture file and decode I2C
result = load_file(
input_file="capture.sr",
protocol_decoders="i2c",
output_file="decoded.txt"
)
扫描设备
# Find available devices
devices = scan_for_devices()
for device in devices.get("devices", []):
print(f"Found: {device}")
开发
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
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。