About Digilent WaveForms MCP Server
Digilent WaveForms MCP Server is an MCP server published by KenosInc in the Developer Tools category: mCP server for Digilent WaveForms instruments (oscilloscope, AWG, logic analyzer).
The repository has 3 stars and 0 forks, with the last commit yesterday. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/KenosInc/dwf-mcp-serverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (13)
analog_captureCapture analog waveform samples (oscilloscope); supports `action="single" / "start" / "read" / "stop"` for continuous capture across tool calls
Parameters not published.
close_deviceClose the persistent device session and stop all outputs
Parameters not published.
device_infoGet detailed information about a specific device
Parameters not published.
device_session_statusCheck whether the persistent device session is currently open
Parameters not published.
device_stateReport per-sub-instrument running/idle status (AWG, scope, LA, power supply)
Parameters not published.
digital_captureCapture digital logic signals (logic analyzer); supports `action="single" / "start" / "read" / "stop"` for continuous capture across tool calls
Parameters not published.
generate_waveformGenerate an analog signal (AWG): sine, square, triangle, ...; supports `action="pulse" / "start" / "stop"` for persistent output
Parameters not published.
gpio_readRead the logic level of a digital I/O pin
Parameters not published.
gpio_writeSet the logic level of a digital I/O pin
Parameters not published.
list_devicesList all connected Digilent WaveForms devices
Parameters not published.
Show all 13 tools
measureMeasure DC voltage, RMS, frequency, period, or peak-to-peak
Parameters not published.
power_supplyControl the programmable power supply (V+ / V-)
Parameters not published.
spi_transferSend and receive data over SPI using the digital protocol interface
Parameters not published.
Ask AI
Ask AI about Digilent WaveForms MCP Server
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
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
The public Docker image does not bundle any Digilent proprietary software
(Adept 2 Runtime, WaveForms SDK / libdwf.so). You must create a derived image
that adds them.
1. Create a derived Dockerfile
Create a file named 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. Build the image
docker build -f Dockerfile.dwf -t dwf-mcp-server .
3. Configure your MCP client
Claude Code
claude mcp add dwf -- docker run -i --rm --privileged dwf-mcp-server
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"dwf": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--privileged",
"dwf-mcp-server"
]
}
}
}
Pass --privileged so the container can access USB devices.
Available MCP Tools
| Tool | Description |
|---|---|
list_devices |
List all connected Digilent WaveForms devices |
device_info |
Get detailed information about a specific device |
analog_capture |
Capture analog waveform samples (oscilloscope) |
generate_waveform |
Generate an analog signal (AWG): sine, square, triangle, ... |
measure |
Measure DC voltage, RMS, frequency, period, or peak-to-peak |
power_supply |
Control the programmable power supply (V+ / V-) |
digital_capture |
Capture digital logic signals (logic analyzer) |
gpio_read |
Read the logic level of a digital I/O pin |
gpio_write |
Set the logic level of a digital I/O pin |
spi_transfer |
Send and receive data over SPI using the digital protocol interface |
Development
See CLAUDE.md for development setup, coding conventions, and release procedures.
License
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.