Skip to main content
Glama
wolog1

siglent-sds-mcp

by wolog1

siglent-sds-mcp

MCP server for controlling a SIGLENT SDS824X HD oscilloscope via SCPI.

The first engineering goal is to let an AI tool safely configure the oscilloscope, capture a 2 Mbps UART/RS485 waveform, fetch a screenshot and waveform samples, then return a quantitative signal-quality summary.

Target device

  • SIGLENT SDS824X HD / SDS800X HD family

  • Remote control through SCPI

  • LAN/VXI-11, USBTMC, or compatible VISA backend

  • Typical field use: UART, RS485, Modbus, SPI/I2C bring-up and waveform evidence collection

Related MCP server: Rigol DHO824 MCP Server

Architecture

AI / MCP Client
   |
   v
MCP Server: siglent-sds-mcp
   |
   v
Scope Driver Layer
   |
   v
Transport Layer: PyVISA / socket fallback
   |
   v
SIGLENT SDS824X HD oscilloscope

See docs/architecture.md for the detailed design.

MVP tool set

Tool

Purpose

scope_idn

Query *IDN? and confirm instrument connectivity.

scope_run

Start acquisition.

scope_stop

Stop acquisition.

scope_single

Run single acquisition.

scope_setup_uart

Configure channel, timebase and edge trigger for UART capture.

scope_measure_basic

Query basic measurement values.

scope_fetch_waveform

Export waveform samples to CSV. Current implementation is a safe placeholder until waveform SCPI is verified.

analyze_uart_csv_file

Analyze UART bit width, voltage level and rough signal quality from CSV.

Safety model

This project intentionally exposes high-level tools first. Raw SCPI write access is disabled by default because an AI client could otherwise reset the instrument, overwrite settings, or change network configuration.

Default allowed operations:

  • identity query

  • run/stop/single acquisition

  • temporary channel/timebase/trigger setup

  • measurement query

  • screenshot/waveform fetch

  • offline waveform analysis

Default blocked operations:

  • *RST

  • factory reset

  • firmware update

  • network configuration changes

  • file deletion/formatting

  • arbitrary SCPI writes without explicit development mode

Quick start

python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'

Run tests:

pytest -q

Run the MCP server over stdio:

python -m siglent_sds_mcp.server

Run a simple identity check:

python examples/idn_test.py TCPIP0::192.168.1.100::INSTR

For USBTMC/VISA discovery, use PyVISA tooling or a vendor VISA implementation. For LAN/LXI debugging, lxi-tools is useful before connecting through MCP.

First field scenario: 2 Mbps UART

For 2 Mbps UART:

  • 1 bit = 500 ns

  • 8N1 byte frame = 10 bits = about 5 us

  • recommended timebase: about 1 us/div

  • recommended sample rate: at least hundreds of MS/s for waveform analysis

  • TTL trigger level: about 1.5 V for 3.3 V UART, 2.5 V for 5 V UART

The initial scope_setup_uart tool is designed around this scenario.

Repository layout

src/siglent_sds_mcp/
  server.py          MCP tools
  scope_driver.py    SCPI driver scaffold
  transport.py       PyVISA transport wrapper
  uart_analyzer.py   Offline UART CSV analyzer

docs/
  architecture.md
  scpi-notes.md
  sds824x-hd-plan.md

examples/
  idn_test.py
  capture_uart_2mbps.py

tests/
  test_scope_driver_mock.py
  test_uart_analyzer.py

Project status

Early scaffold.

Important: the waveform and screenshot commands must be verified against the SDS800X HD Programming Guide and the actual instrument firmware revision before production use. The current waveform export method intentionally writes a placeholder CSV header so the MCP and analyzer layers can be developed safely before real instrument testing.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/wolog1/siglent-sds-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server