模拟发现2 MCP服务器
用于控制Digilent Analog Discovery 2设备的MCP(模型上下文协议)服务器。该服务器提供工具,通过MCP协议与Analog Discovery 2的示波器、波形发生器和其他功能进行交互。
特性
- 设备管理:列出、连接和断开Analog Discovery 2设备
- 示波器:从通道0和1捕获模拟波形
- 波形发生器:在输出通道上生成各种波形(正弦、方形、三角形、斜坡、直流)
- 设备信息:获取版本和设备详细信息
先决条件
1.安装WaveForms SDK
在使用此MCP服务器之前,您必须安装Digilent的WaveForms SDK:
- 从下载WaveForms Digilent网站
- 将WaveForms.app安装到
/Applications/ - 对macOS至关重要:复制
dwf.framework到系统框架目录:
sudo cp -R /Applications/WaveForms.app/Contents/Frameworks/dwf.framework /Library/Frameworks/此步骤是SDK正确枚举设备所必需的。没有它,您可能会遇到ERC 3090错误。
- 确保Analog Discovery 2通过USB连接
2.Python要求
- Python 3.11或更高版本
- pip包管理器
安装
- 克隆或下载此存储库:
cd analog-discovery-msp-server- 安装Python依赖项:
pip install -r requirements.txt- 验证安装:
python server.py服务器将启动并等待MCP客户端通过stdio连接。
MCP服务器配置
要将此服务器与MCP客户端(如Claude Desktop)一起使用,请将其添加到MCP配置文件中。
适用于克劳德桌面
增添 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"analog-discovery-2": {
"command": "python",
"args": ["/absolute/path/to/analog-discovery-msp-server/server.py"]
}
}
}对于其他MCP客户端
服务器使用FastMCP,并使用MCP协议通过stdio进行通信。配置您的客户端以运行:
python /path/to/server.py可用工具
list_devices
列出连接到系统的所有可用Analog Discovery 2设备。
参数:无
示例:
{
"tool": "list_devices"
}connect_device
连接到Analog Discovery 2设备。
参数:
device_name(字符串,可选):设备名称过滤器(无表示第一个可用,“模拟发现2”表示特定)
示例:
{
"tool": "connect_device",
"arguments": {
"device_name": "Analog Discovery 2"
}
}disconnect_device
断开与当前设备的连接。
参数:无
get_device_info
获取有关当前连接设备的信息。
参数:无
capture_waveform
从通道捕获模拟波形(示波器功能)。
参数:
channel(整数,必填):通道号(1或2)sampling_frequency(数字,可选):采样频率(Hz)(默认值:20MHz)buffer_size(整数,可选):样本中的缓冲区大小(0=最大值,默认值:0)offset(数字,可选):通道偏移,单位为伏特(默认值:0.0)amplitude_range(数字,可选):通道范围,单位为伏特(默认值:5.0)
示例:
{
"tool": "capture_waveform",
"arguments": {
"channel": 1,
"sampling_frequency": 1000000,
"buffer_size": 4096,
"offset": 0.0,
"amplitude_range": 5.0
}
}generate_waveform
在通道上生成波形(波形发生器功能)。
参数:
channel(整数,必填):通道号(1或2)function(字符串,必填):波形类型:“正弦”、“方形”、“三角形”、“ramp_up”、“ramp_down”、“dc”、“噪声”、“脉冲”或“梯形”frequency(数字,必填):频率(Hz)amplitude(数字,必填):振幅(单位:伏特)offset(数字,可选):直流偏移,单位为伏特(默认值:0.0)
示例:
{
"tool": "generate_waveform",
"arguments": {
"channel": 1,
"function": "sine",
"frequency": 1000,
"amplitude": 2.5,
"offset": 0.0
}
}stop_waveform
停止通道上的波形生成。
参数:
channel(整数,必填):通道号(1或2)
示例:
{
"tool": "stop_waveform",
"arguments": {
"channel": 1
}
}使用示例
基本工作流程
- 列出可用设备:
list_devices- 连接到设备:
connect_device或具有明确的设备名称:
connect_device {"device_name": "Analog Discovery 2"}- 捕获波形:
capture_waveform {"channel": 1, "sampling_frequency": 20000000}- 生成正弦波:
generate_waveform {"channel": 1, "function": "sine", "frequency": 1000, "amplitude": 2.5}- 停止波形生成:
stop_waveform {"channel": 1}- 断开:
disconnect_device故障排除
“未找到模拟发现设备”或ERC 3090错误(macOS)
这是macOS上最常见的问题。 错误“Adept NOK dmgrEnumDevicesEx ERC:3090”表示SDK无法枚举设备。
解决方案:确保 dwf.framework 已复制到 /Library/Frameworks/:
sudo cp -R /Applications/WaveForms.app/Contents/Frameworks/dwf.framework /Library/Frameworks/附加检查:
- 确保Analog Discovery 2通过USB连接
- 验证
dwf.framework存在:ls -la /Library/Frameworks/dwf.framework - 检查macOS上的USB权限(系统设置>隐私和安全>USB访问)
- 确保终端/Python具有USB访问权限
- 复制框架后,尝试拔下并重新插入设备
“找不到WF_SDK”或导入错误
- 确保已安装WaveForms SDK(从Digilent网站下载)
- 确保
WF_SDK文件夹位于项目目录中(包含在此存储库中) - 这
PYTHONPATH环境变量应包括项目目录(在中自动设置.cursor/mcp.json)
“未找到fastmcp包”
- 安装依赖项:
pip install -r requirements.txt
导入错误
- 验证Python版本是否为3.11或更高版本:
python --version - 重新安装依赖关系:
pip install -r requirements.txt --force-reinstall
设备连接问题
- 确保一次只有一个进程访问设备
- 关闭正在运行的WaveForms应用程序(它对设备具有独占访问权限)
- 尝试断开和重新连接设备
- 如果USB权限似乎卡住,请重新启动Mac
测试装置
运行测试脚本以验证一切正常:
python3 test_device.py这将测试设备连接、示波器捕获和波形生成。
技术细节
- 框架:FastMCP(Pythonic MCP服务器框架)
- 协议:stdio上的MCP(模型上下文协议)
- Python库:用途
WF_SDK包装材料 Digilent官方WaveForms SDK入门示例 - 设备:Digilent模拟探索2
- 支持的功能:模拟输入(示波器)、模拟输出(波形发生器)
- 备注:根据WF_SDK惯例,通道为1索引(1-2)
许可证
本项目按原样提供,用于Analog Discovery 2设备。
测试
包含一个测试脚本来验证您的安装:
python3 test_device.py这将测试:
- 设备连接
- 示波器波形捕获
- 波形发生器
资源
- Digilent模拟探索2
- WaveForms SDK文档
- MCP文件
- macOS安装指南 -详细的macOS故障排除指南
