home / mcp / rigol dho824 mcp server

Rigol DHO824 MCP Server

Provides an MCP server to control and query Rigol DHO804/DHO824 oscilloscopes via Docker with configurable environment variables.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "aimoda-rigol-dho824-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/tmp/rigol-data:/tmp/rigol",
        "-e",
        "RIGOL_RESOURCE",
        "-e",
        "VISA_TIMEOUT",
        "-e",
        "RIGOL_BEEPER_ENABLED",
        "-e",
        "RIGOL_AUTO_SCREENSHOT",
        "-e",
        "RIGOL_TEMP_DIR",
        "ghcr.io/aimoda/rigol-dho824-mcp:latest"
      ],
      "env": {
        "VISA_TIMEOUT": "30000",
        "RIGOL_RESOURCE": "TCPIP0::192.168.1.100::inst0::INSTR",
        "RIGOL_TEMP_DIR": "/tmp/rigol-data",
        "RIGOL_BEEPER_ENABLED": "false",
        "RIGOL_AUTO_SCREENSHOT": "false"
      }
    }
  }
}

You run the Rigol DHO824 MCP Server to control and query Rigol oscilloscopes from an MCP client. This server lets you issue MCP commands to capture waveforms, take screenshots, and retrieve data from a DHO804/DHO824 oscilloscope over the network or from a local setup inside a container. It is Docker-friendly and configurable through environment variables to fit your environment and workflow.

How to use

Install and run the MCP server, then connect your MCP client to the server to control the oscilloscope. Use it to capture waveforms from specific channels, query measurement data, and request visualization assets like screenshots. Start with a simple prompt such as capturing a waveform from channel 1 to verify connectivity and data transfer.

How to install

Prerequisites: you need Docker installed on your machine. You will run the server inside a container and expose the necessary environment variables to connect to your oscilloscope.

# Step 1: Pull the pre-built MCP server image
docker pull ghcr.io/aimoda/rigol-dho824-mcp:latest

# Step 2: Create a host directory for temporary files (waveforms, screenshots)
mkdir -p /tmp/rigol-data

# Step 3: Run the MCP server in Docker with required environment variables
docker run -i --rm \
  -v /tmp/rigol-data:/tmp/rigol \
  -e RIGOL_RESOURCE="TCPIP0::192.168.1.100::inst0::INSTR" \
  -e VISA_TIMEOUT=30000 \
  -e RIGOL_BEEPER_ENABLED=false \
  -e RIGOL_AUTO_SCREENSHOT=false \
  -e RIGOL_TEMP_DIR=/tmp/rigol-data \
  ghcr.io/aimoda/rigol-dho824-mcp:latest

Configuration and runtime notes

Environment variables configure how the MCP server talks to the oscilloscope and how it manages temporary files. Key variables include RIGOL_RESOURCE for the VISA resource string, VISA_TIMEOUT for communication timeout, RIGOL_BEEPER_ENABLED to toggle beeps on the oscilloscope, RIGOL_AUTO_SCREENSHOT to automatically capture screenshots after each MCP tool execution, and RIGOL_TEMP_DIR which points to a host directory for temporary files.

{
  "mcpServers": {
    "rigol_dho824": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run","-i","--rm",
        "-v","/tmp/rigol-data:/tmp/rigol",
        "-e","RIGOL_RESOURCE",
        "-e","VISA_TIMEOUT",
        "-e","RIGOL_BEEPER_ENABLED",
        "-e","RIGOL_AUTO_SCREENSHOT",
        "-e","RIGOL_TEMP_DIR",
        "ghcr.io/aimoda/rigol-dho824-mcp:latest"
      ]
    }
  }
}

Notes on temporary files and paths

The container writes temporary files to /tmp/rigol internally and translates these paths to the host path you mount (for example, /tmp/rigol-data). Ensure the host directory exists and that RIGOL_TEMP_DIR matches the host path in your mount. Temporary files are not automatically cleaned up, so you should implement your own cleanup policy.

Troubleshooting

If the container exits unexpectedly, verify you are using interactive mode with -i and that RIGOL_RESOURCE is correctly set to the oscilloscope address. If you cannot connect to the oscilloscope, confirm the network connectivity and that the oscilloscope’s remote control is enabled.

Developer notes

If you are developing locally, you can build and run a local image, or extend the container with your own tooling. Ensure you expose the proper environment variables and volumes when you test MCP workflows.

First prompt example

In your MCP client, try a simple prompt like: Capture a waveform from channel 1 of my oscilloscope.

Available tools

capture_waveform

Captures a waveform from a specified channel of the connected oscilloscope and returns the waveform data to the MCP client.