kenosinc avatar

Digilent WaveForms MCP Server

kenosinc/dwf-mcp-server

Wraps the Digilent WaveForms SDK to control oscilloscopes, arbitrary waveform generators, and logic analyzers from Claude. Works with Analog Discovery 2/3, Digital Discovery, and any hardware supported by libdwf. You get tools for analog capture with single or continuous modes, waveform generation (sine, square, triangle), voltage measurement, power supply control, logic analyzer capture, GPIO read/write, and SPI transfers. Ships as a Docker container but requires you to build a derived image that adds Digilent's proprietary runtime and SDK yourself since redistribution isn't allowed. Runs privileged for USB device access. Reach for this when you need Claude to drive test equipment or prototype analog/digital circuits interactively.

GitHub stars
2
tools
13
transport
STDIO
last updated
May 9, 2026

Tools

13 tools

Public tool metadata for what this MCP can expose to an agent.

list_devicesList all connected Digilent WaveForms devices

List all connected Digilent WaveForms devices

No parameter schema in public metadata yet.

device_infoGet detailed information about a specific device

Get detailed information about a specific device

No parameter schema in public metadata yet.

analog_captureCapture analog waveform samples (oscilloscope); supports action="single" / "start" / "read" / "stop" for continuous capture across tool calls

Capture analog waveform samples (oscilloscope); supports action="single" / "start" / "read" / "stop" for continuous capture across tool calls

No parameter schema in public metadata yet.

generate_waveformGenerate an analog signal (AWG): sine, square, triangle, ...; supports action="pulse" / "start" / "stop" for persistent output

Generate an analog signal (AWG): sine, square, triangle, ...; supports action="pulse" / "start" / "stop" for persistent output

No parameter schema in public metadata yet.

measureMeasure DC voltage, RMS, frequency, period, or peak-to-peak

Measure DC voltage, RMS, frequency, period, or peak-to-peak

No parameter schema in public metadata yet.

power_supplyControl the programmable power supply (V+ / V-)

Control the programmable power supply (V+ / V-)

No parameter schema in public metadata yet.

digital_captureCapture digital logic signals (logic analyzer); supports action="single" / "start" / "read" / "stop" for continuous capture across tool calls

Capture digital logic signals (logic analyzer); supports action="single" / "start" / "read" / "stop" for continuous capture across tool calls

No parameter schema in public metadata yet.

gpio_readRead the logic level of a digital I/O pin

Read the logic level of a digital I/O pin

No parameter schema in public metadata yet.

gpio_writeSet the logic level of a digital I/O pin

Set the logic level of a digital I/O pin

No parameter schema in public metadata yet.

spi_transferSend and receive data over SPI using the digital protocol interface

Send and receive data over SPI using the digital protocol interface

No parameter schema in public metadata yet.

device_stateReport per-sub-instrument running/idle status (AWG, scope, LA, power supply)

Report per-sub-instrument running/idle status (AWG, scope, LA, power supply)

No parameter schema in public metadata yet.

close_deviceClose the persistent device session and stop all outputs

Close the persistent device session and stop all outputs

No parameter schema in public metadata yet.

device_session_statusCheck whether the persistent device session is currently open

Check whether the persistent device session is currently open

No parameter schema in public metadata yet.

Sponsors

Readme

dwf-mcp-server

MCP Server for Digilent WaveForms instruments — oscilloscope, arbitrary waveform generator (AWG), and logic analyzer. Built on dwfpy, a Python binding for the Digilent WaveForms SDK (libdwf).

Supported Devices

  • Analog Discovery 2 (AD2)
  • Analog Discovery 3 (AD3)
  • Digital Discovery (DD)
  • Any device supported by the Digilent WaveForms SDK

Prerequisites

  • Docker installed on the host machine.
  • No host-side WaveForms SDK installation is required. The proprietary libdwf.so is added via a derived Dockerfile layer (see Installation).
  • USB device permissions — Digilent USB devices default to root:root 0664. If the container cannot find any devices, add a udev rule on the host:
    # /etc/udev/rules.d/99-digilent.rules
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1443", MODE="0666"
    
    Then reload: sudo udevadm control --reload-rules && sudo udevadm trigger

Installation


View the full README on GitHub

Details

Repository
github.com/kenosinc/dwf-mcp-server
Package
ghcr.io/kenosinc/dwf-mcp-server:0.2.1
Transport
STDIO
Registry
MCP registry, active

More from kenosinc