Digilent WaveForms MCP Server

平台与服务

by kenosinc

面向 Digilent WaveForms 仪器的 MCP 服务器,支持示波器、AWG 和逻辑分析仪等设备操作。

什么是 Digilent WaveForms MCP Server

面向 Digilent WaveForms 仪器的 MCP 服务器,支持示波器、AWG 和逻辑分析仪等设备操作。

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:
    code
    # /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:

dockerfile
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

bash
docker build -f Dockerfile.dwf -t dwf-mcp-server .

3. Configure your MCP client

Claude Code

bash
claude mcp add dwf -- docker run -i --rm --privileged dwf-mcp-server

Claude Desktop

Add to claude_desktop_config.json:

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:

bash
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

ToolDescription
list_devicesList all connected Digilent WaveForms devices
device_infoGet detailed information about a specific device
analog_captureCapture analog waveform samples (oscilloscope); supports action="single" / "start" / "read" / "stop" for continuous capture across tool calls
generate_waveformGenerate an analog signal (AWG): sine, square, triangle, ...; supports action="pulse" / "start" / "stop" for persistent output
measureMeasure DC voltage, RMS, frequency, period, or peak-to-peak
power_supplyControl the programmable power supply (V+ / V-)
digital_captureCapture digital logic signals (logic analyzer); supports action="single" / "start" / "read" / "stop" for continuous capture across tool calls
gpio_readRead the logic level of a digital I/O pin
gpio_writeSet the logic level of a digital I/O pin
spi_transferSend and receive data over SPI using the digital protocol interface
device_stateReport per-sub-instrument running/idle status (AWG, scope, LA, power supply)
close_deviceClose the persistent device session and stop all outputs
device_session_statusCheck whether the persistent device session is currently open

Development

See CLAUDE.md for development setup, coding conventions, and release procedures.

License

MIT

常见问题

Digilent WaveForms MCP Server 是什么?

面向 Digilent WaveForms 仪器的 MCP 服务器,支持示波器、AWG 和逻辑分析仪等设备操作。

相关 Skills

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描165.3k

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描165.3k

接口测试套件

by alirezarezvani

Universal
热门

扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。

帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。

平台与服务
未扫描23.5k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
89.1k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
79.9k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
71.9k

评论