Skip to main content
Glama
zinntikumugai

rigol-oscilloscope-mcp

configure_afg

Set the built-in function generator's waveform, amplitude, offset, frequency, phase, duty, symmetry, and impedance without enabling or disabling its output.

Instructions

Configure the built-in function generator (AFG). Omitted items are left unchanged.

This never turns the generator output on or off. The output state is not touched at all, so nothing new reaches the wiring: a configured generator only emits a signal once its output is enabled with the separate, confirmation-gated tool enable_afg (and disable_afg turns it off again). Read the current output state with get_afg_state.

channel is the generator channel (1 or 2 on MHO98; see get_capabilities afg_channels). Specify at least one item to change.

waveform is sine / square / ramp / noise / dc / arb / exp_rise / exp_fall / ecg / gaussian / lorentz / haversine / sinc. amplitude_vpp is the peak-to-peak amplitude in volts (not the peak and not RMS), offset_v the DC offset in volts, frequency_hz the frequency in hertz, phase_deg the phase in degrees (0-360), duty_percent the duty cycle of the square wave (1-99) and symmetry_percent the symmetry of the ramp (0-100). Duty and symmetry are stored independently of the current waveform, so they can be set at any time.

impedance is "highz" or "50" and is the GENERATOR's own output impedance setting, i.e. the load the amplitude is calibrated for. It has nothing to do with the oscilloscope input impedance of configure_channel.

The frequency and amplitude limits depend on the installed options and on impedance, and the instrument clamps an out-of-range value silently (no error is reported): always compare applied (the read-back value) against requested. Writing a frequency while the waveform is dc or noise is rejected by the instrument.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channelNo
offset_vNo
waveformNo
impedanceNo
phase_degNo
duty_percentNo
frequency_hzNo
amplitude_vppNo
symmetry_percentNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so thoroughly. It reveals that the output state is never touched, that out-of-range values are silently clamped with no error reported, that writing frequency while waveform is dc/noise is rejected, and that duty and symmetry settings are stored independently of the current waveform. This goes well beyond the input schema and gives an agent realistic expectations about side effects and failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Although the description is long, it is dense and every sentence earns its place given the zero coverage in the schema and nine parameters. The most important behavioral fact (never toggles output) is front-loaded right after the core purpose, and parameter details are grouped logically. No filler or repetition is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is comprehensive for a complex configuration tool with no annotations and no output schema. It covers the output-state relationship, parameter meanings, units, valid values, clamping behavior, error rejection, and read-back guidance via 'compare applied (the read-back value) against requested.' An agent has enough context to invoke the tool correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all parameters, and it does. It lists valid waveform strings, defines amplitude_vpp as peak-to-peak volts (not peak or RMS), specifies units and ranges for phase, duty, and symmetry, and explains the meaning of impedance. It also adds important caveats about parameter interactions, such as rejected frequency writes for dc/noise waveforms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Configure the built-in function generator (AFG)') and immediately clarifies the scope with 'Omitted items are left unchanged.' This clearly distinguishes it from sibling tools like enable_afg, disable_afg, and get_afg_state, which are explicitly named in the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: it does not turn output on/off, and it names the separate confirmation-gated tool enable_afg and disable_afg for that purpose. It also directs the user to get_afg_state for reading the current state, and distinguishes the AFG impedance setting from the oscilloscope input impedance in configure_channel. These are clear when-to-use and when-not-to-use guidelines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/zinntikumugai/rigol-oscilloscope-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server