Skip to main content
Glama
DavidBlackCN

econtest-bench-mcp

by DavidBlackCN
README.md
# 电赛信号题统一 MCP

`econtest-bench-mcp` 是面向电赛低压信号题的 USB/VISA MCP Server 与 Agent Skill,当前版本为 `0.3.0`。

支持设备:

- SIGLENT SDS2000X Plus 系列示波器;实机验证 SDS2502X Plus。
- SIGLENT SDG6000X/SDG6000X-E 系列信号发生器;实机验证 SDG6032X-E。

## 能力与边界

- 仅支持 USBTMC + NI-VISA/PyVISA;不支持 LAN、无线、Telnet 或 WebControl。
- 信号源支持 SINE、SQUARE、RAMP、PULSE、扫频,以及基波加 1~2 个整数次谐波;输出软上限为 3 Vpp,且要求 `|Offset| + Vpp/2 <= 3.3 V`。
- 谐波功能使用原生 `HARM`,以各分量 Vpp 之和作保守包络;已在 SDG6032X-E `6.01.01.38R3T7` 完成 50 Ω 样本 001 实机写入、回读和人工示波器验收,不上传 `WVDT` 任意波数据,其他固件仍需单独验证。
- 支持示波器配置、RUN/STOP/SINGLE、原生测量、有界 BYTE 波形、当前面板 PNG 截图和证据化完整回路。
- 幅度、Vpp、频率验收优先使用 `scope_measure_simple` 的原生读数;波形和 PNG 用于证据与诊断。
- `scope_screenshot` 已在 SDS2502X Plus `5.0.0.1.6.2R5` 实机验证:读取 PNG、校验 CRC/尺寸,并在截图后复核身份。旧固件和其他型号需单独验证。
- 所有写操作执行身份校验、`*OPC?`、回读与证据记录;完整回路在结束或失败时尝试关闭信号源并确认示波器 STOP。

实机截图示例见 [screen.png](screen.png)。

## MCP 工具

| 类别 | 工具 |
| --- | --- |
| 发现与状态 | `bench_list_devices`、`bench_identify`、`scope_status`、`generator_status`、`bench_status` |
| 信号源 | `generator_configure_basic`、`generator_configure_harmonics`、`generator_set_load`、`generator_set_output`、`generator_configure_sweep` |
| 示波器 | `scope_configure_channel`、`scope_configure_timebase`、`scope_configure_edge_trigger`、`scope_control`、`scope_measure_simple`、`scope_capture_waveform`、`scope_screenshot` |
| 工作流与产物 | `bench_capture_response`、`artifacts_remove_runs` |

## 文档

- [安装与升级](docs/installation.md)
- [MCP 客户端配置](docs/mcp-client-configuration.md)
- [使用教程](docs/tutorials.md)
- [硬件验证记录](docs/hardware-validation.md)
- [兼容性矩阵](docs/compatibility-matrix.md)
- [架构说明](docs/architecture.md)
- [Agent Skill](skill/econtest-signal-bench/SKILL.md)

## 安全要点

- 软件不能验证接地、隔离、探头位置、额定值或 DUT 上电状态;这些由操作者负责。
- 不得将 BNC 地端或示波器地夹连接到非隔离高侧节点。
- 输出 ON 必须明确确认目标和负载;通信丢失时不得声称输出已关闭。
- 不提供任意 SCPI、`*RST`、固件更新、网络配置或仪器文件系统操作。

所有证据写入 `artifacts/runs/<UTC时间>_<run_id>/`。使用 `skill/econtest-signal-bench/scripts/validate_evidence.py` 校验 manifest、文件大小和 SHA-256。

## 鸣谢

本项目在架构、设备驱动和安全证据设计上参考了以下开源项目:

- [wolog1/siglent-sds-mcp](https://github.com/wolog1/siglent-sds-mcp)
- [lxkang00/sdg-mcp](https://github.com/lxkang00/sdg-mcp)
- [davehe929/scopebench-mcp](https://github.com/davehe929/scopebench-mcp)