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/ |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| screenshot | Capture a screenshot of the oscilloscope display. Returns the image and the absolute path where the PNG was saved. |
| idn | Identify the instrument. Returns make, model, serial, and firmware version. Use to verify connectivity before starting a measurement session. |
| get_scope_state | 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_channel | 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_timebase | 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_trigger | 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. |
| measure | 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_between | 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_waveform | 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_cursors | 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_values | Read current cursor mode and all cursor readouts. AX_s and BX_s are time positions in seconds. |
| send_raw | 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_error | Query the SCPI error queue. Returns the error if present, or 'No error' if clear. |
| run | Start continuous acquisition. Returns trigger status after the command. |
| stop | Stop acquisition and freeze the display. Use before reading measurements or cursors for stable values. Returns trigger status after the command. |
| single | 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. |
| autoscale | 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 | |