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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。