LeCroy Oscilloscope MCP
Click on "Install 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., "@LeCroy Oscilloscope MCPcapture a screenshot and measure the frequency on channel 1"
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.
lecroy-mcp
MCP server for controlling LeCroy oscilloscopes via SCPI over LAN (VXI-11) or USB.

Requirements
uv installed
A LeCroy oscilloscope connected over LAN or USB
Related MCP server: Rigol DHO824 MCP Server
MCP configuration
Add to your MCP client config (e.g. Claude Code's .mcp.json):
{
"mcpServers": {
"lecroy-scope": {
"type": "stdio",
"command": "uvx",
"args": ["lecroy-mcp"]
}
}
}uvx will automatically download and run the server — no manual installation needed.
Oscilloscope setup (LAN / VXI-11)
This server communicates over the standard VXI-11 protocol. Before connecting, enable it on the scope:
On the scope, go to Utilities → Utilities Setup ... → Remote
In the Control from section, enable LXI (VXI11)
Note the IP Address shown — you will need it for the connection string
The scope's IP can be assigned via DHCP or configured statically under Utilities → Utility → Remote → Net Connections.
Note: The TCPIP (VICP) option shown in the same panel uses LeCroy's proprietary protocol and is currently not supported by this server. Only LXI (VXI11) is required.

Connection options
Option 1 — Manual connection
Copy the MCP client config from above as-is and connect from within the Claude session:
scope_scan— auto-detect LeCroy scopes on the local networkscope_list_resources— list all VISA resources (LAN + USB)scope_connect("TCPIP0::192.168.1.111::inst0::INSTR")— connect directly
Optionally set LECROY_SUBNET to hint the scan range:
{
"mcpServers": {
"lecroy-scope": {
"type": "stdio",
"command": "uvx",
"args": ["lecroy-mcp"],
"env": {
"LECROY_SUBNET": "192.168.1.0/24"
}
}
}
}Option 2 — Pre-configure the IP address (recommended for LAN)
Set LECROY_HOST in the env block and the server auto-connects on startup:
{
"mcpServers": {
"lecroy-scope": {
...
"env": {
"LECROY_HOST": "192.168.1.111"
}
}
}
}Option 3 — Pre-configure a full resource string (LAN or USB)
Use LECROY_RESOURCE for full control, including USB connections:
{
"mcpServers": {
"lecroy-scope": {
...
"env": {
"LECROY_RESOURCE": "USB0::0x05FF::0x1023::12345::INSTR"
}
}
}
}Usage
Once connected, you have tools for:
Channel setup (scale, offset, coupling, bandwidth limit)
Trigger configuration (mode, source, level, edge)
Timebase and memory depth
Automated measurements (PKPK, FREQ, RMS, RISE, DUTY, etc.)
Waveform capture (JSON or CSV)
Screenshots
Math functions (FFT, INTG, DIFF, etc.)
WaveSource built-in generator (WaveSurfer 3000Z and similar)
Supported models
The server detects the connected model and adjusts commands accordingly. Profiles are included for:
WaveSurfer 3000Z / 4000HD
HDO4000A / HDO6000B / HDO8000A
WaveRunner 6000 / 8000
WavePro HD
MDA800A, SDA
Unknown models fall back to conservative defaults.
Manual installation
If you prefer not to use uvx:
pip install lecroy-mcpThen use lecroy-mcp as the command in your MCP config instead of uvx lecroy-mcp.
Updating
With uvx, use the @latest tag to force the newest version:
uvx lecroy-mcp@latestOr update the args in your .mcp.json to always pull the latest:
"args": ["lecroy-mcp@latest"]With pip:
pip install --upgrade lecroy-mcpNotes
Requires
pyvisa-pybackend — NI-VISA is currently not supported (breaks screenshot capture)All VISA access is serialized via a threading lock; parallel MCP tool calls are safe
Troubleshooting
Diagnostic messages not appearing in MCP logs
If you are not seeing server log output (e.g. auto-connect status or errors) in your MCP client's log viewer, add PYTHONUNBUFFERED to the env block:
"env": {
"PYTHONUNBUFFERED": "1"
}This disables Python's output buffering so log messages are flushed immediately. It is not required for normal operation.
Tested with
Component | Details |
Oscilloscope | Teledyne LeCroy WaveSurfer 3024Z |
Operating system | Windows 10, Windows 11, Linux Mint |
MCP client | Claude Code |
This server should also work with other MCP-compatible clients such as OpenAI Codex and Google Gemini Code Assist, and on other operating systems such as macOS. Reports and contributions for additional configurations are welcome.
Disclaimer
Teledyne LeCroy and LeCroy are registered trademarks of Teledyne LeCroy, Inc. This project is an independent open-source tool and is not affiliated with, endorsed by, or sponsored by Teledyne LeCroy, Inc. All product and company names are trademarks or registered trademarks of their respective holders.
Available Tools
48 toolsscope_armA
Arm the trigger (ARM). Start waiting for a trigger event.
Use scope_get_acquisition_status to poll for completion.
Transport: SCPI
| 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?
Discloses that it starts waiting for a trigger event and mentions SCPI transport. However, no annotations exist and description lacks details on preconditions, state behavior, or whether it can be called multiple times.
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, no wasted words. Efficiently conveys the core action and follow-up.
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 the action, follow-up step, and transport protocol. Lacks precondition details (e.g., connection required, trigger configured), but overall sufficient for a simple 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?
No parameters present, so schema coverage is 100%. The description adds no parameter info, which is acceptable given zero parameters; 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?
Clearly states the tool arms the trigger and starts waiting for a trigger event. Distinguishes from siblings like force_trigger and configure_trigger.
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 tells the user to poll with scope_get_acquisition_status for completion. Provides a clear workflow step, though does not state 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.
scope_auto_setupB
Run AUTO_SETUP to automatically scale vertical, horizontal and trigger.
The scope will adjust all settings to best display the connected signals.
Transport: SCPI
| 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 burden of behavioral disclosure. It states the action (auto-setup) but lacks details on side effects, duration, required permissions, or whether it clears previous settings. The mention of 'Transport: SCPI' adds minimal 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 brief and front-loaded with the key action. The extra transport line is somewhat extraneous but does not detract significantly. It could be integrated or removed for tighter structure.
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 trivial parameter count and presence of an output schema (not shown), the description covers the basic function. However, it lacks information about what the tool returns or its effect on the oscilloscope state, which is important for an AI agent to handle 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?
The tool has zero parameters, so schema coverage is 100% by default. The description confirms the tool is parameterless and explains its purpose, which is sufficient. No additional 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?
The description explicitly states the tool runs AUTO_SETUP to automatically scale vertical, horizontal, and trigger settings, with the clear outcome of adjusting all settings to best display connected signals. This effectively distinguishes it from sibling tools like scope_configure_channel or scope_measure.
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 does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions. There are no explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_beepA
Trigger the oscilloscope audible beeper. Useful for confirming operations.
Transport: SCPI
| 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 burden. It states the action and transport (SCPI) but does not disclose side effects, idempotency, or error conditions.
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 concise: two short sentences plus the transport line. Every word serves a purpose 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 the tool's simplicity (no parameters, output schema exists), the description covers the core purpose and transport. It could mention return value or blocking behavior, but the output schema likely covers return info.
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 has no parameters (100% coverage trivially), so the baseline is 4. The description appropriately adds no parameter information as none 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?
The description clearly specifies the action ('Trigger') and the resource ('oscilloscope audible beeper'), distinguishing it from sibling tools that perform different operations like capturing, measuring, or configuring.
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 mentions it's 'useful for confirming operations' but does not specify when to use it versus alternatives or provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_calibrateA
Run self-calibration (*CAL?) and return the result status.
Transport: SCPI
| 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 burden. It mentions 'Transport: SCPI' but does not disclose whether calibration is time-consuming, destructive, or requires specific conditions. The return is only 'result status', lacking detail on what that includes.
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 concise sentences with no wasted words. The key information is front-loaded: action and return type.
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 no-parameter tool with an output schema, the description is largely complete. It could mention that calibration may take time, but given low complexity, the gap is minor.
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 has no parameters, and schema description coverage is 100% (trivial). The description correctly conveys no parameters are needed, earning baseline 4 for 0-parameter tools.
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 explicitly states 'Run self-calibration' and 'return the result status', providing a clear verb and resource. Among siblings, no other tool performs calibration, so it is well-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?
The description implies when to use (to calibrate) but offers no explicit guidance on when not to use or alternatives. Sibling tools exist for other operations, but no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_capabilitiesA
Return the detected model profile for the connected oscilloscope.
Shows family name, channel count, bandwidth, ADC resolution, supported coupling values, bandwidth-limit values, memory depth, math channels, and which optional features (invert, unit, SARA) are available.
Connect with scope_connect first; the profile is detected from *IDN?.
Transport: local (reads cached profile set during scope_connect)
| 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 fully discloses behavior: it is a read operation that returns cached profile data from scope_connect. It explains the mechanism (*IDN?) and transport (local). There are no contradictions or omissions.
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 four sentences, each serving a purpose: purpose, output details, prerequisite, and transport. It is front-loaded with the main action. No unnecessary 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?
Given the tool's simplicity (no input params, output schema exists), the description is complete. It covers prerequisites, behavioral traits, and return content. Without annotations, it compensates well.
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 has zero parameters, so baseline is 4. The description does not need to explain parameters, but it adds value by detailing what the output contains, which is helpful. However, since parameter semantics focus on input, the score remains at 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?
The description clearly states it returns the detected model profile, listing specific attributes like family name, channel count, bandwidth, etc. The verb 'Return' and resource 'model profile' are specific, and the tool distinguishes itself from siblings like scope_connect or scope_identify.
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 explicitly says to 'Connect with scope_connect first,' providing a clear prerequisite. It also notes that the profile is detected from *IDN? and that transport is local reading cached data. However, it does not mention alternatives or when not to use this tool, though the context implies it's for after connection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_capture_channelsA
Capture multiple channels atomically and save to a single .npz file.
Use this when you need time-domain signals from multiple channels (plotting, cross-channel analysis, export). For scalar results like peak voltage or frequency, prefer scope_measure — no waveform transfer needed.
If the scope is already stopped (e.g. from a previous capture), arms it first and waits for a fresh acquisition before reading. All channels are read within a single VISA lock hold so the waveforms come from the same snapshot. Always leaves the scope stopped after capture.
Saves to 'waveforms/' with an auto-generated filename, e.g.: waveforms/C3F1_20260329_153042.npz
The .npz file contains arrays: time_s, c3, f1, ... (one per channel). Analog channels use keys like c1, c2; math channels use f1, f2, etc.
Load in Python with: import numpy as np d = np.load('/path/to/file.npz') time_s, c3, f1 = d['time_s'], d['c3'], d['f1']
Args: channels: List of analog channel numbers (e.g. [1, 2]) and/or math channel strings (e.g. ["F1", "F2"]). Mixed lists are supported, e.g. [3, "F1"] captures C3 and the F1 math trace together. max_points: Maximum samples per channel (default 10000, evenly downsampled).
Transport: SCPI (binary WF? DAT1 transfer + INSPECT? WAVEDESC scaling)
| Name | Required | Description | Default |
|---|---|---|---|
| channels | Yes | ||
| max_points | 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 discloses important behavior: atomic capture, arming if stopped, VISA lock, leaving scope stopped, file naming. Could mention error handling or prerequisites but covers the main behavioral traits well.
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?
Well-structured with sections: purpose, usage, behavior, args, file format, transport. Every sentence is informative and not 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?
Despite missing annotations and schema descriptions, the description covers input/output, behavior, file structure, and loading example. It is complete for an agent to use 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%, but description fully explains channels (analog numbers and math strings, mixed) and max_points (default, downsampling). Adds example and transport detail.
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 captures multiple channels atomically and saves to a .npz file, with a specific verb and resource. It distinguishes from siblings like scope_measure for scalar results.
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 provides when to use (time-domain signals from multiple channels) and when not to (scalar results → prefer scope_measure). Also explains behavior like arming scope and leaving it stopped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_channel_infoA
Get all current settings for a channel in one call.
Returns vertical scale, offset, coupling, bandwidth limit, invert, trace visibility, unit, and configured probe (from LECROY_PROBE_Cn env var).
Args: channel: Channel number 1–4
Transport: SCPI
| 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 provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it does not explicitly confirm non-destructiveness or state side effects. The return list is helpful but the safety profile is not fully clarified.
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 concise: three lines for purpose and return list, plus Args and Transport. No wasted words, and key information is front-loaded.
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 simple tool (one param, output schema exists), the description covers purpose, key return values, parameter meaning, and transport. It lacks guidance on usage context or exclusions but is complete for its scope.
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 parameters. It adds 'Channel number 1–4', giving a meaning and range beyond the schema's raw integer type. This is sufficient and clear.
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 'Get all current settings for a channel', specifying the verb 'Get' and the resource 'all current settings'. It lists exact returned fields, distinguishing it from sibling tools like 'scope_configure_channel' (set settings) and 'scope_cursor_info' (cursor-specific).
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 via 'in one call' but does not explicitly state when to use this tool versus alternatives. No exclusions or prerequisites are mentioned, relying on agent inference from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_configure_channelA
Configure one or more settings for a channel in a single call.
All parameters except channel are optional — only the provided ones are applied.
Probe attenuation (ATTN) is set automatically from the LECROY_PROBE_Cn environment variable at connect time and cannot be changed here — it reflects the physical probe and is the engineer's responsibility.
Args: channel: Channel number 1–4 vdiv: Vertical scale in V/div, e.g. 0.1 = 100 mV/div, 1.0 = 1 V/div offset: Vertical offset in volts (positive shifts trace down) coupling: D1M (DC 1MΩ), D50 (DC 50Ω), A1M (AC 1MΩ), or GND bwlimit: Bandwidth limit: OFF (full BW), 20MHZ, 200MHZ. High-BW models also support 500MHZ, 1GHZ, etc. Use scope_capabilities to see valid values for the connected scope. invert: True to invert the signal polarity, False for normal trace: True to show the channel trace, False to hide it unit: Vertical unit: V (volts), A (amperes), W (watts), U (user)
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| vdiv | No | ||
| offset | No | ||
| coupling | No | ||
| bwlimit | No | ||
| invert | No | ||
| trace | No | ||
| unit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description covers partial update behavior, auto-set attenuation, parameter ranges, and transport (SCPI). Does not detail error handling 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-sentence intro followed by organized bulleted arg list. Front-loaded with purpose, 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?
Has output schema so return details not needed. Covers all inputs, constraints, and references sibling for validation. Could mention prerequisite of connection but implied by 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?
With 0% schema coverage, description adds full meaning: lists each parameter with valid values, examples, and constraints (e.g., vdiv format, offset direction, coupling options).
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?
Clear verb+resource: 'Configure one or more settings for a channel in a single call.' Distinguishes from siblings as the only tool dedicated to channel 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?
States that only provided parameters are applied, explains probe attenuation constraint, and directs to scope_capabilities for valid bwlimit values. Lacks explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_configure_triggerA
Configure trigger mode, source, slope, and/or level in a single call.
All parameters are optional — only the provided ones are applied. For complex trigger types (pulse width, window, TV, etc.) use scope_write.
If level is provided without source, it is applied to C1. To set the level on a different channel, always pass source together with level.
Args: mode: Trigger mode: AUTO (free-running), NORM (wait for trigger), SINGLE (one capture then stop), STOP (stop acquisition) source: Trigger source: C1, C2, C3, C4, EX, EX5, or LINE slope: Edge slope: POS (rising), NEG (falling), or EITHER level: Trigger threshold in volts
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| source | No | ||
| slope | No | ||
| level | 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 fully discloses behavioral traits: partial application of parameters, default channel for level, and transport protocol (SCPI). This gives the agent complete transparency into the tool's 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?
The description is concise and well-structured: one-sentence summary, then bullet points for each parameter with allowed values, plus a transport note. Every sentence adds value 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?
Given the four optional parameters, the description covers all necessary usage context: default behaviors, the alternative sibling for complex triggers, and parameter interactions. The presence of an output schema means return values need not be detailed.
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?
Despite 0% schema description coverage, the description adds full meaning to each parameter: modes are listed, source channels enumerated, slope edges given, and level unit specified. This compensates entirely for the lack of schema enum or 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?
The description clearly states the tool configures trigger mode, source, slope, and level in a single call, which is a specific verb+resource combination. It also distinguishes from sibling scope_write for complex triggers, avoiding ambiguity.
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 explicitly states all parameters are optional and applied only if provided. It directs users to scope_write for complex trigger types and gives a clear rule about level defaulting to C1 when source is omitted, providing excellent guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_connectA
Connect to the LeCroy oscilloscope at the given VISA resource address.
Args: resource_string: VISA address, e.g. 'TCPIP0::192.168.1.111::inst0::INSTR'
Returns the IDN string on success.
Transport: local (opens VISA session, then queries *IDN? via SCPI)
| Name | Required | Description | Default |
|---|---|---|---|
| resource_string | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses transport (local VISA session) and action (queries *IDN?), returning IDN string. Does not mention potential side effects like session locking or need to disconnect.
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?
Efficiently structured with purpose first, then details; no wasted words, though could be slightly more compact.
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 purpose, parameter, output, and transport. Lacks error handling or dependency notes, but sufficient for its simple role given the output schema exists.
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?
Adds substantial meaning beyond the schema (which has 0% coverage) by providing a clear example and format description for resource_string.
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 'Connect to the LeCroy oscilloscope' with specific verb and resource, and distinguishes from siblings like scope_disconnect and scope_list_resources.
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?
Implied usage (connect before other operations) but no explicit when-to-use, prerequisites, or alternatives like scope_list_resources for finding addresses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_connection_statusA
Check whether the server has an active VISA connection and identify the scope.
Transport: local (connection check) + SCPI (*IDN? if connected)
| 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?
Without annotations, the description covers behavior by noting it uses local transport and SCPI query, implying a read-only check. No side effects mentioned, but it's 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, no wasted words, and critical information is front-loaded. Highly concise.
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 and an output schema, the description adequately covers what the tool does and how it works. No missing elements for this simple 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?
No parameters exist, so the description does not need to add parameter info. Baseline 4 applies as schema coverage is 100%.
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 checks for an active VISA connection and identifies the scope, using a specific verb and resource. This distinguishes it from siblings like scope_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 provides implementation details (local transport, SCPI) that hint at usage context, but it does not explicitly state when to prefer this over alternatives. Still, the purpose is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_cursor_infoA
Query current cursor measurements from the oscilloscope.
Transport: SCPI
| 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 bears full burden. It only mentions 'Transport: SCPI' but does not disclose read-only nature, potential side effects, authorization needs, or rate limits. The phrase 'Query' implies safety but not explicitly.
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 concise sentences, front-loaded with purpose. Every word serves a function; no fluff.
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 and presence of an output schema (not shown), the minimal description suffices. However, a note about typical cursor modes or return structure could enrich 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?
Tool has zero parameters and schema coverage is 100%. Per guideline, 0 parameters warrants a baseline of 4. Description adds no parameter info but none is 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?
The description clearly states 'Query current cursor measurements from the oscilloscope', specifying the verb (Query), resource (cursor measurements), and context (oscilloscope). It distinctly differentiates from sibling tools like scope_set_cursor_type or scope_measure.
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 (e.g., scope_measure, scope_measure_all). No preconditions or exclusions are mentioned, such as requiring a cursor type to be set first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_decode_readA
Read decoded serial data from the scope's SerialDecode subsystem.
The scope must already have a serial decode active (configured via its UI or scope_decode_configure_uart). Works with UART/RS-232, I2C, SPI, CAN, and any other protocol supported by the Decode option.
Reads the decoded table row-by-row using the VBS Table API and saves the result to a timestamped .npz file so the raw data is not embedded in the response. The file contains: time_s — float array, timestamp for each decoded frame/byte data — uint8 array, decoded byte values
Returns JSON with the file path and metadata. Load in Python with: import numpy as np d = np.load('/path/to/file.npz') times, data_bytes = d['time_s'], d['data']
Note: row-by-row VBS queries are slow (~0.05 s each). Decodes with hundreds of rows will take 10–20 s. Keep this in mind for large captures.
Args: decoder: Decode slot number — 1 or 2 (default 1)
Transport: VBS (app.SerialDecode.Decode{n}.Out.Result.*)
| Name | Required | Description | Default |
|---|---|---|---|
| decoder | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully carries burden. Discloses row-by-row VBS slowness (~0.05 s each), typical duration for large decodes, file-saving behavior, return format, and Python loading instructions.
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?
Well-structured with clear sections, front-loaded purpose. A few extra sentences could be tightened, but overall 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?
Covers prerequisites, output format, performance caveats, and loading instructions. No gaps given complexity and lack of annotations.
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?
Single parameter 'decoder' explained as slot number 1 or 2. Schema only has type and default (0% coverage), so description adds needed context.
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?
Clear verb+resource: 'Read decoded serial data from the scope's SerialDecode subsystem.' Distinguishes from siblings like scope_get_waveform or scope_write by focusing on decoded serial 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?
Explicitly states precondition: 'The scope must already have a serial decode active' and names an alternative configure tool (scope_decode_configure_uart). Also warns about performance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_disconnectA
Disconnect from the oscilloscope. Safe to call even if not connected.
Transport: local
| 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 provides meaningful behavioral info: it is safe to call when not connected, indicating idempotency. This adds value beyond the bare action.
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 concise sentences front-load the purpose, with zero 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?
For a parameterless disconnect tool with an output schema, the description is sufficient. It explains safety, though it could mention return value 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?
Input schema has no parameters with 100% coverage, so baseline is 4. The description does not need to add parameter info, and it does not.
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 'Disconnect from the oscilloscope' using a specific verb and resource, and distinguishes itself from siblings like 'scope_connect' and 'scope_connection_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 notes it is 'Safe to call even if not connected', providing clear usage context and implying idempotency, though it does not explicitly mention 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.
scope_force_triggerA
Force an immediate trigger event (FRTR).
Useful when in NORM mode and the signal hasn't triggered yet.
Transport: SCPI
| 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?
Without annotations, the description carries the full burden. It explains the action (force immediate trigger) but does not disclose potential side effects, implications for data acquisition, or what the output schema contains. For a parameterless tool, this is adequate but not thorough.
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 concise: two sentences plus a transport line. The key purpose is front-loaded, and every sentence adds value 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?
Given no parameters and an output schema existing, the description covers the tool's primary purpose and usage context. However, it could be more complete by describing what the output contains (e.g., status or success indicator), but for a simple trigger command it is largely sufficient.
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?
There are no parameters, so schema coverage is 100%. The description adds 'Transport: SCPI' which is not parametric but provides context. Since there is nothing to explain about parameters, the baseline of 4 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?
The description clearly states the tool forces an immediate trigger event (FRTR) and distinguishes it by providing a specific use case: when in NORM mode and the signal hasn't triggered. This differentiates it from sibling tools like scope_arm or scope_configure_trigger.
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 explicit guidance on when to use the tool (in NORM mode when signal hasn't triggered). However, it does not mention when not to use it or point to alternatives among the many sibling tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_get_acquisition_statusA
Query the current acquisition and trigger state.
Returns the trigger mode (TRMD?) and internal state register (INR?). INR bit 0 set (value & 1 == 1) means a new waveform was acquired since the last INR read. Note: SAMPLE_STATUS? is not supported on WS3000Z.
Transport: SCPI
| 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 provided, so description bears full burden. It discloses returns (TRMD? and INR?) and bit interpretation, but does not explicitly state whether the tool is read-only or if it has side effects. Adds value beyond schema but lacks full 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?
Three sentences, no unnecessary words. First sentence captures purpose, followed by concise technical details. Highly 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?
Given no parameters and a simple output (implied by description), the description fully explains the return values and key bit meaning. No gaps for this type of 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?
No parameters exist, so baseline is 4. Description adds meaning by explaining what the tool returns, which goes 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?
Description clearly states 'Query the current acquisition and trigger state' which is a specific verb and resource. It distinguishes itself from sibling tools like scope_trigger_info and scope_get_waveform by focusing on acquisition 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?
No explicit guidance on when to use this tool versus alternatives. Only a note about SAMPLE_STATUS? not being supported on WS3000Z, which is a compatibility detail 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.
scope_get_dateA
Query the oscilloscope internal date and time.
Transport: SCPI
| 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?
The description only states the function and transport protocol. No behavioral traits such as side effects, required instrument state, or performance are disclosed. Without annotations, the description should provide more context about what the call does beyond the obvious.
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 concise with two short sentences. The first sentence clearly states the purpose, and the second provides transport context. Every sentence earns its place; no superfluous 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?
Given the simplicity (no parameters, output schema exists), the description is adequate. It does not detail return values, but the output schema handles that. Behavioral context like requiring a connection is omitted, but not critical for this trivial query.
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 has zero parameters, and schema description coverage is 100%. The description adds no parameter information, but none is needed since no parameters exist. Baseline for zero parameters is 4, which 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?
Clearly states it queries the oscilloscope internal date and time, using a specific verb 'Query' and a resource 'date and time'. This distinguishes it from sibling tools like scope_identify or scope_capabilities, which serve different purposes.
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 on when to use this tool versus alternatives. However, the description implies it is the correct tool for retrieving date/time, and the lack of parameters suggests simple usage. Sibling tools offer similar but distinct queries, but no comparison is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_get_waveformA
Capture waveform data from a channel and save it as a .npz file.
Use this when you need the time-domain signal (plotting, export, detailed analysis). For scalar results like peak voltage, frequency, or RMS, prefer scope_measure — it is faster and uses all scope points without any transfer.
If the scope is already stopped (e.g. from a previous capture), arms it first and waits for a fresh acquisition before reading. Always leaves the scope stopped after capture so the on-screen waveform matches the file.
Saves to a 'waveforms/' subfolder with an auto-generated filename, e.g.: waveforms/C1_20260329_153042.npz
Returns JSON with the file path and metadata — the raw voltage values are not embedded in the result. Load the file in Python with: import numpy as np d = np.load('/path/to/file.npz') time_s, voltage_v = d['time_s'], d['voltage_v']
Args: channel: Channel number 1–4 max_points: Maximum samples to capture (default 10000, evenly downsampled).
Transport: SCPI (binary WF? DAT1 transfer + INSPECT? WAVEDESC scaling)
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| max_points | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Thoroughly describes internal behavior: arming the scope if stopped, leaving it stopped, saving to a subfolder with auto-generated filenames, and returning metadata rather than raw data. Despite no annotations, all behavioral traits 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?
Well-structured with purpose first, then guidelines, behavior, parameter details, code example, and transport notes. Slightly verbose but every section adds value; appropriate for complexity.
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 all aspects: inputs, behavior, output (JSON with file path, metadata, no raw values), file loading example, and transport details. Output schema exists but description provides complementary info.
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?
Adds crucial meaning beyond schema: channel range (1-4), max_points default (10000) with downsampling behavior. Compensates for 0% schema description coverage effectively.
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?
Clearly states the tool captures waveform data to a .npz file, with specific use cases for time-domain signal analysis. Differentiates from sibling scope_measure by purpose.
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 advises when to use scope_measure instead for scalar results, and describes automatic arming/stopping behavior. Provides clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_helpA
Look up LeCroy SCPI documentation by topic.
Call with no argument (or topic="") to see the list of available topics.
Args: topic: One of: overview, channel, timebase, trigger, acquisition, measurement, waveform, math, cursor, screenshot, system. Leave empty to list all topics.
Transport: local
| Name | Required | Description | Default |
|---|---|---|---|
| topic | 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 full responsibility. It states the tool is for documentation lookup and mentions 'Transport: local', implying no network side effects. It does not explicitly mention that it is read-only or non-destructive, but the behavior is clearly a safe retrieval 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 description is concise at three lines plus an Args section and transport line. Every sentence adds value, and key information is front-loaded. No redundant or filler content.
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 help tool, the description covers all needed aspects: purpose, parameter usage with examples, and transport. With an output schema present (though not shown), the description is sufficiently complete for an AI to invoke 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?
The single parameter 'topic' is fully documented in the description: default behavior (empty to list all), and the list of valid values. This adds significant meaning beyond the schema, which only provides a default and type.
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's purpose: 'Look up LeCroy SCPI documentation by topic.' It identifies the resource (documentation) and differentiates from sibling tools which are mostly control/measurement functions. The list of available topics provides specific context.
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 when to call with no argument to list all topics and provides the list of valid topics. While it doesn't explicitly state when not to use or mention alternatives, the usage is straightforward for a help tool and the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_identifyA
Query the oscilloscope identification string (*IDN?).
Returns make, model, serial number, and firmware version.
Transport: SCPI
| 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. It discloses that the tool returns specific fields and uses SCPI transport, but does not state whether it is read-only, non-destructive, or requires a connection. It is adequate but not comprehensive.
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 short sentences with essential information front-loaded. Every sentence adds value: purpose, return values, transport. 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?
Given zero parameters and the presence of an output schema, the description is sufficient to understand the tool's function. It could mention that the tool requires an active connection, but that is implied by the context and sibling tools like scope_connect.
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 does not need to add parameter information beyond the schema, which already covers all (0) 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 description clearly states the verb 'Query' and the resource 'oscilloscope identification string', and lists the returned fields (make, model, serial number, firmware version). It distinguishes itself from sibling tools like scope_connect or scope_get_waveform by focusing uniquely on identity.
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 when the device identity is needed, but does not explicitly state when to use this tool instead of others (e.g., scope_query or scope_capabilities) or any prerequisites. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_list_resourcesA
List all VISA instrument resources visible on this computer (LAN and USB).
Use this to find the resource string for scope_connect. A LAN-connected LeCroy typically appears as: TCPIP0::192.168.1.111::inst0::INSTR A USB-connected LeCroy typically appears as: USB0::0x05FF::0x1023::::INSTR
If nothing appears, try scope_scan to search the network directly.
Transport: local
| 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?
Describes what the tool lists (visible resources) and gives transport (local), implying a read-only operation. With no annotations, this is adequate but could state non-destructiveness explicitly.
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?
Very concise, front-loaded with purpose and usage, efficient examples, and fallback instruction. Every sentence adds 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?
Complete for a parameterless tool with annotations absent and output schema present. Links to siblings scope_connect and scope_scan, making context 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?
No parameters in schema, so description need not add parameter info. It compensates by explaining output format with examples, adding value 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 clearly states it lists VISA instrument resources on LAN and USB, with specific examples of resource strings. It distinguishes itself from sibling tools like scope_scan, which searches the network directly.
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 says to use this to find the resource string for scope_connect, and advises to try scope_scan if nothing appears, providing clear when-to-use and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_math_infoA
Get the definition and display state of a math function.
Args: func: Math function number 1–4
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| func | 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 mentions 'Get' implying read-only, and Transport: SCPI, but does not disclose any side effects, authorization needs, or performance characteristics.
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 concise: one sentence plus an args list. It is front-loaded with the purpose and contains no unnecessary 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?
For a simple get-info tool with an output schema, the description covers the basic purpose and parameter. However, it lacks details about prerequisites, error conditions, and what exactly 'definition and display state' includes, given the tool has no annotations.
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 adds 'Math function number 1–4' to the integer parameter 'func', which supplements the schema (only type integer). Since schema description coverage is 0%, this extra detail is valuable.
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 'Get the definition and display state of a math function,' which is a specific verb and resource. It distinguishes this tool from siblings like scope_math_zoom_info (zoom info) and scope_set_math (set math).
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. It implies usage for retrieving math function info but does not mention exclusions or provide comparisons with related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_math_zoom_infoA
Read the current horizontal zoom settings for a math trace.
Args: func: Math function number 1–4
Transport: VBS (app.Math.Fn.Zoom.HorCenter, app.Math.Fn.Zoom.HorScale)
| Name | Required | Description | Default |
|---|---|---|---|
| func | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates it is a read operation (no side effects), provides parameter range (1–4), and includes VBS transport details. No annotations exist, so description adds useful 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?
Two sentences plus parameter and transport info, no fluff, front-loaded with purpose.
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 all necessary aspects for a simple read tool with one parameter and an output schema. Could mention output format but not required.
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 has 0% coverage; description adds meaning by specifying 'Math function number 1–4' for the `func` parameter, beyond the 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?
Explicitly states 'Read the current horizontal zoom settings for a math trace' with specific verb and resource, clearly distinguishing it from sibling `scope_set_math_zoom`.
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?
Implied usage as a read operation for zoom settings, but no explicit guidance on when to use vs alternatives like `scope_set_math_zoom` or `scope_math_info`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_measureA
Get a single automated measurement from a channel.
Args: channel: Channel number 1–4 param: One of: MEAN — mean (average) voltage MAX — maximum voltage MIN — minimum voltage PKPK — peak-to-peak voltage FREQ — frequency PERIOD — period RMS — RMS voltage RISE — rise time (10%–90%) FALL — fall time (90%–10%) WIDTH — pulse width (positive) DUTY — duty cycle BASE — base voltage level TOP — top voltage level AMPL — amplitude (top – base) OVSP — overshoot (positive) UNDSP — undershoot PHASE — phase difference DELAY — delay AREA — area under curve
Returns the value with units as reported by the oscilloscope.
Transport: SCPI (PAVA)
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| param | 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 must fully disclose behavioral traits. It mentions return value with units and transport (SCPI PAVA), but does not state side effects, destructive potential, authentication needs, or rate limits. As a read-like operation, it should at least note that it is non-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 structured with an Args block and front-loads the purpose. The parameter list is somewhat lengthy but necessary given the schema's lack of descriptions. It is concise overall with no wasted 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?
Given the presence of an output schema (not shown but indicated), the description does not need to detail return values beyond stating 'value with units.' It covers parameters well but lacks information on error conditions or prerequisites for using this 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?
The input schema has 0% description coverage, meaning no descriptions in the schema itself. The tool's description compensates fully by detailing 'channel' (1–4 range) and 'param' (with 19 enumerated values and explanations). This adds significant meaning beyond the raw 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 clearly states 'Get a single automated measurement from a channel,' specifying the verb (get) and resource (measurement). It distinguishes from sibling tools like scope_measure_all which gets all measurements, making the purpose 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 explains what the tool does but provides no explicit guidance on when to use it versus alternatives like scope_measure_all or other measurement tools. Usage context is only implied by the tool's name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_measure_allA
Get all automated measurements for a channel in one call.
Queries MEAN, MAX, MIN, PKPK, FREQ, PERIOD, RMS, RISE, FALL, WIDTH, DUTY, BASE, TOP, AMPL, OVSP, UNDSP, PHASE, DELAY, AREA.
Args: channel: Channel number 1–4
Transport: SCPI (PAVA)
| 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 provided, so description carries full burden. It mentions transport (SCPI PAVA) but does not disclose side effects, error handling, or read-only nature. Minimal behavioral context beyond the purpose.
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?
Description is mostly concise but includes a verbose list of measurement names that could be shortened or omitted. Front-loaded with purpose, but some 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?
Output schema exists, so return details are covered. Description includes parameter range and list of measurements but lacks error conditions or behavior for invalid channels. Adequate but not 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%, but description adds the valid range (1–4) for the channel parameter, which is not in the schema. This provides meaningful constraint beyond the integer type.
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?
Description clearly states the tool retrieves all automated measurements for a channel in one call, listing the specific measurements (MEAN, MAX, MIN, etc.). It distinguishes from siblings like scope_measure which likely returns individual measurements.
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?
Description implies use for batch measurement retrieval but lacks explicit guidance on when to use vs alternatives like scope_measure. No exclusion criteria or context for when this is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_queryA
Send any SCPI query command and return the response.
Escape hatch for SCPI commands not covered by dedicated tools. Use dedicated tools whenever one exists — they handle edge cases, model differences, and response parsing correctly. Do NOT use this to send raw VBS strings; use scope_wavesource_* and other VBS-backed tool groups instead.
Args: command: SCPI query string, e.g. 'C1:VDIV?' or 'TRMD?'
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| command | 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 mentions the transport (SCPI) and that it returns a response, but lacks details on error handling, timeouts, or side effects. For a simple query tool, 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 concise: three sentences plus a parameter line and transport note. It is front-loaded with the main purpose, with no unnecessary 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?
Given the tool's simplicity (one parameter) and the presence of an output schema (not detailed here), the description covers purpose, usage guidelines, and parameter semantics adequately. Minor gap: does not mention if response is raw or parsed, but output schema likely 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 schema has 0% description coverage, but the description adds a clear explanation of the 'command' parameter as a 'SCPI query string' with examples like 'C1:VDIV?' or 'TRMD?', which compensates well for the schema's lack of detail.
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 sends a SCPI query command and returns the response, and distinguishes it from siblings by explicitly calling it an 'escape hatch' for commands not covered by dedicated tools, with specific examples of dedicated 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?
The description provides explicit guidance: 'Use dedicated tools whenever one exists' and warns against using for VBS strings, directing to scope_wavesource_* tools. This clearly tells when to use and when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_recall_waveformA
Recall a waveform from internal memory.
Args: slot: Memory slot 1–4 to recall from dest: Destination, e.g. 'C1' (overlays the recalled waveform on C1)
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| slot | Yes | ||
| dest | 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 full burden. It states the action and arguments but does not disclose whether the operation is destructive, reversible, or what happens on error (e.g., empty slot). Minimal 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?
Extremely concise: two sentences purpose plus a compact arg list and transport note. No extraneous information. Front-loaded with the key 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?
Adequate for a simple recall tool but lacks prerequisites (e.g., waveform must be stored first) and error conditions. Output schema may cover return values, but behavioral completeness is limited.
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 adds meaning beyond the schema: it explains slot as a memory slot (1–4) and dest as a destination channel (e.g., 'C1'), with overlay behavior. This compensates for the 0% schema 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 clearly states 'Recall a waveform from internal memory,' specifying the action and resource. The args explain slot and destination, and the mention of 'overlays' adds context. It is distinct from siblings like scope_store_waveform and scope_get_waveform.
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 on when to use this tool versus alternatives like scope_get_waveform or scope_store_waveform. The description does not provide any contextual advice or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_resetA
Reset the oscilloscope to factory defaults (*RST).
WARNING: This clears all waveforms, measurements and settings.
Transport: SCPI
| 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 provided, so description carries full burden. It warns about destructive effects (clears all) and mentions transport. For a simple tool with no params, this is transparent enough.
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, warning immediately after. 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?
Tool is simple; description covers purpose, effect, and protocol. Output schema exists but return values are not described, but for a reset 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?
No parameters, so baseline 4 applies. Description adds nothing about parameters, but none 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?
Description clearly states 'Reset the oscilloscope to factory defaults' and includes the SCPI command. This distinguishes it from all other scope tools, none of which are resets.
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 warning about clearing data implies it should be used when a full reset is needed, but no explicit guidance on when to use vs alternatives. Usage is implied but not specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_save_waveform_csvA
Capture a waveform and save it as a timestamped CSV file ready for post-processing.
Files are always saved to a 'waveforms/' subfolder next to the server with an auto-generated filename, e.g.: waveforms/C1_20260329_153042.csv The full path is returned so you know exactly where the file landed.
The CSV has two columns: time_s and voltage_v. Metadata lines starting with # at the top are ignored by pandas (use comment='#').
Example Python usage: import pandas as pd df = pd.read_csv('waveforms/C1_20260329_153042.csv', comment='#') df.plot(x='time_s', y='voltage_v')
Args: channel: Channel number 1–4 max_points: Maximum samples to save (default 10000).
Transport: SCPI (binary WF? DAT1 transfer + INSPECT? WAVEDESC scaling)
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| max_points | 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 discloses file path ('waveforms/' subfolder), auto-generated filename, CSV format, metadata lines, transport protocol (SCPI binary), and return value (full path). Minor omission: no mention of potential overwrite (though timestamps prevent clashes) or acquisition delay.
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?
Description is well-structured, front-loading purpose then file details, CSV format, example, args, and transport. Slightly verbose with transport line, but each part adds value. Could be slightly more concise, but effective.
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 tool's simplicity and presence of an output schema, the description covers key aspects: purpose, file location, format, example usage, and parameter details. Missing minor context like handling of large data or acquisition state, but sufficient for typical 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%, so description compensates. It explains channel range (1–4) and max_points default (10000) with semantics 'Maximum samples to save'. This adds meaningful context beyond the schema's type and title.
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 captures a waveform and saves it as a timestamped CSV file for post-processing. It specifies the file location, naming convention, and CSV structure with two columns. This distinguishes it from siblings like scope_get_waveform or scope_store_waveform.
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 does not explicitly compare this tool to siblings or state when to use it vs. alternatives. It implies usage for post-processing (e.g., pandas), but lacks guidance on exclusions or when other tools like scope_get_waveform might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_scanA
Scan the network for LeCroy oscilloscopes.
More reliable than scope_list_resources for LAN-connected scopes — probes each host directly rather than relying on broadcast discovery.
Scans all hosts in the subnet for port 111 (VXI-11 portmapper) in parallel, then queries *IDN? on responsive hosts and filters for LeCroy instruments.
Args: subnet: CIDR subnet to scan, e.g. '192.168.1.0/24'. Defaults to LECROY_SUBNET env var if set, otherwise auto-detected from the local network interface.
Transport: local (TCP socket probe + SCPI *IDN? per candidate)
| Name | Required | Description | Default |
|---|---|---|---|
| subnet | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It explains the method in detail: probes each host on port 111, queries *IDN?, filters for LeCroy, scans in parallel. Also states transport is local (TCP socket probe). This is good transparency.
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 well-structured with clear sections (scanning method, args, transport) and is concise. Front-loaded with purpose and distinction. Could be slightly more concise, but overall effective.
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 tool has only one optional parameter and an output schema exists, the description is complete. It explains the scanning process, parameter details, and transport. No missing information needed for an agent 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?
The description adds significant meaning beyond the schema: explains that subnet is a CIDR notation, provides an example, and describes default behavior (env var or auto-detection). Schema only has type string and default empty, so description is essential.
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?
Description clearly states 'Scan the network for LeCroy oscilloscopes', uses specific verb (scan) and resource (network for LeCroy oscilloscopes). It also distinguishes from sibling scope_list_resources by explaining it is more reliable for LAN-connected scopes.
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 explicitly says 'More reliable than scope_list_resources for LAN-connected scopes', giving clear guidance on when to prefer this tool. It does not explicitly state when not to use it, but the context is sufficient for an AI agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_screenshotA
Capture the oscilloscope screen and save as a timestamped image file.
Files are always saved to a 'screenshots/' subfolder with an auto-generated filename, e.g.: screenshots/scope_20260329_153042.png The full path is returned so you know exactly where the file landed.
Args: image_format: BMP, JPEG, PNG, or TIFF (default PNG) area: DSOWINDOW (default), GRIDAREAONLY, or FULLSCREEN background: WHITE (default) or BLACK to preserve the dark screen theme
Transport: SCPI (HARDCOPY_SETUP + SCREEN_DUMP, binary read)
| Name | Required | Description | Default |
|---|---|---|---|
| image_format | No | PNG | |
| area | No | DSOWINDOW | |
| background | No | WHITE |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses file saving behavior (subfolder, auto-filename), path returned, and transport method. Could mention if overwrite occurs or device state impact, but overall 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?
Front-loaded purpose with organized parameter list. Transport note adds technical depth but not strictly necessary; still concise 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?
Covers all aspects: purpose, file saving, parameters, return value, and transport. No gaps given the lack of annotations.
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 descriptions in the 'Args' section fully detail allowed values for image_format, area, and background, compensating for zero 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?
Clearly states 'Capture the oscilloscope screen and save as a timestamped image file.' verb and resource, distinct from sibling tools like scope_save_waveform_csv.
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 on when to use vs alternatives like waveform capture. Implicitly clear from purpose but lacks when/why to choose screenshot over other data capture tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_set_cursor_typeA
Set the cursor type.
Args: cursor_type: HREL (relative horizontal), VREL (relative vertical), HREF (absolute horizontal), VREF (absolute vertical), or OFF to disable cursors.
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| cursor_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 provided, the description is solely responsible for disclosing behavior. It states the action and transport (SCPI) but does not describe side effects, return value, or error conditions. It is minimally adequate 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?
The description is extremely concise (two sentences) and front-loaded: the first sentence states the purpose, the second lists parameter details. Every word is essential.
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 tool, the description covers the core function and parameter values. However, it omits output details (though output schema exists) and any prerequisites. Still reasonably complete given 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 input schema has 0% description coverage, but the tool description lists all valid cursor_type values (HREL, VREL, HREF, VREF, OFF) with brief explanations (e.g., 'relative horizontal'). This adds meaning beyond the schema's plain string type.
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 'Set the cursor type' with enumerated cursor types (HREL, VREL, HREF, VREF, OFF) clearly states the tool's specific verb and resource. It is distinct from sibling tools like scope_cursor_info, which retrieves cursor 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 description provides no guidance on when to use this tool versus alternatives. It lacks context about prerequisites (e.g., connection status) or when not to use it (e.g., if cursors are disabled).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_set_mathA
Define a math waveform function.
Available operators (all MAUI scopes):
Arithmetic: ABS(C1) absolute value INVERT(-C1) negation SQR(C1) square SQRT(C1) square root RECIPROCAL(C1) 1/x RESC(C1) rescale (scale + offset + change units) C1+C2 sum of two channels C1-C2 difference C1*C2 product C1/C2 ratio
Signal processing: FFT(C1) Fast Fourier Transform — use TYPE parameter to select POWERSPECTRUM (dBm), MAGNITUDE, PHASE, REAL, IMAGINARY. WINDOW options: VONHANN, HAMMING, FLATTOP, BLACKMANHARRIS, RECTANGULAR. Example: EQN,"FFT(C1)",TYPE,POWERSPECTRUM,WINDOW,VONHANN INTG(C1) integral DERI(C1) derivative (adjacent-sample subtraction) AVG(C1) averaging — add AVERAGETYPE,SUMMED or CONTINUOUS ERES(C1) enhanced resolution (smoothing, 0.5–3 extra bits)
Envelope / extrema: FLOOR(C1) minimum value at each X over N sweeps ROOF(C1) maximum value at each X over N sweeps
Parameter-based (use a measurement parameter Pn as source): TREND(P1) trend plot of parameter values over time HIST(P1) histogram of parameter values
Display only: ZOOMONLY(C1) zoom display without computation
After setting an FFT, use scope_set_math_zoom to zoom the frequency axis.
Args: func: Math function number 1–4 equation: Math expression string, e.g. 'FFT(C1)' or 'C1+C2'
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| func | Yes | ||
| equation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description fails to disclose side effects (e.g., overwriting existing math functions) or required connections. Only mentions transport protocol, which is insufficient for behavioral transparency.
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?
Description is lengthy but well-structured with operator categories and examples. Could trim some examples, but overall efficient for the complexity.
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 operator list, parameter usage, and links to sibling tool. With output schema present, return values are not needed. Lacks safety or prerequisite details, but sufficient for defining math functions.
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 has 0% description coverage, but description fully explains both parameters: 'func' as number 1–4 and 'equation' with examples like 'FFT(C1)'. Adds significant meaning beyond 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?
Description clearly states 'Define a math waveform function' with comprehensive list of operators. Distinguishes from sibling tools by mentioning scope_set_math_zoom for FFT zoom, showing 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?
Provides clear guidance on when to use the tool and references sibling tool for zoom. Lacks explicit when-not-to-use conditions, but context is sufficient for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_set_math_traceB
Show or hide a math function trace.
Args: func: Math function number 1–4 visible: True to show, False to hide
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| func | Yes | ||
| visible | 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 must bear the full burden of behavioral disclosure. It only states the action (show/hide) without mentioning side effects, permissions, or state changes. The addition of parameter constraints (func 1-4, visible boolean) helps but does not cover behavioral traits.
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 very concise, using two sentences for the action and bullet-style parameter descriptions. It is front-loaded with the purpose and efficiently conveys necessary information without extraneous 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?
Given the tool's simplicity, the description covers the basic action and parameter meanings. However, it lacks context about return values (though an output schema exists) and any prerequisites or side effects. It is minimally adequate but not thorough.
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 description must add meaning. It clearly explains func as 'Math function number 1–4' and visible as 'True to show, False to hide', adding critical semantics beyond the schema's type-only definitions.
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 'Show or hide a math function trace.' It uses a specific verb (show/hide) and resource (math function trace), distinguishing it from sibling tools like scope_set_math and scope_math_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?
No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, preferred scenarios, or cases where other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_set_math_zoomA
Set the horizontal display zoom for a math trace.
Useful for zooming into a specific frequency range on an FFT trace without changing the FFT computation itself.
Units depend on the math function type:
FFT traces: Hz (e.g. center=1250, per_div=250 shows 0–2500 Hz on 10 divs)
Time-domain math traces: seconds
Args: func: Math function number 1–4 center: Center value (Hz for FFT, seconds for time-domain math) per_div: Scale per division
Transport: VBS (app.Math.Fn.Zoom.HorCenter, app.Math.Fn.Zoom.HorScale)
| Name | Required | Description | Default |
|---|---|---|---|
| func | Yes | ||
| center | Yes | ||
| per_div | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose whether operation is destructive, requires specific instrument state, or has side effects. Transport info is noted but behavioral traits are lacking.
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?
Brief and well-structured: purpose first, then unit explanation, then param list, and transport. No redundant 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?
Adequate coverage given output schema exists but not detailed. Description explains units and parameters, but lacks mention of output or non-destructive nature. Could be more complete for a zoom 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%, but description adds vital meaning: func range (1–4), center units depend on math type (Hz/seconds), and per_div scaling. Compensates well for absent schema descriptions.
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?
Description clearly states the tool sets horizontal display zoom for math traces, specifies FFT and time-domain cases, and distinguishes from sibling tools like scope_math_zoom_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?
Provides context for when to use (zooming into FFT frequency range without recomputing), but no explicit guidance on when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_set_memory_sizeA
Set the acquisition memory depth (record length).
Args: size: Memory depth — one of: 500, 1K, 10K, 25K, 50K, 100K, 250K, 500K, 1M, 2.5M, 5M, 10M, 25M. Available sizes are model-dependent; WaveSurfer 3000Z maximum is 10M. Larger = more detail, slower transfer.
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| size | 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. It discloses model-dependent availability, transport (SCPI), and the effect on transfer speed. However, it does not mention any destructive behavior, authentication, or rate limits, which are not critical for a setter tool but could be noted.
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 brief (4 sentences) and front-loaded with the main purpose. Every sentence adds value: purpose, parameter list, trade-off, transport. The 'Args:' section is slightly redundant with schema but still helpful.
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 tool's simplicity (one parameter, setter action), the description covers purpose, parameter details, behavior (model-dependent, speed trade-off), and transport. Output schema exists (not shown) so return values are handled.
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 has 0% description coverage and no enums. The description compensates by listing exact size values ('500, 1K, 10K...'), explaining meaning ('Larger = more detail, slower transfer'), and adding model constraints. This adds significant value 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 'Set the acquisition memory depth (record length),' which is a specific verb+resource. It distinguishes from siblings like scope_set_tdiv (timebase) and scope_configure_channel (channel settings) by focusing on memory depth.
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 usage context: 'Larger = more detail, slower transfer' and notes model-dependent maximum sizes (e.g., WaveSurfer 3000Z max 10M). It does not explicitly state when to use vs alternatives, but the trade-off is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_set_panel_lockA
Lock or unlock the oscilloscope front-panel controls.
Args: locked: True to lock (prevent accidental adjustment), False to unlock.
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| locked | 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 must carry full burden. It specifies the action (lock/unlock) and mentions 'Transport: SCPI' but does not disclose side effects, persistence, or impact on other operations. Minimal behavioral detail beyond the obvious.
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?
Description is very concise: one line for purpose, one line for parameter explanation, and one line for transport protocol. No unnecessary words, and the purpose is front-loaded.
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 is simple with one parameter and an output schema exists but is not provided in the description. The description does not mention what the tool returns (e.g., success/failure, current state). Without output schema or return details, the agent lacks complete context for execution.
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?
Input schema has one boolean parameter with only a title. Description adds meaning: 'True to lock (prevent accidental adjustment), False to unlock.' This clarifies the purpose of the boolean value, compensating for schema's lack of 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?
Description clearly states 'Lock or unlock the oscilloscope front-panel controls' with a specific verb and resource. It distinguishes from sibling tools, none of which focus on panel lock/unlock.
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?
Description provides context for locking ('prevent accidental adjustment') but does not explicitly state when to use this tool vs alternatives or when not to use it. No exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_set_tdivA
Set the time base (time per division).
Args: seconds_per_div: Time/div in seconds. Examples: 1e-9 (1 ns), 1e-6 (1 µs), 1e-3 (1 ms), 1.0 (1 s)
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| seconds_per_div | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must cover behavioral traits. It only adds 'Transport: SCPI' but omits side effects, reversibility, or required device 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?
Short and front-loaded with the main purpose. Could benefit from a more structured format (e.g., separating parameter description) but no unnecessary 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?
For a simple setter with one parameter, the description covers the parameter well and includes transport info. Output schema exists so return values are not required. Missing behavioral context slightly lowers the 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 coverage is 0%, so description must compensate. It explains the parameter 'seconds_per_div' clearly, provides units (seconds), and gives concrete examples (1e-9, 1e-6, etc.).
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 verb 'Set' and the resource 'time base (time per division)'. This distinguishes it from siblings like scope_timebase_info which queries instead of sets.
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 vs alternatives (e.g., scope_timebase_info to check current setting). No prerequisites or conditions for use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_set_trigger_delayA
Set the trigger delay (horizontal position offset).
Args: seconds: Delay in seconds. Positive = trigger point moves left, negative = trigger point moves right.
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | Yes |
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 is responsible for disclosing behavioral traits. It only states that it sets a delay and mentions Transport: SCPI, but fails to describe side effects, required mode, or whether it 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 concise, front-loaded, and well-structured with a clear purpose, argument list, and transport hint. 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?
Given the low complexity and presence of an output schema, the description covers the parameter meaning but omits prerequisites, error conditions, and behavioral context. It is adequate but not 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?
With 0% schema description coverage, the description compensates by explaining the 'seconds' parameter in detail, including sign convention (positive left, negative right). However, it lacks limits or allowed range.
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 verb (Set) and the resource (trigger delay) with additional context (horizontal position offset), distinguishing it from siblings like scope_configure_trigger or scope_set_tdiv.
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. It does not mention prerequisites, context, or 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.
scope_setup_measurementsA
Configure the scope's measurement panel (P1–P6) for a channel.
PAVA measurements only return valid values for parameters that are active in one of the six display slots. Call this once after connecting to a channel with a new signal. The scope_measure and scope_measure_all tools will also auto-configure if they detect an invalid result, but calling this explicitly sets up the display panel for that channel.
Args: channel: Channel number 1–4 params: List of up to 6 parameter names to show in the panel. Defaults to ['PKPK', 'FREQ', 'MEAN', 'RMS', 'RISE', 'DUTY']. Valid names: MEAN MAX MIN PKPK FREQ PERIOD RMS RISE FALL WIDTH DUTY BASE TOP AMPL OVSP UNDSP PHASE DELAY AREA
Transport: SCPI (PACU)
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| params | 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 fully explains the tool's purpose and behavior: it sets up display slots, and only active parameters return valid values. It does not detail side effects like overwriting existing measurements, but the core behavior is 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?
Description is concise with a clear first sentence stating purpose, followed by a brief usage rationale, then parameter details in a structured list. No redundant 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?
Given the tool's complexity and the presence of an output schema, the description adequately covers setup purpose and parameter behavior. Mentions return value dependency on active slots, but could be enhanced by noting the output format or status. Still fairly 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%, but the description fully compensates: explains channel is 1-4, params is a list of up to 6 string names, provides defaults, and lists all valid names. This far exceeds schema information.
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?
Clearly states the tool configures the measurement panel (P1-P6) for a channel, using specific verb 'Configure' and resource 'measurement panel'. Distinguishes from siblings like scope_measure and scope_measure_all by noting it's an explicit setup vs auto-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?
Explicitly advises calling once after connecting to a new channel signal, and explains that scope_measure/scope_measure_all auto-configure but may be unreliable, making this tool the preferred explicit setup. Provides clear when-to-use guidance and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_stopB
Stop acquisition immediately (STOP).
Transport: SCPI
| 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 provided, so description carries full burden. It mentions 'immediately' but lacks details on side effects (e.g., buffered data, reversibility) or transport implications beyond 'SCPI'.
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?
Extremely concise (one sentence plus transport note). Front-loaded with core purpose. No wasted words, but could include more context without being 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?
Sufficient for a simple stop command with no parameters. Lacks mention of prerequisites (e.g., acquisition must be running) though output schema exists. 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?
Zero parameters and 100% schema coverage. Description adds no parameter info beyond the schema, which is adequate given no params. Baseline 3 per high coverage rule.
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?
Description clearly states the action: 'Stop acquisition immediately' (STOP). This is a specific verb-resource combination, distinguishing it from siblings like scope_arm or scope_scan.
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, such as after starting acquisition or to abort. Missing any context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_store_waveformB
Store a waveform to internal memory.
Args: source: Waveform to store — 'C1', 'C2', 'C3', 'C4', 'F1'–'F4' slot: Memory slot 1–4
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| slot | 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, and the description only states the action. Missing behavioral details like overwrite behavior, error conditions, or authentication/state 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?
Brief, focused, and front-loaded with purpose. Structured argument list and transport note are efficient. Every sentence adds 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?
Adequate for a simple store operation with two parameters. Though missing details like overwrite behavior, the description covers the essential use and constraints given the 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?
Adds important value by listing allowed values for source ('C1'-'C4', 'F1'-'F4') and slot (1-4). Schema has no descriptions, so this is critical for correct invocation.
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?
Clearly states 'Store a waveform to internal memory.' Verb and resource are specific. Distinguished from siblings like scope_save_waveform_csv (saves to file) and scope_recall_waveform (loads from memory).
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 over alternatives. Does not mention prerequisites or when not to use. The parameter descriptions give value constraints but no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_timebase_infoA
Get all current timebase settings in one call.
Returns time/div, trigger delay, sample rate, and memory size.
Transport: SCPI
| 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 exist, so the description must disclose behavior. It clearly states what data is returned and the transport (SCPI). It does not indicate any destructive side effects. However, it lacks details on prerequisites (e.g., device connection) or potential errors, but the simple read-only nature minimizes risk.
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 concise: two sentences plus a transport note. It front-loads the purpose and lists outputs directly, with 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?
Given the tool has no parameters and an output schema exists (not shown but indicated), the description sufficiently covers the intent and return items. The addition of SCPI transport is helpful for domain familiarity. No gaps in essential 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 has zero parameters, achieving 100% schema coverage. The description adds value by listing the returned fields, explaining what the tool provides 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?
The description clearly states 'Get all current timebase settings in one call' and lists the specific returned values (time/div, trigger delay, sample rate, memory size). This verb+resource combination is specific and distinguishes it from sibling tools like scope_set_tdiv (which sets) and scope_trigger_info (which is trigger-specific).
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 when you need current timebase settings, but does not explicitly contrast with alternatives or provide when-not-to-use guidance. No mention of read-only nature or that it aggregates multiple values compared to individual getters among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_trigger_infoA
Get all current trigger settings in one call.
Returns trigger mode, source/type configuration, and level per channel.
Transport: SCPI
| 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; description says it returns multiple settings, mentions transport (SCPI), but does not disclose if it has side effects, performance implications, or prerequisites. Adequate baseline.
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: purpose, returned data, transport. Front-loaded and no redundant 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?
With an output schema present, description does not need to detail returns. Mentions key items returned, sufficient for a simple getter 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?
No parameters; schema coverage is 100%. Baseline 4 as per guidelines; description adds no param info, which is acceptable.
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?
Clearly states it retrieves all current trigger settings in one call, listing specific items (trigger mode, source/type configuration, level per channel). Distinct from siblings like scope_configure_trigger (sets) and scope_force_trigger (forces).
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?
Implied usage for reading current settings, but no explicit guidance on when to use vs alternatives like scope_configure_trigger. No exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_wavesource_configureA
Configure the WaveSource built-in generator in a single call.
All parameters are optional — only the provided ones are applied. Only available on models with has_wavesource=True (e.g. WaveSurfer 3000Z). Check scope_capabilities first.
Args: shape: Waveform shape: Sine, Square, Triangle, Pulse, DC, Noise, Arb. For sawtooth/ramp use Triangle with symmetry=0 or symmetry=100. frequency: Output frequency in Hz, e.g. 1000.0 for 1 kHz amplitude: Peak-to-peak amplitude in Vpp, e.g. 3.3 for 3.3 Vpp offset: DC offset in volts load: Output load: 'HiZ' (high impedance) or '50' (50 Ω termination) duty_cycle: Duty cycle in percent — Square and Pulse shapes only symmetry: Symmetry in percent — Triangle shape only (50 = symmetric)
Transport: VBS (app.WaveSource.*)
| Name | Required | Description | Default |
|---|---|---|---|
| shape | No | ||
| frequency | No | ||
| amplitude | No | ||
| offset | No | ||
| load | No | ||
| duty_cycle | No | ||
| symmetry | 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 explains that all parameters are optional and only provided ones are applied, and notes transport (VBS). It does not mention idempotency or error cases, but provides reasonable transparency.
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?
Well-structured with bullet points for Args and Transport, front-loading the main purpose. Could be slightly more concise, but it is clear and easy to parse.
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 7 parameters, no annotations, and an output schema (assumed to document return values), the description covers parameter details, constraints, and prerequisites comprehensively. No obvious 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. It explains each parameter's meaning, constraints (e.g., shape values, duty_cycle only for Square/Pulse), and units. It does not specify defaults beyond null, but adds significant 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?
The description clearly states it configures the WaveSource built-in generator in a single call, and distinguishes from sibling tools like scope_wavesource_enable and scope_wavesource_info. It includes specific details about model availability and shape options.
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 mentions prerequisites (check scope_capabilities, has_wavesource=True) and provides guidance on shape alternatives (e.g., sawtooth via Triangle with symmetry). However, it does not explicitly state when not to use this tool or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_wavesource_enableA
Enable or disable the WaveSource output.
Args: on: True to enable output, False to disable.
Transport: VBS (app.WaveSource.Enable)
| Name | Required | Description | Default |
|---|---|---|---|
| on | 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 full burden. It states the basic behavior (enable/disable) and transport, but does not disclose side effects, prerequisites, or state implications. Adequate for a simple toggle 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?
Extremely concise: two short sentences plus a transport note. Every word serves a purpose, with no redundancy or fluff.
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 tool's simplicity (one boolean parameter, straightforward action) and the presence of an output schema, the description covers all necessary information: purpose, parameter meaning, and implementation detail.
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 explains the single parameter 'on' with clear semantics ('True to enable output, False to disable'), adding significant meaning beyond the schema's boolean type and required marker.
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 'Enable or disable the WaveSource output' uses a specific verb ('Enable or disable') and a clear resource ('WaveSource output'), distinguishing it from sibling tools like scope_wavesource_configure and scope_wavesource_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?
No explicit guidance on when to use this tool versus alternatives. The description only states what it does without context or exclusions, leaving the agent to infer 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.
scope_wavesource_infoA
Get all current WaveSource generator settings.
Returns shape, frequency, amplitude, offset, load, duty cycle, symmetry, and enabled state.
Only available on models with has_wavesource=True (e.g. WaveSurfer 3000Z). Check scope_capabilities first.
Transport: VBS (app.WaveSource.*)
| 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 lists the returned fields and implicitly describes a read operation. While it could explicitly state it is non-destructive, the listing of returned values and the prerequisite condition add sufficient transparency.
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 5 sentences, front-loading the purpose. Every sentence adds value (purpose, return fields, model availability, transport). Could be slightly more concise but is well-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?
Given the tool has no parameters and an existing output schema, the description fully covers what the agent needs: purpose, returned fields, prerequisite check, and transport. It is complete for a read-only info 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 has 0 parameters, making the schema fully descriptive by default. With no parameters, there is nothing to add beyond what the schema conveys, so a baseline of 4 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?
The description starts with 'Get all current WaveSource generator settings', which is a clear verb+resource. Among siblings like scope_wavesource_configure and scope_wavesource_enable, this tool is distinctly for reading settings.
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 the tool is 'Only available on models with has_wavesource=True' and advises to 'Check scope_capabilities first'. This provides explicit prerequisite guidance, though it does not explicitly list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope_writeA
Send any SCPI write command (no response expected).
Escape hatch for SCPI commands not covered by dedicated tools. Use dedicated tools whenever one exists — they handle edge cases, model differences, and response parsing correctly. Do NOT use this to send raw VBS strings; use scope_wavesource_* and other VBS-backed tool groups instead.
Args: command: SCPI command string, e.g. 'C1:VDIV 0.5' or 'TRIG_MODE AUTO'
Transport: SCPI
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses key behavioral traits: no response expected, SCPI transport, and a warning against VBS strings. For a simple command tool, this is adequate, though it could mention whether the command is validated or if there are rate 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?
Description is concise with two clearly structured paragraphs. The first paragraph states purpose and usage guidelines; the second provides parameter details. No redundant 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?
Given the low complexity (1 param, output schema exists but not described), the description covers essential aspects: purpose, when to use, and parameter format. Missing details about return value or side effects, but these are minimal for a command tool with no response.
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%, but description provides clear semantics for the sole parameter 'command' with examples and format (e.g., 'C1:VDIV 0.5'). This adds significant value beyond the schema which only specifies type string.
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?
Clearly states the tool sends SCPI write commands with no response expected, and distinguishes it from dedicated tools by labeling it as an 'escape hatch'. The verb 'send' and resource 'SCPI write command' are specific.
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 to use (for commands not covered by dedicated tools) and when not to use (do not send raw VBS strings; use wavesource tools instead). Also advises to prefer dedicated tools for edge cases and model differences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct operation (e.g., connect, configure_channel, measure, capture_waveform) with clear boundaries. Even similar tools like scope_measure and scope_measure_all are well-differentiated by scope. No ambiguity.
All tools follow a consistent 'scope_verb_noun' pattern (e.g., scope_connect, scope_configure_channel, scope_set_tdiv). The naming is predictable and uniform across the entire set.
48 tools is very high for an MCP server. While the oscilloscope domain is complex, the number exceeds the threshold for 'too many' (25+). Many tools could be consolidated or exposed as parameters of fewer tools.
The tool set covers nearly all oscilloscope operations: connection, channels, timebase, trigger, measurements, math, cursors, screenshot, wavesource, memory. Minor gaps exist (e.g., no tool to configure serial decode settings, only reading is provided).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- octoperfDeprecatedio.github.OctoPerf
Drive OctoPerf load testing from any AI agent: import, edit, validate, run scenarios, read metrics.
Deploy, monitor, and manage your OpenClaw AI assistants via natural language.
Create RF signal projects from prompts, inspect graphs, and export IQ data.
Drive real Android & iOS devices and web browsers from natural language for mobile + web QA. 290+ tools across device control, app management, automation sessions, browser automation, and flow recording / replay. Bearer-auth — get a token at robotactions.com → Profile → API Tokens.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables LLMs like Claude to interact with PicoScope oscilloscopes for signal acquisition, measurement, and analysis. Supports device management, data capture, triggering, and signal generation through natural language commands.245
- AlicenseNot gradedqualityDmaintenanceEnables control and querying of Rigol DHO824 oscilloscopes, allowing users to capture waveforms, take screenshots, and interact with oscilloscope settings through natural language.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to directly control NI oscilloscopes (e.g., PXIe-5160/5164/5110) through the Model Context Protocol, including waveform acquisition, measurement, and configuration.MIT
- AlicenseCqualityBmaintenanceEnables natural language control of test instruments like spectrum analyzers and power supplies via SCPI commands, with auto-discovery and multi-instrument session support.1001MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lucasgerads/lecroy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server