Rigol Oscilloscope — Claude Code MCP server: what it does and setup
Controls Rigol oscilloscopes over SCPI via USB or LAN. Allows agents to adjust timebases, capture calibrated waveforms, read voltages and take screenshots.
claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio rigol-oscilloscope -- uvx labmcp-rigol-scopeWhat Rigol Oscilloscope does
This server connects coding agents directly to Rigol hardware, covering DS1000Z, MSO5000, DHO800, and DHO1000 series instruments. An agent can configure vertical channel scales, set edge triggers, trigger single-shot acquisitions, and read hardware measurements like frequency or peak-to-peak voltage. Waveform traces can be sampled and saved to CSV, while scope displays are captured as PNG or BMP images.
Communication runs over USB-TMC or local networks using VXI-11 and raw TCP sockets. For USB links on Linux and macOS, the host system requires libusb so the underlying PyVISA backend can identify the instrument. Windows setups rely on NI-VISA instead.
You can test workflows without physical hardware by launching the built-in emulator via --simulate. Setting --read-only restricts the agent to observation tools, safeguarding your physical bench setup from unexpected trigger or scale overwrites.
What it helps with
- extract waveform data from an analog channel into CSV
- adjust vertical scale, timebase, and edge trigger parameters
- capture an oscilloscope screen image for visual inspection
- automate peak-to-peak and frequency voltage readings
Example prompts for the agent
- Capture a screenshot from the oscilloscope and report the current channel scales.
- Arm a single acquisition on channel 1 and export the waveform data to CSV.
- Measure the frequency and peak-to-peak voltage on channel 2.
How to install Rigol Oscilloscope
Platform CLI
claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio rigol-oscilloscope -- uvx labmcp-rigol-scopeReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-rigol-scope <command>
Platform CLI
codex mcp add rigol-oscilloscope --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> -- uvx labmcp-rigol-scopeReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-rigol-scope <command>
Config file
{
"mcpServers": {
"rigol-oscilloscope": {
"command": "uvx",
"args": [
"labmcp-rigol-scope"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-rigol-scope <command>
Config file
{
"servers": {
"rigol-oscilloscope": {
"type": "stdio",
"command": "uvx",
"args": [
"labmcp-rigol-scope"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-rigol-scope <command>
Platform CLI
gemini mcp add -e LABMCP_ADDRESS=<LABMCP_ADDRESS> -e LABMCP_SIMULATE=<LABMCP_SIMULATE> -e LABMCP_READ_ONLY=<LABMCP_READ_ONLY> -e LABMCP_LIMITS=<LABMCP_LIMITS> rigol-oscilloscope uvx labmcp-rigol-scopeReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-rigol-scope <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Rigol Oscilloscope
How do I install Rigol Oscilloscope in Claude Code?
Run claude mcp add labmcp-rigol-scope -- uvx labmcp-rigol-scope. To configure connection parameters upfront via environment variables, run `claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio rigol-oscilloscope -- uvx labmcp-rigol-scope`.
What does the Rigol Oscilloscope MCP server do?
It issues SCPI commands to Rigol scopes over network or USB connections. AI agents use it to configure acquisitions, read automated measurements, retrieve waveform traces, and take screenshots.
What prerequisites are needed for USB connections?
The pure-Python VISA backend requires system-level libusb on Linux (apt install libusb-1.0-0) and macOS (brew install libusb). On Windows, NI-VISA must be installed.