lab-equipment-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lab-equipment-mcpconnect DPO2012B and measure CH1 frequency"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
实验设备 MCP
一个可扩展的实验室仪器 Model Context Protocol(MCP)服务。项目按照厂商和 设备型号隔离驱动,方便持续增加示波器、电源、万用表、信号发生器等实验设备, 同时避免不同型号的识别规则和控制命令互相混杂。
框架支持为同一设备声明多个通信接口,包括 USBTMC、RS-232、LAN VXI-11、 LAN 原始 Socket 和 GPIB。每个接口都可以配置独立的驱动要求、发现方式、 优先级、终止符和串口参数。
GitHub 仓库:https://github.com/1622352030/lab-equipment-mcp
已支持设备
厂商 | 型号 | 通信接口 | 验证状态 |
Tektronix(泰克) | USBTMC/VISA、可选 LAN VXI-11、TEK-USB-488/GPIB | USBTMC 双通道测量、全部波形编码、二进制查询及 PNG/BMP/TIFF 截图已实机验证;LAN/GPIB 未实机验证 | |
GW Instek(固纬) | Mini USB-B / USB CDC / VISA ASRL | 控制、调制、扫频和任意波已通过真实设备闭环验证 | |
Agilent/Keysight | USBTMC、LAN VXI-11/Socket、GPIB | 33509B USB 已测试;LAN/GPIB 已完成实现并预留验收路径 | |
Agilent/Keysight | USBTMC、可选 LAN VXI-11、可选 GPIB | USBTMC 身份、代表性只读命令及 SDG1062X CH1/CH2 接收闭环已实机验证;完整编程指南 SCPI/二进制入口已实现 | |
Siglent | USBTMC、LAN VXI-11/Socket、选配 GPIB | SDG1062X USB 双通道波形、模式和 ARB 已完成示波器闭环验收 | |
Maynuo(美尔诺) | M133/兼容 USB-TTL、M131/RS-232、M132/RS-485 | CH340 USB-TTL 身份、设置、安全保护及 200 Ω 负载下 FIX/LIST 输出与内部测量已实机验证;M131/M132 未实机验证 |
DPO2012B 使用机身后部的 USB Type-B 设备端口进行 USBTMC/VISA 通信。安装可选 DPO2CONN 模块后,编程手册还支持 Ethernet/VXI-11;通过 TEK-USB-488 适配器可桥接 GPIB。 当前仅 USBTMC 在真实设备上验收,LAN/GPIB 尚未实机验证。
AFG-2125 使用后部 Mini USB-B 端口,但实际通信方式是 USB CDC 虚拟串口,
Windows 中显示为 AFG CDC Device (COMx),通过 ASRLx::INSTR 访问,
并不是 USBTMC。详见 AFG-2125 使用说明。
M8811 后面板 DB9 是 5 V TTL 串口,不是标准 RS-232。必须使用 M133 或经确认的 USB-TTL 转换器;标准 RS-232 前需要 M131,RS-485 前需要 M132。接线前请阅读 M8811 使用说明。
Related MCP server: scpi-mcp
项目结构
src/lab_equipment_mcp/
|-- core/
| |-- interfaces.py # 设备多接口声明与会话配置
| `-- transports/
| `-- visa.py # USBTMC/RS-232/LAN/GPIB VISA 后端
|-- devices/
| |-- agilent/
| |-- diagnostics.py # 33500B Windows USB/VISA 环境诊断
| `-- series_33500b.py # 接口、选件、功能和安全控制
| `-- dsox2012a.py # DSO-X 2012A SCPI、测量和波形传输
| |-- tektronix/
| |-- diagnostics.py # Windows USB/VISA 环境诊断
| `-- dpo2012b.py # DPO2012B 识别、测量和波形读取
| `-- gw_instek/
| |-- diagnostics.py # Windows CDC/COM/VISA ASRL 环境诊断
| `-- afg_2125.py # AFG-2125 波形、调制、扫频、ARB 和输出保护
| `-- maynuo/
| |-- diagnostics.py # CH340/CH341、COM 与 VISA ASRL 环境诊断
| `-- m8811.py # M8811 TTL/RS-232/RS-485 SCPI 和输出保护
`-- server.py # MCP 工具注册入口新增型号时,应在 devices/<厂商>/ 下建立独立模块。通用通信逻辑放入
core/;设备 ID、SCPI 指令、参数范围和返回值解析等型号相关逻辑放在对应
设备驱动中。
开发者 Skill
仓库提供 add-lab-equipment-device
Skill,供 Codex 或其他兼容 Agent 按标准流程增加新设备或为已有设备增加新的
通信接口。Skill 覆盖:
读取用户已下载的设备手册和编程手册
确认接口类型、接线方式和设备实际枚举结果
检查驱动、VISA Runtime、串口和网络环境缺漏
判断依赖可否自动安装,或要求用户从厂商官网下载
Fork、克隆、建立功能分支和提交 Pull Request 的开发流程
多接口建模、测试要求、真实设备验收和代码质量门槛
SCPI 命令树核对、写入后回读、固件兼容记录和示波器闭环验收经验
显式调用示例:
使用 $add-lab-equipment-device 为这个项目增加一台支持 RS-232 和 LAN 的电源。环境要求
Windows 10 或 Windows 11。
Codex Desktop 或 CLI。
uv,并确保 PowerShell 可以执行
uvx.exe。Git for Windows。GitHub 安装方式使用
git+https://...源,uvx需要 Git 获取项目代码。首次安装时能够访问 GitHub、Python 下载源和 Python 包源。公司代理、防火墙或 完全离线环境需要预先配置代理或准备离线缓存。
当前用户对自己的
uv缓存目录和 Codex 配置目录具有写入权限。与目标仪器匹配的 VISA Runtime 和厂商设备驱动。
不需要预先安装 Python。 项目要求 Python 3.11 或更高版本;当电脑上没有
兼容 Python 时,uvx 默认会自动下载并管理隔离的 Python 运行时,然后安装
mcp、pyvisa 等依赖。用户无需手动配置 pip 或虚拟环境。如果设置了
UV_PYTHON_DOWNLOADS=never、电脑无法联网或下载源被拦截,则必须自行安装兼容
Python,或为 uv 准备可用的离线 Python/包缓存。
设备驱动要求:
DPO2012B:支持 USBTMC 的 NI-VISA Runtime、TekVISA 或 OpenChoice 驱动。
AFG-2125:GW Instek AFG-2000 USB CDC 驱动和 VISA Runtime;设备应显示为
AFG CDC Device (COMx),VISA 地址为ASRLx::INSTR。33500B 系列:Keysight IO Libraries Suite 或其他支持 USBTMC、VXI-11/Socket、 GPIB 的 VISA Runtime;USB 使用后部 Type-B 设备端口。
DSO-X 2012A:Keysight IO Libraries Suite 或支持 USBTMC 的 NI-VISA Runtime;可选 LAN VXI-11/GPIB 需要对应的 DSOXLAN/DSOXGPIB 模块。
M8811:Maynuo M133 或经确认的 USB-TTL 转换器、M131 后的标准 RS-232,或 M132 后的 RS-485,再配合可将对应 COM 口暴露为 ASRL 的 VISA Runtime。禁止把后面板 TTL DB9 直接连接到标准 RS-232 电平。
其他设备:安装其接口所需的 VISA、虚拟串口或厂商驱动,并避免厂商软件、串口 工具或其他 VISA 程序独占设备会话。
使用 DPO2012B 时,需要安装 VISA/USBTMC 驱动。本项目提供独立的 DPO2012B 使用说明,其中包含已验证的 NI-VISA 15.0 Runtime 下载链接、安装日期记录和故障排查方法。安装驱动后, 请重新插拔 USB 数据线或重启示波器。正常识别后的 VISA 地址类似:
USB0::0x0699::0x039D::<设备序列号>::INSTR隐私与脱敏
仓库文档、测试夹具和诊断输出不得记录真实设备序列号、USB 实例 ID、IP 地址或完整未脱敏
的 *IDN? 响应。VISA 地址中的序列号统一使用 <设备序列号>,测试代码使用 SERIAL
或 REDACTED 占位符;固件版本、厂商 ID 和产品 ID 可在不关联具体设备时保留。
安装到 Codex
推荐:PowerShell 一键安装
安装脚本会自动完成以下操作:
查找
codex和uvx的绝对路径。如果已经注册旧版
lab-equipment,先移除旧配置。直接从本 GitHub 仓库注册最新版 MCP。
安装脚本只负责 MCP 注册,不会自动安装 Git、uv、VISA Runtime 或厂商设备
驱动。首次真正启动 MCP 时,uvx 才会解析项目并在需要时自动下载 Python 和
Python 依赖,因此第一次启动需要网络,耗时也会比后续启动更长。
使用 uvx.exe 的绝对路径,可以避免 Codex Desktop 没有继承 PowerShell
PATH 环境变量而导致 MCP 无法启动的问题。
如需先检查脚本内容:
irm https://raw.githubusercontent.com/1622352030/lab-equipment-mcp/main/scripts/install-codex.ps1执行安装:
irm https://raw.githubusercontent.com/1622352030/lab-equipment-mcp/main/scripts/install-codex.ps1 | iex安装完成后,需要完全退出 Codex Desktop,重新打开并创建一个新任务。 MCP 工具在任务创建时加载,已经打开的旧任务不会动态获得新安装的工具。
可以在新任务中输入以下内容测试:
调用 lab-equipment 的 dpo2012b_diagnose_setup,告诉我 ready 是否为 true。手动安装
$uvx = (Get-Command uvx).Source
codex mcp add lab-equipment -- $uvx --from git+https://github.com/1622352030/lab-equipment-mcp.git@main start-lab-equipment-mcp检查注册结果:
codex mcp get lab-equipment
codex mcp list从源码安装
需要修改或开发项目时,可以使用本地源码:
git clone https://github.com/1622352030/lab-equipment-mcp.git
cd lab-equipment-mcp
uv sync --extra dev
$uv = (Get-Command uv).Source
codex mcp add lab-equipment -- $uv --directory $PWD run start-lab-equipment-mcp更新
GitHub 安装方式通过 uvx 启动指定分支。优先使用 uvx --refresh 强制获取
远端 main 并重建运行环境:
$uvx = (Get-Command uvx).Source
& $uvx --refresh --from git+https://github.com/1622352030/lab-equipment-mcp.git@main start-lab-equipment-mcp --help也可以按包名清理缓存:
uv cache clean lab-equipment-mcp如果 Windows 上存在正在运行的 MCP/uvx 进程,uv cache clean 可能因缓存锁
长时间等待。此时先断开仪器并完全退出 Codex Desktop,再重试;或直接使用上面的
uvx --refresh。可通过输出中的 Git 提交号确认实际构建版本。
然后完全重启 Codex Desktop,并创建一个新任务。
卸载
codex mcp remove lab-equipment如果已经克隆源码,也可以执行:
powershell -ExecutionPolicy Bypass -File .\scripts\uninstall-codex.ps1DPO2012B 工具
list_supported_devices:列出项目支持的设备及每台设备声明的通信接口dpo2012b_diagnose_setup:检查 USB 枚举、VISA Runtime 和 PyVISA 环境list_visa_instruments:列出 VISA 仪器,并可选择读取设备身份dpo2012b_connect:自动发现或连接指定 DPO2012B VISA 地址disconnect_instrument:断开全部仪器连接identify_instrument:仅连接一台仪器时读取其*IDN?;同时连接时使用型号前缀工具dpo2012b_identify、dpo2012b_disconnect:单独识别或断开 DPO2012Bdpo2012b_get_status:读取采集、触发和时基状态dpo2012b_get_channel_settings:读取 CH1 或 CH2 垂直设置dpo2012b_measure:测量频率、RMS、周期、幅值等参数dpo2012b_acquire_waveform:按 ASCII 或 IEEE 488.2 二进制编码获取最多 10,000 个经过缩放的波形点dpo2012b_query_scpi:发送只读 DPO2012B SCPI 查询dpo2012b_command:完整 DPO2012B 编程手册文本 SCPI 入口,覆盖未做专用工具的适用命令dpo2012b_query_binary:读取手册定义的二进制查询并以 Base64 返回dpo2012b_capture_screenshot:通过HARDCopy START获取 PNG/BMP/TIFF 屏幕截图并以 Base64 返回dpo2012b_write_scpi:发送带安全保护的设置命令
示例提示词:
连接 DPO2012B,测量 CH1 的频率和 RMS,并获取 1000 个波形点。AFG-2125 工具
AFG-2125 支持基础波形、AM、FM、FSK、Sweep 和任意波形。所有标准配置工具都
要求 MAIN 先关闭;参数写入后会尽可能通过 SCPI 查询确认,最后再使用
afg2125_set_output(confirm_enable=true) 显式开启输出。
afg2125_diagnose_setup:检查 GW Instek CDC 驱动、COM 口和 VISA ASRLafg2125_connect:通过 PnP 匹配自动发现或连接指定 AFG-2125afg2125_identify、afg2125_disconnect:单独识别或断开 AFG-2125afg2125_get_settings:读取函数、频率、幅度、偏置和幅度单位afg2125_get_mode_settings:读取 AM、FM、FSK 和 Sweep 启用状态afg2125_set_function、afg2125_set_frequency、afg2125_set_amplitude、afg2125_set_offset:保持输出状态不变地配置参数afg2125_set_square_duty、afg2125_set_ramp_symmetry:设置占空比或对称性afg2125_configure_am、afg2125_configure_fm、afg2125_configure_fsk: 配置并回读调制参数;对应set_*_enabled工具用于关闭或单独启用模式afg2125_configure_sweep、afg2125_set_sweep_enabled:配置线性/对数扫频、 起止频率、扫频时间和触发源afg2125_upload_arbitrary_waveform:下载 2–4096 个-511..511整数点afg2125_select_arbitrary_waveform:选择已下载的任意波形afg2125_configure_arbitrary_waveform:上传并选择任意波,设置频率并检查频率 × 点数 <= 20 MHz波形速率限制afg2125_set_output:关闭输出,或经过显式确认后开启输出afg2125_query_scpi、afg2125_write_scpi:受保护的通用 SCPI 接口
DPO2012B 与 AFG-2125 使用独立 VISA 会话,可以在同一个 MCP 进程中同时连接。
disconnect_instrument 会断开全部仪器;需要只断开一台时使用对应的
dpo2012b_disconnect 或 afg2125_disconnect。
AM、FM、FSK、Sweep 和 ARB 已在 AFG-2125 固件 V1.11 上使用内部源完成真实 设备闭环验收。外部 MOD/TRIG 输入尚未接线测试,详见设备说明。
V1.11 已知兼容差异:SOURce1:SWEep:TIME? 查询会超时,但时间设置可生效并已
通过示波器闭环验证;Sweep 内部/立即触发源可能回读为 INT 而非手册示例的
IMM。SYNC 远程开关在该固件上未验证成功,因此不提供会误报成功的专用工具。
示例提示词:
诊断并连接 AFG-2125,读取当前设置,不要开启输出。保持 MAIN 关闭,把 AFG-2125 配置为 10 kHz 载波、20 Hz 内部正弦调制、
50% 深度的 AM;回读参数后再询问我是否开启输出。把 AFG-2125 配置为 1 kHz 到 5 kHz、0.5 秒、线性立即扫频,使用 DPO2012B
CH1 的 SYNC 信号验证实际频率范围,测试后恢复原来的输出状态。向 AFG-2125 上传 8 点任意波,频率设为 1 kHz;检查波形速率限制,先不要开启 MAIN。安全机制
校准、固件更新、复位、保存/恢复配置和文件删除等高风险命令默认被拦截。
如确有需要,必须同时设置服务端环境变量 DPO2012B_ALLOW_UNSAFE=1,并在
调用工具时传入 confirm_unsafe=true。标准安装方式不会启用危险命令。
DPO2012B 编程手册中的适用文本 SCPI 命令均可通过 dpo2012b_command 访问;
二进制波形、截图和其他二进制响应通过专用 Base64 工具返回。2026-07-26 的 USBTMC
实机复验通过 47/47 项,覆盖 SDG1062X 双通道闭环、全部 MCP 即时测量类型、ASCII 和
五种二进制波形编码的 1/2 字节读取、通用二进制查询及 PNG/BMP/TIFF 截图。固件 v1.52
的截图为裸图像字节,驱动同时兼容裸图像和 IEEE 488.2 块响应。
AFG-2125 的 APPLy 指令会自动开启输出,因此其标准工具不使用该指令;
afg2125_set_output(enabled=true) 还必须传入 confirm_enable=true。原始高风险
命令需要 AFG2125_ALLOW_UNSAFE=1 和 confirm_unsafe=true 双重确认。
33500B 系列和 SDG1062X 的输出开启同样必须传入 confirm_enable=true。两者的
复位、校准、固件、许可证、破坏性文件操作和原始输出切换默认禁止;确需使用受保护的
高风险通用 SCPI 时,必须分别设置 AGILENT33500B_ALLOW_UNSAFE=1 或
SDG1062X_ALLOW_UNSAFE=1,并同时传入 confirm_unsafe=true。
Agilent/Keysight 33500B 系列工具
系列驱动将 USBTMC、LAN VXI-11、LAN SCPI Socket 5025 和 GPIB 建模为独立 VISA 接口。连接时识别精确型号并读取选件后再决定能力。当前实测 33509B 为 单通道 20 MHz 且没有 ARB 选件,因此会拒绝任意波命令。
工具覆盖诊断、身份/能力、标准波形、负载、脉冲和波形细节、SYNC、AM/FM/PM/ PWM/FSK/BPSK/SUM、Sweep、Burst、受保护触发,以及手册其余远程功能所需的 通用 SCPI 接口。
agilent33500b_diagnose_setup:检查 Windows USB 枚举、VISA Runtime、PyVISA 和可识别的 33500B 系列资源agilent33500b_connect:自动发现或连接指定 USBTMC、LAN VXI-11/Socket 或 GPIB VISA 地址,并读取精确型号、固件和选件agilent33500b_identify、agilent33500b_disconnect:单独识别或断开 33500B 系列设备agilent33500b_get_capabilities:读取型号、固件、选件、通道数、带宽、ARB能力和 支持接口agilent33500b_get_settings:读取输出、基础波形、SYNC、调制、Sweep 和 Burst 状态agilent33500b_set_waveform:在输出关闭时设置正弦、方波、三角波、斜波、脉冲、 PRBS、噪声或 DC 的频率、幅度和偏置agilent33500b_set_output_load:设置 1 Ω 到 10 kΩ 的预期负载,或设为高阻agilent33500b_set_waveform_detail:设置方波占空比、斜波对称性、相位或输出极性agilent33500b_configure_pulse:设置脉冲周期、宽度/占空比及上升和下降时间agilent33500b_configure_sync:配置前面板 TTL Sync 输出、模式和极性agilent33500b_set_mode_enabled:单独启用或关闭调制、Sweep 或 Burst 模式agilent33500b_configure_modulation:配置 AM、FM、PM、PWM、FSK、BPSK 或 SUM, 并按型号和选件检查能力agilent33500b_configure_sweep:配置线性/对数扫频、触发源和可选 Sync 标记频率agilent33500b_configure_burst:配置触发或门控 Burst、周期数、相位和触发源agilent33500b_trigger:经过confirm_trigger=true确认后向已准备的 Sweep/Burst 发送总线触发agilent33500b_set_output:自由关闭输出;开启时必须传入confirm_enable=trueagilent33500b_query_scpi、agilent33500b_write_scpi:受保护的通用 SCPI 查询和 设置接口
当前实测 33509B 没有 ARB 选件,因此能力查询会报告 ARB 不可用,驱动也会拒绝相关 功能,而不是假定手册中的系列选件已经安装。详细接口、型号差异和实机验收记录见 33500B 系列说明。
示例提示词:
诊断并连接 33500B 系列信号发生器,读取精确型号、固件、已安装选件和当前设置,
保持输出关闭。保持 33500B 输出关闭,配置 10 kHz、1 Vpp、0 V 偏置的正弦波,设置高阻负载并回读;
完成后再询问我是否开启输出。把 33500B 配置为 1 kHz 到 5 kHz、1 秒的线性扫频,使用内部立即触发;不要开启输出。Siglent SDG1000X / SDG1062X 工具
SDG1000X 系列驱动支持 SDG1032X 和双通道 SDG1062X。USB Type-B 实际通信方式为 USBTMC/VISA,不是串口;LAN VXI-11、LAN SCPI Socket 5025 和选配 GPIB 也作为独立 接口建模。SDG1062X 已通过 DPO2012B 双通道物理闭环验收,并使用 Agilent/Keysight DSO-X 2012A 作为第二台双通道接收示波器完成闭环:CH1 设为 1 kHz/0.5 Vpp,实测 1000.0 Hz/0.52 Vpp;CH2 设为 2 kHz/0.5 Vpp,实测 2000.0 Hz/0.52 Vpp;接收波形 样本 Vpp 分别为 0.518 V 和 0.515 V。同步、外部调制/触发、LAN 和 GPIB 仍未实测。
sdg1062x_diagnose_setup:检查 Siglent USB 枚举、VISA Runtime、PyVISA 和可识别 的 SDG1000X 资源sdg1062x_connect:自动发现或连接指定 USBTMC、LAN 或 GPIB VISA 地址,并验证 SDG1032X/SDG1062X 身份sdg1062x_identify、sdg1062x_disconnect:单独识别或断开 Siglent SDGsdg1062x_get_capabilities:读取通道数、最大频率、采样率、垂直分辨率、ARB点数和 支持接口sdg1062x_get_settings:按通道读取输出、基础波形、调制、Sweep、Burst、ARB 和 Sync 状态sdg1062x_set_waveform:在指定通道输出关闭时设置基础波形、频率、幅度和偏置sdg1062x_set_waveform_detail:设置占空比、对称性、相位、脉宽、边沿或延迟sdg1062x_set_output_load、sdg1062x_set_output_polarity:设置通道预期负载和 正常/反相极性sdg1062x_set_mode_enabled:按通道启用或关闭调制、Sweep 或 Burstsdg1062x_configure_modulation:配置 AM、DSB-AM、FM、PM、PWM、ASK、FSK 或 PSKsdg1062x_configure_sweep:配置线性、对数或步进扫频、方向和触发源sdg1062x_configure_burst:配置 N周期、无限周期或门控 Burstsdg1062x_trigger:经过confirm_trigger=true确认后触发指定通道的 Sweep/Burstsdg1062x_configure_sync:配置后面板 Aux In/Out CMOS Sync 输出及源通道sdg1062x_copy_channel:在两路输出均关闭时复制通道参数并回读验证sdg1062x_select_arbitrary_waveform:选择内建 ARB 编号或用户任意波名称sdg1062x_upload_arbitrary_waveform:上传 2–16,384 个-1..1归一化点,使用 16位小端二进制传输,并设置频率、幅度、偏置和相位sdg1062x_set_output:按通道自由关闭输出;开启时必须传入confirm_enable=truesdg1062x_query_scpi、sdg1062x_write_scpi:受保护的通用 SCPI 查询和设置接口
SDG1062X 的两个通道共享同一个 VISA 仪器连接,但每个通道的输出、基础波形和高级模式 独立配置。与 DPO2012B、AFG-2125 和 33500B 的 VISA 会话相互独立。详细接口、固件 差异和闭环测试结果见 SDG1000X / SDG1062X 说明。
示例提示词:
诊断并连接 SDG1062X,读取两个通道的设置和设备能力,保持 CH1、CH2 输出关闭。保持两路输出关闭,将 SDG1062X CH1 配置为 1 kHz、1 Vpp 正弦波,CH2 配置为
2.5 kHz、0.8 Vpp、30% 占空比方波;回读后再询问我是否同时开启两路输出。向 SDG1062X CH1 上传一个 8 点归一化任意波,设为 1 kHz、0.5 Vpp、0 V 偏置,
验证选择和参数回读,但不要开启输出。将 SDG1062X CH1 配置为 1 kHz 到 5 kHz、1 秒线性扫频,并使用 DPO2012B CH1
进行物理闭环验收;测试后关闭输出并恢复原设置。Agilent/Keysight DSO-X 2012A 工具
DSO-X 2012A 使用后部 USB DEVICE Type-B 端口进行 USBTMC/VISA 通信,并声明可选
LAN VXI-11 和 GPIB 接口。编程指南中的完整 SCPI 命令树通过
agilentdsox2012a_command 提供;波形、显示、设置等 IEEE 488.2 二进制块通过
Base64 工具传输。
agilentdsox2012a_connect、agilentdsox2012a_identify、agilentdsox2012a_disconnectagilentdsox2012a_get_capabilities、agilentdsox2012a_get_statusagilentdsox2012a_get_channel_settings、agilentdsox2012a_measureagilentdsox2012a_acquire_waveformagilentdsox2012a_query_scpi、agilentdsox2012a_write_scpi、完整agilentdsox2012a_commandagilentdsox2012a_query_binary、agilentdsox2012a_write_binary
DSO-X 2012A 已完成 USB 身份、通道查询、采集设置、测量源、波形前导码和 SDG1062X 双通道接收闭环实测。闭环结果为 CH1 1 kHz/0.5 Vpp -> 1000.0 Hz/0.52 Vpp,CH2 2 kHz/0.5 Vpp -> 2000.0 Hz/0.52 Vpp。LAN、GPIB、MSO 数字通道和未安装选件仍未实测。 所有输出测试均在结束时关闭信号源并恢复示波器状态。
Maynuo M8811 工具
M8811 驱动明确区分后面板 5 V TTL DB9 与标准 RS-232。驱动会枚举已连接的
CH340/CH341,并将其当前 COM 编号匹配到 VISA ASRL 资源;只有唯一候选时才自动选择,
存在多个候选时要求显式指定。M131/RS-232 和 M132/RS-485 链路也已分别建模。
m8811_connect 可按仪器面板设置选择 4800/9600/19200/38400 波特率和
none/even/odd 校验;这些参数只配置电脑端串口,不会远程修改仪器面板配置。
LIST 的 200 步存储会随 1/2/4/8 个区域联动为每区 200/100/50/25 步,相关工具会按
当前区域配置检查步号、步数和召回区域。
m8811_diagnose_setup、m8811_connect、m8811_identify、m8811_disconnectm8811_get_settings、m8811_measurem8811_set_voltage、m8811_set_current、m8811_set_voltage_protectionm8811_set_output、m8811_set_modem8811_configure_list、m8811_set_list_step、m8811_recall_listm8811_set_remote_sense、m8811_set_panel_control、m8811_clear_amp_hoursm8811_query_scpi、m8811_write_scpi
CH340 USB-TTL 身份、设置读回、保护门、FIX 输出和 LIST 两级循环已在固件 V2.6 上
实机验证。200 Ω 负载下,1 V FIX 实测 0.9985 V/4.87 mA,LIST 的 1 V/2 V 稳定值约为
0.999 V/4.9 mA 和 1.999 V/9.9 mA。5 V 和 10 V 又分别持续输出 20 秒,实测稳定在
约 5.000 V/24.86 mA 和 10.001 V/49.86 mA。MEAS:AHRD? 与 MEAS:DRM? 在该固件上超时;
DVM、DRM、远端采样和非默认串口参数因未接对应接口或未改面板设置而未实测。
文档不记录动态分配的 COM 编号和设备序列号。接线、完整 SCPI 覆盖和安全策略见
M8811 使用说明。
增加其他设备
新建
src/lab_equipment_mcp/devices/<厂商>/<型号>.py。使用
DeviceProfile和多个InterfaceSpec声明该型号支持的全部接口。将设备发现和身份验证逻辑放在对应设备驱动中。
VISA/USBTMC/GPIB/TCPIP/ASRL 设备优先复用
core.transports.visa.VisaBackend。MCP 工具名增加型号前缀,例如
model_measure_voltage。添加模拟单元测试;具备实物时,再增加真实设备冒烟测试。
更新本文档中的设备支持表、接口测试状态和工具说明。
开发与测试
git clone https://github.com/1622352030/lab-equipment-mcp.git
cd lab-equipment-mcp
uv sync --extra dev
uv run --extra dev pytest
uv run --extra dev ruff check .
uv run python scripts/verify_mcp.py
uv run python scripts/verify_mcp.py --github社区与项目使用
安全漏洞和可能导致仪器危险状态的问题请按 安全策略 私下报告。
安装、驱动和设备兼容问题请先阅读 支持说明,再选择对应的 Issue 模板。
课程、论文、评奖和竞赛使用必须遵循 竞赛与学术使用声明:显著披露 本项目及具体提交,区分既有工作和新增工作,不得冒充原创,也不得暗示维护者官方参赛或背书。
项目使用 MIT License。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceMCP server for quantum device physics laboratory instrumentation control, enabling LLMs to interact with physics instruments and measurement systems through QCodes and JupyterLab.27MIT
- AlicenseAqualityAmaintenanceAn MCP server that enables AI agents to operate an oscilloscope through high-level tools like signal capture and measurement, abstracting vendor-specific SCPI commands.181MIT
- Alicense-qualityDmaintenanceMCP server for controlling Hantek DSO2D15 and other DSO2000-family oscilloscopes via USB and SCPI, enabling waveform acquisition, measurements, and screen captures.MIT
- AlicenseAqualityBmaintenanceMCP server for controlling and reading Rigol DHO800/DHO900 oscilloscopes over LAN via SCPI commands.111MIT
Related MCP Connectors
An MCP server giving access to Grafana dashboards, data and more.
An MCP server for deep research or task groups
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/1622352030/lab-equipment-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server