mcpField
D
Digilent WaveForms MCP Server

Digilent WaveForms MCP Server

ローカル
github.com/KenosInc科学・教育324 週間前に更新

Digilent WaveForms MCP Server について

Digilent WaveForms MCP Serverは、オシロスコープ、AWG、ロジックアナライザーを使うユーザー向けに、Digilent WaveForms機器をMCPクライアントへ接続します。測定、信号生成、デジタルI/O、デバイスセッション操作をMCPツールとして提供します。

主な機能

  1. 01接続デバイスの一覧表示と情報取得
  2. 02アナログ・デジタル信号の取得
  3. 03任意波形の生成
  4. 04電圧と信号特性の測定
  5. 05電源とGPIOの制御
  6. 06SPIによるデータ転送

活用シーン

  1. 01オシロスコープで信号を確認
  2. 02AWGでテスト信号を生成
  3. 03ロジックアナライザーのデータ取得
  4. 04機器の電源とデジタルピンを制御

MCP 対応

デバイス検出、信号取得、波形生成、測定、電源制御、GPIO、SPIのツールを通じて、Digilent WaveForms機器をMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kenosinc-dwf": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/kenosinc/dwf-mcp-server:0.2.1"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/kenosinc/dwf-mcp-server:0.2.1

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/kenosinc/dwf-mcp-server:0.2.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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" に対応しています
measureDC 電圧、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 を参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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