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

uni-t-uts-mcp

by Reid-n0rc

wait_for_sweep_complete

Wait for an asynchronous spectrum-analyzer sweep to finish and confirm completion via *OPC?, so you can safely read results after starting a non-blocking sweep.

Instructions

Wait for a sweep started with start_sweep(wait=false) to finish: over the raw transport it stays silent for the remaining sweep time (the instrument ignores input while sweeping) and then polls *OPC? until it answers; over VXI-11 it makes one blocking *OPC? read that returns when the sweep ends.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "wait_for_sweep_complete"
  }
}

Input Schema

NameRequiredDescriptionDefault
timeout_sNoGive up after this many seconds (default: sweep time + 10 s)
instrumentNoWhich instrument to use (a name from list_instruments). Default: the `default` instrument, or the only one configured

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.1/5.0
Behavior4/5

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

With only readOnlyHint=false provided, the description does the heavy lifting and discloses a non-obvious behavioral split: over the raw transport it blocks silently for the remaining sweep time then polls *OPC?, while over VXI-11 it performs a single blocking *OPC? read. What it omits is what happens on timeout (error, partial sweep, instrument left sweeping), which matters for a blocking call. The readOnlyHint=false annotation is not contradicted: the *OPC? query alters status-register state, so this is not a pure read.

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 purpose and the prerequisite, with no filler. The single sentence is dense and slightly run-on in describing the two transports, but every clause carries real information.

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 two-parameter blocking wait tool with full schema coverage and no output schema, this covers purpose, prerequisite and transport-dependent blocking semantics. The main gap is timeout outcome behavior, which an agent would want before choosing a timeout value.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters (timeout_s and instrument) are already documented in the schema. The description adds only indirect context for timeout_s ('the remaining sweep time') and says nothing about parameter behavior beyond that, so the baseline 3 applies.

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 (wait) and resource (a sweep) and ties it explicitly to the sibling that creates the condition: 'a sweep started with start_sweep(wait=false)'. An agent can immediately distinguish this from start_sweep or get_sweep.

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?

The when-to-use condition is clear and explicit: only after start_sweep(wait=false). It does not spell out the alternative (calling start_sweep with wait=true, or polling get_sweep), but the triggering precondition is unambiguous.

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