Digilent WaveForms MCP Server について
Digilent WaveForms MCP Serverは、オシロスコープ、AWG、ロジックアナライザーを使うユーザー向けに、Digilent WaveForms機器をMCPクライアントへ接続します。測定、信号生成、デジタルI/O、デバイスセッション操作をMCPツールとして提供します。
主な機能
- 01接続デバイスの一覧表示と情報取得
- 02アナログ・デジタル信号の取得
- 03任意波形の生成
- 04電圧と信号特性の測定
- 05電源とGPIOの制御
- 06SPIによるデータ転送
活用シーン
- 01オシロスコープで信号を確認
- 02AWGでテスト信号を生成
- 03ロジックアナライザーのデータ取得
- 04機器の電源とデジタルピンを制御
MCP 対応
デバイス検出、信号取得、波形生成、測定、電源制御、GPIO、SPIのツールを通じて、Digilent WaveForms機器をMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/kenosinc/dwf-mcp-server:0.2.1ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/kenosinc/dwf-mcp-server:0.2.1stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
dwf-mcp-server
Digilent WaveForms
計測器(オシロスコープ、任意波形発生器(AWG)、ロジックアナライザー)用の MCP サーバーです。
dwfpy を基盤としており、Digilent WaveForms SDK(libdwf)の Python バインディングを使用しています。
対応デバイス
- Analog Discovery 2(AD2)
- Analog Discovery 3(AD3)
- Digital Discovery(DD)
- Digilent WaveForms SDK がサポートするすべてのデバイス
前提条件
- ホストマシンに Docker がインストールされていること。
- ホスト側に WaveForms SDK をインストールする必要はありません。 独自の
libdwf.soは、派生 Dockerfile のレイヤーを通じて追加します(インストールを参照)。 - USB デバイスの権限 — Digilent USB デバイスの既定の所有者と権限は
root:root 0664です。コンテナからデバイスが見つからない場合は、ホストに udev ルールを追加してください。
次に、ルールを再読み込みします:# /etc/udev/rules.d/99-digilent.rules SUBSYSTEM=="usb", ATTRS{idVendor}=="1443", MODE="0666"sudo udevadm control --reload-rules && sudo udevadm trigger
インストール
公開されている Docker イメージには、Digilent の独自ソフトウェア(Adept 2 Runtime、WaveForms SDK / libdwf.so)は 含まれていません。これらを追加した派生イメージを作成する必要があります。
1. 派生 Dockerfile を作成する
Dockerfile.dwf という名前のファイルを作成します。
FROM ghcr.io/kenosinc/dwf-mcp-server:latest
ARG ADEPT_VERSION=2.27.9
ARG WAVEFORMS_VERSION=3.24.4
RUN ARCH="$(dpkg --print-architecture)" \
&& apt-get update \
&& apt-get install -y --no-install-recommends curl \
&& curl -fsSL "https://files.digilent.com/Software/Adept2%20Runtime/${ADEPT_VERSION}/digilent.adept.runtime_${ADEPT_VERSION}-${ARCH}.deb" \
-o /tmp/adept-runtime.deb \
&& curl -fsSL "https://files.digilent.com/Software/Waveforms/${WAVEFORMS_VERSION}/digilent.waveforms_${WAVEFORMS_VERSION}_${ARCH}.deb" \
-o /tmp/waveforms.deb \
&& (apt-get install -y --no-install-recommends /tmp/adept-runtime.deb /tmp/waveforms.deb || true) \
&& for cmd in xdg-desktop-menu xdg-icon-resource xdg-mime; do \
printf '#!/bin/sh\nexit 0\n' > "/usr/bin/$cmd" && chmod +x "/usr/bin/$cmd"; \
done \
&& dpkg --configure -a \
&& apt-get purge -y curl \
&& apt-get autoremove -y \
&& rm -f /tmp/adept-runtime.deb /tmp/waveforms.deb \
&& rm -rf /var/lib/apt/lists/*
2. イメージをビルドする
docker build -f Dockerfile.dwf -t dwf-mcp-server .
3. MCP クライアントを設定する
Claude Code
claude mcp add dwf -- docker run -i --rm --privileged dwf-mcp-server
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"dwf": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--privileged",
"dwf-mcp-server"
]
}
}
}
コンテナから USB デバイスにアクセスできるよう、--privileged を渡してください。
プロジェクトレベルの設定(Claude Code)
このリポジトリをクローンした場合は、同梱のサンプルをプロジェクトローカルの
.mcp.json(gitignore 対象)にコピーしてください。Claude Code はこのディレクトリで開くと、自動的に設定を読み込みます。
cp .mcp.example.json .mcp.json
作成された .mcp.json を編集し、ローカルのイメージタグに合わせるか、ほかのサーバーを追加してください。元の .mcp.example.json は、共有しやすいクリーンな状態のまま保持されます。
利用可能な MCP ツール
| ツール | 説明 |
|---|---|
list_devices | 接続されている Digilent WaveForms デバイスをすべて一覧表示します |
device_info | 特定のデバイスの詳細情報を取得します |
analog_capture | アナログ波形のサンプルを取得します(オシロスコープ)。ツール呼び出しをまたいで連続取得するための action="single" / "start" / "read" / "stop" に対応しています |
generate_waveform | アナログ信号を生成します(AWG):正弦波、矩形波、三角波など。出力を継続するための action="pulse" / "start" / "stop" に対応しています |
measure | DC 電圧、RMS、周波数、周期、またはピーク間値を測定します |
power_supply | プログラマブル電源(V+ / V-)を制御します |
digital_capture | デジタルロジック信号を取得します(ロジックアナライザー)。ツール呼び出しをまたいで連続取得するための action="single" / "start" / "read" / "stop" に対応しています |
gpio_read | デジタル I/O ピンのロジックレベルを読み取ります |
gpio_write | デジタル I/O ピンのロジックレベルを設定します |
spi_transfer | デジタルプロトコルインターフェイスを使用して、SPI 経由でデータを送受信します |
device_state | サブ計測器(AWG、オシロスコープ、LA、電源)ごとの実行中/アイドル状態を報告します |
close_device | デバイスの永続セッションを閉じ、すべての出力を停止します |
device_session_status | デバイスの永続セッションが現在開いているかどうかを確認します |
開発
開発環境のセットアップ、コーディング規約、リリース手順については、CLAUDE.md を参照してください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。