FastMCP 3.2+ server for USB PC oscilloscopes with fleet webapp
翻译准备中
开发工具Python · TypeScriptGitHub @sandraschi自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
安装型项目无需部署域名也可验证。个人仓库可通过 GitHub 登录验证,组织仓库可使用上方的仓库验证文件。
正在加载完整 README。 以下为已保存的摘录。
AI-driven USB oscilloscope control via FastMCP 3.2. Connect screenless PC scopes (PicoScope, Hantek) or run the built-in simulator for dry-runs. Capture waveforms, export CSV, and compute frequency, Vpp, duty cycle, and rise time from your agent.
The MCP server never bundles oscilloscope drivers or PicoSDK. Install vendor software separately, then point the backend at your device.查看完整 README ↗AI-driven USB oscilloscope control via FastMCP 3.2. Connect screenless PC scopes (PicoScope, Hantek) or run the built-in simulator for dry-runs. Capture waveforms, export CSV, and compute frequency, Vpp, duty cycle, and rise time from your agent.
| Mode | Hardware | When |
|---|---|---|
| Simulator (default) | None | Development, CI, agent dry-runs |
| PicoScope | PicoScope 2000/3000/5000/6000 USB | Production bench with PicoSDK + pyPicoSDK |
| Hantek | Hantek 6022BE/BL | Budget USB scope with PyHT6022 + libusb |
The MCP server never bundles oscilloscope drivers or PicoSDK. Install vendor software separately, then point the backend at your device.
| Direction | Artifacts | Notes |
|---|---|---|
| Hands-in | device_id, channel config, trigger settings | Via scope_device, scope_configure, scope_trigger |
| Hands-out | Waveform preview (downsampled JSON) | scope_capture(operation="single") |
| Hands-out | CSV + JSON summary files | scope_capture(operation="export_csv") in OSCILLOSCOPE_MCP_CAPTURE_DIR |
| Hands-out | Measurements (Vpp, freq, duty, rise) | scope_measure(operation="all") |
| Partner MCP | Workflow |
|---|---|
| kicad-mcp | Probe clock/reset nets after bring-up |
| chip-design-mcp | Verify power rails and oscillators |
| devices-mcp | Discover USB devices before connect |
Set-Location D:\Dev\repos\oscilloscope-mcp
uv sync --extra dev
just webapp
# Open http://localhost:10937
STDIO-only (Cursor MCP):
just serve
Dry-run without hardware:
scope_device(operation="connect", device_id="sim-001")
scope_capture(operation="single", sample_rate_hz=100000, sample_count=2000)
scope_measure(operation="all", channel_id="A")
Add to C:\Users\sandr\.cursor\mcp.json:
"oscilloscope-mcp": {
"command": "C:/Users/sandr/.local/bin/uv.exe",
"args": [
"--directory",
"D:/Dev/repos/oscilloscope-mcp",
"run",
"python",
"-m",
"oscilloscope_mcp",
"--stdio"
],
"env": {
"FASTMCP_BANNER": "0",
"FASTMCP_UPDATE_CHECK": "0",
"PYTHONUNBUFFERED": "1",
"OSCILLOSCOPE_MCP_BACKEND": "auto"
}
}
| Tool | Operations | Purpose |
|---|---|---|
scope_device | list, connect, disconnect, status, capabilities, backends | Device discovery and session |
scope_configure | channel, get, simulator_profile | Voltage range, coupling, sim waveform |
scope_trigger | set, get, arm, force | Trigger source, threshold, edge |
scope_capture | single, preview, export_csv, export_summary, last | Acquire and export waveforms |
scope_measure | all, vpp, frequency, duty, rise_time, fresh | Timing and voltage metrics |
scope_help | discover, tool_help, quickstart, faq, hardware_guide | Discovery and buying guide |
| Tier | Model | Price | Backend |
|---|---|---|---|
| Best value | PicoScope 2204A | ~$130-190 | picoscope |
| Swiss army knife | Analog Discovery 3 | ~$200-400 | planned (waveforms) |
| Budget hack | Hantek 6022BE | ~$40-80 | hantek |
See docs/HARDWARE.md for the full buying guide.
Fleet SOTA console: Dashboard, Waveform viewer, Tools hub, Settings, Help.
just webapp
| Port | Service |
|---|---|
| 10936 | FastAPI backend (/api/*, /health, /mcp) |
| 10937 | Vite React frontend |
MIT - see LICENSE.