Skip to main content
Glama
andy-qingcai

MHO98 MCP Server

by andy-qingcai

configure_math

Configure MATH1-MATH4 on a Rigol MHO98 oscilloscope by setting operators, sources, scale, FFT, filters, and logic thresholds; only supplied parameters change, with validation before sending.

Instructions

Configure math channel MATH1..MATH4 (manual 3.16). Only given parameters are changed; all validation happens before anything is sent.

operator: ADD|SUBTract|MULTiply|DIVision|AND|OR|XOR|NOT|FFT|INTG|DIFF| SQRT|LG|LN|EXP|ABS|LPASs|HPASs|BPASs|BSTop|AXB source1/source2: arithmetic/function/filter sources — CH1..CH4, REF1..REF10 or a lower-numbered MATH channel (MATH1..MATH) scale/offset: vertical scale/offset of the math result (unit follows the operator; invalid for logic and FFT operators) invert: invert the math waveform (not for FFT/logic) lsource1/lsource2: logic operation sources — D0..D15 or CH1..CH4 grid: FULL|HALF|NONE math window grid; expand: GND|CENTer vertical expansion reference; wavetype: MAIN|ZOOM (ZOOM needs zoom enabled) fft_source: CH1..CH4 or MATH1..MATH3 fft_window: RECTangle|BLACkman|HANNing|HAMMing|FLATtop|TRIangle fft_unit: VRMS|DB; fft_mode: NORMal|AVERage|MAXHold fft_avg_count: FFT average count 2..1000 (AVERage mode) fft_scale/fft_offset: spectrum vertical scale/offset (2.0 dB / 1 mVrms steps default; range depends on fft_unit) fft_hscale_hz: frequency span 10 Hz..2 GHz; fft_hcenter_hz: center frequency 5 Hz..2 GHz (span and center influence each other) fft_start_hz/fft_end_hz: 0..2 GHz; end must exceed start by >10 Hz fft_search_enable: FFT peak search on/off; fft_search_num: 1..15 peaks; fft_search_threshold/fft_search_excursion: peak detection levels (excursion >= 0, in dB); fft_search_order: AMPorder|FREQorder filter_type: LPASs|HPASs|BPASs|BSTop; filter_w1/filter_w2: cutoff frequencies in Hz (band types need both, W1 < W2; range depends on the screen sample rate) sensitivity: logic operation sensitivity in div (0.1..1.0) distance: differentiation smoothing window 5..10000 points threshold1..threshold4: logic thresholds of CH1..CH4 in V label_show: show the math waveform label; dismode: True = show the math waveform in the main view instead of the math window reset: auto-fit the result's vertical scale (:MATH:RESet) extra: {"KEYWORD": value} passthrough for :MATH keywords documented in section 3.16 (e.g. {"FFT:SEARch:NUM": 10}); unknown keywords are rejected; RESet takes no value (pass None).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gridNo
extraNo
indexNo
resetNo
scaleNo
expandNo
invertNo
offsetNo
dismodeNo
displayNo
source1No
source2No
distanceNo
fft_modeNo
fft_unitNo
lsource1No
lsource2No
operatorNo
wavetypeNo
fft_scaleNo
filter_w1No
filter_w2No
fft_end_hzNo
fft_offsetNo
fft_sourceNo
fft_windowNo
label_showNo
threshold1No
threshold2No
threshold3No
threshold4No
filter_typeNo
sensitivityNo
fft_start_hzNo
fft_avg_countNo
fft_hscale_hzNo
fft_hcenter_hzNo
fft_search_numNo
fft_search_orderNo
fft_search_enableNo
fft_search_excursionNo
fft_search_thresholdNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries full burden and delivers two important behavioral traits: partial updates leave other parameters untouched, and all validation occurs before anything is sent (no partial writes). It does not cover persistence, connection requirements, or error behavior, but the disclosed traits are substantive.

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

Conciseness4/5

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

Front-loaded with the scope sentence, then organized as a parameter glossary. It is long, but for 42 parameters at 0% schema coverage the density is justified and nearly every line carries constraint information. Minor redundancy in restating operator applicability.

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?

An output schema exists, so return values need no explanation. For a 42-parameter mutation tool with zero schema description coverage and no annotations, the description supplies the enum values, ranges, dependencies, and passthrough rules an agent needs to call it correctly.

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 coverage is 0% for 42 parameters, so the description must compensate fully, and it does: it enumerates allowed enums (ADD|SUBTract|...), ranges (fft_avg_count 2..1000, fft_hscale_hz 10 Hz..2 GHz), cross-field constraints (end must exceed start by >10 Hz, W1 < W2), conditional applicability (invert not for FFT/logic, fft_avg_count only in AVERage mode), and the passthrough semantics of 'extra'.

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

Purpose4/5

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

States a specific verb+resource ('Configure math channel MATH1..MATH4') and scopes it to the manual section. It clearly conveys what the tool does, though it does not explicitly contrast itself with related siblings like get_math_config or configure_reference.

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

Usage Guidelines3/5

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

It notes partial-update semantics ('Only given parameters are changed') and validation ordering, which guides invocation, but gives no explicit when-to-use/when-not guidance or alternatives (e.g., get_math_config for reads, configure_reference for ref channels). Usage is only implied.

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

Deploy Server

Other Tools