rigol-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RIGOL_IP | Yes | Scope IP address (e.g., 192.168.1.123). | |
| RIGOL_SCREENSHOT_DIR | No | Directory for saved PNG screenshots. | screenshots/ |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| screenshotA | Capture a screenshot of the oscilloscope display. Returns the image and the absolute path where the PNG was saved. |
| idnA | Identify the instrument. Returns make, model, serial, and firmware version. Use to verify connectivity before starting a measurement session. |
| get_scope_stateA | Return a snapshot of the scope's current configuration: active channels (scale, offset, coupling, probe), timebase, and trigger. Call this at the start of a session to understand the current setup. |
| set_channelA | Configure a channel. Only specified parameters are changed. channel: CHAN1–CHAN4. scale_v_div: V/div. offset_v: volts. coupling: AC, DC, or GND. probe: attenuation ratio (1, 10, 100, …). Parameter names match get_scope_state output for easy round-tripping. Returns the resulting channel configuration. |
| set_timebaseA | Set the horizontal timebase. scale_s_div: seconds per division (e.g. 0.001 for 1 ms/div). offset_s: shifts the display window; time_start = offset_s − 6×scale_s_div, time_end = offset_s + 6×scale_s_div. Trigger (t=0) is always a zero crossing when using edge trigger. To align the right edge to a zero crossing at time T: set offset_s = T − 6×scale_s_div. To put the trigger at the left edge of the screen: set offset_s = +6×scale_s_div. Parameter names match get_scope_state output for easy round-tripping. Returns the resulting timebase configuration. |
| set_triggerA | Configure edge trigger. source: CHAN1–CHAN4 or EXT. slope: POS (rising), NEG (falling), or RFAL (either). level: trigger level in volts. Returns the resulting trigger configuration. |
| measureA | Query a single-source built-in measurement on a channel. Stop acquisition first for stable readings. channel: CHAN1–CHAN4. item: VMAX, VMIN, VPP, VTOP, VBASE, VAMP, VAVG, VRMS, FREQUENCY, PERIOD, PWIDTH, NWIDTH, PDUTY, NDUTY, RTIME, FTIME, OVERSHOOT, PRESHOOT, PSLEWRATE, NSLEWRATE, TVMAX, TVMIN, VUPPER, VMID, VLOWER, VARIANCE, PVRMS, PPULSES, NPULSES, PEDGES, NEDGES. A return value of 9.9E37 is the scope's invalid/overflow sentinel — it means the measurement could not be computed (e.g. FREQUENCY returns 9.9E37 when the timebase is too narrow to show a complete cycle; widen scale and retry). For delay or phase between two channels use measure_between. |
| measure_betweenA | Query a two-source delay or phase measurement between two channels. source1 is the reference channel, source2 is the measured channel. item: RDELAY (rising-edge delay, seconds), FDELAY (falling-edge delay, seconds), RPHASE (rising-edge phase, degrees), FPHASE (falling-edge phase, degrees). Stop acquisition first for stable readings. |
| get_waveformA | Download and analyse the current waveform for a channel (screen buffer, ~1200 points). Stop or single-trigger the scope first for consistent data. By default returns a plain-text analysis: signal shape, frequency/period, amplitude, DC offset, cycle count, and data-quality warnings (e.g. mid-cycle edges, invalid frequency). Set raw_data=true to get the full time/voltage JSON arrays instead. After reading, act on any warnings — if FREQUENCY would be 9.9E37 widen the timebase; if edges are not near the DC mean, adjust offset so right edge = N×(period/2) − 6×scale. |
| set_cursorsC | Set cursor mode and/or X positions. mode: OFF, MANUAL, TRACK (omit to keep current mode). ax/bx: cursor A/B time positions in seconds. Returns the resulting cursor readouts. |
| get_cursor_valuesB | Read current cursor mode and all cursor readouts. AX_s and BX_s are time positions in seconds. |
| send_rawA | Send an arbitrary SCPI command. Queries (ending with '?') return the response string; writes return empty string and auto-check the error queue. Use as an escape hatch when no dedicated tool covers the operation. |
| check_errorA | Query the SCPI error queue. Returns the error if present, or 'No error' if clear. |
| runB | Start continuous acquisition. Returns trigger status after the command. |
| stopA | Stop acquisition and freeze the display. Use before reading measurements or cursors for stable values. Returns trigger status after the command. |
| singleA | Arm the scope for a single acquisition; stops automatically after one trigger event. Returns trigger status. Note: acquisition does not complete until a trigger occurs — call stop or check trigger status before reading measurements. |
| autoscaleA | Run the scope's auto-setup (timebase, vertical scale, trigger). Takes a few seconds; call get_scope_state afterwards to see the resulting configuration. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/erebusnz/rigol-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server