MHO98 MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MHO98 MCP Serverconnect to the scope, autoscale, and measure the frequency on CH1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MHO98 MCP Server
Rigol MHO98 示波器的 Model Context Protocol (MCP) 服务器。 基于官方《MHO98 Programming Guide》(PGA45102-1110) 做全量参数化封装, 通过 PyVISA (raw TCP socket 5555 / USBTMC) 控制仪器。
手册摘要:
docs/NOTES.md;功能规划:docs/PLAN.md;手册原文:docs/MHO98_ProgrammingGuide_EN.pdf142 个 MCP 工具,手册全部 28 个命令子系统逐命令核对覆盖(采集/触发 20 种/测量 44 项/波形/9 种协议解码/内置 AWG/LAN 配置/仪器端 U 盘与 SMB 存储/IEEE488.2/逻辑分析……)
波形数据只落盘(CSV/NPY),绝不在 MCP 返回值中内联采样数组,防止撑爆大模型上下文;返回值为统计摘要 + 文件路径,供后续脚本按协议解析
快速开始
cd /Users/andylos/mcp_gen/rigol/mho98
python3 -m venv .venv
.venv/bin/pip install -e . # 或 pip install mcp'>=1.2,<2' pyvisa pyvisa-py numpy
.venv/bin/python -m pytest tests/ # 离线单元测试(mock 仪器)
.venv/bin/python scripts/probe_device.py # 真机全功能自检Related MCP server: rigol-dho-mcp
配置(环境变量)
变量 | 默认 | 说明 |
|
| VISA 资源串;USB 形如 |
| 自动检测 | macOS 直连 link-local 网段时绑定本机源地址(en 口 169.254.*) |
|
| 波形 CSV/NPZ、截图、设置文件的保存目录 |
macOS 直连网线注意:仪器使用 link-local 地址(169.254.x.x)时,系统默认把流量 路由到主网卡导致连不上。本服务会自动发现本机 169.254.* 地址并绑定;若仍有问题, 可
sudo route -host add 169.254.112.67 -interface en7持久修复。
接入 MCP 客户端
ZCode(.zcode/settings.json)或 Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"mho98": {
"command": "/Users/andylos/mcp_gen/rigol/mho98/.venv/bin/python",
"args": ["-m", "mho98_mcp.server"],
"cwd": "/Users/andylos/mcp_gen/rigol/mho98",
"env": {
"MHO98_RESOURCE": "TCPIP0::169.254.112.67::5555::SOCKET",
"MHO98_DATA_DIR": "/Users/andylos/mcp_gen/rigol/mho98/data"
}
}
}
}工具总览(142 个)
分组 | 工具 |
系统/IEEE488.2/连接 (23) |
|
LAN (2) |
|
仪器端存储 (16) |
|
运行/采集 (12) |
|
触发 (18) |
|
测量/光标/计数/DVM (20) |
|
波形/数学/参考 (11) |
|
协议解码 (13) |
|
AWG/Bode (8) |
|
显示 (3) |
|
分析 (16) |
|
长尾/组合参数通过各工具的 extra={"KEYWORD": value} 白名单透传到
:子系统:KEYWORD value(白名单按手册逐命令核对,非法关键字报 ValueError)。
已验证固件特性(00.01.00,实机 MHO9A274501356)
:SYSTem:OPTion:STATus?/:OPTion:VALid?会挂死(不响应),get_system_info已跳过;get_option_status默认跳过,仅opt_in=True才真正查询:DVM:CURRent?在 DVM 关闭时挂死,read_dvm已做使能守卫:CURSor:MANual:TYPE合法值为TIME|AMPLitude(非 X/Y):TRIGger:PATTern:PATTern需要H,H,L,L逗号分隔(工具自动转换HHLL):DISPlay:GRADing:TIME只接受MIN|数值秒|INFinite(不接受1S/1.0):NAVigate:MODE需要 STOP 状态(configure_navigate(stop_first=True))SCPI 错误入队有延迟,写后错误检查带 50 ms 稳定期防止误归属
手册逐条核对带来的修正(v0.1 → v0.2)
:CHANnel<n>:POSition是偏置电压(V)而非垂直格数测量阈值命令为
:MEASure:SETup:MAX/MID/MIN(非:MEASure:THReshold:*);统计查询必带类型参数:MEASure:STATistic:ITEM? <type>,<item>PATTern/DURation 触发的
LEVel需<源>,<电平>二元形式;holdoff下限 8 ns此型号无
:MATH<n>:DATA?,数学波形经:WAVeform:SOURce MATH<n>读取;REF 插槽为 1–10;FFT 窗函数集为 {RECTangle|BLACkman|HANNing|HAMMing|FLATtop|TRIangle}AWG 调制仅支持 AM/FM/PM(无 SWP/Burst);AM 深度 0–120%;频率 2 mHz–100 MHz
Bode:
sweep_type合法值LOG|LINE;:BODeplot:VOLTage需<量程>,<幅值>双参数LA 阈值按 POD 组设置(POD1=D0–D7,POD2=D8–D15),非逐通道
录制帧间隔命令为
:RECord:WRECord:FINTerval(非 INTerval);搜索类型仅 EDGE|PULSepower_on合法值LATest;语言设置用 13 种长格式:SAVE:IMAGe:DATA?截图与:SAVE:*/:LOAD:*U 盘路径、SMB 共享均已封装
数据文件格式
波形 CSV:两行
#注释头(含 preamble 换算参数)+t_s,v_V两列波形 NPY:
np.load(f)["t_s"]/["v_V"](npz,RAW 大采集推荐)电压换算:
v = (code - yorigin - yreference) × yincrement
Available Tools
142 toolsautoscaleB
Autoset with options, then execute :AUToset.
enable_channels: True = only test the currently enabled channels; False = scan CH1..CH4 in sequence and enable the ones carrying signals view_overlap: True = stack channel waveforms; False = tile them top-to-bottom on the screen peak_search: peak-peak priority (best for signals with a large DC shift) keep_coupling: keep the channel coupling (else DC is applied) lock_timebase: lock the AUTO key, i.e. disable the AUTO function (manual 3.2.6; :AUToset:ENAble False is the equivalent master switch)
| Name | Required | Description | Default |
|---|---|---|---|
| peak_search | No | ||
| view_overlap | No | ||
| keep_coupling | No | ||
| lock_timebase | No | ||
| enable_channels | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool executes :AUToset and explains option effects, including that lock_timebase disables the AUTO function, but it does not state that autoscaling changes instrument state broadly, what happens to existing settings, or whether a connected instrument is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main operation, then uses a compact parameter list. Most sentences earn their place, though the manual reference and some parenthetical details are slightly dense rather than optimally trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described. However, with no annotations, the description should carry more behavioral context than it does; it covers parameters and execution but omits side effects, prerequisites, and usage routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does document all five Boolean parameters with practical meanings. Four parameters explicitly map True/False behavior, while peak_search lacks a clear True/False mapping and null/default behavior is not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation: configure Autoset options and then execute :AUToset. This distinguishes it from siblings that only set or get Autoset options, because it actually performs the autoscale action. It could more explicitly name the sibling tool set_autoset_options as the configuration-only alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what each option does but gives no when-to-use guidance, prerequisites, or comparison to alternatives such as set_autoset_options. An agent can infer it is for autoscaling with options, but there are no exclusions or alternative-routing statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_statusB
Send *CLS: clear event registers and error queue.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does state what gets destroyed (event registers and error queue are cleared), which is useful behavioral context. However, it doesn't disclose whether this affects instrument operation state, whether the error queue is permanently lost, or the effect on related status structures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. The verb and effect are stated immediately and the SCPI mnemonic is included compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description needn't explain return values. The main gap is the lack of guidance on when to use this versus reset or get_errors, and limited behavioral detail about side effects on instrument state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline is 4. The description adds the SCPI mnemonic *CLS, which is helpful context beyond the empty schema, though there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: clearing event registers and error queue via the *CLS SCPI command. This distinguishes it from siblings like reset, self_test, and get_errors, though the description doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. An agent cannot tell from the description whether to call clear_status versus reset or get_status, nor when clearing is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_awgA
Configure generator channel GI/GII (SOURce1/2).
function: SINusoid|SQUare|RAMP|NOISe|DC|ARB|EXPRise|EXPFall|ECG1|GAUSsian| LORentz|HAVersine|SINC (manual 3.25.2; abbreviations allowed). frequency in Hz, 2 mHz to 100 MHz (per-waveform limits: square/ramp/arb and built-in waveforms top out at 20 MHz, ramp at 2 MHz; DC/Noise ignore it). period in s, 10 ns to 500 s — reciprocal of frequency; when both are given the period is written last and therefore wins. amplitude in Vpp, 1 mV to 20 V (50-ohm load tops out at 10 Vpp, and above 50 MHz the limits halve). offset in V, |offset| <= 10 V (actual limit depends on amplitude/impedance). high/low absolute levels in V within +/-10 V; when both are given high must stay above low. phase in degrees, 0 to 360. duty_percent for SQUare, 1 to 99. ramp_symmetry_percent for RAMP, 0 to 100. impedance: OMEG (HighZ, 1 Mohm) | FIFTy (50-ohm load); HIGHZ/50/LOAD also OK. load_arbitrary: path of a stored arbitrary waveform file, e.g. "D:/123.csv" (local storage "C:/", external "D:/"); use together with function="ARB". Use sync_awg_phase() for the align-phase operation and get_awg_full_config() to read every setting back.
| Name | Required | Description | Default |
|---|---|---|---|
| low | No | ||
| high | No | ||
| phase | No | ||
| offset | No | ||
| period | No | ||
| channel | Yes | ||
| function | No | ||
| amplitude | No | ||
| frequency | No | ||
| impedance | No | ||
| duty_percent | No | ||
| load_arbitrary | No | ||
| ramp_symmetry_percent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full load and discloses real behavioral traits: parameter precedence between frequency and period, absolute-level coupling constraints, per-waveform frequency ceilings that change with impedance and above 50 MHz, and channel mapping to SOURce1/2. It does not say whether unspecified optional parameters are left untouched or cleared, nor whether the output must already be enabled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and function, then organized parameter-by-parameter; almost every line carries a unit, range, or override rule. The function enumeration is long but justified because the schema supplies no enum, though the presentation is dense enough to slow scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the description covers the mutation's constraints and the required channel's valid values (GI/GII). The remaining gap is behavior for omitted optional settings and any prerequisite state, which an agent may need before calling a 13-parameter write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 13 parameters, so the description carries the full burden and does so: it gives units, ranges (frequency 2 mHz-100 MHz with per-waveform caps, period 10 ns-500 s, amplitude 1 mV-20 V, phase 0-360), aliases for impedance, and the load_arbitrary path conventions. It also encodes non-obvious rules the schema cannot express (period is written last and wins; high must stay above low; DC/Noise ignore frequency).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with instrument semantics ('Configure generator channel GI/GII (SOURce1/2)'), so the agent knows this sets AWG channel output parameters. It also names the two sibling tools that cover adjacent operations (sync_awg_phase, get_awg_full_config), which separates it from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes two adjacent cases to siblings: align-phase belongs to sync_awg_phase(), and reading all settings belongs to get_awg_full_config(). It does not address when to prefer this over configure_awg_modulation, so the routing is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_awg_modulationB
Generator modulation AM|FM|PM (per manual :SOURce:MOD, 3.25.15-3.25.25).
This model's manual defines the modulation types AM, FM and PM only (no SWP/ARB/BURSt). type: AM|FM|PM. am_depth_percent: 0-120%. fm_deviation_hz: 2 mHz up to the current carrier frequency. pm_deviation_deg: 0-360. Internal modulation frequency in Hz: 2 mHz-1 MHz. Internal waveform shape: SINusoid|SQUare|TRIangle|UPRamp|DNRamp|NOISe. extra: only MOD subsystem keywords documented in section 3.25 are allowed, e.g. {"MOD:FM:DEViation": 200} (case-insensitive, canonicalized).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| extra | No | ||
| enable | No | ||
| channel | Yes | ||
| fm_deviation_hz | No | ||
| am_depth_percent | No | ||
| pm_deviation_deg | No | ||
| am_internal_function | No | ||
| fm_internal_function | No | ||
| pm_internal_function | No | ||
| am_internal_frequency | No | ||
| fm_internal_frequency | No | ||
| pm_internal_frequency | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose useful behavioral constraints: fm_deviation_hz is bounded by the current carrier frequency, and the 'extra' dict only accepts documented MOD subsystem keywords (case-insensitive, canonicalized). However, it never says whether this is a pure write, whether it requires the AWG/output to be active, or what the required 'channel' and 'enable' flags do.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded, leading with the core purpose before enumerating constraints. Some lines (manual section numbers, bare range fragments) are terse to the point of being cryptic, but there is little wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, but for a 13-parameter mutation tool the description omits the required channel parameter and the enable flag entirely, which an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate; it does give units and ranges for am_depth_percent, fm_deviation_hz, pm_deviation_deg, internal frequency, and the waveform shape list, plus the 'extra' whitelist semantics. But it entirely omits the required 'channel' parameter, the 'enable' flag, and how am/fm/pm_internal_function and *_internal_frequency map to each modulation type, leaving substantial gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: configuring generator modulation (AM|FM|PM) on the AWG, with a manual citation. It is clearly distinguishable from the broader configure_awg/set_awg_output siblings, though it never explicitly names them as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus configure_awg, set_awg_output, or sync_awg_phase, and no prerequisites (e.g., must the AWG output already be enabled?). The manual section reference is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bodeA
Bode plot configuration (requires generator option; manual 3.5.1-3.5.11).
sweep_type: LOG|LINE (DECade/LINear spellings are accepted as aliases). ref_in/ref_out: DUT input/output channel, CH1..CH4 (CHAN/CHANnel forms OK). start_hz: 10 Hz-3 MHz; stop_hz: 100 Hz-30 MHz; when both are given the manual constraint start*10 <= stop is enforced. points: sweep points per decade, 10-100. voltage: sweep amplitude in V, 20 mV-10 V, applied to the frequency range given by voltage_range (default ALL, i.e. a unified amplitude); voltage_range: ALL|10|100|1K|10K|100K|1M|10M|25M (numeric forms like 1000 or 2.5e7 also accepted); only used together with voltage. gain_curve/phase_curve: display the amplitude/phase frequency curve (settable only while the instrument is stopped).
| Name | Required | Description | Default |
|---|---|---|---|
| run | No | ||
| enable | No | ||
| points | No | ||
| ref_in | No | ||
| ref_out | No | ||
| stop_hz | No | ||
| voltage | No | ||
| start_hz | No | ||
| gain_curve | No | ||
| sweep_type | No | ||
| phase_curve | No | ||
| voltage_range | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses useful constraints (start*10 <= stop, voltage ranges, gain/phase curves settable only while stopped), but omits what run and enable do and whether changes are immediate or reversible for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool purpose and prerequisite, then organized as concise per-parameter lines. It is dense but appropriate for a 12-parameter tool; no sentence is wasted on repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. However, the description omits run/enable semantics and gives no routing guidance versus get_bode_config, leaving gaps for a complex, annotation-free mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does for 10 of 12 parameters: sweep_type aliases, ref_in/ref_out channel forms, frequency bounds, points range, voltage bounds, voltage_range forms, and the stopped-state condition. It omits run and enable entirely, which is a notable gap in an otherwise rich parameter explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Bode plot configuration'. The purpose is clear from the name and description, but it does not explicitly differentiate from the sibling get_bode_config, which reads the same configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a prerequisite ('requires generator option') and a manual reference, but gives no explicit when-to-use guidance relative to alternatives such as get_bode_config or configure_awg. Usage is only implied by the configuration verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_busA
Configure decoding bus BUS1..BUS4 (common + protocol settings).
protocol: PARallel|RS232|SPI|IIC|LIN|CAN|IIS|FLEXray|M1553 (:BUS:MODE).
Common settings (manual 3.4.1-3.4.9), every None argument is left unchanged: display: bus decoding display on/off format: event-table numeral system HEX|ASCii|DEC|BIN event: event-table display on/off (enable before :EEXPort/:DATA?) label: bus label display on/off - a bool per manual 3.4.5, not text position: bus vertical position, integer -250..250 threshold / threshold_type: per-source threshold in V, sent as ":BUS:THReshold ,", e.g. threshold=1.65, threshold_type="TX". Legal types: PAL|PALCLK|TX|RX|SCL|SDA|CS|CLK| MISO|MOSI|LIN|CAN|CANSub1|FLEX|1553|I2SClk|DATA|WS|CH1..CH4. Legal voltage range: +/-5 vertical divisions around the channel offset.
Typed protocol parameters, routed to the active protocol (if protocol= is omitted, the current bus mode is queried first): source: single line source, CAN|LIN|FLEXray|M1553 only baud: RS232 (1 bps..20 Mbps) | CAN (10 kbps..5 Mbps) | LIN (2.4 kbps..20 Mbps) | FLEXray (2.5/5/10 Mbps, discrete) dbits: RS232 (5..9) | SPI (4..32) parity: RS232 NONE|ODD|EVEN | LIN bool (include parity bit) polarity: POSitive|NEGative for RS232/PARallel/IIS, HIGH|LOW for SPI (cross-spellings are mapped) endian: MSB|LSB for RS232/SPI/IIS
Any other keyword goes through extra as {"": value}; KEY is the
SCPI sub-path validated against a whitelist from the manual, e.g.
RS232: {"RS232:TX": "CH1", "RS232:BAUD": 115200, "RS232:DBITs": 8}
IIC: {"IIC:SCLK:SOURce": "CH1", "IIC:SDA:SOURce": "CH2"}
SPI: {"SPI:SCLK:SOURce": "CH1", "SPI:MOSI:SOURce": "CH2"}
CAN: {"CAN:SOURce": "CH1", "CAN:BAUD": 500000}
Legal keywords per protocol (manual 3.4.10-3.4.18):
PARallel: BUS CLK SLOPe WIDTh BITX SOURce ENDian POLarity
RS232: TX RX POLarity PARity ENDian BAUD DBITs SBITs
IIC: SCLK:SOURce SDA:SOURce EXCHange ADDBits
SPI: SCLK:SOURce SCLK:SLOPe MISO:SOURce MOSI:SOURce POLarity
MISO:POLarity MOSI:POLarity DBITs ENDian MODE TIMeout:TIME
SS:SOURce SS:POLarity
CAN: SOURce STYPe BAUD FDBaud SPOint FDSPoint
LIN: SOURce STANdard BAUD PARity
FLEXray: SOURce BAUD SPOint STYPe CHANnel
IIS: SOURce:CLOCk SOURce:DATA SOURce:WSELect ALIGnment CLOCk:SLOPe
RWIDth RECewidth WSLow ENDian POLarity
M1553: SOURce
Protocol prefixes match case-insensitively (I2C->IIC, FLEX->FLEXray,
1553->M1553) and keywords accept unambiguous SCPI short forms.
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| baud | No | ||
| dbits | No | ||
| event | No | ||
| extra | No | ||
| label | No | ||
| endian | No | ||
| format | No | ||
| parity | No | ||
| source | No | ||
| display | No | ||
| polarity | No | ||
| position | No | ||
| protocol | No | ||
| threshold | No | ||
| threshold_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it states that every None argument is left unchanged, that typing is routed to the active protocol, that omission of protocol triggers a query of the current mode, and that unknown keywords are validated against a manual-derived whitelist. It omits permission/auth requirements and the write's reversibility, but the mutation and defaulting semantics are unusually well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long, but for a 16-parameter tool spanning ten protocols the density is justified, and the top line is front-loaded with the core purpose followed by structured bullet groups. Minor redundancy (repeated protocol lists) keeps it from a 5, but almost every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given high complexity, no annotations, a zero-documentation schema, and an output schema that handles return values, the description supplies everything needed to call the tool correctly: parameter semantics, routing, defaults, legal values, and the escape hatch. Nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all 16 parameters have bare titles, yet the description compensates fully: it documents display, format, event, label, position, threshold/threshold_type (with legal types and voltage range), source, baud (with per-protocol ranges), dbits, parity, polarity (incl. cross-spelling mapping), endian, and the 'extra' sub-path mechanism with per-protocol legal keywords. This is exemplary compensation for a zero-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Configure decoding bus BUS1..BUS4') and enumerates the covered settings, so the agent knows exactly what the tool does. However, it never distinguishes itself from the many protocol-specific siblings (configure_bus_parallel, configure_bus_rs232, configure_bus_iic, etc.), so the agent must infer whether this generic entry point is preferred over them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the routing rules (protocol= selects and routes typed params; if omitted the current mode is queried first) and the 'extra' escape hatch, which conveys how to call it. But there is no explicit when-to-use/when-not guidance and no mention of the dedicated configure_bus_<protocol> alternatives, leaving the agent to guess which tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_canA
Set Bus to CAN/CAN-FD decoding and configure it (manual 3.4.14).
source: CAN line source CH1..CH4 or D0..D15 signal_type: TX|RX|CANH|CANL|DIFFerential (probe type, default CANH) baud: arbitration baud rate 10 kbps..5 Mbps in bps (default 1 Mbps) fd_baud: CAN-FD data-phase baud rate 1 Mbps..10 Mbps in bps sample_point: bit sample position 10..90 in % (default 80) fd_sample_point: CAN-FD data-phase sample position 10..90 in % display: enable the decoding bus
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| baud | No | ||
| source | No | ||
| display | No | ||
| fd_baud | No | ||
| signal_type | No | ||
| sample_point | No | ||
| fd_sample_point | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses default values and valid ranges (e.g., baud default 1 Mbps, sample_point default 80), but says nothing about side effects such as overwriting existing bus configuration, whether acquisition must be stopped, permission requirements, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in one sentence, followed by a compact per-parameter list where every line carries distinct information. No filler; the manual reference is the only ancillary detail and is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the parameter semantics are thorough. What remains missing for a no-annotation configure tool is prerequisite/ordering context and any caution about reconfiguring a bus already in use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all 8 parameters are undocumented in the schema, yet the description compensates fully: it specifies units and ranges for baud/fd_baud, the enum choices for signal_type (TX|RX|CANH|CANL|DIFFerential), the numeric range for sample points, and the meaning of display — plus defaults for the key parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ('Set Bus <n> to CAN/CAN-FD decoding and configure it'), which unambiguously distinguishes this tool from the many sibling protocol configurators (configure_bus_spi, configure_bus_iic, configure_bus_lin, etc.). An agent can identify CAN/CAN-FD decoding setup without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose (use it to set up a CAN bus for decoding), but there is no explicit when-to-use guidance, no mention of prerequisites such as connecting to an instrument, bus enablement, or ordering relative to configure_bus / read_bus_data. No alternative tool is named or excluded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_flexrayA
Set Bus to FlexRay decoding and configure it (manual 3.4.16).
source: FlexRay line source CH1..CH4 or D0..D15 baud: 2500000|5000000|10000000 bps (default 10000000) sample_point: bit sample position 10..90 in % (default 50) signal_type: BP|BM|RT probed signal (default BP) channel: FlexRay channel A|B (default A) display: enable the decoding bus
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| baud | No | ||
| source | No | ||
| channel | No | ||
| display | No | ||
| signal_type | No | ||
| sample_point | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions a manual section but says nothing about mutability, side effects, required device state, or whether existing bus configuration is replaced. For a configuration tool with seven parameters, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core action, then lists parameters in a compact, scannable format. Every line earns its place, and the manual reference adds useful traceability without wasting space. No redundant or filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. The description covers purpose and parameter semantics well, but it omits behavioral context needed to invoke safely (e.g., state requirements, side effects) and lacks any usage routing among the many configure_bus_* siblings. It is adequate for correct invocation but incomplete for confident selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides explicit meaning for every parameter: allowed values, ranges, and defaults (e.g., baud '2500000|5000000|10000000 bps (default 10000000)', sample_point '10..90 in % (default 50)'). It even documents the required bus parameter via 'Set Bus <n>'. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Set Bus <n> to FlexRay decoding and configure it.' It explicitly names the protocol (FlexRay), which differentiates it from siblings like configure_bus_can or configure_bus_spi. An agent can immediately tell what the tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as configure_bus or other protocol-specific bus configurators. The description only states the action, not the context or prerequisites (e.g., must acquisition be stopped, does it overwrite existing bus settings). No when-not or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_iicA
Set Bus to I2C decoding and configure it (manual 3.4.12).
sclk / sda: clock (SCL) and data (SDA) line sources, CH1..CH4 or D0..D15 exchange: swap the clock and data channel sources addr_bits: slave address width 7|8|10 bits (default 7) display: enable the decoding bus
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| sda | No | ||
| sclk | No | ||
| display | No | ||
| exchange | No | ||
| addr_bits | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a default (addr_bits default 7), the meaning of exchange (swaps channel sources), and that display enables the decoding bus — useful behavioral detail. However it is silent on persistence across power cycles, whether reconfiguring an already-configured bus resets other settings, and any error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose line, then one compact line per parameter with no filler or restatement of the tool name. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the parameter set is well covered. What remains thin is the surrounding workflow context — prerequisites, interaction with configure_bus_get_bus_config, and state side effects — which a mutation tool with no annotations could reasonably supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so this description is doing the work: it supplies allowed value families (CH1..CH4 or D0..D15), the addr_bits value set 7|8|10 with default 7, and the semantics of exchange and display. Only the required 'bus' parameter (self-evident from the name) is left undocumented, hence not a perfect 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Set Bus <n> to I2C decoding and configure it') and the protocol name distinguishes it cleanly from the many siblings (configure_bus_spi, configure_bus_can, configure_bus_iis, etc.). An agent can select this without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the setup role (decode configuration must precede read_bus_data) but never states when to use this versus configure_bus / configure_bus_parallel / read_bus_data, nor any prerequisite such as enabling the bus first. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_iisA
Set Bus to I2S decoding and configure it (manual 3.4.17).
clock / data / ws_select: serial clock, data and word-select (audio channel) line sources, each CH1..CH4 or D0..D15 alignment: IIS|RJ|LJ data alignment (default IIS) clk_slope: POSitive|NEGative clock edge sampled on word_width: word size 4..32 bits receive_width: receive width 4..32 bits ws_low: LEFT|RIGHt audio channel indicated by WS low endian: MSB|LSB bit order (default MSB) polarity: POSitive|NEGative data polarity display: enable the decoding bus
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| data | No | ||
| clock | No | ||
| endian | No | ||
| ws_low | No | ||
| display | No | ||
| polarity | No | ||
| alignment | No | ||
| clk_slope | No | ||
| ws_select | No | ||
| word_width | No | ||
| receive_width | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it does not disclose what happens to existing bus settings when called, whether configuration is applied immediately or on next acquisition, whether it must be persisted via save_setup, or any permission requirements. The only behavioral hints are the stated defaults (alignment IIS, endian MSB), which is thin for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first line, followed by a compact, one-line-per-parameter reference block where each line adds meaning. There is little waste, though the breakneck abbreviation style (e.g., 'ws_low: LEFT|RIGHt') is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the description covers nearly all 12 parameters plus the tool's purpose. What is missing is the behavioral layer (side effects, persistence, preconditions), which matters for a configuration mutation with no annotations, keeping it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (titles only), so the description must compensate, and it does so well: it explains the meaning and accepted values of clock/data/ws_select, alignment, clk_slope, word_width, receive_width, ws_low, endian, polarity, and display. The notable gap is the required 'bus' parameter itself, whose valid range/identifiers are never described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb ('Set'), a specific resource ('Bus <n>'), and the exact mode ('I2S decoding'), which inherently distinguishes it from the many protocol-specific siblings such as configure_bus_spi, configure_bus_can, and configure_bus_iic. An agent can route to this tool from the name and first sentence alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never states when to use this tool versus alternatives, nor any precondition such as whether the bus must be stopped or the acquisition halted before reconfiguring. Usage can only be inferred from the protocol name. No mention of configure_bus or get_bus_config as related steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_linA
Set Bus to LIN decoding and configure it (manual 3.4.15).
source: LIN line source CH1..CH4 or D0..D15 standard: LIN bus version V1X|V2X|MIXed (default MIXed) baud: 2.4 kbps..20 Mbps in bps (default 9600) parity: include the parity bit in the decoded frames display: enable the decoding bus
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| baud | No | ||
| parity | No | ||
| source | No | ||
| display | No | ||
| standard | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states defaults for standard and baud, but says nothing about what happens to an already-configured bus, whether mutation is reversible, whether it requires the instrument to be stopped, or any permission/state requirements. For a mutation tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the remaining lines are a compact one-line-per-parameter list. Efficient, though the parenthetical manual reference and the mixed sentence style are slightly informal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and all parameters are covered. However, for a state-mutating configuration tool with no annotations, the description omits interaction with existing bus state and any preconditions, leaving the agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it documents all six parameters including source valid ranges (CH1..CH4 or D0..D15), standard enum values (V1X|V2X|MIXed) with default, baud range and units with default, and the meaning of parity and display. This adds real meaning beyond the bare titles in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (configure/set) and resource (Bus <n> for LIN decoding), and the protocol name distinguishes it cleanly from the many sibling configure_bus_* tools (CAN, SPI, IIC, RS232, etc.). An agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the protocol-specific naming and the manual reference (3.4.15), but there is no explicit when-to-use guidance, no statement of prerequisites, and no mention of when to prefer the generic configure_bus or get_bus_config instead. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_m1553A
Set Bus to MIL-STD-1553B decoding and configure it (manual 3.4.18).
source: 1553 bus line source CH1..CH4 or D0..D15 display: enable the decoding bus (Set the differential threshold via configure_bus(threshold=..., threshold_type='1553').)
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| source | No | ||
| display | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It discloses that this enables decoding and defines source/display behavior, but does not mention side effects, overwrites, required state, or other operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by parameter notes and a useful routing note for threshold configuration. It is concise and skimmable, though the fragment style and manual citation are slightly rough.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be described. However, with no annotations and 0% schema description coverage, the description leaves gaps: the bus parameter range/meaning, defaults, and preconditions are not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains source options (CH1..CH4 or D0..D15) and display meaning, but does not define the required bus parameter beyond the vague '<n>' placeholder.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: setting a bus to MIL-STD-1553B decoding and configuring it. The tool is clearly one of the bus-protocol configuration siblings, and the manual reference reinforces scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and the phrase 'Set Bus <n> to MIL-STD-1553B decoding.' It explicitly redirects differential-threshold configuration to configure_bus, but does not state when to prefer this tool over other bus configuration tools or what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_parallelA
Set Bus to PARallel decoding and configure it (manual 3.4.10).
bus_source: data source D7D0|D15D8|D15D0|D0D7|D8D15|D0D15|CH1..CH4|USER (USER enables the per-bit sources below) clk: clock source CH1..CH4 or D0..D15, or OFF to sample on data change clk_slope: POSitive|NEGative|BOTH clock edge sampled on width: data width 1..16 (analog sources are limited to 1..4) bit / bit_source: select data bit 0..width-1, then its line source (BUS_source must be USER) endian: NEGative|POSitive (NEGative = inverted, manual default) polarity: NEGative|POSitive data polarity display: enable the decoding bus
| Name | Required | Description | Default |
|---|---|---|---|
| bit | No | ||
| bus | Yes | ||
| clk | No | ||
| width | No | ||
| endian | No | ||
| display | No | ||
| polarity | No | ||
| clk_slope | No | ||
| bit_source | No | ||
| bus_source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose useful traits: manual-derived defaults (endian NEGative default), the analog-source width restriction (1..4), and that display 'enable[s] the decoding bus' (a visible side effect). However, it never says whether configuring overwrites an existing bus setup, whether other bus settings are reset, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one line, followed by a scannable parameter list where each line earns its place. Slightly dense and the indented continuation lines ('(USER enables the per-bit sources below)') are a little awkward, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described. For a 10-parameter, zero-coverage config tool the description is strong on parameters and adequate on behavior; the only real gap is the absence of any statement about how this configuration interacts with pre-existing bus settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema has no enums, so the description must carry all semantics — and it does. It documents every one of the 10 parameters with concrete allowed values (bus_source D7D0|D15D8|...|USER, clk CH1..CH4|D0..D15|OFF, clk_slope POS|NEG|BOTH, width 1..16, bit range 0..width-1, endian, polarity, display) and flags the cross-parameter dependency between bit_source and BUS_source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource: 'Set Bus <n> to PARallel decoding and configure it,' with a manual section reference. Against a sibling set full of configure_bus_rs232/iic/spi/can/lin/etc., the word PARallel uniquely identifies which bus protocol this tool configures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the protocol name but never stated: there is no 'use this when decoding a parallel bus' and no comparison to the other configure_bus_* siblings. The per-parameter notes ('USER enables the per-bit sources below', 'BUS_source must be USER') give conditional guidance, but only at the parameter level, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_rs232A
Set Bus to RS232/UART decoding and configure it (manual 3.4.11).
tx / rx: line sources CH1..CH4 or D0..D15; rx also OFF (tx and rx cannot both be OFF) polarity: POSitive|NEGative logic sense (default NEGative idle-low) parity: NONE|ODD|EVEN endian: MSB|LSB bit order (default LSB) baud: 1 bps to 20 Mbps in bps (default 9600) dbits: 5|6|7|8|9 data bits (default 8) sbits: 1|1.5|2 stop bits (default 1) display: enable the decoding bus
| Name | Required | Description | Default |
|---|---|---|---|
| rx | No | ||
| tx | No | ||
| bus | Yes | ||
| baud | No | ||
| dbits | No | ||
| sbits | No | ||
| endian | No | ||
| parity | No | ||
| display | No | ||
| polarity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses useful behavioral facts: defaults for polarity/endian/baud/dbits/sbits, and the constraint that tx and rx cannot both be OFF, plus that display enables the decoding bus. However it says nothing about permissions, whether existing config is overwritten, or side effects on other buses, so it's only partially transparent for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by a compact parameter reference with no filler. Every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be explained, and all ten parameters are documented. The only shortfall is the absence of usage context and side-effect disclosure, minor given the strong parameter coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 10 parameters, so the description must compensate and does: it enumerates valid values and defaults for tx/rx (CH1..CH4 or D0..D15, rx OFF), polarity, parity, endian, baud range, dbits, sbits, and display. This is exactly the value-add a description should provide over an undocumented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Set/configure) and resource (Bus <n> to RS232/UART decoding), which cleanly distinguishes it from the many sibling configure_bus_* tools (iic, spi, can, lin, etc.). The manual reference (3.4.11) anchors it further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose sentence implies when to use it (configuring RS232/UART decoding on a bus), but there is no explicit when-to-use vs. alternatives guidance and no stated prerequisites. Sibling naming makes the routing obvious, so it's adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bus_spiA
Set Bus to SPI decoding and configure it (manual 3.4.13).
sclk: clock source CH1..CH4 or D0..D15 clk_slope: POSitive|NEGative clock edge sampled on miso / mosi: data line sources; each may be OFF but not both at once polarity: HIGH|LOW data polarity (high=1 / low=1) dbits: data width 4..32 bits (default 8) endian: MSB|LSB bit order (default MSB) mode: CS|TIMeout frame synchronization (default TIMeout) timeout_s: timeout frame gap in s, 8 ns..10 s (TIMeout mode only, must exceed the max clock pulse width) ss: chip-select line source CH1..CH4 or D0..D15 (CS mode only) ss_polarity: HIGH|LOW chip-select active level (CS mode only) display: enable the decoding bus
| Name | Required | Description | Default |
|---|---|---|---|
| ss | No | ||
| bus | Yes | ||
| miso | No | ||
| mode | No | ||
| mosi | No | ||
| sclk | No | ||
| dbits | No | ||
| endian | No | ||
| display | No | ||
| polarity | No | ||
| clk_slope | No | ||
| timeout_s | No | ||
| ss_polarity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses several important constraints: 'miso/mosi may be OFF but not both', 'timeout_s must exceed max clock pulse width', 'ss only in CS mode', 'ss_polarity only in CS mode', and defaults for dbits/endian/mode. However, it omits mutation scope (does it reconfigure an existing bus or create one?), whether configuration is persistent, and side effects on active acquisition. Given no annotations, this is more than a bare-bones description but still incomplete on mutation semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured as a one-line purpose followed by a parameter block in a consistent 'name: meaning' format. Front-loads the action, then enumerates parameters. Slightly dense but every line earns its place given 13 undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, 0% schema coverage, no annotations, and an output schema present (so return values need not be explained), the description supplies the parameter details the schema lacks. It omits when-to-use versus other bus tools and behavioral scope of the mutation, but for a configuration tool this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% – the schema provides only types and no text descriptions. The description fully compensates by defining every one of the 13 parameters: sclk/clk_slope/miso/mosi/polarity/dbits/endian/mode/timeout_s/ss/ss_polarity/display, with value ranges and defaults. This is exactly the case where the description must carry parameter semantics, and it does so exceptionally well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+setting: 'Set Bus <n> to SPI decoding and configure it'. The protocol is explicit (SPI) and the operation (set/configure) is clear. Among sibling configure_bus_* tools, the SPI variant is distinguishable by the protocol name in the tool name and description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the SPI-specific configuration tool, with sibling tools for other protocols (configure_bus_parallel, rs232, iic, can, etc.) named in the tool list. However, it does not explicitly state when to choose SPI config versus the generic configure_bus, nor does it give preconditions or exclusions. Usage is implied by the protocol name rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_laB
Logic analyzer digital channels D0..D15.
digital_channel like 'D3' plus channel_enable to turn one channel on/off and label to set its name; threshold: logic threshold voltage, -15 V .. +15 V, applied to the channel group selected by pod (1: D0-D7, 2: D8-D15); with a digital_channel the group is derived from it; without either, both groups are set (global threshold); active: currently selected digital channel D0..D15 (must be enabled); autosort: D0D15|D15D0 display order; size: SMALl|MEDium|LARGe waveform size (LARGe needs <= 8 channels on); pod + pod_display: enable/disable an entire channel group.
| Name | Required | Description | Default |
|---|---|---|---|
| pod | No | ||
| size | No | ||
| label | No | ||
| active | No | ||
| enable | No | ||
| autosort | No | ||
| threshold | No | ||
| pod_display | No | ||
| channel_enable | No | ||
| digital_channel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses constraints (threshold range -15..+15 V, LARGe needs <= 8 channels on, active channel must be enabled), but never states that this mutates instrument state, whether changes persist or apply immediately, or any permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but appropriately sized for 10 parameters, and the resource scope is front-loaded. The semicolon-chained layout is a bit cramped and cryptic in places (e.g., 'SMALl|MEDium|LARGe'), but each clause carries parameter meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and most parameter semantics are covered. Yet for a 10-parameter mutation tool with zero annotations and zero schema descriptions, the absence of any when-to-use framing and the unexplained 'enable' parameter leave gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does so for nearly every parameter with meaning and format hints ('D3', D0D15|D15D0, SMALl|MEDium|LARGe, pod groups 1/2, global threshold fallback). It leaves the standalone 'enable' parameter unexplained and does not clarify its relation to channel_enable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (logic analyzer digital channels D0..D15) and the configurable aspects (enable, label, threshold, pod, display), so an agent understands it configures LA digital channels. However, it opens with a topic fragment rather than a verb-led purpose statement and never distinguishes itself from the read-side sibling get_la_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of the alternative get_la_config for reading current LA settings. The description only describes parameter interactions (e.g., 'with a digital_channel the group is derived from it'), which is conditional semantics rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_maskB
Pass/fail mask test.
source: CHANnel1..CHANnel4 (a disabled channel is enabled automatically); operate: RUN|STOP (enable the test before running it); x_adjust: horizontal mask tolerance, 0.01..2 div; y_adjust: vertical mask tolerance, 0.04..2 div; create_from_source: create the mask from the current source waveform (test must be enabled and stopped); reset: reset the passed/failed/total frame counters; output_enable: pulse the rear-panel AUX OUT connector on mask events; output_event: FAIL|PASS event that triggers the AUX OUT pulse; output_pulse_s: AUX OUT pulse width, 100 ns .. 10 ms.
| Name | Required | Description | Default |
|---|---|---|---|
| reset | No | ||
| enable | No | ||
| source | No | ||
| operate | No | ||
| x_adjust | No | ||
| y_adjust | No | ||
| output_event | No | ||
| output_enable | No | ||
| output_pulse_s | No | ||
| create_from_source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses side effects and preconditions: a disabled source channel is enabled automatically, the test must be enabled before running, create_from_source requires enabled and stopped state, and output_enable pulses the rear-panel AUX OUT connector on mask events. It still omits some behaviors, such as persistence and what happens to existing mask settings, but it is substantially informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the high-level label, then uses a clean parameter list. Almost every line earns its place by supplying schema-absent semantics. It could be slightly better structured with an explicit tool verb and a short usage sentence, but it is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no annotations and 0% schema description coverage, the description covers most parameters and several important preconditions and side effects. However, it lacks any description for the enable parameter and gives no sibling routing to distinguish it from get_mask_config, get_mask_result, or mask save/load tools. The presence of an output schema means return values need not be explained, but the usage and one parameter gap keep completeness only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it largely does: it documents 9 of the 10 parameters, including enum values for source, operate, and output_event, and numeric ranges for x_adjust, y_adjust, and output_pulse_s. The notable omission is the enable parameter, which appears in the schema but is not described as an argument. Because of that gap, it falls short of a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels the tool as a 'Pass/fail mask test' and then lists parameters, which implies configuration, but it never explicitly says it configures or sets mask test settings. It also does not distinguish itself from sibling tools like get_mask_config or get_mask_result. The parameter list gives enough context to infer purpose, but the prose itself is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes preconditions for particular parameters, such as enabling the test before running it and enabling/stopping before create_from_source. However, it gives no overall guidance on when to use configure_mask versus get_mask_config, get_mask_result, save_mask_on_instrument, or load_mask_on_instrument. The agent must infer usage from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_mathA
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).
| Name | Required | Description | Default |
|---|---|---|---|
| grid | No | ||
| extra | No | ||
| index | No | ||
| reset | No | ||
| scale | No | ||
| expand | No | ||
| invert | No | ||
| offset | No | ||
| dismode | No | ||
| display | No | ||
| source1 | No | ||
| source2 | No | ||
| distance | No | ||
| fft_mode | No | ||
| fft_unit | No | ||
| lsource1 | No | ||
| lsource2 | No | ||
| operator | No | ||
| wavetype | No | ||
| fft_scale | No | ||
| filter_w1 | No | ||
| filter_w2 | No | ||
| fft_end_hz | No | ||
| fft_offset | No | ||
| fft_source | No | ||
| fft_window | No | ||
| label_show | No | ||
| threshold1 | No | ||
| threshold2 | No | ||
| threshold3 | No | ||
| threshold4 | No | ||
| filter_type | No | ||
| sensitivity | No | ||
| fft_start_hz | No | ||
| fft_avg_count | No | ||
| fft_hscale_hz | No | ||
| fft_hcenter_hz | No | ||
| fft_search_num | No | ||
| fft_search_order | No | ||
| fft_search_enable | No | ||
| fft_search_excursion | No | ||
| fft_search_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
configure_measure_amplitudeB
Amplitude measurement method (:MEASure:AMP tree).
type: overall measurement type, THReshold | RANGe | AMPMethod (AMPMethod enables this tree); method: AUTO | MANual amplitude method; top/base: top/base value type for the manual method, HISTogram | MAXMin.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| base | No | ||
| type | No | ||
| method | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It notes that AMPMethod enables the tree, which is a useful dependency, but it does not state that this is a mutation, what instrument state changes, permissions, persistence, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the purpose before parameter details. The fragmentary first sentence and compact semicolon-separated list are efficient, though not polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and parameter values, and an output schema exists for return values. However, for a configuration tool it omits usage context and behavioral effects, leaving the agent unable to judge when or why to call it beyond setting parameter values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: it explains each of the four optional parameters and lists valid values (THReshold/RANGe/AMPMethod, AUTO/MANual, HISTogram/MAXMin), adding substantial meaning beyond the bare string schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource, the amplitude measurement method, and anchors it to the SCPI :MEASure:AMP tree. It does not explicitly name or contrast with sibling measurement-configuration tools, so sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are provided. It explains parameter choices but not the context in which this tool should be selected over configure_measure_setup or other measure tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_measure_regionA
Measurement range (gating region) configuration.
area: MAIN | ZOOM (needs delayed sweep) | CURSor (custom region); type: measurement type THReshold | RANGe | AMPMethod; cursor_ax/cursor_bx: cursor-region boundaries in s (for area=CURSor); link_cursors: tie region cursor A and B together (:MEASure:CREGion:CABX).
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| type | No | ||
| cursor_ax | No | ||
| cursor_bx | No | ||
| link_cursors | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds some behavioral context (ZOOM requires delayed sweep, link_cursors ties cursors, references SCPI command) but omits side effects, persistence, and interaction with other measurement settings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose, then uses a compact list for parameters. Every line earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 are not needed. However, for a configuration tool with no annotations, the description lacks broader usage context and behavioral details beyond parameter semantics, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does so thoroughly by defining allowed values and semantics for area, type, cursor_ax, cursor_bx, and link_cursors, including units and the condition 'for area=CURSor'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool configures the measurement range (gating region), a specific resource. It does not explicitly differentiate from siblings like configure_measure_setup or set_cursor, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists parameter options and their meanings, but provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites beyond the note that ZOOM 'needs delayed sweep'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_measure_setupB
General measurement configuration.
source: default measurement source (CH1..CH4 / MATH1..4 / D0..D15); all_measure_source: All-Measure source (CH1..CH4, or OFF to disable); indicator: measurement auto-cursor on/off; category: measure menu category, 0=vertical, 1=horizontal, 2=other; delete_items: clear all enabled measurement items (:MEASure:DELete).
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| category | No | ||
| indicator | No | ||
| delete_items | No | ||
| all_measure_source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure. It usefully notes that delete_items clears all enabled measurement items (the destructive effect and SCPI command :MEASure:DELete), but omits whether settings persist, what instrument state is required, or what happens on default invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a short purpose line followed by a compact per-parameter list; every line earns its place. The list form is easy to scan and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and parameters are well covered. However, as a mutation-config tool with no annotations, it lacks usage context, prerequisites, and sibling differentiation, leaving gaps for correct invocation decisions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it documents all five parameters, including valid source values (CH1..CH4 / MATH1..4 / D0..D15), OFF semantics, boolean meaning for indicator, and category codes 0/1/2. Only minor formatting detail is lacking.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'General measurement configuration' states a verb+resource, and the parameter enumeration clarifies what is configured (source, all-measure source, indicator, category, deletion). It is reasonably clear but does not distinguish itself from measurement siblings like set_measure_statistics, measure_item, or set_measure_sources_ab.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite/state requirements, and no mention of alternatives among the many measure-related siblings. The agent is left to infer purpose purely from the parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_quickA
Configure the QUICK button operation (not the quick measurement readout -- use measure_quick for that).
operation: SIMage (save screen image) | SWAVe (save waveform) | SSETup (save setup) | AMEasure (all measure) | SRESet (statistics reset) | RECord (waveform record) | SSAVe (save group). Short forms (SIM, SWAV, SSET, AME, SRES, REC, SSAV) are accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only lists accepted values and never says what the configuration changes, whether it persists across power cycles, whether it requires remote-control mode, or when the change takes effect — all important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the disambiguating clause, then a compact one-line enumeration of values. Every line is functional; the layout is dense but readable and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the value domain is fully documented. For a mutation tool with zero annotations, however, the description leaves unstated the persistence, scope, and remote-control prerequisites of the change — a meaningful omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the schema defines the parameter only as an untyped string, so the description does the entire job: it enumerates all seven operations with their expansions plus accepted short forms. It does not state what happens if 'operation' is omitted (default null), which is the one remaining gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (configure) and resource (the QUICK button operation) and explicitly contrasts itself with the sibling measure_quick. An agent can distinguish this from measure_quick without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical gives a clear when-not condition and names the correct alternative (measure_quick). It does not address adjacent save-related siblings (configure_save, save_setup), but the primary ambiguity is resolved explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_recordA
Waveform recorder and playback.
Recording: operate RUN|STOP; frames: number of frames to record (>= 1, frames_max=True records the maximum); interval_s: frame interval 10 ns .. 1 s; prompt: beep when recording completes. Playback: playback_operate RUN|STOP; playback_current / playback_start / playback_end: frame numbers (>= 1); playback_interval_s: 1 ms .. 1 s; playback_mode REPeat|SINGle; playback_direction FORWard|BACKward; playback_step BACK|NEXT steps one frame manually; play_from FFIRst|FEND restarts manual playback from an end. The documented legacy duplicates (:RECord:STARt, :RECord:FRAMes, :RECord:CURRent, :RECord:PLAY) stay reachable via extra, e.g. {"STARt": 1}; unknown keywords raise ValueError.
| Name | Required | Description | Default |
|---|---|---|---|
| extra | No | ||
| enable | No | ||
| frames | No | ||
| prompt | No | ||
| operate | No | ||
| play_from | No | ||
| frames_max | No | ||
| interval_s | No | ||
| playback_end | No | ||
| playback_mode | No | ||
| playback_step | No | ||
| playback_start | No | ||
| playback_current | No | ||
| playback_operate | No | ||
| playback_direction | No | ||
| playback_interval_s | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses valid ranges (10 ns .. 1 s; 1 ms .. 1 s), the enum options for mode/direction/step, and error behavior (unknown keywords raise ValueError). It stops short of stating whether this is a persistent write, connection requirements, or interaction effects on other subsystems.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then uses clear 'Recording:' / 'Playback:' labels with compact clause-style parameter notes. Given 16 undocumented parameters, every sentence is load-bearing and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the description covers the operations, value domains, and error behavior for a 16-parameter, zero-coverage schema. The undocumented 'enable' parameter and absence of when-to-use context are the only notable omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents nearly all 16 parameters with value options and ranges (operate RUN|STOP, frames_max semantics, playback_mode REPeat|SINGle, etc.). Only 'enable' is left undocumented, a minor gap against otherwise thorough coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb-plus-resource ('Waveform recorder and playback') and then enumerates the exact recording and playback operations it controls. An agent can distinguish it from sibling configurators like configure_search or configure_la from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description details the parameters and their operations but never states when to reach for this tool versus alternatives such as get_record_status or other configure_* siblings, nor any prerequisites (e.g. connection state). Usage is implied by the recording/playback split rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_referenceA
Reference waveform REF1..REF10 (manual 3.20).
source: D0..D15, CH1..CH4 or MATH1..MATH4 (must currently be enabled).
vscale/voffset: vertical scale/offset of the reference trace in V (only
available once a waveform has been saved into the slot; the scale range
depends on the probe ratio and input impedance).
color: GRAY|GREen|BLUE|RED|ORANge.
label: per-slot label text; label_enable: label display for ALL
reference slots (global flag).
save_current captures the source channel's current waveform into the
reference slot (:REFerence:CURRent + :REFerence:SAVE, source must be
given); reset restores the default scale/offset.
There is no reference save-to-file / load-from-file command in the
:REFerence subsystem — exporting a trace to disk goes through
get_waveform.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| color | No | ||
| label | No | ||
| reset | No | ||
| source | No | ||
| vscale | No | ||
| voffset | No | ||
| label_enable | No | ||
| save_current | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full behavioral burden and does so well: it discloses prerequisites (enabled source, saved waveform before scale/offset is meaningful), the side effect of save_current (:REFerence:CURRent + :REFerence:SAVE), and that reset restores default scale/offset. It omits any return/acknowledgement behavior, but that is covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is dense but front-loads the resource and resource-domain first, then groups per-parameter semantics, then the save_current/reset behaviors. The parenthetical '(manual 3.20)' and some restatement of enum options are minor overhead, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter configure call with an output schema present, the description supplies the missing pieces: prerequisites, global-vs-per-slot semantics for label_enable, and the negative guidance about file save/load in the :REFerence subsystem. Nothing an agent needs to invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there are 9 parameters, so the description must compensate — and it does: ref maps to slots REF1..REF10, source lists valid values D0..D15/CH1..CH4/MATH1..MATH4 with an enablement caveat, color enumerates GRAY/GREen/BLUE/RED/ORANge, vscale/voffset get units and range dependencies, and label_enable is clarified as a global flag. Every parameter carries meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact resource ('Reference waveform REF1..REF10') and enumerates the manipulable attributes (source, vscale/voffset, color, label, save_current, reset), so an agent knows this configures reference trace slots. It does not explicitly name the counterpart getter (get_reference_config) to sharpen the boundary, but the verb/resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real selection conditions: source 'must currently be enabled', vscale/voffset only work 'once a waveform has been saved into the slot', and it explicitly routes export-to-disk to get_waveform instead. It stops short of stating when NOT to use this tool versus get_reference_config, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_saveA
Image/file saving options.
invert: invert colors when saving images; color: COLor|GRAY; image_format: PNG|BMP|JPG; header: print model + date banner on images; overlap: overwrite same-name files; prefix: default filename prefix (max 16 chars, no extension); pathname: default save directory on the instrument, e.g. "C:/new".
extra: only documented :SAVE option keywords, e.g. {"PREFix": "Rigol"}.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| extra | No | ||
| header | No | ||
| invert | No | ||
| prefix | No | ||
| overlap | No | ||
| pathname | No | ||
| image_format | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it says nothing about whether settings apply immediately or persist, whether they affect the instrument state, or what permissions/context are needed. The one behavioral constraint offered — that 'extra' accepts only documented :SAVE keywords — is useful but narrow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one line, followed by a tight parameter-by-parameter list with no filler. Every clause adds a distinct piece of information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and all eight parameters are covered, making the definition largely self-sufficient for invocation. What is missing is the surrounding context — whether these settings persist and how this tool relates to the save/get-save siblings — which the description does not address.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the schema contains no descriptions or enums, so the description is the sole source of parameter meaning. It documents all eight parameters, including enum-like values (COLor|GRAY, PNG|BMP|JPG), a length/format constraint on prefix (max 16 chars, no extension), a pathname example, and the accepted shape of 'extra' — exactly the compensation a 0%-coverage schema requires.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The header 'Image/file saving options' combined with the per-field docs make it clear this configures how files/images are saved on the instrument. It is a noun phrase rather than an explicit verb+resource, and it never names a sibling such as get_save_config or save_image_on_instrument, so an agent gets the purpose but no routing signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus get_save_config, get_save_status, save_image_on_instrument, or save_waveform_on_instrument. No prerequisites or ordering (e.g. must it precede a save call?) are given, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_searchA
Event search on the acquired waveform (manual 3.22).
mode: EDGE|PULSe (only these two search types are documented). Edge search: edge_slope POSitive|NEGative|EITHer, edge_source CHANnel1..CHANnel4, edge_threshold in V. Pulse search: pulse_polarity POSitive|NEGative, pulse_qualifier GREater|LESS|GLESs, pulse_source CHANnel1..CHANnel4, pulse_uwidth_s / pulse_lwidth_s 800 ps .. 10 s, pulse_threshold in V. Documented keywords may also be passed via extra, e.g. {"EDGE:SLOPe": "NEGative"}; unknown keywords raise ValueError.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| extra | No | ||
| enable | No | ||
| edge_slope | No | ||
| edge_source | No | ||
| pulse_source | No | ||
| edge_threshold | No | ||
| pulse_lwidth_s | No | ||
| pulse_polarity | No | ||
| pulse_uwidth_s | No | ||
| pulse_qualifier | No | ||
| pulse_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it documents accepted value domains, physical ranges (800 ps .. 10 s), the extra-keyword escape hatch with an example, and the failure mode ('unknown keywords raise ValueError'). It does not mention whether an existing search configuration is overwritten or whether errors surface elsewhere, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then mode options, then per-mode parameter groups. Sentences are dense but each carries concrete information. Slightly terse fragment style with some abbreviations, but no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter configuration tool with no annotations and no schema descriptions, the description supplies the value domains, units, ranges and the extra mechanism an agent needs. An output schema exists, so return values need not be explained. The omission of enable and of any interaction with an existing search config are the only real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all 12 parameters. It successfully documents mode, the edge_* and pulse_* families with allowed values and units, plus the semantics of extra. It covers most but not all parameters (e.g. enable is never mentioned), so it is strong but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: configuring event search on the acquired waveform, with a manual reference (3.22). It enumerates exactly which search types are supported and what parameters each takes. Sibling tools like get_search_config, get_search_event_time and navigate_to_event exist, but the description doesn't explicitly name them as alternatives, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains what each mode does and constrains documented choices ('only these two search types are documented'), which implies when to pick EDGE vs PULSe. But it never states when to call this tool versus get_search_config or navigate_to_event, nor any prerequisite that a waveform must be acquired first. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_smbB
Configure SMB (Windows share) file saving.
server_path: "\192.168.1.5\Share" (IP address + English-letters share name); username/password: printable ASCII, no Chinese characters; autoconnect: reconnect the share at boot.
| Name | Required | Description | Default |
|---|---|---|---|
| password | No | ||
| username | No | ||
| autoconnect | No | ||
| server_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It only describes parameter constraints and the meaning of autoconnect; it does not disclose side effects, persistence, required permissions, or how it interacts with existing SMB configuration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and efficient, using a short opening sentence followed by structured parameter notes separated by semicolons. No verbose filler, though it could be slightly more complete without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a configuration mutation with no annotations, but an output schema exists so return values need not be explained. Parameter semantics are covered well, yet usage context and behavioral effects are missing, leaving the description only partially complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains all four parameters: server_path format with an example, username/password character restrictions, and what autoconnect does. This adds meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Configure SMB (Windows share) file saving.' This distinguishes it from general save tools, but it does not differentiate from SMB-related siblings like smb_connect, smb_disconnect, or get_smb_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as smb_connect or configure_save. It also omits prerequisites, such as whether a connection must already exist or whether it modifies existing settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connectC
Connect to the oscilloscope.
resource defaults to MHO98_RESOURCE env or the built-in default
(TCPIP0::169.254.112.67::5555::SOCKET). USB example:
USB0::0x1AB3::0x****::DSN********::INSTR
| Name | Required | Description | Default |
|---|---|---|---|
| resource | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions a default resource fallback but omits whether the connection is persistent, what happens on failure, whether reconnection is needed, or how it relates to the sibling 'disconnect' and 'list_resources'. Significant gaps for a state-establishing call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Terse and front-loaded: the action sentence comes first, then the default behavior, then an example. No filler, though the example could be integrated more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a connection-establishment tool with no annotations, no output schema, and 0% schema description coverage, the description should say more about lifecycle (persistence, failure behavior, relation to disconnect). What's present is helpful but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does explain the default resolution order (MHO98_RESOURCE env then built-in TCPIP default) and supplies a concrete USB VISA example, which is genuinely useful. However it doesn't document expected VISA resource-string syntax beyond the example or other transports.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Connect) and resource (the oscilloscope), and the sibling list confirms 'disconnect' as its opposite. It doesn't explicitly differentiate itself from other connection-adjacent siblings like smb_connect, but the scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to call this versus alternatives, no mention that it should precede other SCPI operations, and no guidance on prerequisites. Only the resource-string format is explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnectB
Close the current instrument connection.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose required state, side effects, reversibility, or what happens if no connection exists. 'Close' implies termination but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words, front-loaded. Appropriate size for a simple action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter tool, the description suffices to invoke the action. However, with no annotations and no output schema, it should include more context about prerequisites and effects to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the schema provides no additional semantics. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Close' and resource 'current instrument connection,' making the action unambiguous. However, it does not explicitly name or differentiate from siblings like connect or smb_disconnect, though the phrase 'instrument connection' implies a VISA session rather than SMB.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites (e.g., must be connected) or reference the sibling connect tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_bus_on_instrumentC
Export the event table to a CSV on the INSTRUMENT's own storage (USB stick), e.g. path='C:/123.csv' or 'E:/decode.csv'.
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, and it leaves major gaps: no mention of file overwrite behavior, error handling when no USB is present, or permissions. The 'on the INSTRUMENT's own storage' note is useful but the only real disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the core action and destination front-loaded, followed by a helpful example. Nothing is wasted, though it is terse enough to omit needed context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format need not be described. However, for a 2-required-param tool with 0% schema coverage and no annotations, the omission of any 'bus' guidance and any usage context leaves it only marginally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clarifies the 'path' semantics well via concrete examples ('C:/123.csv', 'E:/decode.csv'), but the required 'bus' integer parameter receives no explanation at all — an agent cannot tell whether it is a bus index, a bus number, or something else.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (export) and resource (event table) with a clear destination (CSV on the instrument's own storage/USB stick). It distinguishes itself from host-side exports by emphasizing 'INSTRUMENT's own storage,' but never names the sibling it competes with (e.g., export_waveform_csv or the save_*_on_instrument family).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys what happens but no when-to-use guidance or exclusions. With siblings like export_waveform_csv and save_waveform_on_instrument, an agent has no basis for choosing this tool over them beyond the resource noun.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_waveform_csvC
Convenience wrapper: full-memory CSV export (stops the instrument).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | RAW | |
| stop | No | ||
| start | No | ||
| source | No | CH1 | |
| filename | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does flag a genuinely important side effect ('stops the instrument'), which is real value beyond the schema, but it omits where the file is written, permissions/access needs, and typical runtime or size implications of a full-memory export.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the caveat about stopping the instrument is placed where it will be read. It is arguably too terse, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 undocumented parameters, no annotations, and a non-obvious side effect, the description leaves too much for the agent to infer. The output schema covers return values, but parameter meaning and file-destination behavior are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description must compensate. It adds essentially nothing about mode, source, start/stop, or filename; only 'full-memory' loosely hints at the range arguments. The other parameters (mode RAW, source CH1, filename) are unexplained in both description and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (CSV export of waveform data) and a scope qualifier ('full-memory'), which separates it from siblings like save_waveform_on_instrument and get_waveform. It does not explicitly say whether the CSV lands on the host or the instrument, leaving mild ambiguity against those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus save_waveform_on_instrument, get_waveform, or save_memory_waveform_on_instrument. The 'full-memory' qualifier implies a use case, but nothing tells the agent when this is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_acquireA
Read back acquisition settings incl. current sample rate.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Read back' implies a non-mutating read, which is useful, but it does not explicitly confirm read-only safety, permissions, or side effects. For a simple getter this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficiently structured sentence with no wasted words. The core action and scope are front-loaded, and the additional sample-rate detail is appropriately brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, zero input parameters, and the presence of an output schema, the description provides enough context for correct invocation. It does not need to explain return values because the output schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 per the scoring rules. The description adds the useful note that the returned settings include the current sample rate, but there are no input parameters to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read back') and a precise resource ('acquisition settings'), and the phrase 'incl. current sample rate' clarifies scope further. It clearly contrasts with the sibling set_acquire by verb, so an agent can distinguish a read from a write without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no guidance on when to use it versus alternatives such as set_acquire, get_timebase, or get_channel. There is no explicit context, prerequisite, or exclusion to help an agent choose it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_autoset_optionsA
Read back the AUTO (autoset) option states (all return 0 or 1).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does clarify the operation is a non-mutating read and that all returned values are binary (0 or 1), but says nothing about permissions, side effects, or rate/scope limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, and the only qualifier (binary return values) is appended compactly. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure needn't be explained, and there are no parameters to document. It is nearly complete, though it never enumerates which autoset options exist or what each flag controls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is no parameter semantics to document; baseline 4 applies. The parenthetical 'all return 0 or 1' adds value-domain context but is really a return-value note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Read back the AUTO (autoset) option states'. Clear read-only getter, and the naming pairs obviously with the sibling set_autoset_options. No explicit sibling mention, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance. The only implicit signal is that 'read back' contrasts with the set_autoset_options sibling, but the description never names it or states conditions for choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_awg_configA
Read back the core generator channel configuration (raw SCPI strings).
Covers output state, function, frequency, amplitude, offset, phase and impedance; use get_awg_full_config() for every :SOURce readback including period, high/low levels, duty, symmetry, arb path and modulation.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the return format ('raw SCPI strings') and enumerates the covered settings (output state, function, frequency, amplitude, offset, phase, impedance), which is genuine behavioral context. However it says nothing about channel range validation, whether the AWG must be enabled, or any error behavior for an invalid channel.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by a scoping/alternative clause. Nothing is redundant and the sizing matches the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the description covers scope and the sibling alternative adequately. The only real gap is the undocumented channel parameter, which leaves a minor hole for a tool whose sole input is that parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there is a single required parameter ('channel') that the description never mentions. It does not say what channel values are valid or how the channel number maps to the instrument's :SOURce<n> numbering, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Read back the core generator channel configuration') and immediately delimits scope with the parenthetical '(raw SCPI strings)'. It also names the exact sibling (get_awg_full_config) that covers the complementary superset, so the agent can distinguish the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent: use get_awg_full_config() when you need every :SOURce<n> readback such as period, high/low levels, duty, symmetry, arb path and modulation. That is a clear when-to-use-this-vs-alternative statement. It stops short of stating prerequisites or failure conditions, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_awg_full_configB
Read back every generator channel setting (manual 3.25.1 - 3.25.25).
Returns engineered values: booleans for states, floats (Hz, s, V, degrees, percent) for numerics and short-form strings for enums (e.g. function "SQU", modulation waveform "TRI"). Includes the loaded arbitrary waveform path and the complete AM/FM/PM modulation configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return semantics well (booleans for states, floats with units, enum short-forms like 'SQU'/'TRI', the arbitrary waveform path and AM/FM/PM modulation config), but says nothing about error behavior, invalid channels, or permissions for this read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then return-value detail. Two tight paragraphs with little waste, though the manual-section citation and enum examples add length without aiding invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so explaining return values is not strictly required, and the description does so anyway. However, it omits any channel-parameter meaning and sibling differentiation, leaving the invocation context incomplete for a 1-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% – the single 'channel' parameter has no description. The description never mentions the channel argument at all, so it fails to compensate for the schema gap by explaining valid ranges or which channel is targeted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Read back every generator channel setting') and cites the manual section (3.25.1 - 3.25.25), making the scope concrete. It does not explicitly distinguish itself from the sibling get_awg_config, so the 'full' vs. standard read distinction is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. The description never names the alternative get_awg_config or explains when to prefer this comprehensive read over the lighter one, leaving the agent to infer the difference from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bode_configA
Read back the full Bode plot configuration (manual 3.5.1 - 3.5.11).
voltage_range selects which frequency range's amplitude is queried by :BODeplot:VOLTage? (ALL|10|100|1K|10K|100K|1M|10M|25M or numeric forms). Returns engineered values: booleans for enables/run state, floats in Hz/V, int points per decade; ref_in/ref_out come back in short form (CHAN1..4).
| Name | Required | Description | Default |
|---|---|---|---|
| voltage_range | No | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that values are 'engineered' (booleans, floats in Hz/V, int points per decade) and that ref_in/ref_out come back in short form (CHAN1..4). This is meaningful behavioral context about return value formatting. It doesn't, however, describe side effects or whether reading changes state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably short and front-loaded with the purpose. However, the parenthetical manual reference and the parenthetical form note interrupt flow, and the second sentence mixes parameter explanation with return-value explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value format need not be fully explained. The description covers the parameter and some return formatting. But with 0% schema coverage for the parameter and no annotations, more context on the parameter's effect and any usage constraints would be expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does explain voltage_range selects the frequency range for :BODeplot:VOLTage? and lists the enum-like values, which is helpful. However, the schema shows anyOf string/integer/number with a default, and the description's numeric forms note is vague. The description adds only partial meaning for the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read back) and a specific resource (the full Bode plot configuration), with a manual section reference. The sibling set has get_bode_config, get_awg_config, etc., and this clearly identifies its scope as the complete Bode configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (read the full configuration) but doesn't state when to use this versus a hypothetical set_bode_config or other configuration-read tools. No explicit alternatives or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bus_configA
Read back the decoding bus configuration.
Default (no extra arguments): queries :BUS:MODE?, DISPlay? and LABel? only. Any of full=True / protocol= / thresholds= additionally reads FORMat/EVENt/POSition; full=True or protocol= also queries every per-protocol keyword the manual defines for the decoding type (returned under 'protocol_config', keyed by the SCPI keyword, e.g. 'RS232:BAUD'); thresholds= adds per-source threshold voltages.
protocol: explicitly select which protocol keyword set to query; by default the set follows the bus mode reported by the instrument. thresholds: threshold source types to query, e.g. ["TX","RX"] or ["SCL","SDA"] (manual 3.4.9) -> {type: volts string}.
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| full | No | ||
| protocol | No | ||
| thresholds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses which SCPI queries fire, that per-protocol keywords land under 'protocol_config' keyed by keyword (e.g. 'RS232:BAUD'), and that thresholds return {type: volts string}. It omits failure modes (invalid bus index, protocol mismatch) and any note on cost/latency of the full=True path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then organized into default-vs-optional-argument behavior and a short glossary for protocol/thresholds. Dense with SCPI jargon but nearly every clause carries information; the indented parameter notes are slightly redundant with the body.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be fully re-specified, yet the description still names the notable keys. For a 4-parameter readback tool with no annotations, this is close to complete; only error/edge-case behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: full, protocol and thresholds all get behavioral semantics beyond their names. The required 'bus' parameter is only indirectly explained via the ':BUS<n>:' notation, leaving valid-index range undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Read back the decoding bus configuration') and immediately scopes it by listing the exact SCPI queries issued. It does not explicitly name the write-side counterpart (configure_bus) or read_bus_data, so sibling differentiation is left to inference, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditional guidance: default invocation returns only MODE?/DISPlay?/LABel?, while full=True / protocol= / thresholds= each unlock additional query groups. It stops short of saying when to prefer this tool over alternatives such as read_bus_data or raw scpi.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_channelC
Read back the configuration of an analog channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'read back configuration', omitting the essential context that this is a read-only operation, what happens on an invalid channel number, and how it differs from get_channel_full. An output schema exists, so return values need not be explained, but the tool's scope and safety profile are not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the object of the operation front-loaded. It is appropriately brief, though the brevity here is partly under-specification rather than purely good conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool in a large family of near-identical getters with no annotations and 0% parameter coverage, a one-sentence description is insufficient. It fails to clarify scope relative to get_channel_full or explain the required channel argument, leaving important gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'channel' parameter has no description in either the schema or the description text. The description does not indicate what the channel argument is (index, range, valid values), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read back) and resource (configuration of an analog channel). This is clearer than many siblings, but it doesn't distinguish itself from the very similar 'get_channel_full' sibling, nor from 'set_channel' / 'get_trigger_config', leaving the agent to infer the scope difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. Crucially, the description gives no way to choose between this tool and 'get_channel_full', which reads similarly. The agent is left to guess which retrieval variant to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_channel_fullA
Read back the complete configuration of an analog channel.
Adds the vernier (fine adjustment), delay calibration (TCALibrate, in s) and label visibility queries to get_channel().
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Read back' implies a safe, non-mutating operation and it names the specific extra fields returned (vernier, TCALibrate in s, label visibility), but it does not cover any permission, timing, or side-effect considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler; the core purpose leads and the differential detail follows. Efficient, though the reference to internal names adds little standalone value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the description adequately conveys what is read. However, the undocumented channel parameter leaves a genuine gap for a tool whose only input must be supplied correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter 'channel' is undocumented in both schema and description. The description does not clarify the accepted channel range, numbering scheme, or indexing, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('read back the complete configuration of an analog channel') and explicitly positions it against the sibling get_channel() by naming the extra fields it adds. An agent can distinguish this from get_channel without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Adds ... queries to get_channel()' gives clear context that this is the fuller variant to use when the vernier, delay calibration, or label visibility fields are needed, implying get_channel() is the lighter alternative. It stops short of an explicit when-not rule, but the routing context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cursor_valuesA
Read cursor positions and deltas for the active cursor mode.
Manual-mode readings (ax, bx, ay, by, x_delta, 1/x_delta in Hz, y_delta) are always returned; track=True additionally reads the track-mode readings (track_* keys) and the track axis. Readings unavailable in the current mode come back as "<error ...>" strings.
| Name | Required | Description | Default |
|---|---|---|---|
| track | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so well: it explains what is always returned in manual mode, that track=True adds track-mode readings and the track axis, and that unavailable readings become '<error ...>' strings. It stops short of covering prerequisite states (e.g., whether a cursor mode must already be active), so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose and then progressively detailing mode behavior, parameter effect, and error format. Every sentence adds needed information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool whose output schema already documents the return keys, the description supplies the remaining context: what is always returned, what track=True adds, and how unavailable readings are represented. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single undocumented parameter. It does exactly that by explaining that track=True additionally reads track-mode readings (track_* keys) and the track axis, which is meaning beyond the schema's bare boolean default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (cursor positions and deltas) scoped to the active cursor mode. However, it does not distinguish itself from the sibling tool get_cursor_xy_values, leaving an agent to infer which cursor-reading tool is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by referencing the active cursor mode, but gives no explicit when-to-use or when-not-to-use guidance, nor does it name an alternative tool. An agent gets context but must infer the right situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cursor_xy_valuesA
Read XY-mode cursor positions and deltas (all values in V).
Only meaningful with :CURSor:MODE XY and the timebase in XY mode; unavailable readings come back as "<error ...>" strings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a reasonable job: it declares the unit (V), the required instrument state, and the failure behavior (unavailable readings returned as '<error ...>' strings). It does not cover permissions or returned structure, but the output schema handles the latter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and result, followed by the necessary precondition and error note. No filler; every clause adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with an output schema, the description supplies the essential context an agent needs: the required XY-mode state and the error-string convention. It is largely complete, though a pointer to the time-domain sibling would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to disambiguate, and it correctly adds no parameter noise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read XY-mode cursor positions and deltas') with units (V), which is far more than a restatement of the name. The 'XY-mode' qualifier implicitly separates it from the sibling get_cursor_values, but no sibling is explicitly named, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition: it is only meaningful with :CURSor:MODE XY and the timebase in XY mode. This tells the agent when the tool is applicable, but it never names the alternative (get_cursor_values) for time-domain cursors or states when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datetimeA
Read the instrument clock (:SYSTem:DATE? and :SYSTem:TIME?), returned as date 'YYYY-MM-DD', time 'HH:MM:SS' and a combined string.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it partially meets it: 'Read' implies a non-destructive, side-effect-free query and it documents the returned date/time formats. However, it says nothing about connection requirements, failure behavior, or whether the clock reflects instrument-local time, which matters for an instrument-control tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming the action, the underlying queries and the return formats, with no filler. Every clause adds information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read with an output schema present, the description is essentially complete about what is returned; the output schema covers the structured return values. Only minor operational context (connection/latency expectations) is absent, which is acceptable at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to clarify beyond confirming it is a no-argument read.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read'), a specific resource (the instrument clock) and even the underlying SCPI queries (:SYSTem:DATE?/:SYSTem:TIME?), so the operation is unambiguous. It does not explicitly name the complementary sibling (set_datetime), but the read/write distinction is evident from the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as set_datetime, get_system_info or get_system_config. Usage is only weakly implied by the verb 'Read'; there are no exclusions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_displayA
Read back the display settings.
type (VECT), persistence (MIN..10 or INF), waveform/grid/cursor brightness in percent, grid (FULL|HALF|NONE), and the ruler/color-grade/waveform-freeze states (0 or 1).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does state 'Read back,' which discloses the read-only, side-effect-free nature, and lists the returned settings. It does not mention permissions, rate limits, or any edge behavior, but for a simple getter this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action in one sentence, then gives a compact enumeration of the settings. No filler, though the field list is somewhat detailed for a description whose return values are already covered by the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with an output schema, the description adequately covers purpose and scope. The output schema handles return values, so the description needn't explain them, though its enumeration is helpful redundancy. Lacks only usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which sets the baseline at 4. The description's enumeration of returned fields is about outputs, not inputs, so it does not add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Read back the display settings') and enumerates the exact settings returned, making the scope precise. The read-vs-set distinction from its sibling set_display is inherent in the verb, so an agent can tell them apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus alternatives, nor any prerequisites or exclusions. Usage is only implicitly obvious from the name and the sibling set_display.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_errorsB
Read the instrument error queue (:SYSTem:ERRor?). Returns up to 20 entries.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the queue-read semantics and the 20-entry cap, but omits the critical fact that the schema's `clear` parameter defaults to true, meaning a plain call silently clears the queue it just read. That destructive-by-default behavior is exactly what an agent must know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, with no filler. Nothing here is wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, but for a tool whose unsurfaced default argument wipes the error queue, the description should at minimum warn about the clearing behavior and note when to use it versus the other status tools. Those omissions make it incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single `clear` boolean parameter is never mentioned in the description. Since `clear` defaults to true and changes whether the queue is wiped, the description's silence on it is a real gap rather than harmless brevity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read the instrument error queue') and even pins the exact SCPI query (:SYSTem:ERRor?), so an agent knows precisely what this does. It is distinguishable from siblings like get_status, get_ieee488_status, and clear_status, which target different status registers/queues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and the error-queue semantics (poll after sending commands), but the description never states when to prefer this over get_status, get_ieee488_status, or clear_status, nor when a read is appropriate. No alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_histogram_configB
Read back the histogram configuration (manual 3.11.1-3.11.8).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Read back' implies a non-destructive read, which is useful, but it says nothing about permissions, side effects, or rate behavior. The manual section reference is opaque to an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no filler, and the action is front-loaded. The parenthetical '(manual 3.11.1-3.11.8)' is noise for an agent that cannot consult a document, slightly diluting the value of the brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and with zero parameters the schema is trivially covered. The description is adequate for a simple read-only getter but adds no operational context an agent might want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to document and the baseline is 4. No parameter meaning is missing or misrepresented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read back') and resource ('histogram configuration'), so an agent knows this is the getter counterpart to set_histogram. However, it does not explicitly distinguish itself from siblings like read_histogram_stats or set_histogram, which matters in a large sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites, and no explicit routing to alternatives such as set_histogram for writing or read_histogram_stats for statistics. The read semantics are implied only by the word 'Read'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_idnA
Query instrument identity (*IDN?): manufacturer, model, serial, firmware.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Query' and '*IDN?' imply a read-only, side-effect-free operation, but the description does not explicitly state safety, connection requirements, or side effects. The returned fields are covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and resource, then lists the fields. No words are wasted and the structure is appropriate for a simple query tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with an output schema, the description is nearly complete: it names the command and returned fields. It omits context about when to use it versus other identity/system-info tools and whether a connection is prerequisite.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document. Per the rubric, zero parameters establish a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Query'), resource ('instrument identity'), the SCPI command (*IDN?), and the returned fields (manufacturer, model, serial, firmware). It is clear, but it does not explicitly differentiate itself from siblings like get_system_info or get_system_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance, no prerequisites (e.g., connection required), and no alternatives to consider. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ieee488_statusA
Read the IEEE488.2 status registers (*ESR?, *STB?) and their enable masks (*ESE?, *SRE?), with named-bit decoding.
*ESR? reads-and-clears the standard event register; *STB? clears the status byte. Bits follow manual tables 3.153/3.154.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the critical behavioral trait: *ESR? is read-and-clears and *STB? clears the status byte, so calling it mutates state. That is exactly the kind of destructive side effect an agent needs. It does not cover polling frequency, timing, or failure modes, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, front-loaded with the purpose and then the side-effect detail. The manual table references are slightly cryptic but do not bloat the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and with zero parameters the description only needs purpose plus behavior — both are covered. Only the lack of routing guidance against sibling status tools keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the schema has nothing to explain and the baseline is 4. The description adds useful register-naming context but no parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb ('Read') plus the exact resources (*ESR?, *STB? and their enable masks *ESE?, *SRE?) and adds named-bit decoding. It is clearly distinguishable from the sibling set_ieee488_enable (which writes the masks) and from clear_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys context (this gathers status/event registers with decoding) but never states when to prefer it over get_status, get_errors, or clear_status, nor any preconditions. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyboard_checkA
Front-panel key/knob self-test results (:SYSTem:KEYBoard:CHECk?).
Only meaningful after running the key test on the instrument (Utility > Self Check > Key Test); untested keys report false. Returns the parsed result map plus the raw string.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does add real semantics beyond the signature: the caveat that untested keys report false, and the return shape (parsed result map plus raw string). It does not address permissions or failure/error behavior, which is a minor gap for a read query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, each earning its place: the SCPI identity, the precondition, and the return value. The most decision-relevant constraint (must run key test first) is front-loaded after the identity clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers what the tool is, the prerequisite to make results meaningful, key caveat, and return form. Because an output schema exists, the return value need not be detailed further, though the description's mention of the parsed map and raw string is a helpful bonus.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline there is no parameter semantics to document in the description. The description correctly focuses on preconditions and return semantics instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (front-panel key/knob self-test results), and names the backing SCPI query (:SYSTem:KEYBoard:CHECk?), which pins down exactly what is retrieved. It also implicitly separates itself from the sibling self_test by framing this as a results read that depends on a prior key test rather than as the test itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition: 'Only meaningful after running the key test on the instrument (Utility > Self Check > Key Test),' including the exact UI path that satisfies it. It lacks an explicit named alternative (e.g., 'use self_test to run the test first'), but the when/when-not context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_la_configB
Read back the logic analyzer configuration (manual 3.13): enable, active channel, autosort, size, per-group display state and threshold. With digital_channel (D0..D15), also reads that channel's on/off state and label.
| Name | Required | Description | Default |
|---|---|---|---|
| digital_channel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read, but does not disclose authorization state, whether reading is side-effect free, whether the returned config reflects the current instrument state or a cached one. It does add the important side effect that passing digital_channel changes what is returned, but that is parameter behavior, not broader behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main resource read, followed by the conditional parameter effect. No filler; every clause carries information, including the manual reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required. For a parameterless-by-default read with a clear field list included in the description, most is covered. Gaps remain: no explicit note that the tool is a safe read, no mention of sibling configure_la, and no error behavior. Given no annotations and a 0% schema description, a 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single parameter 'digital_channel', so the description must compensate. It does explain the parameter's effect ('also reads that channel's on/off state and label') and gives the accepted range D0..D15, which is real added value. However, it does not specify the exact expected format (case, range enforcement), so it remains only partially compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read back') and resource ('logic analyzer configuration') and enumerates exactly which fields are returned (enable, active channel, autosort, size, per-group display state, threshold). This is indistinguishable from the sibling get_channel/get_display because it explicitly names the LA config surface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use/alternatives guidance. The description says the tool reads LA config, but a sibling configure_la exists and the description never mentions whether you should use this before/after configuring, or how it relates to configure_la. It also does not warn against calling with no argument vs with a channel. The one conditional ('With digital_channel...') is about parameter effect, not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lan_configA
Read the full LAN configuration.
Returns IP address, subnet mask, gateway, DNS, DHCP server, MAC, the DHCP/Auto-IP/Static(mANual)/mDNS mode switches (as booleans), hostname, description, link status and the VISA resource string.
visa_type: USB|LXI|SOCKet — address type for :LAN:VISA? (default LXI). Link status values: UNLINK, CONNECTED, INIT, IPCONFLICT, BUSY, CONFIGURED, DHCPFAILED, INVALIDIP, IPLOSE.
| Name | Required | Description | Default |
|---|---|---|---|
| visa_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it does reasonably well: 'Read' establishes a non-mutating operation, the return contents are spelled out, and the link status value set (UNLINK, CONNECTED, INIT, IPCONFLICT, BUSY, CONFIGURED, DHCPFAILED, INVALIDIP, IPLOSE) tells the agent what states to expect. It omits any permission/auth or connection-requirement context, which is a minor gap for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then return fields, then the parameter and its enum — a logical order with no filler sentences. The return-field inventory is long but each item is informative; it becomes partly redundant given an output schema exists, which keeps this from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-param read tool with an output schema present, the definition covers purpose, parameter values, and expected link-status states, so an agent can call it correctly. The missing piece is usage guidance relative to set_lan and other get_* siblings, which would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the lone parameter's schema entry is just a nullable string, so the description must compensate — and it does, giving the allowed values (USB|LXI|SOCKet), the meaning (address type for :LAN:VISA?), and the default (LXI). The only nit is that the schema declares default null while the description says default LXI, a mild ambiguity rather than a real conflict.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Read the full LAN configuration') and enumerates exactly what is returned (IP, subnet, gateway, DNS, DHCP, MAC, mode switches, hostname, link status, VISA resource string). This clearly separates it from write-side siblings like set_lan, but it never names an alternative explicitly, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of set_lan as the counterpart write tool, and no conditions or prerequisites for calling this versus get_system_config or get_idn. Usage must be inferred entirely from the name and return field list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mask_configB
Read back the pass/fail test configuration (manual 3.15).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Read back' implies a non-mutating read, and the output schema covers return values, but there is no mention of prerequisites, state dependence, or whether the config is instrument-side or software-side. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource. Nothing extraneous; the manual reference is a compact pointer rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read tool with an output schema, the return values are already documented structurally, so the description only needs to establish purpose. It does that, though it omits any note about when the configuration is meaningful (e.g., after configure_mask).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline 4 applies. There is nothing for the description to clarify about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('read back') and resource ('pass/fail test configuration'), which maps cleanly to mask configuration. It does not explicitly distinguish itself from the nearby configure_mask / get_mask_result siblings, but the resource name is specific enough to be identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call it, whether it requires configure_mask to have run first, or how it relates to get_mask_result. The only contextual hint is the '(manual 3.15)' reference, which is not actionable for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mask_resultB
Mask test counters: failed, passed and total frame counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it only lists the counters. It does not say the call is a read-only, side-effect-free query, nor that a mask test must be active for meaningful counters, nor whether counters reset between runs (a relevant concern given the sibling `reset`).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no filler. It is a fragment rather than a full sentence, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not document return structure, and it correctly avoids repeating detailed return values. However, for a tool with no annotations it omits prerequisites and the calling context needed to use it correctly, leaving it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is trivially complete, so there is nothing for the description to compensate for; the baseline for a no-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (mask test counters) and the specific values returned (failed, passed, total frame counts), which is enough for an agent to recognize this as the mask-test result reader as opposed to configure_mask or get_mask_config. It stops short of explicitly contrasting itself with those siblings, so it is clear but not sharply differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this tool, whether a mask test must be configured/running first, or how it relates to get_mask_config and configure_mask. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_math_configC
Read back the configuration of a math channel.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Read back' usefully discloses a non-mutating read operation, but it adds no detail about side effects, permissions, or scope; for a simple getter that is minimal but adequate, not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no waste. It is concise and easy to scan, though its terseness borders on under-specification rather than over-explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value explanation is not needed. However, with no annotations, an undocumented parameter, and a sibling get_math_config_full, the description leaves the agent without enough context to choose or invoke this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single index parameter is undocumented in the schema. The phrase 'a math channel' hints that index selects a channel, but it does not explain valid values, the default of 1, or its meaning. This is insufficient compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific read operation and resource: reading back a math channel's configuration. It distinguishes get from configure, but does not differentiate itself from sibling get_math_config_full, so it is clear without sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, and no conditions for selecting this getter over get_math_config_full or get_math_waveform. Use is only implicitly inferable from 'Read back'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_math_config_fullA
Read back the complete configuration of a math channel.
get_math_config() plus every other queryable :MATH parameter: invert, grid/expand/wavetype, logic sources, the whole FFT block (source, window, unit, mode, average count, scale/offset, frequency span/center, peak search settings), filter type and cutoffs, logic sensitivity/distance/ thresholds, label display, display mode and the math window title. Numeric replies are converted (ints/floats).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that the operation is a read ('Read back'), that it is comprehensive, and that numeric replies are type-converted to ints/floats — useful context. It does not address invalid index handling, permissions, or error behavior, leaving notable gaps for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first sentence, then a structured enumeration of what is included. The long parameter list is informative rather than padding, though it borders on verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described, and the description thoroughly covers the scope of the read. The only real omission is the meaning/range of the index parameter, which matters since it is the sole input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'index' has 0% schema coverage and the description never explains it; the ':MATH<n>' notation hints at a channel selector but never states that index selects which math channel, its valid range, or the default. The description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read back) and resource (math channel configuration), and explicitly positions itself against a sibling: 'get_math_config() plus every other queryable :MATH<n> parameter.' An agent can distinguish it from get_math_config and configure_math without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'get_math_config() plus...' framing makes clear this is the superset/comprehensive variant, which implies when to prefer it. However, it never states the inverse condition (e.g. use the non-full variant when you only need the basic read), so the routing guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_math_fft_peaksA
Query the FFT peak search results table (:MATH:FFT:SEARch:RES?, manual 3.16.30). Requires the peak search to be enabled first (configure_math fft_search_enable=True).
Returns up to 15 rows — rank, frequency (Hz when the unit is recognized) and amplitude with its unit as displayed by the instrument — plus the raw reply. The table is small enough to return inline (not sample data).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the enablement prerequisite, the shape of the return (up to 15 rows of rank/frequency/amplitude with units, plus raw reply), and confirms the table is small enough to return inline. It stops short of stating failure behavior when the search is not enabled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and resource, then the prerequisite, then the return shape. Each sentence carries useful information, though the manual citation and unit caveat add mild verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be re-explained, yet the description still summarizes the row contents. Combined with the disclosed precondition, nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single 'index' parameter and the description never explicitly defines it; the ':MATH<n>' notation only implicitly hints that index selects the math channel. That partial hint keeps it at baseline rather than lower, but the parameter meaning is not made unambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (query) and resource (FFT peak search results table) and anchors it to the exact SCPI command (:MATH<n>:FFT:SEARch:RES?) with a manual reference. An agent can distinguish this from siblings like configure_search or get_search_config without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the precondition that the peak search must be enabled first and names the sibling and parameter to do so (configure_math fft_search_enable=True). This is clear when-to-use guidance, though it does not mention what happens if called before enabling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_math_waveformA
Acquire the computed waveform of math channel MATH1..MATH4 to a file.
There is no :MATH:DATA? command on this model — math data is read through :WAVeform:SOURce MATH + :WAVeform:DATA? (manual 3.28.1). Firmware quirk (verified on 00.01.00): MATH sources are only readable in NORMal waveform mode, so this wrapper always uses NORMal. Samples go to disk exactly like get_waveform; only statistics come back inline.
| Name | Required | Description | Default |
|---|---|---|---|
| fmt | No | BYTE | |
| index | No | ||
| filename | No | ||
| save_format | No | csv |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: it discloses that samples are written to disk, that only statistics are returned inline, that MATH sources are only readable in NORMal mode (a verified firmware quirk), and that the wrapper forces NORMal. These are non-obvious side effects and constraints an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and resource, followed by the SCPI mechanics and firmware quirk. Slightly dense with technical detail, but every sentence adds real value for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described, and the file-write behavior is well covered. However, for a 4-parameter tool with 0% schema coverage, the parameters remain a real documentation hole that the description does not fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters (fmt, index, filename, save_format), so the description must compensate and largely does not. It only loosely ties 'MATH1..MATH4' to the index parameter; fmt, filename, and save_format are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Acquire') and resource ('computed waveform of math channel MATH1..MATH4'), and explicitly differentiates from the sibling get_waveform by noting it uses :WAVeform:SOURce MATH<n> rather than a math-specific data command. An agent can route confidently between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly implies usage for math channels and contrasts with get_waveform ('Samples go to disk exactly like get_waveform; only statistics come back inline'). It does not, however, give explicit when-to-use/when-not conditions for choosing among math siblings (configure_math, get_math_fft_peaks).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_option_statusA
Query software-option installation (:SYSTem:OPTion:STATus? or, with valid=True, :SYSTem:OPTion:VALid?).
WARNING: on firmware 00.01.00 BOTH queries never answer and hang the
connection. The tool therefore does nothing unless opt_in=True is passed
explicitly; the default call returns a skipped marker without touching
the instrument.
option_type: BND|AFG100|AFG50|AUDio|CAN-FD|FLEX|AERO|RLU-05|BWU03T05| BWU03T08|BWU05T08. Option install/uninstall commands exist but are deliberately not exposed (licensed, destructive).
| Name | Required | Description | Default |
|---|---|---|---|
| valid | No | ||
| opt_in | No | ||
| option_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the firmware 00.01.00 hang bug, the opt-in gate that prevents any instrument I/O by default, the `skipped` return marker, and that install/uninstall commands exist but are deliberately withheld because they are licensed and destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, followed immediately by the critical warning, so the important information is not buried. The line-wrapped enum block is slightly awkward and lengthens the text, but every sentence carries real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not needed, and the description still covers the one non-obvious output behavior (`skipped`). Combined with the coverage of all three parameters and the safety caveats, nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it enumerates every valid option_type value (BND, AFG100, AFG50, AUDio, CAN-FD, FLEX, AERO, RLU-05, etc.), explains opt_in's gating semantics, and explains how valid=True changes the underlying query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (query) and resource (software-option installation status), and even names the underlying SCPI queries (:SYSTem:OPTion:STATus? / :SYSTem:OPTion:VALid?), so an agent knows exactly what the tool returns. No sibling tool covers option licensing status, so differentiation is inherent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the conditions under which the tool is usable: opt_in=True is required or the call returns a `skipped` marker without touching the instrument, and valid=True switches the query form. It does not name alternative or adjacent sibling tools, but it is unambiguous about when this tool works versus when it silently no-ops.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_record_statusA
Read back waveform record/playback state (manual 3.19): enables, operate states, frame counts and limits, intervals, playback settings and the current frame number and its timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. 'Read back' strongly implies a read-only, side-effect-free operation, and the list of returned state categories adds useful context, but it does not explicitly state that no settings are modified or describe any access requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with a manual reference and a concise enumeration of returned state. It is appropriately sized for a zero-parameter status tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, no parameters, and an existing output schema, the description is nearly complete: it identifies the operation and lists the returned state categories. The only gap is that it does not route the agent relative to sibling tools like configure_record or get_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. The empty input schema is fully covered by its own structure, and the description appropriately does not invent parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read back') and names the exact resource ('waveform record/playback state'), then enumerates the state categories it returns. This clearly distinguishes it from configure_record and other status tools without requiring the schema to be opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states what the tool reads but gives no when-to-use guidance, no prerequisites, and no explicit alternatives such as configure_record or get_status. The implied usage is only that it retrieves record/playback status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reference_configA
Read back the configuration of reference channel REF1..REF10 (manual 3.20): source, vertical scale/offset (V), color, label, plus the global reference label-display flag.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose that the return mixes per-channel fields with a 'global reference label-display flag', which is genuinely useful context, but says nothing about what happens with an out-of-range ref, error behavior, or whether the call is side-effect free.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action and target are front-loaded in the first clause, and the field list is compact. The '(manual 3.20)' citation and the multi-line wrapping add minor clutter for an otherwise efficient sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description is not obligated to enumerate return values, yet it does so helpfully and flags the one non-obvious global flag. The remaining gap is minor: nothing states valid input bounds explicitly or error behavior, but for a simple read-only getter this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'ref' parameter is undocumented in the schema, so the description must compensate. 'REF1..REF10' does communicate the meaningful valid range of the parameter, though it stops short of explicitly stating the type/mapping (integer 1-10).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('read back') and a precisely bounded resource (reference channel configuration, REF1..REF10), and enumerates the fields returned (source, scale/offset, color, label, global label-display flag). An agent can immediately tell this apart from the write-side sibling configure_reference without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the read-back framing, but the description never states when to reach for this versus configure_reference (the obvious counterpart) or get_channel, and gives no preconditions or exclusions. It is adequate context rather than real routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_save_configA
Read back all :SAVE options (image invert/color/format/header, overwrite mode, filename prefix, storage path, storage status).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Read back' correctly implies a safe read-only operation, and the listed fields indicate scope. It does not describe side effects, permissions, or return behavior beyond that, but for a zero-argument getter this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the main action front-loaded and a compact parenthetical listing the covered options. No filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple zero-parameter getter, an output schema exists, and the description enumerates the returned SAVE options. It is complete enough to call correctly, though it could mention how it relates to the nearby save/status/getter tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are not applicable under the stated baseline. The description's field list describes the returned configuration rather than inputs, adding useful scope information without needing schema compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read back') and resource (':SAVE options'), then enumerates the settings returned. It is clearly a getter, though it does not explicitly differentiate itself from siblings like get_save_status or configure_save.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb and context: use this to read the complete SAVE configuration. However, the description does not state when to prefer it over get_save_status, configure_save, or other setup/status tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_save_statusA
Query the storage state (:SAVE:STATus?). Returns done=True when the previous saving operation has completed (firmware returns 1).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that done=True corresponds to firmware returning 1, i.e. the previous save completed. It does not mention polling cadence, timeouts, or whether the status resets, which an agent would want for a completion-check query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and the SCPI form, followed by the one behavioral fact that matters (done=True semantics). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description needn't restate the return structure; it adds the key semantic mapping of done to completion. For a simple parameterless query tool this is nearly complete, missing only the relationship to wait_complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so no parameter documentation is needed and the baseline is 4. The description correctly indicates a parameterless query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Query) and resource (storage/save status), and even names the underlying SCPI command (:SAVE:STATus?). An agent can tell it concerns save-operation state rather than general device status. It stops short of distinguishing itself from the sibling wait_complete, which addresses a similar concern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (poll this after a save to learn whether the save finished), but there is no explicit when-to-use, when-not, or routing to the obvious alternative wait_complete. With a sibling that appears to serve the same goal, the absence of a disambiguation is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_screenshotB
Capture the oscilloscope screen and save it to a local file.
image_format: PNG|BMP|JPG. Returns the file path and size; the image itself is not inlined.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | ||
| image_format | No | PNG |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It usefully states the image is written to a local file and that only the path and size are returned, but omits permission requirements, overwrite behavior when filename repeats, and where 'local' resolves to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the return-shape caveat appended. No filler, though the format string is slightly cramped onto its own line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. Still, for a capture-and-save tool with zero annotation coverage and an undocumented filename default, the description does not fully close the gap on save location and filename resolution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate; it documents the accepted image_format values (PNG|BMP|JPG), which the schema does not enumerate. However, the filename parameter is entirely unaddressed — notably what happens when it is omitted given its null default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (capture the oscilloscope screen, save to local file) and clarifies the output artifact is a file path/size rather than inlined data. This implicitly separates it from the sibling get_screenshot_data, but it never names that sibling, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note that 'the image itself is not inlined' hints at the file-vs-data alternative, but no explicit when-to-use guidance, prerequisites, or named alternative is given. 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.
get_screenshot_dataA
Fetch the current screen bitmap via :SAVE:IMAGe:DATA? and write it to a LOCAL file under MHO98_DATA_DIR (alternative to the display subsystem's :DISPlay:DATA? screenshot). Only path + size are returned, never the blob.
The image honors the :SAVE:IMAGe:* options (color/invert/header/format,
see configure_save). Format is sniffed from the magic bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the side effect (writes a LOCAL file under MHO98_DATA_DIR), the return contract (path + size, never the blob), inherited configurability via :SAVE:IMAGe:* options, and format detection from magic bytes. Missing only edge-case behavior such as overwrite handling or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and kept to three short sentences. The parenthetical listing of :SAVE:IMAGe:* options is dense but earns its place by routing the agent to configure_save for details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read-and-write-to-disk tool with no annotations, the description covers the query used, the destination, the return shape, and the option dependencies. An output schema exists, yet the description still usefully states what is returned; only the filename parameter's semantics remain unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single optional `filename` parameter, so the description must compensate. It clarifies the destination directory (MHO98_DATA_DIR) and that the output is a file path, but says nothing about how `filename` is interpreted (relative vs absolute, default naming when null, extension injection) — only partial compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fetch) and resource (current screen bitmap), names the exact SCPI query used, and explicitly distinguishes itself from the display subsystem's :DISPlay:DATA? screenshot and, by implication, the sibling get_screenshot. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It identifies itself as an alternative to the :DISPlay:DATA? screenshot path and points to `configure_save` for the :SAVE:IMAGe:* options that govern output. However, it never states a condition for choosing this over the sibling get_screenshot or the display path, so the routing decision is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_configB
Read back the search configuration and event counters (manual 3.22).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. 'Read back' implies a non-destructive read-only operation, which is a useful behavioral signal, but it does not disclose permissions, idempotency, or other operational traits. This is minimally adequate but has clear gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core purpose without unnecessary elaboration. The parenthetical '(manual 3.22)' is likely a documentation pointer that does not help an agent invoke the tool, making it mildly extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with an output schema, the description is largely complete: it states exactly what is read back, and return values are covered by the output schema. The lack of annotations means it could say more about safety, but for a simple read operation this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty. Per the rubric, zero parameters yields a baseline of 4; there is no parameter meaning for the description to add or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read back') and resources ('search configuration and event counters'), making the tool's purpose clear. It implicitly distinguishes itself from the sibling 'configure_search' by being a read rather than a write operation, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like configure_search or get_search_event_time. The description only states what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_event_timeB
Time value of a line in the search mark table (:SEARch:VALue?).
line: 1-based line number of the mark table; returns the event time.
| Name | Required | Description | Default |
|---|---|---|---|
| line | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it does disclose the SCPI query form (:SEARch:VALue?), implying a read-only query, and specifies that line is 1-based. It still omits safety profile, error behavior, and the nature of the returned time, so it adds partial but not complete behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences and front-loads the purpose. Every phrase adds information, and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with an output schema, the description covers the core return and parameter indexing. However, it lacks context about the search mark table workflow and when the tool is applicable, leaving an agent to infer prerequisites from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single parameter. It states that line is a 1-based line number of the mark table, which is meaningful semantic detail beyond the bare integer type in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (time value of a line in the search mark table) and the underlying SCPI query, which is more than a tautology. It does not, however, differentiate this tool from siblings such as get_search_config or navigate_to_event, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool instead of alternatives, nor does it mention prerequisites such as having configured a search. Usage is only implied by the tool name and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_smb_configA
Read back the SMB share configuration: server path, user name, password, auto-connect-at-boot flag and the live connection state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it reads back configuration and the live connection state, which implies a read-only operation, but does not explicitly state that it is non-mutating, require no special permissions, or describe any side effects. Moderate transparency without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that lists the exact fields returned. No unnecessary words, and it earns its place by specifying the precise configuration items.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description does not need to explain return values in detail; it instead summarizes the fields, which is helpful. The description is complete for a zero-parameter read tool, though it lacks explicit usage guidance against siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly enumerates what the return values include, which is useful context even though no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read back the SMB share configuration') and enumerates the exact fields returned: server path, user name, password, auto-connect flag, and live connection state. This distinguishes it from siblings like get_smb_status, configure_smb, and smb_connect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (reading back config), but does not explicitly state when to use this versus get_smb_status or configure_smb. No when-not or alternative routing is provided. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_smb_statusA
SMB share connection state (:SAVe:SMB:CONState?). connected=True when 1.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It names the underlying SCPI query (:SAVe:SMB:CONState?) and, crucially, explains the return encoding (connected=True when 1), which the agent needs to interpret the value. Auth/permission requirements are not covered, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded and the value-mapping detail appended. No waste, though it is terse rather than richly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format explanation is unnecessary; the description still adds the boolean encoding semantics that the schema likely does not. For a zero-parameter status getter this is nearly complete, with only usage context left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is no parameter semantics to add and the description appropriately focuses on the returned state instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (SMB share connection state), which cleanly distinguishes it from sibling get_smb_config (configuration) and smb_connect/disconnect (actions). Clear purpose, though it does not explicitly name any sibling to differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the status-query nature, but there is no explicit when-to-use or when-not guidance, nor any mention of alternatives such as get_smb_config. An agent can infer its role but receives no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusA
One-stop instrument snapshot: identity, run state, trigger status, sample rate, memory depth, acquisition settings, enabled channels, LAN status and pending errors.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. 'Snapshot' implies a non-mutating read, which is useful, but it never states read-only safety, cost/latency, whether the instrument must be in a particular run state, or whether it blocks. Since an output schema exists, the enumerated contents are already structured data rather than added behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the aggregate framing leads. The long enumeration of returned fields is somewhat redundant against the output schema, which keeps it from being maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-argument status tool with an output schema, the description is sufficient to know what you get back and that it is a broad read. Minor gaps are the absence of any note on read-only behavior or when to choose it over narrower siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. The baseline for a no-argument tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (instrument status snapshot) and enumerates the exact facets it aggregates: identity, run state, trigger status, sample rate, memory depth, acquisition settings, channels, LAN, errors. It tells the agent this is an aggregate rather than a single-field getter. It stops short of distinguishing itself from overlapping siblings like get_idn, get_errors, get_trigger_status and get_system_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one-stop instrument snapshot' implies this is the tool to reach for when a broad overview is wanted instead of many targeted getters, but there is no explicit statement of when to prefer it over get_idn/get_errors/get_trigger_status. Usage is only inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_configB
Read back every writable :SYSTem setting (section 3.24): beeper, language, power-on recall mode, front-panel lock, low-power mode, on-screen clock, AUX OUT type, power status and AUTO-key enable.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Read back' implies a read-only, side-effect-free operation and the field enumeration hints at breadth, but there is no explicit statement about safety, timeout, or scope limits. It adds moderate context without contradicting anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence, no waste, but the long field list is information-dense and could be trimmed since the output schema already reports these values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return values need not be explained. The description covers scope (writable :SYSTem settings) sufficiently for a zero-param read tool, though it lacks usage guidance relative to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter count is 0, which sets the baseline at 4 under the rubric. No parameter semantics are needed and none are misleading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read back) and resource (writable :SYSTem settings), and enumerates the exact fields covered. It is distinguishable from set_system (the write counterpart) and get_system_info, but the description doesn't explicitly name those siblings to route the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of the alternative set_system for writes, and no note on when get_system_info would be preferable. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_infoA
System info: firmware, installed modules/options, hardware layout, LAN parameters.
Note: :SYSTem:OPTion:STATus? / :OPTion:VALid? hang on firmware 00.01.00
and are therefore skipped (see get_option_status for an opt-in probe).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses a genuine behavioral quirk: specific SCPI queries (:SYSTem:OPTion:STATus? and :OPTion:VALid?) are skipped because they hang on firmware 00.01.00, plus where to find the opt-in alternative. It does not state whether the call is read-only or anything about latency/refresh, but the failure-mode disclosure is real added value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both load-bearing: the first enumerates the returned content, the second flags the risky queries and routes to the alternative. The content is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described. The description covers what the call reports and the one known failure mode with a pointer to get_option_status, leaving only the overlap with get_system_config/get_lan_config unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify beyond the schema. Baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete content returned: firmware, installed modules/options, hardware layout, and LAN parameters, which is far more specific than restating the name. It explicitly distinguishes itself from get_option_status via the note. It does not differentiate from close siblings such as get_system_config or get_idn, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one explicit routing rule: option-status probing belongs to get_option_status, not here, because those queries hang on firmware 00.01.00. That is useful, but there is no general guidance on when to call this versus get_system_config, get_lan_config, or get_idn, which overlap heavily with the listed content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timebaseC
Read back the horizontal system configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Read back' implies a non-mutating query, but nothing is said about scope of returned data, whether full vs. summary configuration is returned, or how it differs behaviorally from get_timebase_full.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is appropriately sized, though its brevity comes partly from under-specification rather than crisp information design.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. For a simple zero-parameter read tool this is nearly adequate, but the absence of any differentiation from the sibling get_timebase_full leaves a real gap for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameter information is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Read back' plus resource 'horizontal system configuration' identifies the tool's purpose, giving an agent a reasonable idea it retrieves timebase/horizontal settings. However, it never names the concrete resource (timebase) or distinguishes itself from the sibling get_timebase_full, so an agent cannot tell the two apart from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus get_timebase_full or set_timebase, nor any prerequisites or conditions. Usage is only implied by the read-type wording of the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timebase_fullA
Read back the complete horizontal system configuration.
Adds the horizontal reference mode/position, vernier and XY-mode (enable, X/Y sources, grid) queries to get_timebase().
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the load; 'read back' clearly signals a non-mutating read, and it enumerates the additional query domains covered. It stops short of describing cost/round-trip or data-volume characteristics, which would matter for a 'full' variant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: the core action is front-loaded and the second sentence earns its place by giving the exact delta against the sibling. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the 0-parameter schema leaves nothing else to document. The description covers what the tool returns at the level an agent needs to select it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document; the schema is fully covered and no parameter ambiguity exists. Baseline of 4 for a 0-param tool is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('read back') plus resource ('complete horizontal system configuration'), and explicitly differentiates from the sibling get_timebase() by naming what it adds (reference mode/position, vernier, XY-mode). An agent can distinguish the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The relationship to get_timebase() is spelled out, implying this is the superset to use when reference/vernier/XY data is needed. However, it does not state an explicit when-to-use vs when-not rule (e.g., prefer the lighter get_timebase() when only scale/position is required).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trigger_commonD
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trigger_configA
Read back the full configuration of one trigger type (all its queries).
trigger_type: any :TRIGger:MODE value (EDGE, PULSe, SLOPe, VIDeo, PATTern, DURation, TIMeout, RUNT, WINDow, DELay, SETup, NEDGe, RS232, IIC, SPI, CAN, LIN, FLEXray, IIS, M1553) or COMMON for the trigger-wide settings (mode/sweep/holdoff/coupling/nreject/status/position). level_source: channel used for the PATTern/DURation per-channel level query (':LEVel? ' per the manual), e.g. 'CH2'.
| Name | Required | Description | Default |
|---|---|---|---|
| level_source | No | CHANnel1 | |
| trigger_type | No | EDGE |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It makes clear this is a read operation ('read back') and hints that it returns a per-type set of query results, which is a useful behavioral signal. But it says nothing about side effects, permissions, or scope of what is read, leaving gaps for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, with parameter detail following. The enum list is long but earns its place given zero schema coverage. Structure is efficient overall, only mildly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and both parameters are documented. What is missing is sibling differentiation/usage context, but for a read-back tool with full parameter coverage the definition is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It enumerates the complete set of accepted trigger_type values (including COMMON and its sub-fields) and explains level_source with an example and the underlying query form. Both parameters are given meaning far beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Read back the full configuration of one trigger type (all its queries)'. It clearly separates the read from the many set_trigger_* write siblings. However, it does not disambiguate from get_trigger_common, and by routing COMMON trigger-wide settings through this tool it overlaps with that sibling, leaving the boundary slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given relative to alternatives. The description never explains when to prefer this over get_trigger_common, get_trigger_status, or get_trigger_position, all of which are close neighbors. Usage is only implied by the parameter meanings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trigger_positionA
Trigger position in the internal memory (:TRIGger:POSition?, query-only).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden, and it does disclose that the operation is a query (read-only) against the :TRIGger:POSition? register. It adds no detail on rate limits, permissions, or what the position value represents, but the read-only nature is the key trait here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the resource and the underlying SCPI command. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool takes no arguments and an output schema exists, so the description need not explain the return value. It identifies the queried register and its read-only nature, which is sufficient for a simple scalar getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there are no parameter semantics to explain beyond the implicit SCPI query target; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (trigger position in internal memory) and verb (query), which is clear enough to distinguish it from configuration siblings like get_trigger_config and get_trigger_status. It is terse but unambiguous about what is being read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'query-only' hints that this is a read operation, but there is no guidance on when to use this vs. get_trigger_config, get_trigger_status, or the set_trigger_* siblings. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trigger_statusB
Trigger status: TD = triggered, WAIT = waiting, AUTO = auto.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the meaning of returned status codes (TD, WAIT, AUTO), which is useful, but it does not explicitly state that the operation is read-only, has no side effects, or requires any particular instrument state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately terse for a zero-parameter getter, though the colon-style legend is slightly cryptic rather than structured prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, yet it mostly does that. It lacks usage context relative to the many sibling getter tools, but for a simple zero-parameter status query the core information is present and not misleading.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description cannot add parameter meaning, and the empty schema leaves nothing ambiguous to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Trigger status') and explains the returned status codes, so an agent can tell it retrieves trigger status rather than trigger configuration. However, it omits an explicit verb like 'returns' and does not directly differentiate itself from nearby siblings such as get_status or get_trigger_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no prerequisites, and no alternative tools to consider. It only defines output values, leaving the agent to infer that this is the right tool when current trigger state is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waveformA
Acquire waveform data and SAVE it to a local file.
Returns metadata (preamble + statistics) and the file path only — sample arrays are never inlined, to protect the caller's context window.
source: CH1..CH4 or MATH1..MATH4 (MATH only in NORMal mode). mode: NORMal (screen, 1000 pts) | MAXimum | RAW (full memory; the instrument is stopped first). fmt: BYTE|WORD|ASCII. start/stop: 1-based inclusive point range (RAW/MAX). points: alternative window selector — number of points to read (:WAVeform:POINts, manual 3.28.4); when given, the RAW full-memory start/stop default is skipped and start/stop are only sent if explicitly provided. save_format: csv | npy (npy recommended for RAW ≥ 1M points; CSV is refused above max_csv_points=2M unless force_csv=True — a 50M-point CSV would be ~2 GB of text). Parse the file afterwards with your own protocol scripts.
| Name | Required | Description | Default |
|---|---|---|---|
| fmt | No | BYTE | |
| mode | No | NORMal | |
| stop | No | ||
| start | No | ||
| points | No | ||
| source | No | CH1 | |
| filename | No | ||
| force_csv | No | ||
| save_format | No | csv | |
| max_csv_points | No | ||
| stop_instrument_first | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that sample arrays are never inlined (context protection), that RAW mode stops the instrument first, and that CSV is refused above the point threshold unless forced. It stops short of naming exact permission/auth needs, but the behavioral profile is substantially richer than the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the critical output caveat, then a compact per-parameter reference broken into short labelled lines. Dense but each line earns its place; slightly long, though justified by 11 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with zero schema descriptions and no annotations, the description supplies the operational context an agent needs to call it correctly, and even explains return semantics despite an output schema existing. Minor gaps (filename handling, explicit exclusions vs. siblings) keep it from the top score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does: it explains source, mode, fmt, start/stop, points (including the subtlety that providing points skips the RAW start/stop default), save_format, force_csv, and max_csv_points. Only filename and stop_instrument_first are not directly addressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (acquire waveform data and save to a local file) and clarifies the output shape (metadata + file path, no inlined arrays). It distinguishes itself implicitly from on-instrument siblings (save_waveform_on_instrument) by emphasizing the local file, but never names an alternative, so differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real conditional guidance (RAW for full memory and stops the instrument first; npy recommended for RAW ≥ 1M points; CSV refused above max_csv_points). However it never names a sibling such as export_waveform_csv, get_waveform_preamble, or get_math_waveform to route the agent, so the when-to-use-this-vs-that question is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waveform_preambleA
Query the 10 waveform preamble parameters of a source.
Returns format, type, points, count, xincrement, xorigin, xreference, yincrement, yorigin, yreference (with engineering interpretation). apply=False only queries without touching source/mode settings. source (when given): CH1..CH4 or MATH1..MATH4; mode: NORMal|MAXimum|RAW (MATH sources only support NORMal mode).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | NORMal | |
| apply | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose the key trait: apply=True may modify source/mode settings while apply=False is a pure query, plus the MATH-only-NORMal-mode restriction. This is meaningful side-effect disclosure, though it does not address permissions or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then return fields, then behavioral and parameter constraints. It is dense but each clause adds information; the parentheticals (engineering interpretation, MATH sources only support NORMal mode) earn their place as qualifiers rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be detailed (though listing them is harmless). With 0% schema coverage, the description covers all parameters and the key side-effect behavior, making it complete enough to call the tool correctly. It lacks only explicit sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it substantially does: it enumerates source values (CH1..CH4, MATH1..MATH4), mode values (NORMal|MAXimum|RAW) with the MATH constraint, and explains apply semantics. All three parameters receive meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Query') and resource ('the 10 waveform preamble parameters of a source') and even enumerates the returned fields, so the agent knows exactly what this retrieves. It does not name the sibling it most closely resembles (get_waveform, get_math_waveform), so it stops just short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'apply=False only queries without touching source/mode settings' gives a conditional usage cue for the apply flag, and the MATH-mode restriction is a scoping rule. However, there is no explicit statement of when to choose this over get_waveform or get_waveform_setup, so 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.
get_waveform_setupA
Read back the current :WAVeform read-out configuration (manual 3.28).
Queries :WAVeform:SOURce?/:MODE?/:FORMat?/:POINts?/:STARt?/:STOP? and the six per-axis scaling queries (:XINCrement?/:XORigin?/:XREFerence?/ :YINCrement?/:YORigin?/:YREFerence?) as engineered values (ints/floats). The preamble (get_waveform_preamble) returns the same axis data in a single query.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden, and it does disclose that this is a read-back operation and that values are returned 'as engineered values (ints/floats)', clarifying the return typing. It omits any note on rate limits, instrument state requirements, or side effects, but for a pure query tool the disclosure is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then the query list and the sibling comparison. Every sentence is informative, though the long enumerated SCPI query list is dense; still, it earns its place by telling the agent exactly what is read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with an output schema (so return values need not be described here) and no annotations, the description covers purpose, scope, and the relevant alternative. Nothing an agent needs to invoke it correctly appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document beyond the schema; a baseline of 4 applies. The description's enumeration of which queries are issued is bonus context rather than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read back') and resource (the :WAVeform read-out configuration), and enumerates the exact SCPI queries involved (source/mode/format/points/start/stop plus six axis scaling queries). It explicitly distinguishes itself from the sibling get_waveform_preamble by noting the preamble returns the same axis data in a single query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative (get_waveform_preamble) and the condition that would favor it ('returns the same axis data in a single query'), giving the agent a routing signal. However, it does not state explicit when-not-to-use guidance or prerequisites for this tool beyond that comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_resourcesA
List VISA resources visible on this host.
Note: raw-socket instruments are not discoverable; the MHO98 must be
addressed by its resource string (see connect).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses a key behavioral constraint: raw-socket instruments are not discoverable. It implies a read-only listing operation but does not elaborate on side effects or failure modes. For a simple discovery tool, this added context is valuable and sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the primary purpose is front-loaded, followed by a focused note. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the tool's core behavior and an important limitation. It does not explicitly state the return format (e.g., a list of resource strings), but the purpose implies it. Overall complete for a simple discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the schema is empty and there is nothing for the description to clarify. Per the rules, a parameterless tool receives a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'List' and resource 'VISA resources' with scope 'visible on this host'. The note distinguishes discoverable resources from raw-socket instruments that require `connect`, helping the agent differentiate this tool from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when this tool is insufficient: raw-socket instruments are not discoverable and must be addressed via `connect`. This provides clear when-not guidance and names the alternative, leaving no inference needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_mask_on_instrumentA
Load a .pf mask file from the instrument's own storage (:LOAD:MASK ).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the underlying SCPI command (:LOAD:MASK) and the storage location, which is useful behavioral context, but does not state permission requirements, failure modes (e.g., missing file), or side effects on the current mask configuration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clause that front-loads the action and resource, with the SCPI command in parentheses. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. However, with zero annotations and no parameter description, the definition leaves the agent without guidance on required storage prerequisites or error behavior for a 1-param mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'path' parameter is undocumented in both schema and description. The description implies the path refers to instrument-local storage but does not clarify format, root directory, or valid extensions beyond '.pf'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Load) and resource (.pf mask file) and clarifies the source location ('from the instrument's own storage'), distinguishing it from save_mask_on_instrument and load_setup_on_instrument siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus alternatives like configure_mask or load_setup_on_instrument, nor prerequisites such as whether a mask must first exist on the instrument's storage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_setupB
Load a setup file previously written by save_setup into the instrument.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It reveals the file source and destination ('into the instrument') but does not say whether loading overwrites current settings, what permissions are required, or how errors are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It delivers the core action, source, and destination immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values need not be explained, and the one-parameter operation is structurally simple. Still, the lack of annotations and the absence of side-effect or sibling-differentiation details leave meaningful gaps for safely invoking a state-changing load operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single 'filename' parameter. It does so by specifying that the file must be one previously written by save_setup, which meaningfully constrains the expected value, though it does not describe path or extension conventions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Load'), resource ('setup file'), and source ('previously written by save_setup'), so the core operation is clear. However, it does not distinguish this tool from the similar sibling 'load_setup_on_instrument', which could confuse an agent choosing between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'previously written by save_setup' implies the tool should be used after saving a setup, but it gives no explicit when-to-use guidance or alternatives. No condition or exclusion is stated for choosing between this and load_setup_on_instrument.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_setup_on_instrumentB
Load a .stp setup file from the instrument's own storage (:LOAD:SETup ).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the underlying SCPI command (:LOAD:SETup <path>) and that the file lives on the instrument, but says nothing about whether loading overwrites current settings, what happens on a missing/invalid file, or any required state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb, resource, source, and the equivalent SCPI command — no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the SCPI hint is useful. However, with no annotations and an ambiguous sibling (load_setup), the definition leaves the mutation semantics and the when-to-use decision unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter and 0% schema description coverage, the description must compensate, and the embedded :LOAD:SETup <path> does clarify that the argument is an instrument-side file path rather than a host path. It does not give path syntax, extensions, or directory conventions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Load) and resource (.stp setup file) and pins down the source as the instrument's own storage, which implicitly separates it from the host-side load_setup sibling. It stops short of naming that sibling explicitly, so an agent must infer the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to use this versus load_setup, nor any prerequisite such as the file already existing on the instrument or the state change it causes. The source-of-file phrase hints at usage but provides no explicit condition or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_batchC
Measure multiple items on one source, returned as a dict.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| source | No | CH1 | |
| source2 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only mentions the return type ('dict'), omitting whether the operation blocks, requires prior measurement configuration, or has side effects. The mention of a return dict is helpful but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and concise, but it is under-specified for a 3-parameter batch tool. The return-type note adds little value because an output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, 0% schema description coverage, and three parameters, the description is too sparse. It names the basic operation but omits parameter meaning, usage context, and behavioral expectations needed to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It vaguely references 'items' and 'one source,' but does not explain the expected string format for items, the role of the optional source2 parameter, or the default source behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and scope: 'Measure multiple items on one source.' The 'multiple items' phrasing distinguishes it from the single-item sibling measure_item, though the term 'items' remains somewhat vague and the description does not fully differentiate it from other measurement siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives like measure_item, measure_quick, or measure_statistics_item. The batch nature implies a use case, but the description never states it explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_itemA
Measure one of the 44 items and return its current value.
Delay/phase items (RRDelay..FFPHase) need source and source2. source: CH1..CH4 / MATH1..4 / D0..D15. show_on_screen=True additionally puts the item on the scope display. Items: VMAX, VMIN, VPP, VTOP, VBASe, VAMP, VAVG, VRMS, OVERshoot, PREShoot, MARea, MPARea, PERiod, FREQuency, RTIMe, FTIMe, PWIDth, NWIDth, PDUTy, NDUTy, TVMAX, TVMIN, PSLewrate, NSLewrate, VUPPer, VMID, VLOWer, PVRMs, PPULses, NPULses, PEDGes, NEDGes, RRDelay, RFDelay, FRDelay, FFDelay, RRPHase, RFPHase, FRPHase, FFPHase, ACRMs.
| Name | Required | Description | Default |
|---|---|---|---|
| item | Yes | ||
| source | No | ||
| source2 | No | ||
| show_on_screen | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It notes the return value and that show_on_screen adds the item to the scope display, plus source requirements for delay/phase items. It omits error handling, state persistence, and interaction with other measurement or display tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action in the first sentence, then organizes parameter details into short lines. The long item list is necessary because the schema has no enum values, and the text is not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and an output schema for return values, the description covers item/source/show_on_screen well enough. It still leaves source2 semantics and sibling selection guidance incomplete for a 4-parameter measurement tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does so substantially. It enumerates all 44 item values, defines acceptable source values, and explains show_on_screen. It only weakly covers source2 and does not clarify requirement conditions for non-delay/phase items.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: measure one of 44 named items and return its current value. It does not distinguish itself from sibling tools like measure_quick, measure_batch, or measure_statistics_item, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides parameter prerequisites for delay/phase items and explains show_on_screen behavior, which implies how to use the tool. However, it gives no explicit when-to-use or when-not-to-use guidance versus sibling measurement tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_quickC
Read the common quick set on one channel: VPP VMAX VMIN VAVG VRMS PERiod FREQuency RTIMe FTIMe PWIDth PDUTy.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | CH1 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says 'Read', which suggests a non-destructive operation, and lists exactly which measurements are returned. However, it does not clarify acquisition prerequisites, side effects, or whether any setup is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation and then lists the measurement set compactly. It avoids filler text, though the abbreviated measurement names may be opaque to an agent unfamiliar with oscilloscope terminology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. But given the single optional parameter, no annotations, and many measurement-related siblings, the description omits key usage context and parameter details needed for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'source' parameter. The description implies a channel scope ('on one channel'), which gives some meaning to the parameter, but it does not name the parameter, describe valid values, or mention the CH1 default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('common quick set on one channel'), then enumerates the exact measurement items. This distinguishes it from measurement setup/configuration siblings, though it does not name alternatives such as measure_item or measure_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings like measure_item, measure_batch, or configure_quick. The phrase 'common quick set' implies a convenience path but does not state when it is or is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_statistics_itemB
Read one statistic of a measurement item, or enable item statistics.
statistic: MAXimum|MINimum|CURRent|AVERages|DEViation|CNT (short forms ok). source/source2: CH1..CH4 / MATH1..4 / D0..D15 (source2 only for the delay/phase items). enable=True first sends the write form (:MEASure:STATistic:ITEM) to turn on statistics for the item.
| Name | Required | Description | Default |
|---|---|---|---|
| item | Yes | ||
| enable | No | ||
| source | No | ||
| source2 | No | ||
| statistic | No | CURRent |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that enable=True sends the write form (:MEASure:STATistic:ITEM) to turn on statistics, and it lists accepted statistic and source forms. It does not cover permissions, persistence, side effects on subsequent reads, or whether the write is destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then compactly enumerates relevant parameter forms. It avoids wasted words and uses line breaks effectively. The dense SCPI notation is efficient, though a bit terse for an agent unfamiliar with the instrument.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described. The description covers most parameter semantics and enable behavior. However, the required 'item' parameter is undefined, and there is no guidance on when to prefer this tool over siblings, leaving a notable gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does well for statistic (MAXimum|MINimum|CURRent|AVERages|DEViation|CNT, short forms ok), source (CH1..CH4 / MATH1..4 / D0..D15), source2 (only for delay/phase items), and enable=True semantics. The required 'item' parameter remains unexplained in both schema and description, preventing a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read one statistic of a measurement item, or enable item statistics.' It distinguishes the two modes (read vs. enable) and names the SCPI write form used for enabling. However, it does not explicitly contrast with close siblings such as measure_item or set_measure_statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to choose this tool over alternatives like measure_item or set_measure_statistics. The only usage clue is the enable=True behavior, which is about how to use a parameter rather than when to select this tool versus its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_bus_dataA
Read the decoding event table (:BUS:DATA?).
The full table is saved to a CSV file (ready for protocol-analysis scripts); only a short preview and row count are returned inline. Requires the bus to be enabled with a decodable signal on its sources.
| Name | Required | Description | Default |
|---|---|---|---|
| bus | Yes | ||
| save_csv | No | ||
| preview_chars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden itself and does it well: it discloses that the full table goes to a CSV file while only a short preview and row count come back inline. That is exactly the kind of side-effect/return-shape disclosure an agent needs; it omits any note on cost, timing, or permissions for a hardware read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the operation and its SCPI form, then the output contract, then the prerequisite. No padding; only the parenthetical aside is slight filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return-value detail is not strictly required, and the prerequisite is stated. However, with 0% schema coverage on three parameters and no sibling routing, an agent still lacks enough to invoke this confidently in a large tool set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning, and it only loosely maps: 'CSV file' gestures at save_csv, 'short preview' at preview_chars, and :BUS<n> hints at the required bus index. It never explains valid bus numbering, preview units, or what save_csv=false does, leaving real gaps for a 3-param tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (read the decoding event table) and even names the underlying SCPI query (:BUS<n>:DATA?), which is unusually precise. It does not explicitly differentiate itself from siblings like export_bus_on_instrument or get_bus_config, but the CSV/preview behavior gives it a distinct footprint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one real prerequisite: the bus must be enabled and carry a decodable signal on its sources, which is useful gating context. It stops short of saying when to reach for this versus export_bus_on_instrument or configure_bus, so usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_counterB
Hardware frequency counter state.
Returns the current value, enable, source, mode (FREQ/PER/TOT) and resolution (digits 3-6). totalize=True additionally reads the counter statistics switch (:COUNter:TOTalize:ENABle?).
| Name | Required | Description | Default |
|---|---|---|---|
| totalize | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses what the tool returns and how totalize changes behavior, but it never states that this is a safe read-only operation, nor does it mention permissions, side effects, or polling/rate considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool's scope in a short header sentence, then the returned fields, then the parameter effect. The raw SCPI command adds precision with minimal waste; no filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be spelled out, yet the description still enumerates the key returned fields. For a single-parameter read tool this is sufficient, though the absence of any when-to-use contrast leaves a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it explains that totalize=True additionally reads the counter statistics switch and cites the underlying SCPI query. Default value and type are left to the schema, but the semantic effect of the flag is fully conveyed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('read_counter' → reads hardware frequency counter state) and enumerates exactly what it returns (value, enable, source, mode, resolution). It does not explicitly name or contrast the sibling write tool set_counter or set_measure_counter, so it is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named despite set_counter/set_measure_counter/read_dvm existing in the sibling set. Usage can only be inferred from the name and the returned fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_dvmA
Digital multimeter current reading (DVM option).
:DVM:CURRent? hangs on the instrument while the DVM is disabled, so the reading is only requested when the DVM is on.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it delivers the one critical behavioral fact: the underlying ':DVM:CURRent?' query hangs on the instrument when the DVM is disabled. That hazard is exactly what an agent needs to avoid a stalled connection. It does not cover return units, resolution, or timeout behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the purpose first and the hazard second; nothing is padded. The second sentence's phrasing ('the reading is only requested when the DVM is on') is slightly circuitous but still short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema covering the return value, the description only needs to convey purpose and preconditions, which it does, including the DVM-enabled requirement. It stops short of saying how to enable the DVM or what happens if the option is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document; the baseline of 4 applies. The description correctly adds no parameter noise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource and measurement: reads the digital multimeter current value when the DVM option is installed. An agent can tell it is a read operation on the DVM subsystem, though it does not explicitly distinguish itself from siblings like read_counter or measure_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The precondition 'the reading is only requested when the DVM is on' implies the DVM must be enabled (presumably via set_dvm), which is useful. However, it never names the enabling tool or states when to prefer this over other measurement tools, so the routing guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_histogram_statsB
Histogram analysis statistics (Sum, Peaks, Max, Min, Pk_Pk, Mean, Median, Mode, Bin width, Sigma, meanPlusSigma/2/3 ...).
Queries :HISTogram:STATistics:RESult? (manual 3.11.9) and falls back to the measurement-histogram variant :MEASure:HISTogram:STATistics:RESult? (manual 3.17.32). Values are parsed into a dict; 'raw' keeps the reply.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It does disclose useful behavior: the primary SCPI query, an automatic fallback to the measurement-histogram variant, and that the reply is parsed into a dict. It omits error/permission behavior and the phantom 'raw' option is never reconciled with the empty parameter schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, which is good, but the long parenthetical enumeration of statistics plus two SCPI command references and manual section numbers add bulk an agent likely does not need to select the tool. Efficient enough but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, and the description nonetheless summarizes what the parsed dict contains, which is genuinely helpful. For a read-only zero-arg getter this is close to complete; only the 'raw' mismatch and missing prerequisite note hold it back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters gives a baseline of 4, but the description advertises a 'raw' mode that keeps the raw reply while the input schema declares no parameters at all. That unexplained mismatch in a no-arg tool is a real ambiguity, so the score is docked below baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Histogram analysis statistics') and enumerates the returned quantities (Sum, Peaks, Mean, Sigma, etc.), so the agent knows exactly what comes back. It is distinguishable from sibling set_histogram/get_histogram_config by being the results reader, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: read this after a histogram measurement is configured. There is no statement of when to prefer it over measure_statistics_item, get_histogram_config, or measure_batch, and no prerequisite conditions (e.g., histogram must be enabled) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reboot_systemA
Reset the instrument to power-on state (:SYSTem:RESet).
This restarts the scope operating system: the current configuration is
lost and the LXI/USB connection may drop for ~30 s. Not the same as
reset (*RST), which only restores default settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses critical behavior: the configuration is lost, the LXI/USB connection may drop (~30 seconds), and it is not the same as `reset` (*RST). These are strong safety and operational details. It does not mention required permissions or whether the operation can be interrupted, leaving some minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the essential action and SCPI command, followed by behavioral consequences and a key disambiguation. Every sentence is purposeful and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, an output schema exists (so return-value explanation is not needed), and the description covers the main behavioral traits (configuration loss, connection drop, distinction from *RST). However, it lacks guidance on when to choose this over other system tools, which would improve completeness in a large toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to clarify. The baseline for zero-parameter tools is 4. The description doesn't need to describe inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (reset/restart) and resource (instrument/system) and includes the underlying SCPI command (:SYSTem:RESet), which unambiguously identifies the operation. It goes further to differentiate from the sibling tool `reset` (*RST), making the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool vs. alternatives. The description contrasts with `reset` (*RST) operationally, but this is a clarification of an unrelated tool rather than a usage recommendation. An agent would not know from this description when a reboot is preferable to other system-recovery siblings like `clear_status` or `self_test`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resetA
Send *RST: restore default instrument settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Restore default instrument settings' does disclose the core mutating effect (existing settings are replaced), which is the key behavioral fact. It omits the practical consequences, however: no warning that current/unsaved setup is lost, no note about post-reset settling time, and no mention of whether a subsequent self_test or wait_complete is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that names the SCPI command and its effect with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema (so return values need not be described) and an empty schema, the description covers the essential action. The only gap is the lack of any caution about what state is discarded, which would be minor for a simple reset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty, so there is nothing to document; baseline 4 applies. The description correctly implies no arguments are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (send *RST) and the resulting resource effect (restore default instrument settings). This is more informative than a bare 'reset' and implicitly distinguishes it from reboot_system (power cycle) and clear_status (status registers). It stops short of explicitly naming those siblings, so a 5 isn't warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance: nothing says whether this should be used before a measurement session, how it differs from reboot_system, or whether it should be paired with load_setup to restore a saved configuration. The agent must infer context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_image_on_instrumentA
Store the current screen image on the instrument's own storage (:SAVE:IMAGe ).
path: e.g. "C:/shot.png" (internal disk) or "D:/shot.bmp" (USB storage). Suffix must be .png, .bmp or .jpg; filename max 26 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It usefully clarifies that the image lands on instrument-local storage (C: internal vs D: USB) and gives filename/length constraints, but it omits whether an existing file is overwritten, whether a wait_complete is required, and what happens on a malformed path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The primary action is front-loaded in the first clause, followed by tightly scoped, indented parameter constraints. Every line conveys usable information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described, and the parameter constraints are well covered. What is missing for a zero-annotation mutation tool is overwrite/error semantics and the tool-side status check (e.g. get_save_status), keeping it just short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it gives concrete path examples for internal disk and USB, enumerates allowed suffixes (.png, .bmp, .jpg), and states the 26-character filename limit. Only the exact SCPI argument quoting/escaping is left unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Store the current screen image on the instrument's own storage') and even names the underlying SCPI command, which pins down the exact operation. The 'on the instrument's own storage' phrasing separates it from the many download-oriented siblings like get_screenshot and get_screenshot_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The destination detail ('instrument's own storage') implies this is for on-device saving rather than retrieval, but the description never explicitly says when to prefer this over get_screenshot or the other save_* tools, nor does it state prerequisites. Usage is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_mask_on_instrumentA
Store the pass/fail mask as a .pf file on the instrument's own storage
(:SAVE:MASK ). Reload it with load_mask_on_instrument.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It usefully reveals that the artifact lands on the instrument's own storage as a .pf file and gives the underlying SCPI command, but says nothing about overwrite behavior, required permissions, error handling, or whether the target directory must already exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and file type, then the SCPI mnemonic and the sibling reference. Nothing is redundant and every clause adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the description adequately frames the operation. However, for a write-to-device tool with zero annotation coverage and an undocumented path parameter, more detail on path constraints and overwrite semantics would be needed for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single `path` parameter, so the description must compensate. It does add real meaning by clarifying the path refers to the instrument's internal storage (`:SAVE:MASK <path>`), but gives no detail on path syntax, allowed locations, or extension handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (store) and resource (the pass/fail mask as a .pf file) with the exact SCPI command, so there is no ambiguity about what is written. It explicitly contrasts with the sibling `load_mask_on_instrument`, letting an agent distinguish save from load without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent when to use this tool (to persist a pass/fail mask) and names the complementary tool for retrieving it, giving clear lifecycle context. It stops short of explicit when-not guidance (e.g., mask must be configured first, or the difference from save_setup/save_image_on_instrument).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_memory_waveform_on_instrumentB
Store the full-memory waveform on the instrument's own storage (:SAVE:MEMory:WAVeform ). Suffix .bin, .csv or .wfm; filename max 26 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it does disclose concrete constraints beyond the schema: the SCPI command, the allowed suffixes (.bin, .csv, .wfm), and the 26-character filename cap. It omits error conditions, required run state, and whether the write overwrites an existing file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and resource, then the concrete constraints. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary. For a one-parameter save tool the description is nearly sufficient, missing only error/overwrite behavior and the exact path format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate; it does partially by giving the path's suffix options and length limit. However, it does not state the path format (device directory, separators) needed to construct a valid value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Store) and resource (full-memory waveform) plus the destination (instrument's own storage) and the underlying SCPI command. It distinguishes itself somewhat by emphasizing the full-memory content, but it never names the close sibling save_waveform_on_instrument, so an agent must still infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no mention of the near-identical save_waveform_on_instrument alternative. Only an implicit signal ('full-memory waveform') hints at when this variant applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_setupB
Save the complete instrument setup (:SYSTem:SETup?) to a local file.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the burden alone. It usefully reveals that this wraps the read-only :SYSTem:SETup? query and writes to a local file, but says nothing about where a default filename lands, overwrite behavior, or any required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler and the SCPI reference placed inline. Efficient, though it is short enough that conciseness is not really being tested.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described. Still, for a tool sitting in a crowded save/load family with no annotations, the description leaves the local-vs-instrument distinction and filename behavior unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the sole 'filename' parameter has a null default whose meaning is never explained. The description adds no format, path, or default-behavior information, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Save the complete instrument setup') and even names the underlying SCPI query (:SYSTem:SETup?), which makes the operation concrete. It does not, however, distinguish itself from the sibling save_setup_on_instrument, leaving the 'local file' vs 'on instrument' split to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, despite siblings load_setup, load_setup_on_instrument, and save_setup_on_instrument forming an obvious decision set. The agent must guess which save/load variant applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_setup_on_instrumentA
Store the current setup as a .stp file on the instrument's own storage (:SAVE:SETup ). Filename max 26 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral load; it does disclose the file format (.stp), the storage target, and the 26-character filename limit, which is genuinely useful. It omits whether an existing file is overwritten, permission/auth requirements, and failure behavior, leaving notable gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the operation stated first and the key constraint second; no filler. The critical filename limit is surfaced rather than buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and with only one parameter the description covers the essential constraint. It is nearly complete, missing only overwrite/permission context for a write-to-storage operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for the single 'path' parameter. It adds real value by disclosing the filename length constraint and the underlying :SAVE:SETup <path> form, but does not clarify path syntax, valid directory, or extension handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Store) and resource (current setup as a .stp file) plus the exact destination scope (the instrument's own storage), which cleanly separates it from the sibling save_setup and from the load_* tools. The SCPI command in parentheses confirms the operation unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'on the instrument's own storage' implies when this is chosen over save_setup, but no alternative is named and no prerequisites or when-not conditions are given. Usage is inferable from context rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_waveform_on_instrumentA
Store the screen waveform on the instrument's own storage (:SAVE:WAVeform ). Suffix .bin or .csv; filename max 26 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does add useful concrete behavior beyond a bare mutation claim: the underlying SCPI command, the allowed .bin/.csv suffixes, and the 26-character filename limit. However, it says nothing about overwrite behavior, required instrument state, permissions, or failure modes, which are significant gaps for a storage-write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and destination, followed by the two hard constraints. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. For a one-parameter save tool the description covers destination, format, and naming limits, leaving only overwrite/error semantics unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single path parameter has 0% schema description coverage, so the description must compensate, and it does: it specifies the format of the path via the SCPI command form (:SAVE:WAVeform <path>), the permitted file suffixes, and the maximum filename length. Only the path root/prefix convention is left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Store') and resource ('screen waveform') and distinguishes itself from the near-named siblings by specifying the screen (display) waveform source and the on-instrument destination. It stops short of explicitly naming save_memory_waveform_on_instrument or export_waveform_csv as the alternatives, but the scope marker 'screen waveform' is enough for an agent to tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'on the instrument's own storage' hints that this differs from host-side export tools, and 'screen waveform' hints that the memory-waveform sibling is different. There is no explicit statement of when to choose this over save_memory_waveform_on_instrument, save_image_on_instrument, or export_waveform_csv.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scpiA
Escape hatch: send any SCPI command to the instrument.
Commands containing '?' are queried and the text/binary answer returned. Binary answers are saved to a file (never inlined into the response).
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| expect_binary | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real value: the '?' query convention and the fact that binary answers are written to a file rather than inlined. However, it omits that non-query commands can mutate instrument state, and says nothing about permissions, error handling, or whether write commands are safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero padding, with the core purpose front-loaded before the query and binary-handling details. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. But for an unannotated, arbitrary-command tool that can both read and write instrument state, the description is thin on safety and side-effect disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema documents neither parameter. The description partially compensates by explaining the '?' query convention for the command parameter and implying binary handling, but it never explains the expect_binary parameter or its relationship to the file-saving behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('send any SCPI command to the instrument') and labels itself an 'escape hatch', which signals its fallback role relative to the many purpose-specific sibling tools. It's clear what it does, though it stops short of explicitly naming siblings it replaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'escape hatch' framing implies this is the fallback when no dedicated tool fits, but there is no explicit when-to-use or when-not-to-use statement, and no guidance to prefer the specific siblings (get_idn, get_status, set_channel, etc.). Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
self_testA
Run instrument self-test (*TST?). 0 = pass, 1 = failure (check errors).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the outcome codes (0 = pass, 1 = failure), which is useful, but says nothing about whether the self-test blocks, how long it takes, or whether it disturbs active acquisition — meaningful traits for an instrument self-test.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses with zero waste; the action is front-loaded and the result-code semantics follow immediately. Nothing is padded or repeated from structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema present, the description needn't explain return values, and it covers purpose and pass/fail codes adequately. The only gap is runtime/blocking behavior and the diagnostic follow-up path, which are minor for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is no parameter information the description could add, and it correctly omits any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run instrument self-test') and even includes the underlying SCPI mnemonic (*TST?). No sibling in the list performs a self-test, so the agent can distinguish it immediately from get_status, get_errors, or get_idn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the '(check errors)' note hints that a failure result should route the agent to get_errors. There is no explicit statement of when to run this versus the other diagnostic siblings, nor any prerequisite or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_acquireA
Acquisition system.
type: NORMal|PEAK|AVERages|HRESolution memory_depth: AUTO|1k|10k|100k|1M|10M|25M|50M|100M|125M|200M|250M|500M (numeric equivalents like 1e6 or 25000000 are normalized to the mnemonic; max 500 Mpts single-channel, 250 Mpts half, 125 Mpts full) averages: 2..65536, power of two (AVERages type only; the instrument rounds non-power-of-two values down, this wrapper rejects them) bits: 12|14|16 (14|16 in HRESolution mode, 12 in the other modes)
| Name | Required | Description | Default |
|---|---|---|---|
| bits | No | ||
| type | No | ||
| averages | No | ||
| memory_depth | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does well: it discloses that the wrapper rejects non-power-of-two averages while the instrument would round down, that memory depth limits scale with channel mode (500/250/125 Mpts), and that bits availability depends on mode. Missing only mutation/persistence semantics and auth needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded as a spec sheet; every line carries a constraint or value domain with no filler prose. The bare 'Acquisition system.' header is a weak label but costs little. Appropriate length for a four-parameter configuration tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the parameter domain is thoroughly covered. The one gap is that the nullable/default-null semantics (whether passing null leaves a setting unchanged) are never stated, leaving an agent unsure how partial updates behave.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all four parameters are undocumented in the schema, so the description must compensate fully — and it does, giving mnemonic value domains for type, memory_depth, averages (with range, power-of-two rule and rounding divergence), and bits per mode. This is exactly the meaning the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the fragment 'Acquisition system.' rather than a verb+resource statement, so it never explicitly says 'configures acquisition parameters.' However, the enumerated fields (type, memory_depth, averages, bits) make clear it sets acquisition configuration, and the sibling name get_acquire implies this is the write counterpart. Purpose is inferable but not stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus get_acquire, no prerequisites, and no mention of interaction with related tools (timebase, channel, run state). The per-field constraints are validation rules, not usage routing. An agent must guess the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_autoset_optionsA
Configure the AUTO (autoset) options WITHOUT executing an autoset.
Same parameters as autoscale(), plus: enable: master on/off of the AUTO function (:AUToset:ENAble, 3.2.7); False disables :AUToset just like lock_timebase=True
| Name | Required | Description | Default |
|---|---|---|---|
| enable | No | ||
| peak_search | No | ||
| view_overlap | No | ||
| keep_coupling | No | ||
| lock_timebase | No | ||
| enable_channels | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden. It usefully discloses that enable=False disables :AUToset, mirroring lock_timebase=True, and that no autoset is executed. However, it omits the behavior of the other five flags, partial-update semantics, and any side-effect detail beyond enable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key distinction is front-loaded in the first line, and the enable note is scoped separately. Some content (SCPI command name, section reference '3.2.7') is arguably noise, and the format is informal, but it stays short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described. But with no annotations and six schema-undocumented parameters, the description is too thin to call this tool correctly, covering only one parameter and relying on an external sibling for the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description must compensate. It only explains 'enable' (master on/off, SCPI :AUToset:ENAble) and offloads the rest to 'Same parameters as autoscale()', leaving five flags undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Configure the AUTO (autoset) options') and adds a scoping clause ('WITHOUT executing an autoset') that distinguishes it from the sibling autoscale. An agent can tell this configures rather than triggers without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'WITHOUT executing an autoset' clause implicitly routes the agent to autoscale() when an actual autoset is wanted, and 'Same parameters as autoscale()' links the two. There is clear context but no explicit when/when-not statement or direct naming of the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_awg_outputC
Turn generator channel output ON/OFF.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | ||
| channel | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only says on/off and does not disclose whether the operation is immediate, persistent, requires specific permissions, affects hardware output, or what happens for invalid channels.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is appropriately concise, though it is perhaps too terse given the lack of annotations and parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. However, with no annotations and 0% schema description coverage, the description lacks enough behavioral and parameter context for confidently invoking a hardware-control mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate, but it does not. It implies a channel and an ON/OFF state, yet does not state valid channel range, the boolean-to-ON/OFF mapping, or any other parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: turning the generator channel output on or off. It is clear what the tool does, but it does not distinguish itself from related AWG tools such as configure_awg, get_awg_config, or sync_awg_phase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives. The agent must infer when this tool is appropriate relative to the many sibling AWG configuration and query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_channelA
Configure an analog channel (CH1..CH4). Only given parameters are changed.
scale: V/div (1 mV..10 V/div at 1 MΩ/1X, 200 µV..1 V/div at 50 Ω/1X; range scales with the probe ratio) offset: vertical offset in V (range depends on scale and impedance) coupling: AC|DC|GND probe: attenuation ratio 0.001..50000 (discrete 1-2-5 steps plus 15-series values; custom ratios allowed) bw_limit: OFF|ON|20M|250M impedance: OMEG (1 MΩ) | FIFTy (50 Ω); accepts 1M/50 aliases position: vertical position (bias voltage) in V, per manual 3.6.14 label: channel label text; show_label: display the label vernier: fine adjustment of the vertical scale units: WATT|AMPere|VOLTage|UNKNown tcal: delay calibration time in s, -100 ns..100 ns
| Name | Required | Description | Default |
|---|---|---|---|
| tcal | No | ||
| label | No | ||
| probe | No | ||
| scale | No | ||
| units | No | ||
| invert | No | ||
| offset | No | ||
| channel | Yes | ||
| display | No | ||
| vernier | No | ||
| bw_limit | No | ||
| coupling | No | ||
| position | No | ||
| impedance | No | ||
| show_label | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the important non-destructive trait that unspecified parameters are preserved, which is genuine behavioral value, but says nothing about error behavior on invalid values, whether it requires the instrument to be idle, or how changes interact with an active acquisition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and the critical partial-update caveat in two short sentences, then uses a compact per-parameter list. For a 15-parameter tool, this is tightly organized with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the param list covers most of a large parameter set. The remaining gaps are the undescribed invert and display parameters, which an agent cannot infer from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does so well: it documents 12 of 15 parameters with units, ranges, and accepted values (e.g., scale ranges by impedance, bw_limit OFF|ON|20M|250M, coupling AC|DC|GND, 1-2-5 probe steps). It omits invert and display entirely, leaving two params undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Configure) and resource (analog channel CH1..CH4), and adds the partial-update semantics ('Only given parameters are changed'). This clearly separates it from read-oriented siblings like get_channel and get_channel_full.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Only given parameters are changed' clause implies this is a targeted partial update rather than a bulk reset, which is useful context. However, it never names when to use this vs alternatives like autoscale or set_autoset_options, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_counterA
Configure the hardware counter.
mode: FREQuency|PERiod|TOTalize (short forms FREQ/PER/TOT ok); digits: resolution, integer 3 to 6 (Period/Frequency modes only); source: CH1..CH4 or D0..D15; totalize_enable: counter statistics switch (Period/Frequency only); totalize_clear: clear the totalize count (Totalize mode only).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| digits | No | ||
| enable | No | ||
| source | No | ||
| totalize_clear | No | ||
| totalize_enable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses mode-dependent parameter applicability and the meaning of the totalize_enable/totalize_clear switches, which is genuine behavioral context. It does not state prerequisites (e.g., whether acquisition must be stopped) or side effects of reconfiguring the counter, so a mutation tool remains only partially characterized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose in one sentence, then uses a compact per-parameter list with no filler. Efficient and easy to scan, though the enumeration is dense and could be marginally tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return values need not be explained since an output schema exists, and the description covers most of the six parameters with ranges and mode dependencies. The undocumented 'enable' parameter and the absence of any prerequisite/state context are the remaining gaps for a tool with zero annotation and zero schema-description coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there are no schema enums, so the description must compensate — and it largely does, documenting allowed mode strings with short forms, the 3-6 integer range for digits, valid source values (CH1..CH4 / D0..D15), and mode-scoping for totalize_enable and totalize_clear. The 'enable' parameter is left unexplained, which keeps it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Configure the hardware counter') and immediately enumerates the configurable aspects. It does not explicitly distinguish itself from the related siblings set_measure_counter or read_counter, which an agent could plausibly confuse with this tool, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance versus the sibling tools (e.g., set_measure_counter, read_counter). However, the per-parameter mode constraints (digits only for Period/Frequency, totalize_clear only for Totalize) implicitly tell the agent which fields apply under which configuration, which is better than nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_cursorB
Configure cursors.
mode: OFF|MANual|TRACk|XY (XY requires timebase mode XY); cursor_type (manual mode): TIME (X cursor) | AMPLitude (Y cursor); source/source2: manual source and track source 1/2 (CH1..CH4 / MATH1..4 / NONE); ax/bx: cursor A/B horizontal positions in s; ay/by: vertical in V (applied to both the manual and the track cursors); indicator: cursor measurement indicator on/off; tunit: manual horizontal unit SECond; vunit: manual vertical unit SOURce; track_mode: track axis X|Y; xy_ax/xy_bx/xy_ay/xy_by: XY-mode cursor positions in V.
| Name | Required | Description | Default |
|---|---|---|---|
| ax | No | ||
| ay | No | ||
| bx | No | ||
| by | No | ||
| mode | No | ||
| tunit | No | ||
| vunit | No | ||
| xy_ax | No | ||
| xy_ay | No | ||
| xy_bx | No | ||
| xy_by | No | ||
| source | No | ||
| source2 | No | ||
| indicator | No | ||
| track_mode | No | ||
| cursor_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses an interlock (XY mode requires timebase XY) and that ay/by apply to both manual and track cursors, but says nothing about persistence, required instrument state, or whether settings are commutative/reversible for this mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded, with each line mapping to a parameter group and no filler. The telegraphic capitalization (TRACk, AMPLitude, SECond) is slightly cryptic but readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter mutation tool with no annotations, the description covers essentially every argument, and the output schema removes the need to explain return values. Only the safety/state-prerequisite dimension is left thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 16 undocumented parameters, so the description must compensate and largely does: it glosses mode, cursor_type, source/source2, ax/bx, ay/by, indicator, tunit, vunit, track_mode, and all four xy_* fields with units and enum-like values. It falls short of full compensation only in that the cross-parameter defaults are never stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Configure cursors') that an agent can act on immediately. It does not, however, distinguish itself from the sibling read tools get_cursor_values and get_cursor_xy_values, leaving the read/write boundary implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use, prerequisites, or alternative routing is given. The only conditional guidance is internal to the parameters (XY requires timebase mode XY), which is dependency info rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_datetimeA
Set the instrument clock and read it back (:SYSTem:DATE / :SYSTem:TIME).
datetime: 'YYYY-MM-DD hh:mm:ss' (24-hour). Raises ValueError on bad format or out-of-range fields (year 1900..2100).
| Name | Required | Description | Default |
|---|---|---|---|
| datetime | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the SCPI nodes touched, that the clock is read back after setting, and that a ValueError is raised on bad format or out-of-range fields (year 1900..2100). It omits prerequisites such as needing a connected instrument, but the validation and side-effect profile is unusually well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and SCPI context, then the parameter format/constraints. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the description covers format, range, and error behavior. What remains unspecified is only the connection/precondition context, which is minor for a simple setter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and does: it gives the exact format 'YYYY-MM-DD hh:mm:ss', specifies 24-hour time, and states the valid year range 1900..2100 with the failure mode. This fully documents the single required parameter beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Set the instrument clock') and even names the underlying SCPI nodes (:SYSTem:DATE / :SYSTem:TIME). It implies the set-vs-get distinction against the sibling get_datetime via 'read it back', but never explicitly names that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: you call this when you want to change the clock. There is no explicit when-to-use/when-not guidance and no direct routing to the sibling get_datetime for reading without setting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_displayA
Display settings.
type: DOTS|VECTors (the manual documents VECTors for this model) persistence: MIN|0.1|0.2|0.5|1|2|5|10|INFinite seconds ('1S'/'1.0' are normalized to plain seconds — the firmware rejects suffixed forms) waveform_brightness: 1..100 (percent) grid_brightness: 0..100; cursor_brightness: 0..100 grid: FULL|HALF|NONE ('OFF' accepted as an alias of NONE) clear: clear all waveforms from the screen rulers: show the scale rulers track_ruler: move the scale ruler to track the waveform coordinate color_grade: color grade display (acquisition-probability coloring) waveform_hold: freeze the displayed waveform
| Name | Required | Description | Default |
|---|---|---|---|
| grid | No | ||
| type | No | ||
| clear | No | ||
| rulers | No | ||
| color_grade | No | ||
| persistence | No | ||
| track_ruler | No | ||
| waveform_hold | No | ||
| grid_brightness | No | ||
| cursor_brightness | No | ||
| waveform_brightness | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real behavioral detail: accepted value sets, the OFF-as-NONE alias, and the normalization rule that suffixed durations are rejected by firmware. However it omits whether settings persist across reboot, whether this is a read-modify-write, and any error behavior for out-of-range values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a compact enumerated list where each line earns its place by giving a value domain or a behavioral caveat. The one-word 'Display settings.' opener is a bit sparse and the multi-field braces are dense, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return values are covered by the output schema, and all parameters are explained, so the description is nearly complete. The remaining gap is operational context (persistence across reboots, interaction with save_setup) that an agent might want before mutating display state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description documents all 11 parameters with concrete value domains (DOTS|VECTors, MIN..INFinite, 1..100 ranges, FULL|HALF|NONE) and clarifies that the display-side parameters are boolean toggles. This fully compensates for the schema gap and is exactly what an agent needs to invoke correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The header 'Display settings' plus the enumerated parameters make it clear this tool configures the oscilloscope's display (grid, persistence, brightness, rulers, waveform hold). It doesn't name its natural sibling get_display, so sibling differentiation is only implicit via the read/write naming convention.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this tool versus get_display, set_cursor, or set_timebase, nor any preconditions or exclusions. Usage must be inferred entirely from the parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_dvmB
Configure DVM. source: CH1..CH4; mode: ACRMs|DC|DCRMs (volts).
The AC and DCRM spellings are accepted as aliases of ACRMs/DCRMs.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| enable | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses useful behavioral detail (unit 'volts', accepted alias spellings AC/DCRM), but nothing about whether settings persist, what 'enable' does, whether the change affects an active measurement, or what the tool returns. For a mutation tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded with the tool's purpose before the value enumeration. The line break and trailing 'The AC and DCRM spellings...' sentence are slightly loose but each sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values needn't be explained. However, with 0% schema coverage and no annotations, the definition should cover the undocumented 'enable' parameter and the when-to-use relationship to read_dvm; neither appears. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with no enums, so the description must compensate. It does document source (CH1..CH4) and mode (ACRMs|DC|DCRMs, volts, plus accepted aliases), which is genuinely valuable, but the third parameter 'enable' is left completely unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Configure DVM'), which is clearly distinct from the sibling read_dvm and other set_* tools. It also enumerates the configurable source and mode values, so the intent is unambiguous. It stops short of 5 only because 'DVM' is left as an unexplained acronym with no scope statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the set_/read_ sibling pairing (read_dvm exists separately), but the description never says when to call this versus read_dvm, nor that it is the prerequisite for measurement. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_histogramB
Histogram analysis display and statistics.
type: HORIzontal|VERTical; source: CHANnel1..CHANnel4; height: histogram height, 1..4 divisions; range_left/right: horizontal display limits in s (left < right); range_top/bottom: vertical display limits in V (bottom < top); reset: clear the histogram statistics; save_csv: save the histogram data to a file on the instrument (e.g. 'C:/hist.csv'); boundary: sigma boundary shown (u1S|u2S|u3S) - not documented in the current Programming Guide, kept for backward compatibility.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| reset | No | ||
| enable | No | ||
| height | No | ||
| source | No | ||
| boundary | No | ||
| save_csv | No | ||
| range_top | No | ||
| range_left | No | ||
| range_right | No | ||
| range_bottom | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that reset clears histogram statistics and save_csv writes a file to the instrument, and it flags the boundary parameter as undocumented and kept for backward compatibility. However, it omits overall mutation semantics, whether changes persist, and any side effects on measurements or display, and it does not mention the enable parameter at all.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized for an 11-parameter tool, using compact semicolon-separated entries that front-load the parameter semantics. The opening sentence is vague but short, and no sentence is wasted, though the structure is more reference-style than narrative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. Still, with no annotations, 11 parameters at 0% schema coverage, and no usage guidance, the description should do more: it misses the enable parameter entirely and does not state when this tool is appropriate relative to its histogram-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 11 parameters, so the description must compensate. It documents 10 of 11 parameters with useful detail: type values, source channel range, height in divisions, range units and ordering constraints, reset semantics, save_csv example path, and boundary enum. Only the enable parameter is left unexplained, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a noun phrase, 'Histogram analysis display and statistics,' without a clear verb, so the action is implied by the tool name rather than stated. It gives a detailed parameter breakdown that clarifies the tool's scope, but it does not explicitly say it sets or configures histogram display/statistics, nor does it distinguish itself from siblings like get_histogram_config or read_histogram_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use context, no prerequisites, and no guidance on when to choose this tool over alternatives such as get_histogram_config or set_measure_histogram. It simply lists parameter meanings with no usage framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_ieee488_enableA
Set IEEE488.2 enable registers (*ESE, *SRE) and optionally arm *OPC.
event_enable: bit sum (0..255) for the standard event register
(OPC=1, QYE=4, DDE=8, EXE=16, CME=32, PON=128 — table 3.153).
service_enable: bit sum (0..255) for the status byte register
(ERR queue=4, QSD=8, MAV=16, SES=32, MSS=64, OSR=128 — table 3.154).
signal_operation_complete: send *OPC so bit 0 of *ESR latches when all
pending operations finish (poll with get_ieee488_status).
| Name | Required | Description | Default |
|---|---|---|---|
| event_enable | No | ||
| service_enable | No | ||
| signal_operation_complete | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it explains the bit-level semantics of each register, lists specific bit values with table references, and describes what *OPC does (latching bit 0 of *ESR after pending operations). It does not explicitly state that setting these registers overwrites existing masks or whether omissions leave settings unchanged, but overall transparency is high.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then uses clear parameter-by-parameter lines. Every sentence is informative and earns its place; the bit tables are necessary for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations, 0% schema coverage, and an output schema, the description is nearly complete. It fully documents parameters and the *OPC behavior, but omits what happens when optional parameters are omitted (e.g., no change vs reset to zero), which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully and does: it describes each of the three parameters with meaning, range (0..255), bit definitions and table references for the two integer registers, and the behavioral effect of the boolean signal_operation_complete parameter. This adds substantial value beyond the bare type-only schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Set IEEE488.2 enable registers (*ESE, *SRE) and optionally arm *OPC.' It names the exact SCPI registers and the *OPC operation, clearly distinguishing it from sibling tools like get_ieee488_status and wait_complete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the parameter explanations and the mention of polling with `get_ieee488_status`, but there is no explicit guidance on when to use this tool versus alternatives (e.g., wait_complete, scpi, clear_status). No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_lanA
Configure the LAN interface (section 3.14).
ip/gateway/dns: dotted-quad, first octet 0..223 (not 127), others 0..255; mask: dotted-quad with every octet 0..255. Static addresses only apply when DHCP and Auto IP are off and manual (static) mode is on. The three IP modes cannot all be off at once (firmware rule). dhcp/auto_ip/manual/mdns: booleans; hostname/description: printable ASCII. apply: send :LAN:APPLy afterwards to activate all pending LAN settings.
extra: only documented :LAN keywords are accepted, e.g. {"HOST:NAME": "scope1"} → :LAN:HOST:NAME scope1.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | ||
| dns | No | ||
| dhcp | No | ||
| mask | No | ||
| mdns | No | ||
| apply | No | ||
| extra | No | ||
| manual | No | ||
| auto_ip | No | ||
| gateway | No | ||
| hostname | No | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose real constraints: the firmware rule that the three IP modes cannot all be off, the condition under which static addresses take effect, and that :LAN:APPLy is needed to activate pending settings. It does not say whether changes are persistent, require a reboot, or need elevated permissions, leaving meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, and the dense multi-line format is justified by 12 undocumented parameters, with each line mapping to a parameter group. The terse pseudo-BNF notation is efficient though slightly cryptic for an agent parsing it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described. For a mutation tool with no annotations and 12 parameters, the description covers typing, ranges, mode interdependencies, and the activation step adequately; only persistence/permission behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 12 parameters, so the description must compensate entirely, and it does: it specifies dotted-quad ranges for ip/gateway/dns (first octet 0..223, not 127), mask octet ranges, boolean typing for dhcp/auto_ip/manual/mdns, ASCII constraints for hostname/description, the apply flag's effect, and an example of the extra keyword syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Configure the LAN interface') and even cites the manual section, so the action is unambiguous. It does not explicitly name its sibling get_lan_config as the read counterpart, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus get_lan_config or any other sibling, nor any prerequisites or exclusions. The 'apply' note is procedural guidance on activation, not guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_measure_counterA
Frequency counter addressed through the :MEASure command tree.
Same counter as set_counter, but via :MEASure:COUNter. enable: counter on/off; source: CH1..CH4 or D0..D15. The counter value is read back via :MEASure:COUNter:VALue? when the counter is enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| enable | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses meaningful behavior: enable turns the counter on/off, source accepts CH1..CH4 or D0..D15, and the value is read back via :MEASure:COUNter:VALue? when enabled. It does not discuss permissions or mutability in detail, but for an SCPI instrument setter this is substantially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences with no filler. It front-loads the core command-tree context, then quickly covers the sibling comparison, parameter meanings, and readback behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value details are not strictly required. The description still covers both parameters and the readback query condition, leaving only minor gaps such as default null handling or prerequisite state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 both parameters. It does so clearly: enable means counter on/off, and source accepts CH1..CH4 or D0..D15, adding allowed values absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (frequency counter) and command path (:MEASure:COUNter), and explicitly contrasts it with the sibling set_counter. An agent can distinguish it from set_counter based solely on the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the relevant alternative (set_counter) and explains the key distinction: same counter but through the :MEASure command tree. This gives clear context for when to choose this tool, though no explicit when-not conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_measure_histogramA
Measurement histogram enable (statistics of measurement items).
Distinct from the waveform histogram (:HISTogram, analysis module). The statistics themselves are read with read_histogram_stats, which queries :MEASure:HISTogram:STATistics:RESult?.
| Name | Required | Description | Default |
|---|---|---|---|
| enable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the behavioral burden. It discloses that this is the measurement-histogram path and that statistics are read separately via read_histogram_stats and :MEASure:HISTogram:STATistics:RESult?, but it does not explain the effect of enabling/disabling, side effects, or what the output schema returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose before the disambiguation and read-path note. No filler, though the parenthetical '(statistics of measurement items)' is slightly compressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. For a one-parameter mutation tool with no annotations, the description gives useful routing and disambiguation but leaves the enable parameter's behavior and side effects unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The lone enable parameter is undocumented in the schema (0% description coverage). The description only implies that enable controls the measurement histogram, with no explanation of true/false/null semantics or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (measurement histogram) and operation (enable), and explicitly separates it from the waveform histogram at :HISTogram. The pointer to read_histogram_stats makes the read/write split clear, so an agent can identify this as the measurement histogram enable control rather than the analysis histogram.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says to use this for measurement histogram enable/statistics and tells the agent to use read_histogram_stats to read the statistics, while distinguishing it from the waveform histogram module. It does not spell out when-not beyond that distinction, but the alternative is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_measure_sources_abA
Set Source A / Source B used by phase and delay measurements.
Source A is written to both :MEASure:SETup:PSA and :MEASure:SETup:DSA (identical functions per the manual); Source B likewise to PSB/DSB. Sources: CH1..CH4 / MATH1..4 / D0..D15. Returns the read-back of all four.
| Name | Required | Description | Default |
|---|---|---|---|
| source_a | No | ||
| source_b | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: it is a write operation targeting :MEASure:SETup:PSA/DSA and PSB/DSB, notes the functions are identical per the manual, and states the call returns a read-back of all four. It omits permission/state requirements, but the mutation semantics are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The primary action is front-loaded, and each subsequent sentence carries new information (register mapping, valid values, return behavior) with no padding. Dense but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no annotations, the description covers what is written, the valid value domain, and the return read-back; the output schema can carry the return detail. It is largely complete, with only permission/state context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it defines both parameters' meaning (Source A, Source B) and enumerates valid values (CH1..CH4 / MATH1..4 / D0..D15). It adds real meaning beyond the bare string-typed schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set') and resource (Source A / Source B for phase and delay measurements), so the agent knows exactly what the tool configures. It does not explicitly name a sibling it differs from, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'used by phase and delay measurements' implies when the tool is relevant, giving implied usage. However, no alternatives are named and no prerequisites or exclusions are stated, leaving the agent to infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_measure_statisticsC
Control measurement statistics (mean/min/max/... over N acquisitions).
count: statistics count, integer 2 to 100000; reset: clear history data.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| reset | No | ||
| enable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses that reset clears history data and gives a count range, but says nothing about the enable flag, persistence, permissions, or side effects of changing count, leaving key mutation behavior opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: purpose statement followed by parameter notes. It avoids repetition and waste, though the parenthetical '(mean/min/max/... over N acquisitions)' is slightly loose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, but for a 3-parameter configuration tool with no annotations, the description omits usage context and the enable parameter's effect. It covers count and reset at a basic level but is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description documents count (meaning and range) and reset (clears history) but completely omits the enable parameter. It adds useful semantics for two of three parameters, but the gap for enable remains significant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the operation as controlling measurement statistics (mean/min/max over N acquisitions), which is a specific resource and effect. It does not explicitly differentiate from siblings like measure_statistics_item or set_measure_histogram, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are provided. An agent can infer it configures statistics, but there is no condition for choosing this tool over sibling measurement or statistics tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_measure_thresholdsA
Measurement thresholds (used for rise time, delay, phase, ...).
source: threshold source CH1..CH4 / MATH1..4 (selected via :MEASure:THReshold:SOURce); threshold_type: PERCent (10-90 etc.) | ABSolute; upper/middle/lower: threshold upper/middle/lower level — percent when the type is PERCent, volts when ABSolute (sent as :MEASure:SETup:MAX/MID/MIN); reset_defaults=True restores the default threshold levels (:MEASure:THReshold:DEFault).
| Name | Required | Description | Default |
|---|---|---|---|
| lower | No | ||
| upper | No | ||
| middle | No | ||
| source | Yes | ||
| reset_defaults | No | ||
| threshold_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that reset_defaults restores default levels and that upper/middle/lower are interpreted as percent or volts depending on threshold_type, but it omits error behavior, persistence, and prerequisites for setting a source.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, followed by compact per-parameter notes. The embedded SCPI command references add length but are informative for an instrument-control tool rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 6-parameter mutation tool with zero schema descriptions and no annotations, the description documents all parameters and the reset behavior adequately, but lacks usage guidance and error/permission context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it defines source, threshold_type (PERCent vs ABSolute with 10-90 example), upper/middle/lower units, and reset_defaults semantics, mapping each to its SCPI command. Minor gaps remain (valid source enum values are only hinted).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (measurement thresholds) and their role (rise time, delay, phase), making the tool's function clear. It does not explicitly differentiate itself from sibling configuration tools like configure_measure_amplitude or configure_measure_setup, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the parenthetical '(used for rise time, delay, phase, ...)' signals when thresholds matter, but there is no explicit when-to-use, when-not, or named alternative among the many sibling measure tools. An agent must infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_run_stateA
Run control.
state: RUN | STOP | SINGLE (single acquisition, arm) | FORCE (force trigger now) | CLEAR (clear screen) hotkeys: True routes RUN|STOP|SINGLE through :TIMebase:HOTKeys, the front-panel hotkey variant of the same commands (3.26.10); FORCE and CLEAR have no hotkey equivalent.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | ||
| hotkeys | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the meaning of each state and the hotkey-routing behavior, but omits side effects such as whether STOP halts acquisition immediately, whether commands block, or what the response contains, leaving notable gaps for a control tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense and front-loads the state list before the hotkeys detail, with no filler sentences. The '(3.26.10)' version tag is slightly extraneous but does not materially bloat the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the description covers both parameters' semantics adequately for a run-control tool. Remaining gaps are behavioral (blocking, side effects) rather than informational, so it is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it enumerates all five valid `state` values with per-value semantics and explains what `hotkeys=True` changes. This is substantially more than the bare schema provides, though it never states types or the default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Run control' is a weak noun phrase, but the state enumeration (RUN | STOP | SINGLE | FORCE | CLEAR) with parenthetical meanings makes the purpose concrete: controlling the oscilloscope acquisition run state. It is clear enough to act on, though it never explicitly distinguishes itself from related siblings like wait_complete or autoscale.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parentheticals ('single acquisition, arm', 'force trigger now', 'clear screen') imply when each state is appropriate, and the hotkeys line gives a condition for routing. However, there is no explicit when-to-use vs alternatives guidance or mention of related tools, so 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.
set_systemA
Misc system settings (:SYSTem section 3.24).
language: SCHinese|TCHinese|KORean|JAPanese|ENGLish|GERMan|PORTuguese| POLish|FRENch|RUSSian|SPAN|THAI|INDonesian (short readback codes like ENGL or SCH are accepted as aliases) power_on: LATest|DEFault (config recalled at power-on) key_lock: lock front panel; low_power: 1 W standby datetime: 'YYYY-MM-DD hh:mm:ss' sets scope clock show_time: display the system time on screen (:SYSTem:STIMe) aux_output: TOUT|PFAil — signal on the rear [AUX OUT] connector power_status: DEFault|OPEN — OPEN boots directly after power application auto_key: enable/disable the front-panel AUTO key (:SYSTem:AUToscale)
| Name | Required | Description | Default |
|---|---|---|---|
| beeper | No | ||
| auto_key | No | ||
| datetime | No | ||
| key_lock | No | ||
| language | No | ||
| power_on | No | ||
| low_power | No | ||
| show_time | No | ||
| aux_output | No | ||
| power_status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely does so: it explains the effect of each setting, including non-obvious ones (power_status OPEN 'boots directly after power application', low_power = '1 W standby', aux_output routes a signal to the rear [AUX OUT] connector). It does not disclose persistence (whether settings survive power-off/are saved to nonvolatile memory), permission/remote-mode requirements, or what happens to unspecified parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A terse header followed by one dense bullet per setting, each sentence carrying unique, actionable information with zero filler. Front-loaded identity is followed immediately by the enumerations an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the parameter documentation is nearly exhaustive for a 10-param write tool. Remaining gaps are the undocumented 'beeper' parameter and the absence of any guidance on partial updates or interaction with overlapping siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must document all 10 parameters and it documents nine of them with concrete accepted values and aliases (e.g. short readback codes accepted for language, LATest|DEFault for power_on, TOUT|PFAil for aux_output, explicit datetime format string). The 'beeper' parameter present in the schema is never mentioned, leaving one silent gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The header states the resource (system settings) but calls it 'Misc', which is vague; the value comes from the enumerated sub-settings, which pin down exactly what can be changed. It is distinguishable from reset/clear_status/self_test by the setting list, but it never explicitly contrasts itself with siblings like set_datetime or set_display that overlap its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given at all. There is an unaddressed overlap with the sibling set_datetime (covered here by the 'datetime' parameter) and set_display ('show_time'), yet the description offers no routing advice for choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_timebaseB
Horizontal system. scale: s/div of MAIN timebase; offset: trigger position shift in s; mode: MAIN|XY|ROLL; delayed timebase via delay_* parameters.
roll: auto-ROLL mode (enter ROLL automatically at >= 50 ms/div) horizontal_reference_mode: CENTer|LB|RB|TRIG|USER (expansion reference used when the timebase changes) horizontal_reference_position: user-defined reference position, integer -500 (left edge) .. 500 (right edge) vernier: fine adjustment of the horizontal scale xy_enable: XY mode on/off (alternative to mode="XY") xy_x/xy_y: XY source channels, 1..4 (accepts 3, 'CH3' or 'CHANnel3') xy_grid: FULL|HALF|NONE grid of the XY display
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| roll | No | ||
| xy_x | No | ||
| xy_y | No | ||
| scale | No | ||
| offset | No | ||
| vernier | No | ||
| xy_grid | No | ||
| xy_enable | No | ||
| delay_scale | No | ||
| delay_enable | No | ||
| delay_offset | No | ||
| horizontal_reference_mode | No | ||
| horizontal_reference_position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does disclose some behavior: auto-ROLL threshold (>=50 ms/div), expansion reference behavior when the timebase changes, and vernier fine adjustment. However, it omits broader mutation context such as persistence, side effects on other settings, required instrument state, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but appropriately sized for 14 parameters. However, the opener 'Horizontal system.' is a fragment and not front-loaded with a clear purpose. The parameter list lacks formatting, making it harder to scan than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. The description covers parameter meanings but leaves out the tool's purpose, usage guidance, and broader behavioral context for a 14-parameter setter. It is partially complete but has significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 14 parameters, so the description must compensate. It documents units (s/div, s), allowed values (MAIN|XY|ROLL, CENTer|LB|RB|TRIG|USER, FULL|HALF|NONE), ranges (-500..500, 1..4), and accepted channel formats ('CH3', 'CHANnel3'). The delay_* parameters are grouped without individual detail, but overall the description adds substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Horizontal system.' which is a category label, not a verb+resource. The parameter list implies configuration of the horizontal timebase, but the tool's action is never explicitly stated. It does not differentiate from siblings like get_timebase or set_acquire.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no alternatives are named. The note that xy_enable is an alternative to mode='XY' is a parameter interaction, not tool-level usage advice. An agent is left to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_commonA
Trigger-wide settings (apply to the current trigger type).
mode: EDGE|PULSe|SLOPe|VIDeo|PATTern|DURation|TIMeout|RUNT|WINDow|DELay| SETup|NEDGe|RS232|IIC|SPI|CAN|LIN|FLEXray|IIS|M1553 (SETup = the setup&hold trigger) sweep: AUTO|NORMal|SINGle coupling: AC|DC|LFReject|HFReject (edge trigger, analog source only) holdoff: 8 ns .. 10 s (unavailable for VIDeo/TIMeout/NEDGe/serial types) noise_reject: analog-channel trigger sources only
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| sweep | No | ||
| holdoff | No | ||
| coupling | No | ||
| noise_reject | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful applicability constraints (coupling is edge-only, holdoff is unavailable for several trigger types, noise_reject is analog-source-only). It does not, however, describe side effects of the mutation, whether settings persist, or how it interacts with the type-specific trigger setters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose statement is front-loaded and the parameter list is dense with no filler text. Structure is a terse pseudo-schema rather than prose, but every line carries information and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the description covers all five parameters with value semantics and applicability. Remaining gaps are behavioral (persistence, side effects, interaction with type-specific trigger tools) rather than informational ones.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema exposes bare strings/numbers with no enums, so the description does the entire job: it enumerates allowed values for mode (20 trigger types), sweep, and coupling, gives the holdoff numeric range (8 ns .. 10 s), and scopes noise_reject. This is exactly the compensation required when the schema is silent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('Trigger-wide settings') and scopes it as applying to 'the current trigger type', which distinguishes it from the type-specific siblings like set_trigger_edge or set_trigger_pulse_width. It is clear what is being set, though the verb is only implied by the name and no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use versus alternative guidance — it never says to prefer this over set_trigger_edge or get_trigger_common. However, per-parameter applicability notes ('edge trigger, analog source only', 'unavailable for VIDeo/TIMeout/NEDGe/serial types') give implied conditions for valid use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_delayC
Delay trigger between two edges (event A -> event B).
slope_a/slope_b: POSitive|NEGative; delay_type: GREater|LESS|GLESs|GOUT ('<' lower, '>' upper, inside, outside).
| Name | Required | Description | Default |
|---|---|---|---|
| extra | No | ||
| level_a | No | ||
| level_b | No | ||
| slope_a | No | ||
| slope_b | No | ||
| source_a | No | ||
| source_b | No | ||
| delay_type | No | ||
| time_lower | No | ||
| time_upper | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state which values are mutually exclusive (e.g., delay_type determining whether time_lower/time_upper apply), whether this requires the trigger to be in a stopped state, or any prerequisites. Only the enum semantics are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact lines with the core concept front-loaded and enums listed efficiently. The terse 'event A -> event B' notation is slightly cryptic but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter trigger configuration tool with no annotations and no parameter documentation in the schema, the description is far too sparse. It explains the trigger concept and two enum families but omits source, level, and time-bound parameters that are essential to invoking it correctly. An output schema exists, so return values need not be covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across 10 parameters, the description must compensate heavily. It decodes slope_a/slope_b (POSitive|NEGative) and delay_type (GREater|LESS|GLESs|GOUT with <, >, inside, outside meanings), which is genuinely useful. However, source_a/source_b, level_a/level_b, time_lower/time_upper, and extra receive no explanation, leaving most parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delay trigger between two edges') and clarifies the event A -> event B semantics. It is distinguishable from edge/slope/window trigger siblings, though it doesn't explicitly name which sibling it is the 'delay' counterpart to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this vs set_trigger_edge, set_trigger_slope, or other trigger modes. The description explains value encoding but provides no context or exclusions for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_durationC
Duration (time-qualified logic-state) trigger.
pattern: per-channel states for CH1..CH4, e.g. 'HLXL' (H=high, L=low, X=don't care) -> ':TRIGger:DURation:TYPE H,L,X,L' ('HLXL' is auto-expanded to the comma form); when: GREater|LESS|GLESs|UNGLess; level: per-channel threshold in volts, requires level_source (e.g. 'CH2') -> ':TRIGger:DURation:LEVel ,'.
| Name | Required | Description | Default |
|---|---|---|---|
| when | No | ||
| extra | No | ||
| level | No | ||
| source | No | ||
| pattern | No | ||
| time_lower | No | ||
| time_upper | No | ||
| level_source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it discloses no side effects, permission/auth requirements, or what existing trigger configuration gets overwritten. It reveals the underlying SCPI command mapping, which is useful context, but says nothing about the mutation semantics of a set_ operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and each subsequent clause maps a parameter to its SCPI form with no filler. The dense semicolon-run-on and cryptic arrow notation slightly reduce readability, but little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described. However, for an 8-parameter mutation tool with zero annotation and zero schema-description coverage, the description leaves half the parameters and all behavioral/safety context undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 8 parameters, so the description must compensate. It documents pattern (with the H/L/X encoding), when (with the GREater|LESS|GLESs|UNGLess options), and level with its level_source dependency, but leaves time_lower, time_upper, source, and extra entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific trigger type ('Duration (time-qualified logic-state) trigger') and details its configurable dimensions, which lets an agent distinguish it from siblings like set_trigger_pattern or set_trigger_edge. However it is phrased as a noun fragment rather than a verb+resource statement, so the 'set' action is only implied by the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no mention of when a duration trigger is preferred over the many sibling trigger tools (pattern, pulse_width, runt, window, timeout). The agent must infer applicability from the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_edgeB
Edge trigger (most common). Switches TRIGger:MODE to EDGE.
source: CH1..CH4 / D0..D15; slope: POSitive|NEGative|RFALl; level: volts (analog: ±4.5×scale−offset; digital: ±15 V)
| Name | Required | Description | Default |
|---|---|---|---|
| extra | No | ||
| level | No | ||
| slope | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full behavioral burden. It discloses the core mutation ('Switches TRIGger:MODE to EDGE') and parameter domains/units, but it does not say whether other trigger settings are preserved, what side effects occur, or whether specific permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact and front-loaded: it states the purpose in the first sentence and then lists parameter semantics in a terse, readable block. Every phrase carries needed information without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the description covers the essential parameter semantics. However, with no annotations and no usage guidance relative to sibling trigger tools, the definition is only minimally complete for selecting and safely invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must supply parameter meaning. It documents source ranges, slope values, and level units/formulas for three of four parameters, adding substantial value beyond the bare schema. The 'extra' parameter remains undocumented, keeping this from a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: selects edge trigger mode and configures source, slope, and level. It distinguishes itself from other trigger-type setters by naming 'edge trigger' and noting it is the most common, though it does not explicitly contrast with siblings like set_trigger_pulse_width or set_trigger_slope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '(most common)' weakly implies edge triggering is the usual choice, but the description never states when to use this tool versus the many other trigger configuration tools. No alternatives or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_nth_edgeB
Nth-edge burst trigger (fires on the Nth edge after a quiet period).
slope: POSitive|NEGative; idle_time: 16 ns .. 10 s; edge: which edge to trigger on, 1 .. 65535; level: volts (analog: ±4.5×scale−offset; digital: ±15 V).
| Name | Required | Description | Default |
|---|---|---|---|
| edge | No | ||
| extra | No | ||
| level | No | ||
| slope | No | ||
| source | No | ||
| idle_time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the trigger's firing semantics and gives units/ranges for idle_time and level, which is useful, but says nothing about whether it overwrites existing trigger config, required acquisition/run state, or how it interacts with trigger mode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by compact parameter notes; no filler. Slightly terse for a 6-parameter tool, but every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. However, with no annotations and 0% schema coverage, the description still omits prerequisites (run/stop state, trigger mode) and the source parameter, leaving the agent with gaps beyond the trigger semantics it does cover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description is the only source; it compensates well for slope, idle_time, edge, and level, including value ranges and units ('16 ns .. 10 s', '±4.5×scale−offset', '±15 V') that the bare schema does not provide. It leaves 'source' and 'extra' undocumented, keeping it short of a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Nth-edge burst trigger') and adds the defining behavior ('fires on the Nth edge after a quiet period'), which distinguishes it from the many sibling trigger setters. It does not name a specific alternative sibling, but the trigger-type name is sufficiently distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives no when-to-use, prerequisites, or alternative selection guidance despite a large family of sibling trigger tools (set_trigger_edge, set_trigger_pulse_width, set_trigger_runt, etc.). The agent must infer that this is the right tool purely from the trigger-type name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_patternB
Pattern trigger.
pattern: per-channel state string for CH1..CH4, e.g. 'HHLL' or 'H,H,L,L' (H=high, L=low, X=don't care, R=rising, F=falling; at most one edge; 'HHLL' is auto-expanded to the comma form the firmware requires); level: per-channel threshold in volts, requires level_source (e.g. 'CH2') -> ':TRIGger:PATTern:LEVel ,'.
| Name | Required | Description | Default |
|---|---|---|---|
| extra | No | ||
| level | No | ||
| source | No | ||
| pattern | No | ||
| level_source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It adds useful behavioral detail (pattern syntax, auto-expansion, level requiring level_source), but does not state that this is a write operation, whether it alters existing trigger settings, or what permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the tool's purpose, then breaks down parameters. The SCPI command hint at the end is useful and terse, though the opening line is abrupt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. However, missing usage context and incomplete parameter coverage (source, extra) leave the definition only marginally complete for an agent without domain knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain all parameters. It clarifies pattern, level, and level_source, but completely omits 'source' and 'extra', leaving two of five parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description and tool name together make clear this configures a pattern trigger, a specific trigger type distinct from edge, pulse, etc. The first line 'Pattern trigger.' is terse but sufficiently identifying combined with the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this pattern trigger versus other trigger types like edge, pulse width, or window. No prerequisites or context about trigger mode are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_pulse_widthC
Pulse width trigger. polarity: POSitive|NEGative; when: GREater|LESS|GLESs (greater/less/within range of the two widths). Widths in seconds (lower 1 ns .. upper; upper .. 10 s).
| Name | Required | Description | Default |
|---|---|---|---|
| when | No | ||
| extra | No | ||
| level | No | ||
| source | No | ||
| polarity | No | ||
| lower_width | No | ||
| upper_width | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether the trigger must be armed/enabled, whether it resets run state, what permissions are needed, or any side effects of setting a pulse-width trigger. Only parameter ranges are given, which is thin coverage for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is delivered as one dense, front-loaded block with the resource named first, then the parameter semantics. Every clause carries information; there is no filler wording, though the shorthand notation is terse to the point of being cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. But with 0% schema description coverage, 7 parameters, no annotations, and no when-to-use guidance, the description leaves significant gaps (source/level semantics, trigger arming behavior, positioning among sibling trigger tools) for a complex trigger-configuration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It usefully adds enum values (POSitive|NEGative, GREater|LESS|GLESs) and the width units/range (1 ns to 10 s) that the bare schema lacks, covering polarity, when, lower_width and upper_width. However, 'source', 'level', and 'extra' remain completely undocumented, leaving roughly half the parameters semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('Pulse width trigger'), and the verb is supplied by the tool name. It goes further by explaining the trigger's operating modes (greater/less/within range), so the agent understands what the tool configures. It does not, however, differentiate itself from the many sibling trigger tools (set_trigger_edge, set_trigger_window, set_trigger_runt, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this trigger versus the other trigger types, nor any prerequisites (e.g. must a source channel be configured first). The description explains parameter semantics but gives no routing guidance among the numerous set_trigger_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_runtC
Runt pulse trigger.
polarity: POSitive|NEGative; when: NONE|GREater|LESS|GLESs (width qualification).
| Name | Required | Description | Default |
|---|---|---|---|
| when | No | ||
| extra | No | ||
| source | No | ||
| level_a | No | ||
| level_b | No | ||
| polarity | No | ||
| width_lower | No | ||
| width_upper | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it says nothing about what happens to an existing trigger configuration, whether settings persist, what permissions or run-state are required, or what the tool returns. Listing enum values is parameter detail, not behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and front-loaded with the trigger type, but it is a fragmentary note rather than a coherent definition, and the cramped enum spelling (e.g. "GLESs") reads like copied internal documentation. It is concise without being sufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values need not be explained, but for an 8-parameter trigger setter with zero annotation coverage and zero schema documentation the description is far too thin. An agent would need to guess the meaning of the level and width parameters to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 8 parameters at 0% schema description coverage, the description documents only two of them (`polarity` with POSitive|NEGative and `when` with NONE|GREater|LESS|GLESs). `source`, `level_a`, `level_b`, `width_lower`, `width_upper`, and `extra` are undocumented in both the schema and the description, leaving most of the calling contract unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Runt pulse trigger" identifies the trigger resource/type and, via the tool name, implies configuration, but stops short of stating a verb or what is actually being set. It does implicitly distinguish this from the many sibling trigger configurators (edge, slope, window, pulse_width), so an agent can route to it, but the purpose is only implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus siblings like set_trigger_edge, set_trigger_pulse_width, or set_trigger_window, and no prerequisites such as whether acquisition must be stopped first. The only usage-adjacent text is the enumeration of acceptable `polarity` and `when` values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_serialA
Serial-bus trigger: RS232 | IIC | SPI | CAN | LIN | FLEXray | IIS | M1553.
Typed params map to the documented keywords of the selected protocol
(sent as :TRIGger:: ; booleans are sent as 1/0,
everything else verbatim):
RS232: source level polarity when data baud width stop parity buser
IIC: scl sda clevel dlevel when awidth address direction dbytes
data currbit code
SPI: clk scl miso sda cs clevel dlevel slevel slope when mode
timeout width data currbit code
CAN: source stype when baud spoint extended define dwidth data
currbit code level
LIN: source level standard baud samplepoint when error id data
currbit code
FLEXray: source when level baud pos error symbol frame define idcmp
cyccomp maxcy mincy maxid minid ch
IIS: clock data_source ws_select clock_slope clevel slevel dlevel
alignment uwidth width dmin dmax when audio data code
M1553: source when polarity window sync error datcomp datvalue dmin
dmax drta dbit code alevel blevel
Anything else: pass extra={"KEYWORD": value} (KEYWORD must be
documented for that protocol in manual section 3.27).
| Name | Required | Description | Default |
|---|---|---|---|
| extra | No | ||
| params | Yes | ||
| protocol | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the wire encoding (':'TRIGger:<PROTO>:<SUFFIX>' with booleans as 1/0) and the `extra` escape hatch, but says nothing about side effects, whether it overwrites existing trigger settings, or required instrument state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose in the first line, then the encoding rule, then the per-protocol keyword reference. The long keyword dumps are justified given 0% schema coverage, though the list-heavy block is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the description covers parameterization for every supported protocol plus an escape hatch with a manual reference. It omits only behavioral context (state changes, error handling) for a complex mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it maps each protocol to its documented keyword set and explains the fallback `extra={'KEYWORD': value}` mechanism. It is docked slightly because the `params` parameter is typed as a plain string in the schema while the description implies a structured/typed mapping, leaving the actual encoding of `params` ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('Serial-bus trigger') and enumerates the exact protocol families covered (RS232, IIC, SPI, CAN, LIN, FLEXray, IIS, M1553). This clearly distinguishes it from siblings like set_trigger_edge, set_trigger_pulse_width, and set_trigger_video without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the protocol list; the description never states when to choose this over set_trigger_edge or the per-protocol configure_bus_* tools, nor any prerequisites such as needing the matching bus configured first. Adequate but with no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_setup_holdA
Setup & Hold trigger (:TRIGger:MODE SETup, subsystem :TRIGger:SHOLd).
data_source/clock_source: CH1..CH4 or D0..D15 (data and clock lines); slope: POSitive|NEGative (clock edge); pattern: H|L (level the data must hold stable across the clock edge); condition: SETup|HOLD|SETHold; setup_time/hold_time: 1 ns .. 10 s; data_level/clock_level: volts (analog: ±4.5×scale−offset; digital: ±15 V).
| Name | Required | Description | Default |
|---|---|---|---|
| extra | No | ||
| slope | No | ||
| pattern | No | ||
| condition | No | ||
| hold_time | No | ||
| data_level | No | ||
| setup_time | No | ||
| clock_level | No | ||
| data_source | No | ||
| clock_source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully documents allowed values and ranges for most parameters, but does not describe side effects such as whether the instrument must be stopped, whether this activates the trigger, or how it interacts with other trigger settings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the trigger type and SCPI subsystem, followed by a clean semicolon-separated parameter reference. Every line contributes useful semantic detail without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. The parameter semantics are thorough, but for a 10-parameter SCPI trigger configuration tool with no annotations, the description omits usage context and behavioral side effects, leaving a small completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates excellently by defining the meaning, allowed values, units, and constraints for 9 of 10 parameters, including enums (POSitive|NEGative, H|L, SETup|HOLD|SETHold), time ranges (1 ns .. 10 s), and analog/digital voltage limits. Only the generic 'extra' parameter is undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It identifies the exact trigger mode 'Setup & Hold trigger' and the underlying SCPI subsystems (:TRIGger:MODE SETup, :TRIGger:SHOLd), which distinguishes it from sibling trigger configuration tools like set_trigger_edge or set_trigger_pattern. The tool name supplies the verb, and the description confirms the specific resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists parameter semantics but gives no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions that would select it over other trigger types. An agent must infer usage context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_slopeC
Slope (rise/fall time) trigger.
polarity: POSitive|NEGative; when: GREater|LESS|GLESs; window: TA|TB|TAB (which level limit(s) the knobs adjust).
| Name | Required | Description | Default |
|---|---|---|---|
| when | No | ||
| extra | No | ||
| source | No | ||
| window | No | ||
| level_a | No | ||
| level_b | No | ||
| polarity | No | ||
| time_lower | No | ||
| time_upper | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it only discloses the accepted enum values for polarity/when/window. It never states that this mutates instrument state, whether the trigger must be stopped first, how it interacts with source/level settings, or what happens to unspecified knobs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, front-loaded with the trigger type and followed by a compact enum legend; nothing is padded. It is efficient, though the terse style borders on under-specification rather than disciplined brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but with 9 parameters, 0% schema coverage and no annotations, the definition leaves the majority of the calling surface undocumented. An agent cannot reliably set source, levels, or time bounds from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 9 parameters, so the description must compensate but only explains three of them (polarity, when, window). source, level_a, level_b, time_lower, time_upper and extra are entirely undocumented, including units for the time/level fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun fragment, 'Slope (rise/fall time) trigger.', with no verb stating what is actually done to the trigger (configure, arm, enable). It identifies the trigger type, which loosely separates it from the many set_trigger_* siblings, but the name does most of that work rather than the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of prerequisites (e.g. run state, acquisition mode), and no routing to alternatives such as set_trigger_edge or set_trigger_window. The enum legend describes value syntax, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_timeoutB
Timeout trigger: fires when the signal stays on one side of the level.
slope: POSitive|NEGative|RFALl; time: 1 ns .. 10 s.
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | ||
| extra | No | ||
| level | No | ||
| slope | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It usefully discloses the trigger's fire condition and the valid slope/time constraints, but as a set_ mutation tool it omits whether it replaces existing trigger config, permission needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly worded sentences with the trigger behavior front-loaded and parameters second. Only the slightly garbled enum spelling ('RFALl') and terse phrasing keep it from being a clean 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained. However, for a 5-parameter mutation tool with zero annotation coverage and 0% schema coverage, the description leaves three parameters unexplained and gives no usage guidance, so it is only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the schema types are generic (slope is an unconstrained string, time an unconstrained number). The description compensates by enumerating slope values (POSitive|NEGative|RFALl) and the time range (1 ns .. 10 s), but level, source, and extra remain completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (timeout trigger) and its firing condition ('fires when the signal stays on one side of the level'), which lets an agent distinguish it behaviorally from edge/pulse-width siblings. It stops short of explicitly naming sibling trigger tools to route against, but the trigger semantics are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives such as set_trigger_runt or set_trigger_pulse_width, which detect related 'signal stuck' conditions. The firing condition implies context but the agent must infer when timeout is preferred over other trigger modes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_videoC
Video trigger.
mode: ODDField|EVENfield|LINE|ALINes; polarity: POSitive|NEGative; line: 1 .. 1125 (limit depends on the standard); level: volts; standard: PALSecam|NTSC|480P|576P|720P60|720P50|720P30|720P25|720P24| 1080P60|1080P50|1080P30|1080P25|1080P24|1080I60|1080I50
| Name | Required | Description | Default |
|---|---|---|---|
| line | No | ||
| mode | No | ||
| extra | No | ||
| level | No | ||
| source | No | ||
| polarity | No | ||
| standard | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists parameter choices and constraints but does not state that this is a mutating configuration tool, whether acquisition must be stopped, what existing trigger settings are affected, or what happens on invalid values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the trigger type, then lists parameter details. It is somewhat dense and uses non-standard formatting, but it avoids filler and stays appropriately short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no annotations and no schema descriptions, the description is incomplete. It covers several parameter constraints but omits source and extra, gives no usage guidance, and adds no behavioral context. An output schema exists, so return values need not be explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It documents allowed values and constraints for mode, polarity, line, level, and standard, but it omits the source and extra parameters and does not fully define the 'extra' object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says only 'Video trigger' without an explicit verb, so the action (set/configure) must be inferred from the tool name. It does identify the specific trigger type, but it does not distinguish this tool from sibling trigger setters in prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this video trigger versus edge, pulse-width, slope, runt, window, or other trigger tools. No prerequisites, alternatives, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trigger_windowB
Window trigger (enter/exit/timeout within a voltage window).
slope: POSitive|NEGative|RFALl; position: EXIT|ENTer|TIME; time: 1 ns .. 10 s (only for position=TIME).
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | ||
| extra | No | ||
| slope | No | ||
| source | No | ||
| level_a | No | ||
| level_b | No | ||
| position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the meaningful constraint that 'time' only applies when position=TIME, which is real behavioral context, but it never states that this mutates instrument trigger configuration, whether it overwrites prior settings, or any permission/side-effect profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, front-loaded with the tool's purpose before the parameter hints, with no filler. Slightly cryptic abbreviations ('RFALl', one-line parameter list) cost a little clarity but not size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 7-parameter mutation tool with zero annotation coverage and 0% schema documentation, the description leaves more than half the parameters and all side-effect behavior unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, so the description must compensate, and it only covers slope, position, and time. It usefully supplies enum-like values (POSitive|NEGative|RFALl, EXIT|ENTer|TIME) that the schema lacks, but level_a, level_b, source, and extra — the actual voltage window definition — go undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-resource pairing ('Window trigger') and parenthetically defines the mechanism (enter/exit/timeout within a voltage window). This distinguishes it from its many trigger siblings like set_trigger_edge or set_trigger_pulse_width, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the window-trigger semantics and the parenthetical explaining enter/exit/timeout positions, but there is no explicit 'use this when...' guidance or exclusion against other trigger types such as set_trigger_runt or set_trigger_timeout.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smb_connectA
Connect the configured SMB share (:SAVe:SMB:CONNect).
Check the result with get_smb_status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only states the action and a verification step, omitting whether the connection requires prior configuration, whether it blocks, what errors may occur, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste, front-loading the action and then the verification step. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter connect action with an output schema present, the description tells the agent what it does and how to check the result. It implies the share must be configured but does not explicitly route the agent to configure_smb first; still, it is sufficient for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description adds no parameter information because there are none, and the SCPI command is the only actionable detail beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Connect the configured SMB share'), includes the device-specific SCPI command, and distinguishes itself from configure_smb and smb_disconnect by focusing solely on the connect operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly directs the agent to verify the result with get_smb_status, which is clear context for post-invocation. However, it does not state prerequisites (e.g., configure_smb must have been called first) or any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smb_disconnectB
Disconnect the SMB share (:SAVe:SMB:DISConnect).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the underlying SCPI command (:SAVe:SMB:DISConnect), which is mildly useful for traceability, but says nothing about side effects, whether an active connection is required, or what happens to in-flight operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the purpose front-loaded and no wasted words; the SCPI reference is appended compactly rather than padding the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (0 params, output schema present), so return-value explanation is unnecessary. Still, with no annotations the description leaves behavioral questions unanswered — prerequisites and post-disconnect state — making it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema declares zero parameters, so there is nothing for the description to clarify. Baseline of 4 applies for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Disconnect the SMB share', which is unambiguous and clearly distinguished from siblings like smb_connect, configure_smb, and get_smb_status. It stops short of a 5 only because it doesn't explicitly contrast itself against those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives, nor any prerequisite such as requiring an active connection first. The use case is only inferable from the tool name and the presence of smb_connect in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_awg_phaseB
Perform the "align phase" operation (manual 3.25.7).
Sends :SOURce:PHASe:SYNChronize: both generator channels are re-configured to output at their preset frequency and phase; signals whose frequencies are identical (or integer multiples) come out phase-aligned.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the underlying SCPI command and that both generator channels are reconfigured to preset frequency and phase, which is useful behavioral context, but it does not state whether settings are overwritten, whether output state is affected, what permissions are required, or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no filler, and the core operation is front-loaded. The manual-reference parenthetical is useful context rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value description is not required. However, with no annotations and 0% parameter schema coverage, the description is only partially complete: it explains the operation's effect but leaves the required channel parameter and usage conditions insufficiently specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage for the single required 'channel' parameter is 0%, so the description must compensate. It references :SOURce<n>, which hints that the parameter selects a source, but it never explains the allowed values or exactly what the channel argument controls, and saying 'both generator channels are re-configured' makes the singular required channel parameter ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation, 'align phase', and specifies the SCPI command plus the resulting behavior: both generator channels are reconfigured so identical or integer-multiple frequencies become phase-aligned. It is clear what the tool does, though it does not explicitly differentiate itself from nearby AWG configuration siblings such as set_awg_output or configure_awg.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is useful by explaining the phase-alignment outcome for identical or integer-multiple frequencies, but it gives no explicit when-to-use, when-not-to-use, prerequisites, or alternative tools. The guidance is therefore only implied rather than actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_completeB
Block until all pending operations finish (*OPC?).
use_wai: also send *WAI first — the IEEE488.2 wait-to-continue command. On this firmware *WAI is a compatibility no-op, kept for completeness.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | ||
| use_wai | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the tool waits using *OPC? and that *WAI is a compatibility no-op on this firmware, but it does not explain timeout behavior or what happens if the operation times out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action, and each sentence adds useful context about *OPC? and *WAI. It is appropriately sized for a simple blocking helper tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described. The description covers the main blocking behavior and use_wai, but it omits timeout semantics and usage context relative to sibling tools, leaving meaningful gaps for an annotation-free tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters. The description explains use_wai and its effect, which adds real meaning, but it says nothing about the timeout parameter, leaving half the parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: block until all pending operations finish via *OPC?. It is specific and an agent can understand its synchronization role. It does not explicitly distinguish itself from siblings such as scpi, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying it blocks until pending operations finish, and it explains the optional use_wai flag. However, it offers no explicit guidance on when to choose this tool versus scpi or other synchronization approaches, nor any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
142 tool updates
v0.1.0- First observed
autoscale - First observed
clear_status - First observed
configure_awg - First observed
configure_awg_modulation - First observed
configure_bode - First observed
configure_bus - First observed
configure_bus_can - First observed
configure_bus_flexray - First observed
configure_bus_iic - First observed
configure_bus_iis - First observed
configure_bus_lin - First observed
configure_bus_m1553 - First observed
configure_bus_parallel - First observed
configure_bus_rs232 - First observed
configure_bus_spi - First observed
configure_la - First observed
configure_mask - First observed
configure_math - First observed
configure_measure_amplitude - First observed
configure_measure_region - First observed
configure_measure_setup - First observed
configure_navigate - First observed
configure_quick - First observed
configure_record - First observed
configure_reference - First observed
configure_save - First observed
configure_search - First observed
configure_smb - First observed
connect - First observed
disconnect - First observed
export_bus_on_instrument - First observed
export_waveform_csv - First observed
get_acquire - First observed
get_autoset_options - First observed
get_awg_config - First observed
get_awg_full_config - First observed
get_bode_config - First observed
get_bus_config - First observed
get_channel - First observed
get_channel_full - First observed
get_cursor_values - First observed
get_cursor_xy_values - First observed
get_datetime - First observed
get_display - First observed
get_errors - First observed
get_histogram_config - First observed
get_idn - First observed
get_ieee488_status - First observed
get_keyboard_check - First observed
get_la_config - First observed
get_lan_config - First observed
get_mask_config - First observed
get_mask_result - First observed
get_math_config - First observed
get_math_config_full - First observed
get_math_fft_peaks - First observed
get_math_waveform - First observed
get_navigate_config - First observed
get_option_status - First observed
get_record_status - First observed
get_reference_config - First observed
get_save_config - First observed
get_save_status - First observed
get_screenshot - First observed
get_screenshot_data - First observed
get_search_config - First observed
get_search_event_time - First observed
get_smb_config - First observed
get_smb_status - First observed
get_status - First observed
get_system_config - First observed
get_system_info - First observed
get_timebase - First observed
get_timebase_full - First observed
get_trigger_common - First observed
get_trigger_config - First observed
get_trigger_position - First observed
get_trigger_status - First observed
get_waveform - First observed
get_waveform_preamble - First observed
get_waveform_setup - First observed
list_resources - First observed
load_mask_on_instrument - First observed
load_setup - First observed
load_setup_on_instrument - First observed
measure_batch - First observed
measure_item - First observed
measure_quick - First observed
measure_statistics_item - First observed
navigate_to_event - First observed
read_bus_data - First observed
read_counter - First observed
read_dvm - First observed
read_histogram_stats - First observed
reboot_system - First observed
reset - First observed
save_image_on_instrument - First observed
save_mask_on_instrument - First observed
save_memory_waveform_on_instrument - First observed
save_setup - First observed
save_setup_on_instrument - First observed
save_waveform_on_instrument - First observed
scpi - First observed
self_test - First observed
set_acquire - First observed
set_autoset_options - First observed
set_awg_output - First observed
set_channel - First observed
set_counter - First observed
set_cursor - First observed
set_datetime - First observed
set_display - First observed
set_dvm - First observed
set_histogram - First observed
set_ieee488_enable - First observed
set_lan - First observed
set_measure_counter - First observed
set_measure_histogram - First observed
set_measure_sources_ab - First observed
set_measure_statistics - First observed
set_measure_thresholds - First observed
set_run_state - First observed
set_system - First observed
set_timebase - First observed
set_trigger_common - First observed
set_trigger_delay - First observed
set_trigger_duration - First observed
set_trigger_edge - First observed
set_trigger_nth_edge - First observed
set_trigger_pattern - First observed
set_trigger_pulse_width - First observed
set_trigger_runt - First observed
set_trigger_serial - First observed
set_trigger_setup_hold - First observed
set_trigger_slope - First observed
set_trigger_timeout - First observed
set_trigger_video - First observed
set_trigger_window - First observed
smb_connect - First observed
smb_disconnect - First observed
sync_awg_phase - First observed
wait_complete
TDQS
Scored across 142 tools
There are many overlapping families: get_channel vs get_channel_full, get_timebase vs get_timebase_full, get_math_config vs get_math_config_full, configure_bus vs configure_bus_rs232/iic/spi/etc., set_counter vs set_measure_counter, and multiple screenshot/save-image tools. Descriptions often clarify differences, but the set has several tool pairs whose boundaries an agent could easily misselect among.
Mostly consistent snake_case verb_noun naming (get_, set_, configure_, measure_, save_, load_, read_) is used throughout. Minor deviations exist, such as bare verbs reset/autoscale, noun-like scpi, and get_screenshot vs get_screenshot_data, but the overall convention is readable and predictable.
142 tools is an extreme mismatch for an MCP server, far beyond the typical 3-15 range. The surface is effectively a full SCPI wrapper, creating excessive cognitive load and making tool selection impractical for an agent despite the exhaustive coverage.
The server covers nearly every major oscilloscope subsystem: system, LAN, save/load, triggers, channels, timebase, acquisition, measurements, cursors, counter/DVM, waveform, math, reference, bus decode, AWG, Bode, display, histogram, mask, search, record, logic analyzer, and connection management. The scpi escape hatch also prevents dead ends for undocumented or unexposed operations.
Maintenance
Related MCP Connectors
Create RF signal projects from prompts, inspect graphs, and export IQ data.
Remote MCP for 9192 discovery, pricebook, payment rails, GET_PULSE quotes, and receipt checks.
Scans remote MCP servers for protocol, security, and TLS issues; exposes scan tools via MCP.
Structured analysis API and remote MCP tool for text, JSON records and numeric series.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables control and querying of Rigol DHO824 oscilloscopes, allowing users to capture waveforms, take screenshots, and interact with oscilloscope settings through natural language.64 PyPI3MIT
- AlicenseAqualityBmaintenanceMCP server for controlling and reading Rigol DHO800/DHO900 oscilloscopes over LAN via SCPI commands.111MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to control Rigol MSO5000 oscilloscopes through VISA, including acquisition, channels, trigger, timebase, waveform generator, display, and front-panel controls, with risk-based permission gating for direct SCPI operations.1MIT
- AlicenseAqualityAmaintenanceEnables LLMs to control RIGOL oscilloscopes over SCPI via LAN or USB, including configuring channels/timebase/trigger, taking measurements, capturing waveforms and screenshots, decoding serial protocols, running FFT analysis, and controlling the built-in AFG.38MIT