Skip to main content
Glama
kitour

RIGOL MHO98 MCP

by kitour

get_waveform

Retrieve and analyze a channel's waveform as text, reporting frequency, amplitude, offset, and data-quality warnings. Optionally return raw time/voltage arrays for custom analysis.

Instructions

Download and analyse the current waveform for a channel (NORM screen buffer, up to ~1000–1200 points depending on scope). Preferred over screenshot for inspecting the trace — the text analysis is cheaper and easier to reason over than an image. 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). Amplitude is judged against the channel's V/div: a trace filling under ~10% of the vertical screen is flagged as noise floor and its shape/frequency are not reported, and one filling under ~20% gets a low-amplitude warning (reduce V/div and re-capture for a clean signal). Set raw_data=true to get the full time/voltage JSON arrays instead. If the channel's display is OFF it is auto-enabled first (flagged in the warnings). 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. Do not call concurrently with any other rigol tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channelYes
raw_dataNoReturn raw time/voltage JSON arrays instead of text analysis (default false)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden, and it delivers: it discloses the NORM screen buffer, point-count range, default textual analysis fields, noise-floor and low-amplitude thresholds, raw_data mode, auto-enabling of a disabled channel, and warning interpretation. It makes observable behavior and side effects explicit.

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 long but dense, front-loads the core purpose and key preference, then layers prerequisites, return behavior, thresholds, and post-read actions. Each sentence carries useful operational information for a complex oscilloscope tool, with no filler.

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?

Given no output schema and no annotations, the description fully covers invocation prerequisites, return content, edge cases, failure indicators, and follow-up actions needed to use the returned data correctly. It is complete enough for an agent to call this tool and interpret the result without external help.

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?

The schema covers only raw_data with a description and channel with an enum, while the tool description adds the important distinction that raw_data=true yields full time/voltage JSON arrays and clarifies that amplitude is judged against the channel's V/div. This compensates for the 50% schema description coverage.

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?

States a specific verb and resource: downloads and analyses the current waveform for a specific channel, and explicitly positions itself against screenshot by noting text analysis is cheaper and easier to reason over. The tool's purpose is unmistakable even before looking at the schema.

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?

Explicitly says when to prefer this tool over screenshot, gives the precondition to stop or single-trigger first, tells the agent to act on warnings, and warns not to call concurrently with any other rigol tool. This is actionable guidance for tool selection and invocation.

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