Skip to main content
Glama
uni-t-uts-mcp

uni-t-uts-mcp

by Reid-n0rc

set_ad_display

Idempotent

Configure a selected AD display window's Y-axis reference level, per-division value, or AF spectrum spacing (window 3) to set amplitude scaling for spectrum and demodulation views.

Instructions

Configure one AD display window's Y-axis reference level and/or per-division value, and (window 3 only) the AF spectrum's linear/log spacing. AD module must be active. The unit of reference_level/per_division depends on the window and current demod type (AM/FM, read fresh from :CONFigure? each call) — see each parameter's description. Live-verified (2026-11-12) for window 1 and window 3's spacing setter; window 2's unit and exact clamp-vs-error behavior were not separately exercised. Everything requested is re-read afterwards and any instrument-adjusted value is reported in 'warnings'. Leaves the new state.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "window": "<window>"
    },
    "name": "set_ad_display"
  }
}

Input Schema

NameRequiredDescriptionDefault
windowYesDisplay window: 1 RF spectrum, 2 demodulation waveform, 3 AF (modulation) spectrum
af_spacingNoAF spectrum Y-axis spacing. Only documented for window 3 (manual, PM p.150)
instrumentNoWhich instrument to use (a name from list_instruments). Default: the `default` instrument, or the only one configured
per_divisionNoY-axis value per division, same unit as reference_level for the chosen window
reference_levelNoY-axis reference level. Unit depends on window and demod type: dBm (window 1), modulation depth fraction in AM / Hz deviation in FM (window 2), unconfirmed (window 3, manual ambiguous)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Goes well beyond the annotations (readOnlyHint=false, idempotentHint=true) by disclosing that everything requested is re-read afterwards, that instrument-adjusted values surface in a 'warnings' field, and that new state persists after the call. It also honestly flags which windows were live-verified versus untested (window 2 units, clamp-vs-error behavior). The only gap is that the exact nature of 'warnings' contents and the error/clamp policy for untested windows remain unspecified.

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-loads the core action and the window-3 scope, then adds prerequisites and caveats in descending importance. The live-verification sentence is dense with dates and parentheticals but earns its place by warning about untested code paths; trimming it slightly would improve scanability.

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?

For a 5-parameter mutation tool with no output schema, it covers the prerequisite, the unit ambiguity, the post-call verification and warnings channel, persistence of state, and known testing gaps. An agent has enough to decide to call it and to interpret the outcome without further documentation.

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 coverage is 100%, so the baseline is 3; the description adds value by explaining that reference_level/per_division units are resolved from a fresh :CONFigure? read each call rather than being fixed, and by validating that window 3's unit is ambiguous. It stops short of restating the per-window unit mapping itself, deferring to the parameter descriptions.

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: configure one AD display window's Y-axis reference level and/or per-division value, plus the window-3-only AF spacing setter. It carves out a narrow slice of the AD settings space, making it clearly distinct from siblings like set_ad_frequency, set_ad_filters, and set_amplitude.

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

Usage Guidelines4/5

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

Gives a real prerequisite ("AD module must be active") and explains that the unit interpretation depends on window and current demod type, so the agent knows the call is context-sensitive. It doesn't name a sibling alternative or state when NOT to use it, which keeps it below a 5.

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