mcpField
D
Digilent WaveForms MCP Server

Digilent WaveForms MCP Server

本地服务
github.com/KenosInc科研与教育324 周前更新

关于 Digilent WaveForms MCP Server

Digilent WaveForms MCP Server 将 Digilent WaveForms 仪器接入 MCP 客户端,面向使用示波器、AWG 和逻辑分析仪的用户。它通过 MCP 工具提供测量、信号生成、数字 I/O 和设备会话控制。

主要功能

  1. 01列出并查看已连接设备
  2. 02采集模拟和数字信号
  3. 03生成任意波形
  4. 04测量电压和信号属性
  5. 05控制电源与 GPIO
  6. 06通过 SPI 传输数据

适用场景

  1. 01用示波器检查信号
  2. 02用 AWG 生成测试信号
  3. 03采集逻辑分析仪数据
  4. 04控制仪器电源和数字引脚

MCP 相关

它通过设备发现、信号采集、波形生成、测量、电源控制、GPIO 和 SPI 等工具向 MCP 客户端开放 Digilent WaveForms 仪器。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"kenosinc-dwf": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/kenosinc/dwf-mcp-server:0.2.1"
]
}
}
}
启动命令docker run -i --rm ghcr.io/kenosinc/dwf-mcp-server:0.2.1

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/kenosinc/dwf-mcp-server:0.2.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。