
Digilent WaveForms 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 toolsPublic 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.sois 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:
Then reload:# /etc/udev/rules.d/99-digilent.rules SUBSYSTEM=="usb", ATTRS{idVendor}=="1443", MODE="0666"sudo udevadm control --reload-rules && sudo udevadm trigger
Installation
Details
- Repository
- github.com/kenosinc/dwf-mcp-server
- Package
ghcr.io/kenosinc/dwf-mcp-server:0.2.1- Transport
- STDIO
- Registry
- MCP registry, active