ToolBB-0149

pyMSO5000: an MCP server for Rigol MSO5000 scopes that checks every SCPI call

Matthias Blaicher's pyMSO5000 controls Rigol MSO5000 oscilloscopes over VISA from Python or an MCP server. It checks every command against SCPI definitions extracted from the scope's firmware; a bad argument fails locally instead of landing in the error queue. The MCP server adds screenshots and front-panel control. The README's examples use an MSO5074 over LAN.

Open original source github.com · Matthias Blaicher

Claimed
Why this evidence label?

Code examples show an MSO5074 over LAN; no captures or session logs.

How we check entries
Preview image for pyMSO5000: an MCP server for Rigol MSO5000 scopes that checks every SCPI call
The source's own preview image, from github.com.

Briefing

The library holds 2236 SCPI command definitions extracted from the MSO5000 firmware. A test re-extracts them from a firmware image and checks that they match byte for byte. Errors are typed, with a kind and a retryable flag, and saved_setup() returns the scope to its earlier setup when a block ends.

The MCP server blocks six risk categories of direct SCPI commands by default, among them storage, calibration and firmware writes, and matches on the resolved command so a short form cannot slip past. The README warns that the touch, key and knob tools sit outside those categories and reach anything in the scope's menus, including storage and service operations.

From the GitHub API

Repository facts

Repository facts for mabl/pymso5000, from the GitHub API
Repositorymabl/pymso5000
Stars3
LicenseMIT Permissive
LanguagePython
Last push5 Aug 2026 2 mo ago

Tags

Instrument

Report a problem with this entry