Skip to main content
Glama
zinntikumugai

rigol-oscilloscope-mcp

analyze_waveform

Get waveform summary statistics (min, max, mean, RMS, std, Vpp) and FFT dominant frequency/peaks from an oscilloscope channel, without transferring raw samples.

Instructions

Analyze a waveform on the host and return only the summary.

The raw samples are never returned; use capture_waveform when the data itself is needed. analyses is a subset of ["stats", "fft"] (all of them when omitted). stats gives min/max/mean/rms/std/vpp in volts; fft gives the dominant frequency and the strongest peaks. Frequency accuracy is limited by frequency_resolution_hz, so do not read more digits than that.

channel is "CH1"-"CH4" or a math trace "MATH1"-"MATH4". A math trace using the fft operator is rejected: its x axis is already frequency, so time-domain statistics and a host-side FFT are meaningless. Read the instrument's own peak table with get_math_state, or fetch the spectrum points with capture_waveform.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channelNoCH1
analysesNo
max_pointsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states that raw samples are never returned, that analyses defaults to all when omitted, that FFT results are limited by frequency_resolution_hz, and that math traces with the FFT operator are rejected with a rationale. This goes well beyond a minimal description.

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?

The description is information-dense but well organized, with the core behavior front-loaded and supporting details following logically. Every sentence earns its place, and the exclusions and alternatives are integrated clearly rather than bolted on.

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

Completeness4/5

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

For a tool with no output schema and no annotations, the description covers the main return contents, channel constraints, analysis options, precision caveat, and sibling routing. The only notable gap is the undocumented max_points parameter; otherwise the agent has enough context to call the tool correctly.

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

Parameters4/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 the parameters. It thoroughly explains channel values ('CH1'-'CH4' or 'MATH1'-'MATH4') and the semantics of analyses (stats vs fft, and the default behavior). However, max_points is never mentioned, leaving its meaning and effect ambiguous.

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 states a specific verb and resource ('Analyze a waveform on the host') and immediately defines the core boundary: it returns only the summary, never raw samples. It also names the sibling tool that does provide raw data, making it clearly distinct from capture_waveform.

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 routing guidance: use capture_waveform when raw data is needed, use get_math_state for the instrument's own peak table, and fetch spectrum points with capture_waveform. It also explains why math traces using the FFT operator are rejected, preventing a likely misuse.

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