Digilent WaveForms MCP Server
MCP server for Digilent WaveForms instruments (oscilloscope, AWG, logic analyzer).
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
ghcr.io/kenosinc/dwf-mcp-server:0.2.1claude mcp add digilent-waveforms-mcp-server -- docker run -i --rm ghcr.io/kenosinc/dwf-mcp-server:0.2.1
{
"mcpServers": {
"digilent-waveforms-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/kenosinc/dwf-mcp-server:0.2.1"
]
}
}
}
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
المحتويات
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:# /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
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.
Project-level config (Claude Code)
If you have cloned this repository, copy the bundled example to a project-local
.mcp.json (which is gitignored) so Claude Code picks it up automatically when
opened against this directory:
cp .mcp.example.json .mcp.json
Edit the resulting .mcp.json to match your local image tag or to add other
servers; the original .mcp.example.json stays clean and shareable.
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); supports action="single" / "start" / "read" / "stop" for continuous capture across tool calls |
generate_waveform | Generate an analog signal (AWG): sine, square, triangle, ...; supports action="pulse" / "start" / "stop" for persistent output |
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); supports action="single" / "start" / "read" / "stop" for continuous capture across tool calls |
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 |
device_state | Report per-sub-instrument running/idle status (AWG, scope, LA, power supply) |
close_device | Close the persistent device session and stop all outputs |
device_session_status | Check whether the persistent device session is currently open |
Development
See CLAUDE.md for development setup, coding conventions, and release procedures.
License
الأسئلة الشائعة
ما هو Digilent WaveForms MCP Server؟
MCP server for Digilent WaveForms instruments (oscilloscope, AWG, logic analyzer).
كيف أثبّت Digilent WaveForms MCP Server؟
يعمل على جهازك. في Claude Code: claude mcp add digilent-waveforms-mcp-server -- docker run -i --rm ghcr.io/kenosinc/dwf-mcp-server:0.2.1. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج Digilent WaveForms MCP Server إلى مفتاح API؟
لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.
هل Digilent WaveForms MCP Server مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون Digilent WaveForms MCP Server؟
ينشره KenosInc. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.