关于 Digilent WaveForms MCP Server
Digilent WaveForms MCP Server 将 Digilent WaveForms 仪器接入 MCP 客户端,面向使用示波器、AWG 和逻辑分析仪的用户。它通过 MCP 工具提供测量、信号生成、数字 I/O 和设备会话控制。
主要功能
- 01列出并查看已连接设备
- 02采集模拟和数字信号
- 03生成任意波形
- 04测量电压和信号属性
- 05控制电源与 GPIO
- 06通过 SPI 传输数据
适用场景
- 01用示波器检查信号
- 02用 AWG 生成测试信号
- 03采集逻辑分析仪数据
- 04控制仪器电源和数字引脚
MCP 相关
它通过设备发现、信号采集、波形生成、测量、电源控制、GPIO 和 SPI 等工具向 MCP 客户端开放 Digilent WaveForms 仪器。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/kenosinc/dwf-mcp-server:0.2.1本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/kenosinc/dwf-mcp-server:0.2.1stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
dwf-mcp-server
适用于 Digilent WaveForms
仪器的 MCP 服务——示波器、任意波形发生器(AWG)和逻辑分析仪。
基于 dwfpy 构建,这是 Digilent WaveForms SDK(libdwf)的
Python 绑定。
支持的设备
- Analog Discovery 2(AD2)
- Analog Discovery 3(AD3)
- Digital Discovery(DD)
- Digilent WaveForms SDK 支持的任何设备
前提条件
- 主机上已安装 Docker。
- 无需在主机上安装 WaveForms SDK。 专有的
libdwf.so会通过派生 Dockerfile 层添加 (参见安装)。 - USB 设备权限 — Digilent USB 设备的默认权限为
root:root 0664。如果容器 找不到任何设备,请在主机上添加 udev 规则:
然后重新加载:# /etc/udev/rules.d/99-digilent.rules SUBSYSTEM=="usb", ATTRS{idVendor}=="1443", MODE="0666"sudo udevadm control --reload-rules && sudo udevadm trigger
安装
公开的 Docker 镜像不包含任何 Digilent 专有软件
(Adept 2 Runtime、WaveForms SDK / libdwf.so)。你必须创建一个添加这些软件的派生镜像。
1. 创建派生 Dockerfile
创建名为 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. 构建镜像
docker build -f Dockerfile.dwf -t dwf-mcp-server .
3. 配置 MCP 客户端
Claude Code
claude mcp add dwf -- docker run -i --rm --privileged dwf-mcp-server
Claude Desktop
添加到 claude_desktop_config.json:
{
"mcpServers": {
"dwf": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--privileged",
"dwf-mcp-server"
]
}
}
}
传入 --privileged,以便容器访问 USB 设备。
项目级配置(Claude Code)
如果你已克隆此仓库,请将随附的示例复制到项目本地的
.mcp.json(已加入 gitignore),这样 Claude Code 在打开此目录时
就会自动读取该配置:
cp .mcp.example.json .mcp.json
编辑生成的 .mcp.json,使其匹配本地镜像标签或添加其他
服务;原始的 .mcp.example.json 保持干净,便于分享。
可用的 MCP 工具
| 工具 | 描述 |
|---|---|
list_devices | 列出所有已连接的 Digilent WaveForms 设备 |
device_info | 获取特定设备的详细信息 |
analog_capture | 捕获模拟波形样本(示波器);支持 action="single" / "start" / "read" / "stop",可通过多次工具调用进行连续捕获 |
generate_waveform | 生成模拟信号(AWG):正弦波、方波、三角波等;支持 action="pulse" / "start" / "stop",可持续输出 |
measure | 测量直流电压、RMS、频率、周期或峰峰值 |
power_supply | 控制可编程电源(V+ / V-) |
digital_capture | 捕获数字逻辑信号(逻辑分析仪);支持 action="single" / "start" / "read" / "stop",可通过多次工具调用进行连续捕获 |
gpio_read | 读取数字 I/O 引脚的逻辑电平 |
gpio_write | 设置数字 I/O 引脚的逻辑电平 |
spi_transfer | 使用数字协议接口通过 SPI 发送和接收数据 |
device_state | 报告各子仪器的运行/空闲状态(AWG、示波器、LA、电源) |
close_device | 关闭持久设备会话并停止所有输出 |
device_session_status | 检查持久设备会话当前是否已打开 |
开发
有关开发环境配置、编码规范和发布流程,请参阅 CLAUDE.md。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。