mcpField
S
Sigrok Mcp Server

Sigrok Mcp Server

ローカル
kenosinc.github.io開発ツール1323 週間前に更新

Sigrok Mcp Server について

Sigrok Mcp Serverは、AIクライアントからsigrok-cliを操作し、ロジックアナライザーや測定機器の信号を扱うMCPサーバーです。信号の取得やプロトコル解析、構造化された結果の確認に対応し、ハードウェアデバッグに利用できます。

主な機能

  1. 01接続デバイスの検出
  2. 02信号データのファイル保存
  3. 03取得データのプロトコル解析
  4. 04ハードウェアとデコーダー情報の確認
  5. 05ファームウェアの有無を確認

活用シーン

  1. 01I2C、SPI、UART通信の取得
  2. 02保存済み信号データの解析
  3. 03デバイス検出やファームウェア問題の調査

MCP 対応

stdio上のJSON-RPCで通信するMCPサーバーです。sigrok-cliによるハードウェア検出、信号取得、デコード、情報照会のツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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 用の Model Context Protocol (MCP) サーバーです。Claude Code、Codex、Cursor などの AI エージェントが、ロジックアナライザーや測定デバイスから信号を取得、デコード、解析できるようにします。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_versionsigrok-cli とライブラリのバージョン情報を表示します
scan_devices接続されているハードウェアデバイスをスキャンします
capture_dataデバイスから通信データを取得し、ファイルに保存します
decode_protocolプロトコルデコーダーを使用して、取得済みファイルのプロトコルデータをデコードします
check_firmware_statussigrok のファームウェアディレクトリ内でファームウェアファイルが利用可能か確認します

クイックスタート

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(empty)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 への唯一のインターフェースとして sigrok-cli を使用します
  • 取得とデコード: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.)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。