IC-CAP MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IC-CAP MCP ServerRun the parameter extraction for the active DUT and show the results."
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.
IC-CAP MCP Server
IC-CAP MCP Server connects ChatGPT desktop (Codex), Claude Code, ZCode, and other Model Context Protocol clients to Keysight IC-CAP. It provides 128 MCP tools and 15 embedded guides for project automation, measurement, simulation, optimization, and device-model extraction.
The gateway starts automatically with IC-CAP. An external broker isolates MCP dependencies from IC-CAP, reconnects after IC-CAP restarts, reports long-running job progress, captures supported Status-window feedback, and rejects unsafe paths before they reach the proprietary API.
Install in three steps
Requirements: Windows 11 x64, a Keysight IC-CAP installation using Python 3.8 through 3.12, and an MCP client. IC-CAP 2025 with Python 3.12 is the verified configuration; other accepted runtimes are compatibility candidates until they receive live IC-CAP testing.
Download
iccap-mcp-server-<version>-windows-x64-setup.exefrom GitHub Releases.Run the installer, confirm the detected IC-CAP Python directory, and choose ChatGPT desktop (Codex), Claude Code CLI, and/or ZCode desktop.
Restart IC-CAP once, then restart the selected MCP client or open a new task.
The installer is fully offline after download. Users do not need to install Python, Git, or pip. If the IC-CAP Python directory is protected, only the small bootstrap command requests administrator approval; the main installer remains per-user.
A standard IC-CAP installation does not require ICCAP_PYTHONHOME; setup
searches for its built-in tools\python runtime. If IC-CAP uses a custom
Python, select that same directory in setup.
IC-CAP Status should show:
IC-CAP MCP gateway ready: session=... pid=... port=...For supported versions, client-specific checks, repair, diagnostics, upgrade, uninstall, and source installation, see the Windows installation guide.
Related MCP server: COMSOL MCP Server
Test the connection
Start a new task in the configured MCP client and ask:
Perform a read-only IC-CAP MCP connection test. Call iccap_sessions_list,
iccap_health, iccap_status_get, and main_get_models. Do not simulate, save,
create, edit, delete, or run a macro. Report the session ID, IC-CAP PID,
gateway health, open models, and current Status warnings/errors.If more than one IC-CAP process is open, select the intended session with
iccap_session_select before reading model data. Gateway authentication tokens
stay in the local session registry and are never returned by MCP tools.
What is included
Automatic gateway startup with no recurring Macro click.
Stdio transport for ChatGPT desktop (Codex), Claude Code, ZCode, and compatible clients.
Optional Streamable HTTP on loopback for URL-based clients.
Automatic discovery and reconnection after IC-CAP restarts.
Explicit session selection for multiple IC-CAP processes.
Asynchronous simulation, measurement, transform, Macro, and plot jobs.
Incremental Status output and supported optimizer progress.
Best-effort modal error-dialog capture and structured failures.
Stable validation, non-overwriting defaults, recovery checkpoints, and a redacted operation journal.
The process and failure boundaries are documented in Architecture and failure semantics.
Long-running work
setup_simulate, setup_measure, transform_execute, macro_execute, and
plot_display accept run_async=true and return a job_id.
iccap_job_getreturns state, result, errors, and parsed progress.iccap_job_listlists recent jobs.iccap_job_logsreturns incremental Status output.iccap_job_cancelrequests IC-CAP Stop Activity when available.iccap_status_getreads the current Status snapshot, including supported optimizer progress started manually in IC-CAP.
Cancellation is confirmed only when Stop Activity is found and invoked. A blocked native IC-CAP call cannot be killed safely by Python.
Safety boundary
Existing targets are preserved unless
overwrite=trueis explicit.Overwrite and delete operations first create a managed
Save As No Datacheckpoint under%LOCALAPPDATA%\iccap-mcp\checkpoints.A failed checkpoint blocks mutation unless
allow_without_checkpoint=trueis explicitly accepted.IC-CAP locators must be absolute and are validated before dispatch.
Calls are serialized on the IC-CAP UI thread.
The redacted journal is stored at
%LOCALAPPDATA%\iccap-mcp\operations.jsonl.
These safeguards cannot make proprietary C extensions transactional. A vendor crash, arbitrary Macro, instrument operation, malformed transform, or native deadlock can still block IC-CAP or lose work since the last save. Work on project copies and save verified milestones.
Configuration
Variable | Default | Purpose |
| unset | Optional custom Python directory used by IC-CAP |
|
| Gateway port; |
|
| Interactive broker wait timeout in seconds |
|
| Long-job gateway deadline in seconds |
|
| Allowed plot/export workspace |
| unset | Set |
Do not expose the broker or in-process gateway to an untrusted network.
Development
The packaged installer is recommended for normal use. Contributors can use a separate Python 3.12 environment:
git clone https://github.com/Solitario119/iccap-mcp-server.git
cd iccap-mcp-server
py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.\.venv\Scripts\python.exe -m pytest -qBuild the offline runtime and installer with:
.\.venv\Scripts\python.exe -m pip install -e ".[installer-build]"
.\scripts\build_runtime.ps1 -Python .\.venv\Scripts\python.exe
.\scripts\build_installer.ps1 -SkipRuntimeInno Setup 6 is required only to compile the installer. Live verification
scripts under scripts/verify_live_*.py require a licensed IC-CAP process;
mutation checks require an explicitly confirmed disposable model.
License and trademarks
Released under the MIT License. This independent open-source project is not affiliated with, endorsed by, or sponsored by Keysight Technologies. IC-CAP and Keysight are trademarks of their respective owner.
Available Tools
128 toolsdpar_createA
Create DUT parameters by declaring them in a circuit page: IC-CAP has no direct DPar constructor, so parameters materialize from $dpar(NAME=value) declarations. circuit='model' (default, per IC-CAP docs the declaration appears in every DUT's parameter set) or circuit='dut' (DUT Test Circuit only). Prior declarations of the same name are replaced; after writing, each parameter is verified to exist and initialized to its value. Requires the DUT to exist; verify results with dpar_exists/dpar_get.
| Name | Required | Description | Default |
|---|---|---|---|
| circuit | No | Which circuit page receives the $dpar declarations | model |
| dut_path | Yes | e.g. '/model/dut' | |
| parameters | Yes | Parameters to declare |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it delivers: it discloses that IC-CAP has no direct DPar constructor, that parameters materialize from $dpar declarations, that circuit='model' affects every DUT while circuit='dut' is DUT Test Circuit only, that prior declarations are replaced, and that parameters are verified after writing. This is thorough behavioral disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is economically written: core purpose first, then mechanism, then behavior details, then prerequisite and verification. Every sentence adds necessary information and there is no filler or repetition of schema 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 tool with no output schema and no annotations, the description covers the creation mechanism, circuit semantics, overwrite behavior, post-write verification, and the DUT prerequisite. The only minor gap is lack of explicit return-value or error behavior, but since the tool performs side effects and verifies internally, the description is sufficiently complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining what 'circuit' actually means semantically ('model' appears in every DUT's parameter set vs 'dut' DUT Test Circuit only) and how parameters come into existence. Param names/values are already well covered by schema examples.
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 and resource: 'Create DUT parameters by declaring them in a circuit page.' It also explains the distinctive mechanism ($dpar declarations) and explicitly distinguishes creation from checking by pointing to dpar_exists/dpar_get for verification, so an agent can tell it apart from related siblings like dpar_set or dpar_get.
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 useful context: which circuit page receives declarations, default behavior for 'model', the prerequisite that the DUT must exist, and a pointer to verify with dpar_exists/dpar_get. However, it never explicitly contrasts this tool with alternatives such as dpar_set for modifying existing parameters or says when not to use it; the usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dpar_existsA
Check if a DUT parameter exists.
| Name | Required | Description | Default |
|---|---|---|---|
| param_path | Yes | e.g. '/model/dut/PARAM_NAME' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly indicates a read-only existence check with no apparent side effects, but it does not state what happens when the parameter is missing or what return value is produced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no redundant wording. The action and object are front-loaded, making it easy for an agent to parse quickly.
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 tool with one parameter and no output schema, the description is nearly complete. The only minor gap is the lack of an explicit return-value statement, but 'Check if ... exists' strongly implies a boolean result.
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 already provides full coverage for the single param_path parameter, including an example format. The description adds the semantic context that the path refers to a DUT parameter, but does not need to explain much more given the 100% 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?
Description uses a specific verb ('Check') and resource ('DUT parameter'), making the tool's purpose unambiguous. It also distinguishes the tool from generic alternatives like object_exist and from parameter-existence checks for other object types such as mpar_exists or instrvar_exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when verifying whether a DUT parameter exists. However, it does not explicitly mention when not to use it or point to sibling alternatives such as object_exist, mpar_exists, or dpar_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dpar_getB
Get a DUT parameter value. Supports same minvalmax options as mpar_get.
| Name | Required | Description | Default |
|---|---|---|---|
| minvalmax | No | Value | |
| param_path | Yes | e.g. '/model/dut/PARAM_NAME' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the core read operation and minvalmax option support, but it does not describe return type, error behavior, or what Min/Max/Opt Min/Opt Max actually do beyond relying on mpar_get.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core purpose front-loaded and no unnecessary detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter getter, the description is close to adequate, but it assumes knowledge of mpar_get for minvalmax behavior and, with no output schema, does not state the returned value shape or error 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?
param_path already has a schema example, and minvalmax already has an enum. The description adds only 'same minvalmax options as mpar_get', which is a cross-reference rather than a full explanation of the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get a DUT parameter value'. It is clearly distinct from dpar_set and dpar_exists, and referencing mpar_get hints at the DUT-vs-model parameter distinction, though it does not explicitly say when to use this over mpar_get.
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 choose dpar_get versus alternatives like dvar_get, dpar_set, or mpar_get. The mpar_get reference only explains minvalmax option compatibility, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dpar_setC
Set a DUT parameter value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| minvalmax | No | Value | |
| param_path | Yes | e.g. '/model/dut/PARAM_NAME' |
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, but it only repeats the tool's name. It does not mention side effects, whether the parameter must already exist, persistence, or return value. The single sentence adds no behavioral insight beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no fluff. It is concise and front-loaded, though the brevity borders on under-specification rather than purposeful economy.
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?
This is a mutation tool with no annotations, no output schema, and incomplete parameter documentation. The description does not explain the behavior, prerequisites, or return values, making it insufficient for an agent to call correctly in the presence of many similar setter tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (param_path has an example; value and minvalmax have no description). The description 'Set a DUT parameter value' minimally implies that 'value' is the value to set, but it does nothing to clarify the mysterious 'minvalmax' parameter. It fails to compensate for the low 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 identifies a specific verb ('Set') and resource ('a DUT parameter value'), making the tool's basic function clear. However, it does not distinguish dpar_set from many similar sibling setters like mpar_set, dvar_set, or svar_set, so it misses the differentiation needed for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus the many sibling setter tools (mpar_set, dvar_set, svar_set, ivar_set). The description only states what it does, not when it is the appropriate choice, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dut_createB
Create a DUT (Device Under Test) object. Set overwrite=true explicitly to replace an existing DUT.
| Name | Required | Description | Default |
|---|---|---|---|
| dut_path | Yes | DUT path, for example '/gan_hemt/dc' | |
| overwrite | No | Delete and replace an existing DUT only when explicitly enabled | |
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It does disclose the central destructive behavior: an existing DUT is replaced only when overwrite=true. However, it does not explain what happens when the DUT already exists and overwrite is false, nor does it mention the pre-overwrite save/checkpoint behavior signaled by allow_without_checkpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The first sentence states the tool's purpose, and the second highlights the single most important usage caveat, making it concise and effectively 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?
The definition is reasonably complete for a creation tool: the required path parameter, overwrite semantics, and the risky allow_without_checkpoint parameter are all documented. Still, with no output schema and no annotations, it leaves unspecified what occurs when the DUT path already exists and overwrite=false, and what exactly the automatic pre-overwrite save entails.
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 already covers 100% of parameters with detailed descriptions, including an example for dut_path and cautionary semantics for overwrite and allow_without_checkpoint. The main description adds little beyond reinforcing that overwrite must be set explicitly to replace, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Create a DUT (Device Under Test) object.' This distinguishes it from generic creators like object_create or model_create by naming the specific object type. It does not explicitly differentiate itself from siblings, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose dut_create over sibling tools such as object_create or model_create. The only usage hint is about setting overwrite=true, which is parameter behavior rather than tool-selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dut_get_dparsA
Get all DUT parameters (DPar) with their values.
| Name | Required | Description | Default |
|---|---|---|---|
| dut_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It clearly conveys a read-only enumeration and the inclusion of values, but it does not disclose return format, behavior for invalid dut_path, or ordering. For a simple getter this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that states the core action and result without redundancy. It is front-loaded with the verb and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter, this is minimally complete: the action and returned values are stated and the schema fills in the required string parameter. Missing guidance on path semantics and alternative tools, but complexity is low.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain dut_path at all. The tool name and description imply it identifies the DUT whose parameters are retrieved, but no format, source, or usage detail is provided, leaving the agent to infer the meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('all DUT parameters (DPar) with their values'). The word 'all' and the DPar scoping distinguish it from sibling getters like dpar_get (single parameter) and dut_get_dvars (DUT variables).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative is given. The phrase 'Get all' implies this is the tool for retrieving the full set of DUT parameters rather than a single one via dpar_get, but the guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dut_get_dvarsB
Get all DUT variables (DVar) with their values.
| Name | Required | Description | Default |
|---|---|---|---|
| dut_path | 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 of disclosing behavior. It communicates a read-only retrieval of variables with values, which is the core behavior, but it does not mention return format, error behavior, or whether the DUT must already exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It efficiently conveys the action, target, and expected output.
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 getter with one parameter, the description is minimally viable: it states what is retrieved and that values are included. However, with no output schema and no annotations, it leaves the exact return structure and any preconditions unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the single 'dut_path' parameter. The parameter name and tool context imply it identifies the DUT, but the description adds no explicit semantic 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 a clear verb ('Get') and resource ('all DUT variables (DVar)'), and adds that it returns their values. It is distinguishable from sibling tools like dvar_get (singular) and dut_get_dpars (parameters), though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as dvar_get or dut_get_dpars. Usage context is only implied by the tool name and the word 'all', with no stated exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dut_get_setupsA
Get all Setup names under a DUT.
| Name | Required | Description | Default |
|---|---|---|---|
| dut_path | 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 of explaining behavior. 'Get' conveys a read-only listing action, but there is no explicit statement about return format, ordering, or whether only direct children are returned. It is serviceable for a simple getter 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?
One short sentence with no filler, and the action and object are front-loaded. It loses a point because it omits useful parameter/path detail, not because it is wordy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, the description gives the core operation but leaves out path format and return-shape details, and there is no output schema to fill that gap. It is adequate for an agent that already understands the domain, but not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the dut_path parameter. It only says 'under a DUT', which identifies the parameter's role but not how the path should be formatted or what a valid DUT path looks like. The only required parameter remains under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (Setup names), and scope (under a DUT). This clearly distinguishes it from sibling tools like setup_get_info or setup_create, which operate on individual setups rather than listing their names.
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 intended use is implied: call it when you need the names of Setups under a DUT. However, it does not explicitly mention when not to use it, nor does it point to related alternatives like object_child_names_of_type or setup_get_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dvar_createB
Create a DUT variable (DVar). Common uses: DUT-level overrides of SIMULATOR, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Initial value | |
| var_path | Yes | Full path, e.g. '/model/dut/VAR_NAME' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It does not say what happens if var_path already exists, whether creation is destructive or reversible, whether permissions are needed, or what response the caller can expect—only that it creates a DVar with common override use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences put the core action and an example use case up front with no redundant filler. The trailing "etc." adds slight vagueness but does not undermine readability.
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 two-parameter create tool with complete schema descriptions, the basic call contract is visible. However, with no annotations and no output schema, the description leaves important operational behavior (duplicate path handling, return value, side effects) unspecified, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter meaning is already fully documented. The description adds the DUT-level override context but no additional syntax, constraints, or relationships between value and var_path 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 names a specific action (Create) and resource (DUT variable/DVar) and adds a practical use case (DUT-level overrides of SIMULATOR). It is distinguishable from related siblings like dvar_set by the verb, though it does not explicitly call out the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Common uses" indicates when the tool applies, but it offers no explicit guidance on when to choose dvar_create over alternatives such as dvar_set, dut_create, or other resource-specific create tools. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dvar_getC
Get a DUT variable value.
| Name | Required | Description | Default |
|---|---|---|---|
| var_path | Yes | Full path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry full behavioral disclosure, but it only states that it 'gets' a value. It does not mention error behavior, return format, side effects, or prerequisites. The verb 'get' implies a read-only operation, but substantial behavioral information is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is concise and easy to parse, though its brevity sacrifices depth needed for behavioral clarity.
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 getter with one documented parameter, the description is minimally viable. However, with no output schema and no mention of return value format or failure behavior, the agent lacks important details for confidently invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with var_path described as 'Full path'. The description adds no additional meaning about path syntax, expected format, or value type, so it does not exceed the baseline provided by 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 the operation ('Get') and the specific resource ('DUT variable value'). This distinguishes it from dvar_set and dvar_create, but it does not explicitly contrast it with other getter siblings like svar_get or object_get_val, making the differentiation implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling getters (svar_get, mvar_get, object_get_val), the description offers no selection criteria or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dvar_setB
Set a DUT variable value. Pass scalar values as strings and arrays as JSON array strings such as '["a","b"]'.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| var_path | Yes | Full path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only the value serialization format and does not mention side effects such as overwriting existing values, error behavior, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every phrase contributes either the core action or a necessary input-format detail.
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 two-parameter setter, the description covers the main action and value encoding, but the absence of annotations and output schema leaves behavioral expectations and usage context under-specified. An agent would need to infer side effects and when this tool is appropriate relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds useful meaning for the value parameter by explaining scalar values must be strings and arrays must be JSON array strings. However, var_path is only described in the schema as 'Full path', and with 50% schema coverage the description does not fully compensate for the missing var_path semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set a DUT variable value' uses a specific verb and resource, clearly indicating this tool modifies an existing DUT variable. It is distinguishable from related get/create tools, though it does not explicitly name a sibling or contrast its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use dvar_set versus alternatives like dvar_create or dvar_get, and no mention of prerequisites or exclusion conditions. The only guidance is about value formatting, which is a parameter detail rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_error_dialog_getA
Read Error Message dialogs from the selected IC-CAP process and dismiss them by default so modal UI errors do not leave automation blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| dismiss | No | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states that dialogs are dismissed by default, which is a side effect, and it explains the rationale (preventing automation blockage). It does not mention timeout behavior or what is done with the read messages, but the key 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?
The description is a single, well-structured sentence that front-loads the action and includes the purpose. Every word earns its place; there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple two-parameter tool, but it leaves 'timeout_seconds' undefined and does not specify what the tool returns when reading dialogs. Since there is no output schema and no annotations, these gaps reduce completeness for an agent trying to invoke it correctly in all situations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It adds context for 'dismiss' by noting dialogs are dismissed by default, but it says nothing about 'timeout_seconds' or its semantics. The description only partially explains the 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 uses a specific verb ('Read') and a specific resource ('Error Message dialogs from the selected IC-CAP process'), and it clearly conveys the dismiss behavior and the automation-unblocking purpose. This distinguishes it from the many sibling tools that deal with objects, sessions, jobs, or 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?
The description clearly implies the scenario: use this tool when error dialogs in the selected IC-CAP process may block automation. It does not explicitly name alternatives or when not to use it, but given the tool's unique role among siblings, the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_healthB
Check the selected IC-CAP gateway and report its busy/session state plus feedback capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. 'Check... and report' strongly implies a read-only status operation, but the description does not explicitly state non-destructiveness, what happens if no gateway is selected, or what 'feedback capabilities' means. This leaves behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and delivers the core information without filler. Every word earns its place, and the structure is 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?
For a no-parameter, no-output-schema tool, the description covers the main aspects (busy/session state and feedback capabilities) but omits important context: how a gateway becomes 'selected,' whether an active session is required, and any error/return behavior. This leaves an agent with some uncertainty about invocation prerequisites.
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 there are no parameter semantics to document. The description's mention of 'selected' refers to a contextual selection state, not a parameter. With 0 params, the baseline is 4, and the description adds no necessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and names a concrete resource ('the selected IC-CAP gateway'), then further specifies what is reported: 'busy/session state plus feedback capabilities.' This makes the tool's function clear, though it does not explicitly differentiate it from related sibling tools like iccap_status_get or iccap_sessions_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. The description does not mention prerequisites such as requiring a selected gateway, nor does it contrast this health check with the many iccap status/session/job sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_job_cancelB
Request IC-CAP Stop Activity for a running job; failure is reported explicitly.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose that failure is reported explicitly, but it does not clarify whether the stop is asynchronous, whether it is reversible, what side effects occur, or what a successful result looks like. This is too thin for a mutation-like control 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?
The description is a single front-loaded sentence with no filler. It conveys the target action and a notable behavior (explicit failure reporting) in the fewest words possible.
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 no annotations and no output schema, the description should explain more about what happens when the tool is called, including success/failure semantics and any asynchronous behavior. It gives only a minimal action statement and one behavioral note, leaving important operational context absent for an agent invoking a job-control operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented job_id parameter. It only implies that the job_id identifies a running job; it never explicitly explains the parameter, its source, or any formatting requirements. This is minimal added 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 states a clear action ('Request IC-CAP Stop Activity') and a specific resource ('a running job'), so an agent can tell this tool cancels/stops a job. It does not explicitly differentiate from sibling job tools like iccap_job_get or iccap_job_list, but the cancel/stop intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a running job' gives clear context about when the tool applies, and the tool name paired with the description implies it is the cancellation counterpart to job listing/retrieval. It does not mention when not to use it or name alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_job_getB
Get the state, result, error, and latest progress of a managed IC-CAP job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose that the tool returns an error field and 'latest progress', which hints at asynchronous job tracking, but it does not state whether the call is non-mutating, what happens for an unknown job_id, or whether it blocks.
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 one sentence with no filler, starts with the action, and front-loads the purpose. Every word contributes to defining what the tool returns.
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 no annotations and no output schema, the description properly names the return categories but omits details such as how to obtain a valid job_id and the expected shape of the result/error fields. For a one-parameter getter this is 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 description coverage is 0% for the single job_id parameter, and the description does not compensate by explaining what job_id is, how to obtain it, or its expected format. It only ties the parameter to the tool's general subject by saying 'of a managed IC-CAP job', which adds little beyond the schema's property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a concrete resource ('managed IC-CAP job'), and the exact data returned (state, result, error, latest progress). This clearly differentiates it from sibling tools like iccap_job_list, iccap_job_logs, and iccap_job_cancel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement about when to use this tool rather than sibling status-related tools. The verb 'Get' implies it is for inspecting an existing job's status, but the description does not mention how to obtain a job_id or that iccap_job_list is the typical source of job IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_job_listA
List recent managed IC-CAP jobs, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It states the operation is a read-only-style list and specifies sort order ('newest first'), which is useful. However, it does not mention what fields are returned, whether results are paginated, or whether job status is included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundant words. The key behavior ('list recent jobs') and ordering ('newest first') are front-loaded and immediately actionable.
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 list operation with one optional parameter and no required inputs, the description plus schema is sufficient for an agent to invoke the tool correctly. The lack of an output schema and any detail about the returned job entries is a minor gap, but it is not critical for the basic listing use case.
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 only parameter, 'limit', is fully described by the input schema with type, default, minimum, and maximum. The description does not mention the parameter, but 'recent' and 'list' imply that limit controls how many jobs are returned. Schema coverage is 0%, but the single parameter is self-explanatory enough that the gap is minor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('recent managed IC-CAP jobs') with an explicit ordering ('newest first'). It is clear and unambiguous, but it does not explicitly differentiate itself from sibling tools like iccap_job_get, iccap_job_logs, or iccap_job_cancel beyond the verb 'list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for browsing recent jobs, but it gives no explicit guidance about when to use it instead of related job tools. It lacks exclusions or alternative routing, so an agent must infer usage from the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_job_logsB
Read incremental IC-CAP status output for a managed job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of signaling behavior. It clearly indicates a read-only operation, but it does not explain what 'incremental status output' means, how offset affects results, or what the response contains. Some behavioral context is provided, but meaningful gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-formed sentence with no filler. It front-loads the core purpose and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no schema descriptions, the description is too thin. It does not clarify offset behavior, output structure, usage context, or how it relates to sibling job/status tools. An agent would likely need to infer important calling details.
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 adds no meaning for job_id or offset. The word 'incremental' weakly hints at offset semantics, but the description does not explain whether offset is in bytes, lines, entries, or something else.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' and a specific resource: 'incremental IC-CAP status output for a managed job.' It is clear enough to distinguish from general tools like iccap_job_get or iccap_status_get, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like iccap_job_get, iccap_job_list, or iccap_status_get. The description does not state whether this is for polling, debugging, or what conditions make it the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_session_selectA
Select the IC-CAP session used by subsequent calls in this MCP process.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID returned by iccap_sessions_list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior, and it does so by explicitly stating that the tool changes which session subsequent calls target in the current MCP process. It does not detail error handling for invalid session IDs, but the core side effect 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?
The description is a single, front-loaded sentence with no wasted words. It names the action, the target resource, and the scope of the effect efficiently.
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 selection tool, the description plus schema is sufficient to invoke it correctly: the session_id is required and its source is specified. It does not describe the return value, but for a session-switching operation this is not a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents session_id as the ID returned by iccap_sessions_list. The tool description adds little beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Select') and names the resource ('IC-CAP session used by subsequent calls in this MCP process'). It clearly distinguishes this tool from iccap_sessions_list (which lists sessions) by emphasizing the stateful selection behavior.
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 clearly indicates when to use this tool: before subsequent IC-CAP calls that should operate on a chosen session. The schema's reference to iccap_sessions_list implies the prerequisite workflow of listing sessions first, though no explicit exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_sessions_listA
List live IC-CAP sessions without exposing authentication tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses a meaningful behavior (not exposing authentication tokens) but does not mention whether the operation is read-only, what 'live' precisely entails, or any other side effects or requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and resource. The extra clause about authentication tokens is relevant and non-redundant, earning its place without adding 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?
For a zero-parameter list tool, the description is adequate but not complete. It does not describe the shape of the returned list (e.g., session IDs, names, status) or how the results connect with related tools like iccap_session_select. Since there is no output schema, the description could have provided more 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, so the empty input schema fully describes the parameter space. Per the baseline for 0 parameters, the description does not need to compensate for missing parameter documentation, and the score reflects that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('live IC-CAP sessions'), clearly stating the tool's function. The qualifier 'without exposing authentication tokens' adds a differentiating detail that helps distinguish it from other session-related tools like iccap_session_select.
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 such as iccap_session_select or iccap_job_list. There is no mention of scenarios, prerequisites, or exclusions, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iccap_status_getA
Read the current IC-CAP Status window text and parse optimizer progress without modifying the project.
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | Maximum trailing status characters to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the safety disclosure burden and it does so by explicitly stating 'without modifying the project.' It also clarifies that the tool both reads text and parses optimizer progress, making its behavior fairly transparent for a simple read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the action and resource, adds the parsing purpose, and states the non-modifying behavior. There is 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 one-optional-parameter read tool, the description covers purpose and side-effect profile, but there is no output schema and the description does not explicitly state the return shape (raw text vs parsed progress). An agent must infer the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents max_chars fully ('Maximum trailing status characters to return'), so description-level parameter guidance is unnecessary. The description adds no parameter semantics beyond the schema, matching the baseline for 100% 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 uses a specific verb ('Read') and names a concrete resource ('IC-CAP Status window text') plus a parsing goal. It is clear what the tool does, though it does not explicitly position itself against related status/health tools such as iccap_health or iccap_error_dialog_get.
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 read-only phrasing and 'parse optimizer progress' imply the use case of monitoring optimizer output without side effects. However, no explicit when-to-use/when-not-to-use guidance or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_BA
Get both measured and simulated data from an Input. Convenience method equivalent to get_data(msb='B').
| Name | Required | Description | Default |
|---|---|---|---|
| imag | No | ||
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the behavioral disclosure burden. It appropriately conveys that this is a convenience wrapper and describes the data scope, but it does not explicitly state read-only behavior, return format, or potential side effects. This is a moderate gap for a getter tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no redundancy. The primary action is front-loaded, and the convenience equivalence is stated efficiently without wasting 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?
With no annotations, no output schema, and no parameter explanations, the description omits important details needed to call the tool correctly, especially the meaning of 'imag' and the expected return structure. It is adequate for basic orientation but incomplete for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter. 'input_path' is partially inferable as the path to an Input, but 'imag' is completely unexplained. The description does not compensate for the lack of schema field 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?
The description clearly states the tool retrieves both measured and simulated data from an Input, using a specific verb and resource. It also distinguishes itself by noting the 'msb=B' equivalence and the convenience-method nature, which differentiates it from siblings like input_M or input_get_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: use this when you need both measured and simulated data, or as a shortcut for get_data(msb='B'). It does not explicitly mention when not to use it or name alternatives such as input_M or input_S, but the intent is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_createC
Create and configure an Input object.
Mode (modedict) options:
V: Voltage mode (+Node, -Node, Unit, Compliance)
I: Current mode (ToNode, FromNode, Unit, Compliance)
F: Frequency mode
T: Time mode
P: Parameter mode (ParamName, Unit)
U: Voltage mode (+Node, -Node, Unit, Compliance)
W: Power mode
Sweep Type (sweepdict) options:
LIN: Linear sweep (SweepOrder, Start, Stop, # of Points)
LOG: Logarithmic sweep (SweepOrder, Start, Stop, # of Points, Dec or Oct)
LIST: List sweep (SweepOrder, # of Values, Values)
CON: Constant (Value)
SYNC: Synchronous sweep (Ratio, Offset, MasterSweep)
LSYNC: List synchronous (MasterSweep)
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | V | |
| stop | No | ||
| unit | No | ||
| ratio | No | ||
| start | No | ||
| value | No | ||
| offset | No | ||
| values | No | ||
| to_node | No | ||
| from_node | No | ||
| overwrite | No | Delete and replace an existing Input only when explicitly enabled | |
| plus_node | No | ||
| compliance | No | ||
| input_path | Yes | ||
| minus_node | No | ||
| num_points | No | ||
| param_name | No | ||
| sweep_type | No | LIN | |
| sweep_order | No | ||
| master_sweep | No | ||
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Create and configure,' without disclosing the overwrite behavior, checkpoint behavior, what happens if the input already exists, or what the call returns. The schema mentions overwrite and allow_without_checkpoint, but the description itself does not surface these behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose and then uses well-organized bullet lists to explain mode and sweep-type options. The duplicate 'U: Voltage mode' entry is redundant, but overall the structure makes the large parameter space easier to navigate.
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 21-parameter create operation with no annotations and no output schema, the description leaves significant gaps. It does not explain the required input_path semantics, default behavior, return value, or side effects like overwrite/checkpoint. The mode/sweep information is valuable but incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 10%, so the description must compensate. The mode and sweep-type lists do add meaningful grouping for many parameters, such as plus_node/minus_node for V mode and to_node/from_node for I mode. However, the shorthand names do not always match the JSON property names, 'U' duplicates 'V', 'Dec or Oct' has no corresponding schema field, and W/F/T modes lack detailed parameter guidance.
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 action: 'Create and configure an Input object.' This distinguishes it from the many sibling get/set/query tools that operate on existing inputs. However, it could more explicitly position itself against other input-related creation or modification tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as input_set_field, input_get_field, or other create tools. An agent must infer from the name that this is for creating new Input objects. No exclusions or alternative-conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_get_dataC
Get Input dataset as dictionary. Supports msb (M/S/B) and imaginary flag.
| Name | Required | Description | Default |
|---|---|---|---|
| msb | No | M | |
| imag | No | ||
| input_path | 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 adds 'as dictionary' and names the two flags, but does not explain what the imaginary flag does, how msb affects the returned data, or what the dictionary keys/values represent.
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?
Both sentences are compact and the main purpose is front-loaded. The second sentence is somewhat vague but still relevant, so no significant redundancy exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should clarify return structure, flag effects, and the required input_path, but it does not. The tool is usable at a basic level but an agent is left guessing about key behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description only mentions msb and the imaginary flag without explaining their meaning or the required input_path parameter. This adds little beyond the raw schema, which already lists the enum values, defaults, and types.
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 a specific verb ('Get') on a specific resource ('Input dataset') and the return format ('as dictionary'), which helps distinguish it from siblings like input_get_df and input_get_fields. The mention of msb and imaginary flag gives extra specificity, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing implies this tool is appropriate when a dictionary representation of an input dataset is needed, possibly with msb or imaginary toggles. It does not state when to prefer this over input_get_df, input_get_fields, or other input-read siblings, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_get_dfB
Get Input dataset as DataFrame with optional matrix indexing.
| Name | Required | Description | Default |
|---|---|---|---|
| m | No | Matrix row index | |
| n | No | Matrix column index | |
| msb | No | M | |
| imag | No | ||
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It communicates a read-style operation ('Get') and the output form ('DataFrame'), but it does not explain side effects, error behavior, indexing conventions, or what msb and imag do. This is acceptable for a simple getter but leaves meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the core purpose front-loaded. There is no redundant text, and every phrase contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, one required but undocumented parameter, no annotations, and no output schema, this description is too thin for an agent to invoke the tool with confidence. Key semantics around input_path, msb, imag, and indexing behavior are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, so the description must compensate for undocumented parameters. It adds meaning only to m/n through 'optional matrix indexing' and loosely to input_path via 'Input dataset'. The required input_path and the msb/imag parameters remain effectively unexplained, which is a significant gap for a 5-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the target resource ('Input dataset'), and the return form ('as DataFrame'), so an agent can tell this returns a dataframe rather than raw data. It does not explicitly differentiate from siblings like input_get_data or input_get_field, but the 'as DataFrame' phrase provides some separation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'as DataFrame with optional matrix indexing' implies when this tool is useful—when a dataframe or matrix-indexed view is needed—but it does not state alternatives or when not to use it. No explicit routing to input_get_data or output_get_df is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_get_fieldA
Get a specific field value from an Input (e.g. 'Mode', 'Sweep Type', 'Start', 'Stop').
| Name | Required | Description | Default |
|---|---|---|---|
| field_name | Yes | Field name such as 'Mode', 'Sweep Type', 'Start', or 'Stop' | |
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of indicating behavior. It clearly signals a non-mutating read via 'Get', but it does not disclose return value format, error behavior for missing fields, or any side effects, leaving gaps for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundancy. Examples are embedded efficiently and do not add bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the lack of input_path semantics and return behavior makes the description incomplete. The sibling context clarifies the domain, but the definition itself leaves too much to inference.
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 only 50%, and the description only reinforces field_name examples while leaving input_path entirely unexplained. The description does not compensate for the undocumented required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('an Input'), and a specific granularity ('a specific field value') with concrete examples. This makes it easy to distinguish from input_get_fields, which implies retrieving multiple fields.
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 phrasing implies use when a single field value is needed from an Input, but it does not explicitly state when to prefer input_get_fields or other alternatives. 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.
input_get_fieldsB
Get all configurable field names for an Input.
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does transparently indicate a read-only retrieval of field names rather than values, which is useful. However, it does not mention behavior for invalid paths, return structure, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler. The action and resource are front-loaded, and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, stating that it returns configurable field names for an Input is close to sufficient. Still, the lack of path-format details, return shape, and usage guidance leaves noticeable gaps for an agent.
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 a bare input_path string with 0% description coverage. The description adds that the operation is 'for an Input', giving some context, but it never explains path syntax, how to obtain the path, or what counts as a valid Input path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('Get'), a specific resource ('all configurable field names'), and an object type ('Input'). The qualifier 'all' and the focus on 'field names' help separate it from siblings like input_get_field, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, no exclusions, and no prerequisites. The agent must infer usage from the sibling tool names and the description's narrow wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_get_lengthA
Get the number of data points in the Input dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | 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 clearly indicates a read-only length fetch and defines what is counted, but it does not mention return type, error behavior, or whether input_path must reference an existing Input dataset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word contributes to explaining the operation and its result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with no annotations and no output schema, the description is nearly complete: it states the resource, the measured quantity, and the result. Minor gaps like exact return type and invalid-path behavior are acceptable given the tool's low 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 schema provides only the parameter name input_path with type string and no description, so schema coverage is 0%. The description partially compensates by implying input_path identifies the Input dataset, but it does not explicitly document the path format or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a clear resource ('the Input dataset'), and the exact result ('the number of data points'). It clearly distinguishes this from sibling tools like input_get_data or input_get_df, which retrieve data rather than its length.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as output_get_length, transform_get_length, or setup_get_length. There is no mention of context, prerequisites, or exclusions, so an agent must infer appropriateness 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.
input_get_modedictC
Get the mode dictionary showing available modes and their required fields.
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Get' and describes the returned payload; it does not confirm read-only behavior, return structure, error handling, or side effects. An agent must infer safety and failure semantics entirely from the verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It states the verb and object immediately and avoids repeating the tool name or schema fields. This is appropriately concise for the amount of information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description is close to sufficient, but the missing input_path semantics and complete lack of usage guidance leave an agent unsure what value to pass. With no output schema or annotations, the description should provide at least a path convention and a note distinguishing this from output_get_modedict.
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 one required parameter, input_path, with 0% description coverage, and the description never mentions it. No explanation is given for what input_path should contain, its format, or how it relates to the mode dictionary. The description fails to compensate for the missing schema documentation.
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 identifies a 'get' operation on a 'mode dictionary' and specifies its content ('available modes and their required fields'), which separates it from generic input_get_* field/data tools. It does not explicitly contrast with output_get_modedict, but the input_get_ prefix and function name largely disambiguate the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage conditions, exclusions, or alternatives are mentioned. With sibling tools like output_get_modedict and many other input_get_* functions, the agent is not told when to choose this tool over the alternatives. The only guidance is implicit in the tool name and terse description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_get_sweepdictB
Get the sweep type dictionary showing available sweep types and their required fields.
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns a dictionary of sweep types and required fields, and 'get' implies a non-mutating read. However, because no annotations are provided, the description carries the full behavioral burden and does not mention prerequisites, invalid input_path behavior, 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?
A single, direct sentence with no wasted words. The core action is front-loaded, and the description stays appropriately minimal for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter with no output schema, the description conveys the primary function and return content. However, the required input_path is not explained, and there is no usage or fallback guidance, leaving the definition only minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented input_path parameter. It does not mention input_path at all, leaving the agent to infer that it is a path to an input object from the parameter name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies a clear resource: the sweep type dictionary. It also states what the dictionary contains ('available sweep types and their required fields'), which distinguishes it from sibling dictionary tools like input_get_modedict.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as input_get_modedict or input_get_fields. The description only states what the tool does, not the conditions under which it is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_get_typeA
Get the Input dataset type: 'M' (measured), 'S' (simulated), or 'B' (both).
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral transparency burden. 'Get' clearly indicates a read operation, and the possible return values are disclosed, but there is no explicit statement about side effects, error behavior, or assumptions like input_path needing to exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words. It fronts the action and answer domain immediately, and every component contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description is largely sufficient: it names the resource and the exact return set. The main gaps are explicit parameter semantics and error behavior, but the low complexity keeps the impact modest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the input_path parameter. The parameter name is somewhat self-explanatory and aligns with 'the Input dataset', but the description adds no explicit meaning about what value to pass or how it is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('the Input dataset type'), and enumerates the exact possible result values ('M', 'S', 'B'). This makes the purpose immediately clear and distinguishes it from sibling tools like input_get_field or input_get_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?
No guidance is given about when to call this tool versus alternatives such as input_M, input_S, or input_B. The description implies its use when a type string is needed, but it does not state any exclusions or contextual conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_MA
Get measured data from an Input. Convenience method equivalent to get_data(msb='M').
| Name | Required | Description | Default |
|---|---|---|---|
| imag | No | ||
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that this is a convenience wrapper equivalent to get_data(msb='M'), which is useful. However, it does not mention side effects, prerequisites, error behavior, or return format, leaving the agent with limited insight beyond the core 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 a single, front-loaded sentence with zero filler. It states the action first, then adds the crucial equivalence detail, making it both concise and 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?
For a tool with two parameters, no annotations, and no output schema, the description is too sparse. It does not explain the imag parameter, the return payload structure, or any conditions required to use the tool correctly. The equivalence to get_data(msb='M') helps, but an agent would still need to consult other documentation to use it fully.
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 by explaining parameters, but it does not. It never mentions input_path or imag, and 'from an Input' only weakly hints at input_path's role. The imag boolean parameter remains completely unexplained, so an agent cannot infer its meaning from the 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 opens with a specific verb and object ('Get measured data from an Input'), making the tool's purpose immediately clear. It further distinguishes itself by noting it is a convenience method equivalent to get_data(msb='M'), which separates it from sibling tools like input_S and input_B.
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 equivalence statement gives clear context: use this instead of calling get_data with msb='M'. The phrase 'Get measured data' implies the intended scenario, but there is no explicit mention of when not to use it or comparison with input_S/input_B.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_SB
Get simulated data from an Input. Convenience method equivalent to get_data(msb='S').
| Name | Required | Description | Default |
|---|---|---|---|
| imag | No | ||
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that this is a read-style convenience method, but it does not describe return format, error behavior, or whether the Input must already exist. This is minimal even for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main purpose is front-loaded, and the equivalence note is a compact, useful addition.
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 no annotations, no output schema, and 0% parameter documentation, the description leaves important invocation details unexplained. It works as a terse hint but is not sufficient for an agent to confidently handle the input_path and imag parameters or understand the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no explanation for input_path or imag. The mention of msb='S' refers to the underlying call but does not clarify the actual parameters. The boolean 'imag' in particular remains ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get simulated data from an Input.' It also names the underlying method equivalence, get_data(msb='S'), which differentiates this tool from sibling helpers like input_M and input_B by the 'simulated' qualifier.
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 the tool: when simulated data is needed from an Input, and it references get_data(msb='S') as the equivalent general call. However, it does not explicitly contrast with input_M/input_B or state 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.
input_set_dataA
Set Input data from a dictionary. String keys such as '("M", "11")' are converted to tuple keys for IC-CAP. Data format: {"('M', '11')": [val1, val2, ...]}.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| force | No | ||
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It usefully reveals a non-obvious conversion behavior: string keys like '("M", "11")' are converted to tuple keys for IC-CAP. However, it does not explain the meaning of the 'force' parameter, whether existing data is overwritten, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action. The key-conversion note and the data format example each add necessary operational detail without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, output schema, and parameter documentation, the description still leaves important gaps. It fully explains the data payload structure but not the target path semantics or the 'force' flag, so an agent may still be uncertain about edge behavior. The core call is likely usable, but not completely specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for the 'data' parameter by specifying the expected dictionary shape and key conversion behavior. It does not explain 'input_path' or 'force', leaving those parameters to be inferred from names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Set Input data from a dictionary.' It also distinguishes itself from sibling field-level tools like input_set_field by emphasizing bulk dictionary-based data assignment. However, it does not explicitly name or contrast itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this tool when you need to assign an entire Input data structure from a Python dictionary. It provides a concrete data format example, which helps correct invocation, but it does not state when to prefer this over alternatives such as input_set_field or input_get_data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
input_set_fieldC
Set a specific field value for an Input.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| field_name | Yes | ||
| input_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It implies mutation but does not state whether the field must already exist, whether existing values are overwritten, or what side effects may occur on the Input.
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 front-loaded, but it is under-specified rather than efficiently complete. It is a single clear sentence, yet it omits material behavioral and parameter context that the operation requires.
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 mutation tool with no annotations and no output schema, this description is too thin. It does not explain expected inputs, error conditions, return behavior, or how this set operation relates to the Input lifecycle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and all three parameters are bare strings with no enumerated values or format hints. The description adds no meaning to input_path, field_name, or value, leaving the agent without essential parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb-resource pair: setting a specific field value on an Input. It is distinguishable from sibling tools like input_get_field (read) and input_set_data (bulk data), though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as input_set_data, input_get_field, or object_set_val. The agent must infer usage entirely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instrvar_existsC
Check if an instrument option field exists.
| Name | Required | Description | Default |
|---|---|---|---|
| field_name | Yes | ||
| input_output_path | 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. 'Check if...exists' implies a boolean result and a read-only operation, but it does not state the return type, behavior when the field is missing, handling of invalid paths, or whether any errors are raised.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the core purpose, though the phrase 'instrument option field' is slightly vague and could have been clearer.
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 there is no output schema, no annotations, and no parameter documentation, the description is too thin for an agent to confidently call this tool. The agent is left without knowledge of the return format or the meaning of input_output_path, making the tool incomplete in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the two required parameters, input_output_path and field_name. While 'instrument option field' hints at field_name, input_output_path is completely unexplained, leaving the agent to guess what path structure is expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Check') and resource ('instrument option field'), so an agent knows this is an existence-check tool. It is not tautological and is distinct enough in intent from instrvar_get and instrvar_set, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus the many related existence-check tools such as object_exist, mpar_exists, dpar_exists, or tablevar_exists. The description does not explain whether this should be called before instrvar_get/instrvar_set or what conditions warrant it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instrvar_getA
Get an instrument option field value. Path is constructed as input_output_path/field_name.
| Name | Required | Description | Default |
|---|---|---|---|
| field_name | Yes | Instrument-option field such as 'Integ Time' | |
| input_output_path | Yes | Input or Output path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. The verb 'Get' implies a read-only operation, and the path construction mechanism is disclosed. However, it does not describe return value format, error behavior when the path/field is invalid, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core action is front-loaded, and the path construction detail earns its place as the only non-obvious information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with two fully documented parameters and no output schema, the description conveys the action, the return concept ('value'), and how the parameters combine. The absence of a defined return type or error semantics is a minor gap for such a straightforward read 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 100%, so both parameters are already documented. The description adds value beyond the schema by explaining the relationship between the two parameters ('Path is constructed as input_output_path/field_name'), clarifying how field_name composes with the path rather than standing alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get an instrument option field value') and adds the path construction rule, which makes the tool's function concrete. It does not explicitly differentiate from similarly named siblings like ivar_get, but the 'instrument option' phrasing and path detail provide enough distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as instrvar_set or instrvar_exists. The description states only what the tool does, leaving the agent to infer the complementary relationship with its write/existence-check siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instrvar_setC
Set an instrument option field value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| field_name | Yes | ||
| input_output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits itself. 'Set' conveys mutation, and the description names the target field, but it does not reveal whether the operation overwrites, creates missing fields, requires an existing instrument, or has side effects on other option fields. This is a significant transparency gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and free of fluff, with the action placed first. However, it is under-specified rather than efficiently complete, and the single sentence does not carry enough information to be genuinely useful.
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 three mandatory parameters, zero schema descriptions, no annotations, no output schema, and a large set of sibling tools, this description is far too thin. An agent cannot determine what input_output_path refers to, what values are acceptable, or what the operation does beyond 'set', making correct invocation unlikely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the three required parameters. 'field_name' and 'value' are vaguely inferable from the description, but 'input_output_path' is completely unexplained. The description does nothing to compensate for the unhelpful schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Set') and a resource ('instrument option field value'), so it is not a tautology. However, it does not explain what an instrument option field is or how it differs from instrument variables, and the many sibling setters (ivar_set, dvar_set, input_set_field, output_set_field) make the scope ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use instrvar_set versus alternatives, no prerequisites, and no mention of when this tool is preferred over sibling tools like instrvar_get, ivar_set, or input_set_field. The description simply states the action with no context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ivar_createA
Create a system variable (IVar) at Main level. var_name is the variable name only (no path prefix).
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Initial value | |
| var_name | Yes | Variable name only (no path), e.g. 'MY_VAR' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It clearly states the core behavior and location, but it does not mention side effects such as whether an existing variable is overwritten, whether creation fails if a variable already exists, or any required parent context beyond 'Main level'. The naming constraint adds useful behavior beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant words. The primary action and scope are front-loaded, and the naming warning is placed where it directly supports correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter create tool with no output schema, the description covers the essential information: what is created, where it is created, and how parameters should be named. A small gap is the lack of any statement about collision behavior or return value, but the tool is simple enough that the description is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the var_name restriction already present in the schema, such as 'variable name only (no path prefix)', but adds no new parameter-level meaning. It does not explain value handling or default behavior beyond what the schema already provides.
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 a specific action, 'Create a system variable (IVar)', and the target scope, 'at Main level', which distinguishes it from sibling create tools like svar_create or dvar_create. It also clarifies the naming restriction, leaving no ambiguity about what resource is being acted on.
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 context by specifying that this creates a Main-level IVar, but it does not explicitly contrast this with alternatives such as svar_create or dvar_create. It gives enough context for an agent to infer the intended use, but it does not provide explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ivar_getB
Get a system variable (IVar) value at Main level.
| Name | Required | Description | Default |
|---|---|---|---|
| var_name | Yes | Variable name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The word 'get' and the mention of returning a 'value' signal a non-mutating read operation, which is the primary behavioral trait an agent needs. However, with no annotations and no output schema, the description does not disclose behavior for missing variables, error conditions, or the exact representation of the returned value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the action, resource, and scope, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter, the description covers the core purpose and scope sufficiently. But the lack of annotations, output schema, and any sibling-routing context leaves minor but real gaps around edge-case behavior and how this tool relates to the numerous other getter tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds contextual meaning beyond the bare 'Variable name' schema entry by clarifying that var_name must identify a system variable (IVar) at Main level, which helps the agent select an appropriate input.
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 a get operation on a specific resource type (system variable/IVar) and identifies the location (Main level). It does not explicitly distinguish IVar from the many sibling variable getters like svar_get or mvar_get, but the 'system variable (IVar)' terminology provides enough specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of alternative sibling getters such as svar_get, mvar_get, dvar_get, or instrvar_get. The 'at Main level' scope implies a condition, but there is no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ivar_setA
Set a system variable (IVar) at Main level. Pass scalar values as strings and arrays as JSON array strings such as '["a","b"]'.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| var_name | Yes | Variable name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It usefully explains that scalar values are passed as strings and arrays as JSON array strings, which is important encoding behavior. However, it does not mention whether the operation overwrites existing values, requires the variable to already exist, or what side effects or return behavior to expect beyond the set operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose and immediately provides the most important parameter formatting guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter setter with no output schema, the description covers the operation, target level, and value encoding. The only notable gap is the absence of any statement about whether the variable must already exist or whether it is created on demand, but overall the description is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, with var_name documented but value lacking any schema description. The description compensates for value by specifying the expected string encoding for scalars and JSON array strings for arrays. This adds meaning beyond the raw schema and helps the agent construct valid values.
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 identifies the operation as setting a system variable (IVar) at Main level. This distinguishes it from sibling setters like dvar_set, svar_set, and mvar_set, and the explicit 'at Main level' scoping removes ambiguity about where the variable is set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear contextual guidance by specifying that this sets an IVar at Main level, which helps an agent select it over other variable setters. It does not explicitly name alternatives or exclusion conditions, but the 'Main level' qualifier gives a clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_createC
Create a Macro object. Optionally set its text content.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Macro text | |
| overwrite | No | Delete and replace an existing Macro only when explicitly enabled | |
| macro_path | Yes | ||
| macro_type | No | Execution language; new IC-CAP macros otherwise default to PEL Program | PythonGlobal |
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
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 only says 'Create a Macro object' and mentions optional text; it does not disclose overwrite behavior, checkpoint implications, default macro_type, or what happens when a macro already exists. These are important for a potentially destructive create 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 a single, direct sentence with no filler or redundant explanation. It is front-loaded with the core action, though it is arguably too terse given the tool's five parameters and safety-related options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and five parameters including overwrite and allow_without_checkpoint, this description is incomplete. It omits critical context about macro_path format, default macro type, overwrite safety, and checkpoint behavior. The agent must rely heavily on the schema and outside knowledge to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the baseline is 3. The description adds minimal value beyond the schema by restating 'text content', but it does not explain the required macro_path parameter, which is the one parameter lacking a schema description. Overall, the schema carries most of the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('Macro object'), and mentions the optional text content. It distinguishes this creation tool from siblings like macro_get_text and macro_set_text, though it does not call out object_create as the generic alternative or mention the required macro_path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as object_create, macro_set_text, or model_get_macros. The description simply states what it does, leaving the agent to infer when creation is appropriate and what preconditions or path requirements apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_executeC
Execute/Run a Macro. Use run_async=true for a managed observable job.
| Name | Required | Description | Default |
|---|---|---|---|
| run_async | No | ||
| macro_path | 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 only says 'Execute/Run a Macro' and vaguely mentions a managed observable job for async mode, without stating whether execution is synchronous by default, what side effects occur, what it returns, or how errors are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action. Minor redundancy between 'Execute' and 'Run' costs a small amount of precision, but the overall structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a side-effecting execution tool with no output schema and no annotations, this description is under-specified. An agent cannot tell what a successful execution returns, whether it blocks, what 'managed observable job' means, or what failure modes exist.
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. run_async gets a loose semantic via 'managed observable job,' but macro_path is left entirely to inference from its name, and the meaning of 'managed observable job' is not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action, 'Execute/Run a Macro', on a clear resource. It is readily distinguishable from sibling macro tools (macro_create, macro_get_text, macro_set_text) whose operations are creation and text editing, not execution.
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 only a parameter-level tip, 'Use run_async=true for a managed observable job,' with no guidance on when to choose macro_execute over other tools or when to avoid it. There is no discussion of alternatives, prerequisites, or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_get_textC
Get the text content of a Macro.
| Name | Required | Description | Default |
|---|---|---|---|
| macro_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full disclosure burden. The verb 'Get' suggests a read-only operation, but the description does not state behavior on missing macros, whether the return value is a string, or whether any side effects occur. This is a minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, but it is too sparse to be considered well-structured. Every word earns its place, yet the single sentence provides no additional context that would help an agent use the tool correctly.
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 getter with one parameter and no output schema, the description should at least clarify the path format and the return value. The absence of any behavioral or path context leaves the tool inadequately specified, though the core action is not misleading.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, macro_path, has 0% schema description coverage and the tool description does not explain its format, accepted path syntax, or whether it is relative to a model/project. An agent has no way to know how to construct a valid macro_path 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 states a specific action ('Get') and resource ('text content of a Macro'), so an agent knows what the tool returns. It does not explicitly differentiate from sibling getters like object_get_val or macro_set_text, but the pairing with macro_set_text makes the purpose reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool instead of alternatives, such as macro_execute or macro_set_text. The intended use is implied at best: retrieving macro text before editing or inspection. No exclusions or contextual triggers are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_set_textC
Set the text content of a Macro.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| macro_path | Yes | ||
| macro_type | No | PythonGlobal |
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, but it only states the mutating operation. It does not mention that existing text is overwritten, whether the macro must exist, or any error or permission behavior, which is important for a write-type tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no wasted words and front-loads the core action. It is efficient, though its brevity contributes to the under-specification reflected in other dimensions.
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 mutating tool with no annotations and no output schema, the description is too thin to fully support correct invocation. An agent cannot confidently know whether the macro must already exist, what macro_type values mean, or how this operation relates to macro_get_text and macro_create.
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, but it adds minimal parameter meaning. It loosely maps 'text content' to the text parameter and 'Macro' to macro_path, while leaving macro_type and its enum semantics completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Set') and resource ('text content of a Macro'), so an agent can immediately understand the core operation. It is distinguishable from siblings like macro_get_text and macro_execute at the verb level, though it does not explicitly name or contrast those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus macro_create, macro_execute, or macro_get_text. The description also fails to state whether the macro must already exist or how macro_type affects which macro is targeted, leaving key selection and prerequisite decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
main_get_childB
Get a child object from Main by name. Optionally filter by type (Model, IVar).
| Name | Required | Description | Default |
|---|---|---|---|
| child_name | Yes | Child name, e.g. model name | |
| child_type | No | Optional type filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action and the optional type filter; it does not mention what happens if the child is not found, whether it returns a single object or list, or any error behavior. This is a thin description for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core purpose is front-loaded, and the optional filter is stated in the second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 params, no nested objects) and complete schema descriptions, the description is nearly sufficient for an agent to invoke the tool correctly. It could be improved by stating the return value or failure behavior, but for a straightforward getter this is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both child_name and child_type. The description adds marginal context by mapping 'by name' to child_name and naming the allowed type values, but it does not add format, syntax, or edge-case details 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 a specific action ('Get a child object from Main by name') and a resource (Main), with an optional filter by type. It is distinguishable from general object_get_child via the 'from Main' qualifier, but it does not explicitly name sibling tools for comparison.
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 this tool: when you need a child object from Main by name and optionally filtered by type. However, it provides no explicit guidance on when not to use it or which alternative tool (e.g., main_get_models, main_get_ivars) to prefer, leaving some room for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
main_get_ivarsA
List all system variables (IVar) with their names and values.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It clearly indicates a read-only listing operation and the output content, but it does not add details about ordering, return structure, or potential errors. This is adequate for a simple list tool but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and resource, with no filler or repetition. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with no output schema, this description is nearly complete: it states the scope ('all') and the output fields ('names and values'). It is slightly thin on return format or ordering details, but nothing essential is missing for invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics and no parameter information is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('all system variables (IVar)') and states the returned fields ('names and values'). This distinguishes it from sibling tools like ivar_get, which targets a single variable, and main_get_models, which targets models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'List all' implies this is the enumeration tool for system variables, but the description does not explicitly state when to prefer it over ivar_get or other variable-access tools. There is no exclusion guidance or mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
main_get_modelsA
List all Model names in the current IC-CAP session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. 'List' clearly implies a read-only operation and 'Model names' indicates the returned data shape. It could mention additional details like empty results or ordering, but for a simple session enumeration the behavior is adequately disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states exactly what the tool does with no filler. Every word contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema list operation, the description is complete: it identifies the resource (Model names), the scope (current IC-CAP session), and the result type (names). No essential behavioral or context information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema declares zero properties and the description adds no parameter details because none are needed. Per the rubric, a zero-parameter tool receives a baseline score of 4 since there is no parameter semantics burden to fulfill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('all Model names') with an explicit scope ('current IC-CAP session'). It is easy to distinguish from sibling tools like model_get_duts or main_get_ivars, which target different object types.
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 clear context by scoping the tool to the current IC-CAP session, which tells an agent when this listing is relevant. It does not explicitly name alternatives or exclusions, but for a zero-parameter enumeration tool the implied usage is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
main_get_valofA
Get a variable or parameter value visible from Main (searches hierarchy: variables, parameters, tablevars, datasets).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable or parameter name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses a useful behavioral trait: the hierarchy search order. However, with no annotations, the description carries the full burden and does not state return format, failure behavior when the name is not found, or explicitly confirm the operation is read-only (though 'get' implies it).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action and resource front-loaded, followed by a compact parenthetical that adds the search-order detail. No redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description covers the main purpose and scope well. However, since there is no output schema, the description should more explicitly convey return behavior and what happens when the name is not visible; these gaps remain.
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 100%, so the baseline is 3. The description adds context that the name parameter refers to a Main-visible variable or parameter, but it does not add syntax details like name formatting or path handling beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a concrete resource ('variable or parameter value'), and a clear scope ('visible from Main'), plus the search hierarchy. This clearly distinguishes it from object-scoped getters like object_get_valof.
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 provides clear context for when to use the tool: when retrieving a value by name from Main across variables, parameters, tablevars, or datasets. It does not explicitly name alternatives or exclusion conditions, but the Main-scoped framing is a sufficient selection signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
main_saveA
Save an IC-CAP object to disk. For Save As, arg is the destination filename: a bare name is written into the MCP workspace, an absolute path must satisfy the workspace path policy (see ICCAP_MCP_ALLOW_EXTERNAL_FILES); .mdl is appended when missing. The result is verified against the file system and reports file_exists/file_size - success means the file is actually on disk. Use locator='/' for the full project or a model path for one model.
| Name | Required | Description | Default |
|---|---|---|---|
| arg | No | For Save As: destination filename (bare name resolves into the MCP workspace; absolute paths follow the workspace path policy). Save takes no arg. | |
| action | No | Save As | |
| locator | Yes | Object locator. Use '/' for full project or '/model_name' for a specific model. | / |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses path resolution rules, the workspace policy, automatic .mdl extension, and filesystem verification with file_exists/file_size. It could also mention overwrite behavior, but the provided behavior is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. Every sentence adds needed detail: Save As semantics, path policy, extension handling, verification, and locator usage. There is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating save tool with no annotations and no output schema, the description covers the critical operational details: destination resolution, policy constraint, extension appending, and success verification. Minor gaps remain around overwrite behavior and exact response shape, but the description is largely 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 67% and the action parameter is not described in the schema. The description compensates by clarifying that Save takes no arg, that arg is only for Save As, and by adding .mdl handling and path policy meaning beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Save an IC-CAP object to disk.' It clearly separates Save As from Save, and the sibling list contains no other save-equivalent tool, so this is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains destination handling for Save As, notes that Save takes no arg, and instructs when to use locator='/' versus a model path. It does not explicitly name alternative tools or when-not conditions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_createA
Create a Model object. Model is the top-level container with circuit netlist, DUTs, parameters, and variables. Set overwrite=true explicitly to replace an existing Model.
| Name | Required | Description | Default |
|---|---|---|---|
| circuit | No | Optional SPICE circuit netlist | |
| overwrite | No | Delete and replace an existing Model only when explicitly enabled | |
| model_path | Yes | Model path, for example '/gan_hemt' | |
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It clearly discloses the destructive overwrite behavior and requires explicit opt-in ('overwrite=true explicitly'), which is important safety-relevant context. It does not mention other potential side effects like automatic parent creation or failure modes, but the overwrite disclosure is strong for a create 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 two sentences with no filler. The primary action is front-loaded, and the second sentence adds the critical overwrite safety instruction. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with no output schema and no annotations, the description adequately covers purpose, container semantics, and the overwrite caveat. Combined with fully documented parameters, everything needed to invoke the tool correctly is present. It could mention success/error return behavior, but that is not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (circuit, overwrite, model_path, allow_without_checkpoint) are already documented in the input schema. The description adds context about the Model's role but adds no parameter-level meaning beyond the schema, so the baseline score of 3 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 states a specific verb ('Create'), a specific resource ('Model object'), and explains what a Model is ('top-level container with circuit netlist, DUTs, parameters, and variables'). This distinguishes it from sibling creation tools like dut_create or setup_create, so an agent can identify the right object type to create.
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 a key invocation condition ('Set overwrite=true explicitly to replace an existing Model') but does not provide explicit when-to-use guidance or name alternatives. The context signal of many sibling create tools makes this gap noticeable; the agent must infer when model_create is preferred over object_create or other creation flows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_export_structureA
Export a model's full structure to one JSON file in a single call: per DUT the DPAR values; per setup the inputs, outputs, setup variables, and every transform in order (PEL/Python program text, equation expressions, derivative sources with X/Y Data and Order, complete optimizer configuration with targets, parameter tables, and options). Replaces thousands of per-field tablevar_get calls for knowledge capture and build verification. file_path follows the workspace path policy (see ICCAP_MCP_WORKSPACE).
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Destination JSON file path; must be inside the MCP workspace unless ICCAP_MCP_ALLOW_EXTERNAL_FILES is set | |
| model_path | Yes | Model path, e.g. '/model_name' |
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 what data is included and mentions the workspace path policy for file_path. However, it does not disclose side effects such as file overwriting, whether the JSON file is created atomically, potential size/performance implications, or what the call returns on success/failure. The provided context is meaningful but incomplete for a mutating export 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 dense but well-organized, front-loading the main action and then using a colon-separated list to enumerate contents. The closing sentence on file_path policy is relevant and not redundant. It is longer than typical, but the complexity of the exported structure justifies the detail.
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 complex export tool with no output schema, the description covers the input model_path and file_path, the detailed structure of the output JSON, and the policy constraint on file_path. It does not state the return value or error behavior, but the extensive enumeration of contents largely compensates. An agent can call this tool with reasonable confidence.
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 100%, with both parameters described in the input schema. The description adds a pointer to the workspace path policy and gives a model_path example, but these are minor additions. Baseline 3 is appropriate since the schema already documents the parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Export a model's full structure to one JSON file in a single call,' then enumerates the contained data in detail. It clearly differentiates from siblings like tablevar_get and the many object_get_* tools by positioning itself as a bulk replacement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the use case: 'for knowledge capture and build verification,' and names the alternative pattern it replaces ('thousands of per-field tablevar_get calls'). It does not list exclusions or when not to use it, but the context is clear enough for an agent to select it for bulk export scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_get_circuitB
Get the Model's SPICE circuit netlist.
| Name | Required | Description | Default |
|---|---|---|---|
| model_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the getter action and the resource, with no mention of read-only guarantees, return type, error conditions, or any side effects. The word 'Get' hints at non-mutating behavior, but that is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant wording. The key action and resource are front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter getter with no output schema and no annotations, this description is minimally viable: it tells the agent what the tool returns (the netlist) and what it acts on (the model). However, it lacks details about model_path format and the exact return value structure, leaving some room for guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not elaborate on the only parameter, model_path. It does not explain whether model_path is a file path, object path, or how it identifies the model. The parameter name provides the only clue, and the description fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and names the exact resource, 'the Model's SPICE circuit netlist.' This clearly distinguishes it from sibling tools like model_set_circuit and model_get_mvars, which operate on different resources or perform writes.
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 intended use is implied by the tool name and description, but there is no explicit guidance about when to choose this tool over alternatives, no prerequisites, and no mention of when not to use it. An agent must infer that this is simply the getter for the circuit netlist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_get_dutsA
Get all DUT names under a Model.
| Name | Required | Description | Default |
|---|---|---|---|
| model_path | 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 for behavioral disclosure. It only says 'Get', implying a read operation, but does not disclose return format, ordering, error behavior, or any side effects. This is a meaningful gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word adds meaning, and it is as concise as possible while conveying the operation and scope.
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 retrieval tool with one parameter, the core operation is conveyed. However, with no output schema and no annotations, the description leaves return structure, path semantics, and failure behavior unspecified. It is minimally viable 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 must compensate for the undocumented model_path parameter. It adds some meaning by noting the DUTs are 'under a Model', tying model_path to a model context. Still, it does not specify path format, required syntax, or accepted values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('DUT names'), and a scope ('under a Model'). It distinguishes this from sibling tools like model_get_mvars or dut_get_setups, which target different objects.
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 intended context is clear: retrieving all DUT names associated with a model. However, it does not explicitly mention alternatives or when-not-to-use cases, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_get_macrosA
Get all Macro names under a Model.
| Name | Required | Description | Default |
|---|---|---|---|
| model_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the behavioral disclosure burden. It communicates a read-only listing operation and clarifies that the result is names, not macro contents. However, it does not address edge behavior such as invalid model paths, ordering, empty results, or whether only direct child macros are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. The operation, scope, and output kind are front-loaded, and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple getter: it states the input scope and that the output is Macro names. It remains incomplete because there is no output schema and no detail about return type, empty results, or direct versus recursive enumeration, and no annotations cover safety semantics.
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 indicates that the single parameter model_path refers to the Model under which macros are listed, but it does not explain the expected path format or whether a full object path is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise operation: enumerate all Macro names belonging to a Model. The resource and scope ('Macro names under a Model') distinguish it from sibling macro content/execution tools and other model_* getters, so an agent can identify the right tool without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance about when to choose this tool over alternatives. It does not mention prerequisites, exclusions, or sibling tools such as model_get_mvars, model_get_mpars, or macro_get_text, so the agent must infer usage purely from the tool name and minimal description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_get_mparsB
Get all Model parameters (MPar) with their values.
| Name | Required | Description | Default |
|---|---|---|---|
| model_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden. The verb 'Get' and the phrase 'with their values' convey a read-only operation that returns parameter data, but the description does not disclose return structure, failure behavior, path requirements, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler, front-loading the action ('Get all') and the resource ('Model parameters'). Every word contributes to the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description states enough to understand the basic invocation: provide a model path and receive all model parameters with values. However, without annotations, output schema, or parameter details, it is not fully complete for an agent that needs precise path syntax or return shape.
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 provides no description for model_path and schema coverage is 0%. The description only indirectly suggests that model_path identifies the model whose parameters are fetched; it adds no detail on path format, required value, or constraints, so it does not compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get all Model parameters (MPar) with their values.' It clearly states the tool's scope and distinguishes it from mpar_get by emphasizing 'all,' though it does not explicitly name the sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus mpar_get, model_get_mvars, or other related getters. No prerequisites, exclusions, or alternative recommendations are provided, leaving the agent to infer selection from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_get_mvarsC
Get all Model variables (MVar) with their values.
| Name | Required | Description | Default |
|---|---|---|---|
| model_path | 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 implies a read-only operation through 'Get', but it does not disclose error behavior, ordering, whether values are returned for all variables or only defined ones, or any side effects. This is minimal disclosure for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler. It is front-loaded with the key action and resource, making it easy for an agent to quickly 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?
For a simple getter with one parameter and no output schema, the description covers the core purpose, but it omits parameter semantics, return format, and usage context relative to sibling tools. It is minimally viable but leaves notable 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?
The schema has 0% description coverage, and the description does not explain the required model_path parameter. The parameter name is somewhat self-explanatory, but the description adds no meaning about what path format, scope, or resolution behavior is expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair: 'Get all Model variables (MVar) with their values.' It clearly states the operation and scope, and the MVar label distinguishes it from sibling tools like model_get_mpars, though it does not explicitly contrast with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus mvar_get, model_get_mpars, or other inspection tools. It also does not state prerequisites such as the model needing to exist or how the model_path should be provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_set_circuitC
Set the Model's SPICE circuit netlist.
| Name | Required | Description | Default |
|---|---|---|---|
| circuit | Yes | ||
| model_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation but does not mention whether the existing circuit is overwritten, whether the model must already exist, whether the netlist is validated, or what side effects occur on simulation or model state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no unnecessary words, and the core action is front-loaded. However, it is so terse that it omits important context, so it is concise but not optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and only 0% schema description coverage, this minimal description leaves significant gaps: it does not explain prerequisites, overwrite behavior, circuit format, or expected return value. For a mutation tool, this is insufficient context for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description only loosely identifies the 'circuit' parameter as a SPICE circuit netlist. It does not explain how model_path should be specified, what format the circuit string expects, or how the two parameters relate, so an agent has limited additional semantic grounding beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set') and resource ('Model's SPICE circuit netlist'), making the tool's function immediately clear. It also distinguishes itself from the sibling tool model_get_circuit by direction of operation, so an agent can identify the right tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives such as model_get_circuit or model_create. No conditions, prerequisites, or exclusions are provided, leaving usage entirely inferred from the verb 'Set'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpar_existsA
Check if a Model parameter exists. Useful for verifying circuit netlist defines the expected parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| param_path | Yes | e.g. '/model/IS' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Check if...exists' communicates a safe, read-only predicate, but it does not specify the return type, whether a missing parameter yields false versus an error, or how param_path is interpreted. This is adequate but leaves minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core action is front-loaded, and the use case sentence earns its place by adding context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter existence check, the description plus schema is nearly complete. The main gap is the lack of an output schema and no explicit statement of return behavior, but the predicate semantics make the tool's likely behavior clear enough for most agents.
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 already documents param_path with an example and has 100% coverage. The description adds semantic value by clarifying that the path refers to a Model parameter within a circuit netlist, which helps an agent understand the intended path format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check if...exists') and a specific resource ('Model parameter'), which clearly distinguishes it from sibling tools like dpar_exists (device parameter) and object_exist. The 'circuit netlist' context further defines the intended scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: verifying that a circuit netlist defines an expected parameter. It does not explicitly contrast this tool with sibling existence checks or state when not to use it, but the context is sufficient for an agent to infer the primary scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpar_getA
Get a Model parameter value. MPar objects are defined by the circuit netlist and cannot be created or deleted.
minvalmax options:
Value: Current parameter value (default)
Min/Max: Parameter range bounds
Opt Min/Opt Max: Optimization range bounds
| Name | Required | Description | Default |
|---|---|---|---|
| minvalmax | No | Value | |
| param_path | Yes | e.g. '/model/MAIN.IS' or '/model/RS' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the transparency burden. It does add useful context about the object lifecycle and minvalmax selection behavior, but it does not explicitly state that the operation has no side effects or what happens when param_path does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus a tight bulleted option list. The core purpose is front-loaded and every sentence contributes useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter getter with no output schema, the description covers purpose, object constraints, and all minvalmax choices. It could be slightly more explicit about the expected return value or format, but 'value' is sufficient for a basic read 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 description adds meaningful semantics for the minvalmax parameter (Value, Min/Max, Opt Min/Opt Max), which the schema only exposes as bare enum strings. The param_path parameter is already documented in the schema with examples, so no additional path explanation 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 states a specific action and resource: 'Get a Model parameter value' and names the object type MPar. It also clarifies that MPar objects are netlist-defined and cannot be created or deleted, which distinguishes this read tool from mutation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies read-only use ('Get') and warns that MPar objects cannot be created/deleted, but it never explicitly names alternatives or exclusions. An agent must infer from the tool name that setting or creating MPar values belongs elsewhere, such as mpar_set or mpar_set_bounds.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpar_setA
Set a Model parameter value. Use minvalmax to set bounds (Min, Max, Opt Min, Opt Max) instead of the current value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| minvalmax | No | Value | |
| param_path | Yes | e.g. '/model/MAIN.IS' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of explaining behavior. It transparently discloses the mutating nature of the call and that bounds can be targeted instead of the current value, but it remains silent on side effects, validation, or how existing bound values are replaced.
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 with no filler; the primary operation is first and the optional bounds behavior is second. Every word adds necessary meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter setter with no output schema, the core call can be made correctly from this text plus schema. Still, the lack of guidance about mpar_set_bounds and the absence of behavioral/result context leave meaningful gaps for an agent choosing among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate. It usefully explains that value sets the current value and minvalmax selects a bound, but it leaves param_path with only the schema example and provides no detail on value constraints or path resolution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Set a Model parameter value') and clarifies the critical distinction between setting the current value and setting bounds via minvalmax. It is clear enough to identify this as the parameter setter, though it does not explicitly reference the dedicated sibling mpar_set_bounds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one direct usage directive: use minvalmax for Min/Max/Opt Min/Opt Max instead of the current value. However, it does not explain when to prefer this tool over mpar_set_bounds or other setters, leaving the selection among siblings partially to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpar_set_boundsA
Batch-set parameter boundaries (Min, Max, Opt Min, Opt Max) for multiple MPar parameters in one call. Only works for MPar, not DPar.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly states the MPar-only limitation and that it operates in batch mode, but does not disclose details like whether unspecified bounds are left unchanged, whether invalid paths fail silently, or whether this overwrites existing bounds. No annotation contradiction.
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 fluff, and the MPar-specific limitation is stated prominently at the end. Every sentence adds signal.
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 batch setter with no output schema, the description covers the main eligibility constraint (MPar only) and the batch nature. It could be more complete by noting whether this replaces all bounds on the parameter or merges with existing values, but the schema and tool name cover most of the remaining context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It names the bound fields (Min, Max, Opt Min, Opt Max) which maps to the input schema, and points to MPar parameters. However, it does not explain that 'path' is required per item or that each item can contain a subset of bounds; the schema's example path helps but the description adds the key MPar-specific 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?
The description uses specific verb 'Batch-set' with resource 'MPar parameters' and clarifies scope ('Min, Max, Opt Min, Opt Max'), clearly distinguishing it from single-parameter setters like mpar_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it 'Only works for MPar, not DPar', providing an explicit exclusion that guides the agent away from DPar parameters. It does not name alternatives like mpar_set or dpar_set explicitly, but the MPar/DPar distinction is sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mvar_createA
Create a Model variable (MVar). Common uses: SIMULATOR, PARAMETER_PRECISION, WORKING_PRECISION.
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Initial value | |
| var_path | Yes | Full path, e.g. '/model_name/SIMULATOR' |
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, but it only says 'create' and lists common uses. It does not mention whether the tool errors on duplicate paths, whether the parent model must already exist, whether the optional value defaults, or what side effects occur beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the core purpose, and includes only useful examples of common MVar names. Every sentence contributes value without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a simple creation tool with complete parameter schema, the description is minimally adequate for invoking the tool. However, with no annotations and no output schema, it does not explain return values, error behavior, or preconditions, leaving some contextual 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 100%, and both parameters have clear descriptions in the schema itself. The tool description adds no additional parameter-level meaning, so the baseline score of 3 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 names a specific verb and resource: 'Create a Model variable (MVar).' This clearly distinguishes it from sibling creation tools like dvar_create, svar_create, and ivar_create. The common-use examples further disambiguate the intended 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?
The description implies usage by listing common MVar purposes such as SIMULATOR, PARAMETER_PRECISION, and WORKING_PRECISION. However, it does not explicitly state when to prefer this tool over alternatives or when not to use it, leaving the routing partially to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mvar_getC
Get a Model variable value.
| Name | Required | Description | Default |
|---|---|---|---|
| var_path | Yes | Full path, e.g. '/model_name/SIMULATOR' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only indicates a read operation ('Get') and says nothing about return format, error handling, or absence of side effects. This is minimal for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single six-word sentence with no filler or redundancy. It is appropriately short and front-loaded for a simple getter, with every word contributing to the stated 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?
With no output schema and no annotations, the description should clarify what kind of value is returned and how it relates to sibling getters. It does neither, so an agent may call it correctly from the schema but cannot confidently interpret the result or choose it over alternatives.
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 100%, and the var_path parameter is already documented with an example path. The tool description adds only the 'Model variable' context and does not meaningfully enrich the parameter meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('Model variable value'), so the core action is clear. It does not explicitly distinguish itself from sibling getters like object_get_val or object_get_valof, but 'Model variable' narrows the scope enough to be useful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use mvar_get versus alternatives such as object_get_val or var_get_table_size. The description provides no context about the intended scenario or exclusions, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mvar_setB
Set a Model variable value. Pass scalar values as strings and arrays as JSON array strings such as '["a","b","c"]'.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Value or JSON array string | |
| var_path | Yes | Full path |
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. 'Set' implies mutation, but the description doesn't state whether the variable must already exist, whether the operation overwrites or appends, what happens on an invalid var_path, or what is returned. The JSON array string note discloses input encoding behavior, which is helpful, but the mutation semantics remain opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences and 27 words with zero fluff. The operative statement 'Set a Model variable value' is front-loaded, and the format clarification follows naturally. Every sentence earns its place, though the example could have been omitted without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple 2-parameter setter with no output schema and no annotations, so the description gets partial credit for covering the action and input format. However, for a mutating tool it should state whether the target variable must pre-exist and what happens on failure. An agent can call it correctly but cannot predict the outcome of edge cases.
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 100%, so the baseline is 3, but the description adds genuinely useful format semantics the schema lacks: scalars must be passed as strings and arrays as JSON array strings, with a concrete example. An agent reading only the schema ('Value or JSON array string') wouldn't know the exact encoding rules that the description clarifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource pair: 'Set a Model variable value.' The 'Model variable' qualifier helps distinguish it from sibling setters like dvar_set, svar_set, and ivar_set, though it never explicitly names those alternatives. This is clear but stops short of explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It doesn't mention that mvar_create should be called first to create the variable, that mvar_get reads it back, or that object_set_val is the generic fallback. The naming convention implies usage, but the description itself provides no routing or exclusion logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_child_names_of_typeC
Get a list of child object names of a specific type.
| Name | Required | Description | Default |
|---|---|---|---|
| child_type | Yes | ||
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
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 only says the tool returns a list of names; it does not mention whether children are direct or recursive, how the optional object_type disambiguation works, what happens for invalid paths, or any ordering/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or redundancy. Every word contributes to the core meaning, and the primary action 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?
The tool is relatively simple, but with no annotations, no output schema, and sparse parameter descriptions, the one-line description leaves important gaps. It does not clarify the role of the optional object_type parameter, the exact form of the returned names, or how this tool relates to overlapping siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description does not compensate. It hints that 'child_type' is the filter for object type, but it never explains the meaning of 'object_path' or how the optional 'object_type' parameter interacts with 'child_type'. An agent would still lack key parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Get a list') and a clear resource ('child object names of a specific type'), so an agent can understand the basic purpose. However, it does not distinguish this from closely related siblings like object_get_child_objects or object_find_child_var, so it misses the differentiator needed for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus alternatives, nor any exclusions. The sibling list includes several similar object-listing tools, but the description never explains what makes this one the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_copyA
Copy an IC-CAP object without replacing an existing destination unless overwrite=true.
| Name | Required | Description | Default |
|---|---|---|---|
| dest_path | Yes | ||
| overwrite | No | Delete and replace an existing destination only when explicitly enabled | |
| object_type | No | Recommended for ambiguous source paths | |
| source_path | Yes | ||
| allow_without_checkpoint | No | Proceed only if an automatic destination-model save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It does disclose the key non-destructive behavior: an existing destination is not replaced unless overwrite=true. However, it omits other meaningful behaviors such as checkpoint handling, failure semantics, and what happens when the destination exists but overwrite is false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the core operation and the most important guardrail, overwrite behavior, immediately and efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters, no annotations, and no output schema, the description is incomplete. It leaves path format and semantics undocumented, does not explain object_type selection, and fails to mention the checkpoint behavior hinted at by allow_without_checkpoint. An agent would need additional information to use the tool reliably in edge cases.
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 little beyond the schema, and the two required parameters, source_path and dest_path, have no descriptions in either the schema or the tool description. The overwrite behavior is already documented in the schema's overwrite parameter, so the description is largely redundant here rather than additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Copy') and a specific resource ('an IC-CAP object'), and clarifies that it does not overwrite by default. This clearly distinguishes it from sibling tools like object_create, object_delete, and object_rename.
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 intended use case is implied: copy an object rather than create, delete, or rename it. However, the description does not explicitly state when to choose this tool over alternatives or when not to use it, leaving the guidance mostly inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_createA
Create a new IC-CAP object without replacing an existing object unless overwrite=true. Plot guard: when creating a Plot onto a name a Transform/Input/Output already uses, the Plot is auto-suffixed '_plot' ('_plot2', ... on collision) and the response reports name_adjusted/final_name, so no name conflict is ever created.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | Delete and replace an existing object only when explicitly enabled | |
| object_path | Yes | ||
| object_type | No | Recommended for ambiguous paths, especially Macro, Transform, and Plot | |
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: objects are not replaced by default, and Plot name collisions are auto-suffixed with the adjusted name reported in the response. It does not detail checkpoint/error behavior, but the core safety and collision semantics are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two dense sentences with the main behavior front-loaded and the edge-case guard placed second. Every sentence earns its place, and the 'no name conflict is ever created' clause is a useful assurance rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core create/overwrite behavior and the Plot collision edge case well, which is important given no annotations. Still, with no output schema, it does not state what a normal non-Plot create returns, and it leaves object_path format and parent requirements unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the schema already explains overwrite, object_type, and allow_without_checkpoint. The description adds useful Plot-specific meaning for object_type via the auto-suffix rule, but the required object_path parameter remains unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Create a new IC-CAP object' and adds the important non-replacement caveat. It does not explicitly distinguish itself from the many type-specific create siblings (model_create, setup_create, etc.), so it falls just short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The overwrite condition is explained ('unless overwrite=true'), and the Plot collision rule gives situational guidance. However, the description never says when to prefer this generic tool over type-specific create tools, leaving alternative selection mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_deleteA
Delete an IC-CAP object. Irreversible. Use object_type to disambiguate when Transform and Plot share the same name (e.g., object_type='Plot' to delete the Plot instead of the Transform).
| Name | Required | Description | Default |
|---|---|---|---|
| object_path | Yes | e.g. '/model/dut/setup/obj_name' | |
| object_type | No | Optional. Specify when multiple objects share the same name (e.g., Transform and Plot both named 'ft'). | |
| allow_without_checkpoint | No | Proceed only if the automatic pre-delete model save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It states clearly that deletion is 'Irreversible,' which is the most critical behavioral fact for a destructive operation. It also explains the object_type disambiguation behavior. It does not mention side effects like cascading deletion or return values, but the schema already documents the automatic pre-delete save via allow_without_checkpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core fact, deletion and irreversibility, is front-loaded, and the disambiguation guidance is a necessary addition that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and full parameter schema coverage, the description covers the essential aspects: what the tool does, that it is irreversible, and when object_type is needed. It could additionally mention post-conditions or return behavior, but for a destructive delete operation the current level is reasonably 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 100%, so the baseline is 3. The description adds value beyond the schema by giving a concrete disambiguation example: 'object_type='Plot' to delete the Plot instead of the Transform.' This clarifies the semantics of the object_type enum in a way the schema alone 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 uses a specific verb and resource: 'Delete an IC-CAP object.' It clearly states the operation. However, it does not explicitly contrast itself with sibling object_delete_children, so some differentiation is left to the tool name and 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 gives useful guidance for a specific situation: 'Use object_type to disambiguate when Transform and Plot share the same name.' This is actionable, but it does not say when to prefer this tool over alternatives like object_delete_children, nor does it state exclusions 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.
object_delete_childrenA
Delete all child objects of specified types.
| Name | Required | Description | Default |
|---|---|---|---|
| child_types | Yes | ||
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. | |
| allow_without_checkpoint | No | Proceed only if the automatic pre-delete model save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly identifies the operation as destructive, and the allow_without_checkpoint parameter description adds meaningful safety context about an automatic pre-delete model save and a warning to proceed with care. However, with no annotations provided, the description does not disclose permanence, recursion behavior, or what happens to dependent references.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, and the core behavior is front-loaded. Every word contributes to understanding what the tool does.
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?
This is a destructive tool with no annotations and no output schema, but the description does not explain return behavior, whether deletion is direct or recursive, whether types must exactly match, or how the optional object_type disambiguation affects the operation. An agent would need more information to invoke it with full confidence.
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 phrase 'child objects of specified types' helps map object_path to the parent and child_types to the types to delete, which is valuable because those two required parameters have no schema descriptions. Still, object_path is only implicitly defined, and the optional object_type and allow_without_checkpoint are left to the schema, so coverage remains partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Delete' and clearly names the resource as 'all child objects of specified types'. This distinguishes it from sibling tools like object_delete (single object) and object_get_child_objects (read-only retrieval). The intent is immediately 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 usage is implied: an agent would use this tool when it needs to delete all children of certain types under an object path. However, there is no explicit guidance about when to choose this over object_delete, when not to use it, or what conditions make it inappropriate. The context is inferable but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_existB
Check if an IC-CAP object exists at the specified path.
| Name | Required | Description | Default |
|---|---|---|---|
| object_path | Yes | Absolute IC-CAP object path | |
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It conveys the core behavior: testing existence at a path. However, it does not disclose return representation, behavior on invalid paths, whether ambiguous paths cause errors, or how object_type affects the check. For a simple predicate this is acceptable but not richly 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?
One short, front-loaded sentence with no filler. Every word contributes to defining the tool's 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?
Given the low complexity, full schema coverage, and no output schema, the description is mostly complete: it identifies a predicate operation and the key parameter. The only gap is the lack of explicit return-type or edge-case behavior, but the implied boolean result is sufficient 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?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no extra parameter semantics beyond restating the path concept. Baseline 3 is appropriate since the schema carries the weight.
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 a specific action ('Check if'), a resource ('IC-CAP object'), and a scoping detail ('at the specified path'). It is unambiguous and not a tautology. However, it does not explicitly differentiate itself from the various type-specific *_exists sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this generic existence check versus the type-specific existence tools like mpar_exists, dvar_exists, or tablevar_exists. It also does not state when the optional object_type parameter should be used, aside from what is already in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_find_child_varC
Find a variable in the child variable table of an object.
| Name | Required | Description | Default |
|---|---|---|---|
| var_name | Yes | Variable name without a path | |
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of explaining behavior. It does not disclose whether the search is recursive, what the return value looks like, how object_type affects results, or what happens when the variable is not found. 'Find a variable' implies a read operation but adds little beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words and states the core purpose upfront. It is concise and scannable, though it achieves this by being extremely thin on supporting detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, an enum, no output schema, and no annotations, this one-sentence description leaves important gaps. An agent cannot infer return behavior, path syntax, or when to prefer this tool over object_find_var. The description is minimally adequate but not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with object_path left undocumented, and the description does not compensate for this gap. It does not clarify what 'child variable table' means in relation to object_path, nor does it explain how var_name and object_type interact. The description adds minimal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Find') and a specific resource ('a variable in the child variable table of an object'), which is more specific than the tool name alone. However, it does not explicitly differentiate from the sibling object_find_var, leaving some ambiguity about the boundary between the two lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as object_find_var or object_get_child. The description only says what it does, not when it should be selected or when it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_find_varB
Find a variable by name with scope control: 'upward_scope' (search hierarchy) or 'obj_owned' (direct children only).
| Name | Required | Description | Default |
|---|---|---|---|
| var_name | Yes | ||
| lookup_type | No | upward_scope | |
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
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 disclosing behavior, and it only explains traversal scope. It does not state what the tool returns, what happens when the variable is not found, whether it is purely read-only, or how path resolution behaves, leaving important behavioral traits undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tightly-written sentence that front-loads the core purpose and then defines the key scope options. There is no filler, repetition, or unnecessary detail, so every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters, no annotations, and no output schema, the description is not complete enough for reliable invocation. It omits return format, not-found behavior, and alternative-tool differentiation, and it does not compensate for the missing output schema by describing what the agent should expect from a successful call.
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 description coverage is only 25%, so the description must add parameter meaning. It effectively explains lookup_type via 'upward_scope' and 'obj_owned', and 'variable by name' maps to var_name, but object_path is left implicit and object_type relies on the schema's own 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 specific action ('Find a variable by name') and resource, and the two scope modes make the central behavior concrete. It does not explicitly distinguish itself from the sibling object_find_child_var, but the scope-control wording narrows the purpose enough to avoid major confusion.
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 clear context for choosing between 'upward_scope' and 'obj_owned' by defining them as 'search hierarchy' and 'direct children only'. However, it provides no guidance on when to prefer this tool over alternatives like object_find_child_var, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_get_childB
Get a specific child object by name with optional type filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| child_name | Yes | ||
| child_type | No | Optional child-object type filter | |
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. 'Get' communicates a read-only operation and 'optional type filtering' adds a behavior not already visible in the tool name. However, it does not describe what is returned, what happens if the child is missing, or how object_path and type filtering interact, leaving clear gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every component ('specific', 'by name', 'optional type filtering') contributes meaning, making it appropriately concise and 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?
The tool has no annotations and no output schema, so the description must convey more about invocation expectations. It omits object_path semantics, return behavior, failure behavior, and any guidance for distinguishing this from sibling list/query tools, leaving an agent to infer important invocation details.
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 maps to child_name via 'by name' and loosely to child_type/object_type via 'optional type filtering', but it never explains the required object_path parameter. Since schema description coverage is only 50%, the description partially compensates but does not fully clarify the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('specific child object'), and adds 'by name' with 'optional type filtering'. It does not explicitly contrast with siblings such as object_get_child_objects, but the singular 'specific child object' gives enough differentiation to be more than a restatement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'specific child object by name' implies the intended use case: retrieving one known child rather than listing children. However, there is no explicit when-to-use guidance, no exclusions, and no pointer to alternatives like object_get_child_objects, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_get_child_objectsA
Get all child objects of a specific type. WARNING: May hang when used on Transform paths; use setup_get_transforms instead.
| Name | Required | Description | Default |
|---|---|---|---|
| child_type | Yes | ||
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses a meaningful risk (hanging on Transform paths) and recommends a safer alternative. However, it does not describe return shape, ordering, error behavior, or other execution characteristics, so transparency is only partial.
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 with no filler: the purpose is stated first, and the critical warning with an alternative is front-loaded. Every word contributes to safe and correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The warning about Transform paths is valuable and provides a specific routing instruction. But with no annotations and no output schema, the tool description remains thin: it lacks return-format details and does not mention the object_type disambiguation parameter. Given the large sibling set, more contextual guidance would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate for parameter meaning. It clarifies child_type via 'of a specific type' and object_path is reasonably intuitive, but it never mentions the optional object_type parameter, which exists to disambiguate paths. This is a notable gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear operation ('Get all child objects') and the discriminator ('of a specific type'), making the primary purpose understandable. It does not explicitly contrast with siblings like object_get_child or object_child_names_of_type, but the description is specific enough to avoid basic 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?
Provides explicit when-not guidance: 'May hang when used on Transform paths; use setup_get_transforms instead.' This names an alternative and an exclusion condition. It does not cover all possible sibling choices, so it is not a 5, but the key risky case is addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_get_fullnameC
Get the full path name of an IC-CAP object.
| Name | Required | Description | Default |
|---|---|---|---|
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It only states that the tool gets a full path name, without mentioning return format, error behavior, path conventions, or any other runtime 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 a single, focused sentence with no wasted words. It is front-loaded and readable, though it stays quite minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description is the only source of behavioral and return-value context. It does not clarify the output format, how fullname differs from path, or how object_type influences resolution, leaving the agent to infer too much.
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 only 50%: object_path has no description while object_type has an enum description. The tool description does not explain what object_path should contain or how the returned full path relates to the supplied path, so it fails to compensate for the required parameter's lack of schema documentation.
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 a specific verb ('Get') and resource ('full path name of an IC-CAP object'), making the core purpose understandable. However, it does not explicitly differentiate itself from the sibling object_get_path tool, which likely exposes a similar path-returning behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as object_get_path or object_exist. The description gives no context for choosing this tool, and the sibling list contains several similar object-introspection tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_get_pathA
Get the parent path of an IC-CAP object (excluding object name).
| Name | Required | Description | Default |
|---|---|---|---|
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only discloses the core behavior (returns parent path, excluding object name). It does not state side effects (likely none as a getter) or edge cases such as what happens for root objects or invalid paths. This is adequate for a simple read tool 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?
One sentence with no filler; the key scoping fact ('excluding object name') is front-loaded in the parenthetical. It is as concise as possible while still conveying the core semantic.
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 getter, the description gives enough to attempt a call, but there is no mention of the return format, error behavior, or when to set object_type. Since there is no output schema and no annotations, slightly more context would make it complete. The schema partially compensates via object_type's description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-level detail. object_path has no schema description and the description does not explain what value it expects (e.g., full path), while object_type's disambiguation role is only in the schema enum/description. With 50% schema coverage, the description should compensate for the undocumented object_path but 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?
States a specific verb ('Get'), resource (parent path of an IC-CAP object), and an explicit exclusion (excluding object name). This clearly distinguishes it from sibling tools like object_get_fullname and other object_* getters. There is no doubt about the tool's function.
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 a use case (obtain the parent path rather than the full path), but it does not explicitly compare to alternatives like object_get_fullname or state when object_type should be supplied. There are no when-not scenarios or alternative routing, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_get_precisionC
Get parameter precision and working precision of an IC-CAP object.
| Name | Required | Description | Default |
|---|---|---|---|
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. 'Get' implies a read-only operation and no side effects, which is useful, but the description does not disclose what the returned precision values look like, how errors are handled, or what 'working precision' means in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the core purpose without unnecessary words. It is appropriately concise, though it could afford a bit more detail without becoming bloated.
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 lack of annotations and output schema, the description is incomplete for a reliable agent call. It does not explain the return format, path syntax, or when the optional object_type should be supplied. An agent understands the high-level intent but lacks enough detail to invoke the tool with confidence.
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 covers object_type with an enum and description, but object_path, the only required parameter, has no description. The tool description does not compensate by explaining path syntax or when object_type is necessary. With only 50% schema coverage and no additional parameter guidance, this is a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('parameter precision and working precision of an IC-CAP object'). It is not a tautology and differentiates itself from generic getters like object_get_val or object_get_path, though it does not explicitly name any sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus sibling tools such as object_get_val or object_get_path. There are no usage conditions, exclusions, or alternative recommendations, so an agent must infer when this getter is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_get_valA
Get the value of an IC-CAP object. For parameters: supports minvalmax. For datasets: supports msb.
| Name | Required | Description | Default |
|---|---|---|---|
| msb | No | Data state for Dataset, Input, Output, or Transform | B |
| minvalmax | No | Value or bound selector for Par, MPar, or DPar | Value |
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does reveal an adjustable behavior: the minvalmax selector applies to parameters and msb applies to datasets, which clarifies how the tool adapts to object type. However, it does not state return value semantics, error behavior for unsupported object types, or explicitly confirm non-destructive behavior beyond the verb 'Get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the main purpose and then provide targeted specifics without any filler. Every phrase adds value, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple getter but leaves gaps: no guidance on when object_type is needed for ambiguous paths, no return value description (no output schema exists), and no differentiation from sibling getter tools. These gaps are noticeable but not fatal, since the basic invocation is clear.
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 75%, so the baseline is near-sufficient. The description adds cross-parameter meaning by linking minvalmax to parameters and msb to datasets, which the individual parameter descriptions do not convey. It does not explain object_path, but the schema also leaves that blank.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get the value of an IC-CAP object.' It adds concrete detail about supported selections for parameters (minvalmax) and datasets (msb), so the purpose is more specific than a tautology. It does not explicitly distinguish itself from sibling getters like object_get_valof, but the core behavior is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to retrieve an object value) and notes two relevant cases: parameters and datasets. It gives no exclusionary guidance or mention of alternatives, such as typed getters or object_get_valof, leaving the agent to infer selection from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_get_valofB
Get visible variable or parameter value from an object, searching the hierarchy.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable or parameter name | |
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does reveal a key behavior—that the lookup searches the hierarchy and only returns 'visible' values—but it does not mention read-only safety, what happens when the variable is not found, or how visibility is determined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the core behavior. It wastes no words, though it is perhaps too terse to fully compensate for missing usage and parameter guidance.
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 three parameters, no output schema, and a dense field of sibling getters, the description is not complete enough for an agent to confidently invoke the tool. It does not clarify object_path semantics, when to set object_type, or how this differs from object_get_val and the typed variable getters.
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 67%, with 'name' and 'object_type' documented but 'object_path' left undocumented. The description adds only general context ('from an object, searching the hierarchy') rather than explaining object_path or the role of object_type in disambiguation, leaving a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Get visible variable or parameter value') and a resource ('from an object'), with a distinctive qualifier ('searching the hierarchy'). It is clear but could more explicitly contrast with the sibling object_get_val, so it is not a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the many related getters such as object_get_val, svar_get, dvar_get, or mvar_get. The context is implied at best and no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_renameA
Rename an IC-CAP object. Supported types: Model, Dut, Setup, Input, Output, Transform, Plot, Macro. NOT supported for: Par, MPar, DPar, TableVar, Main, InstrVar. Use object_type to disambiguate naming conflicts.
| Name | Required | Description | Default |
|---|---|---|---|
| new_name | Yes | New name for the object (not a full path, just the name) | |
| object_path | Yes | e.g. '/model/dut/setup/obj_name' | |
| object_type | No | Optional. Specify when multiple objects share the same name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose supported/unsupported types and the object_type disambiguation rule, but it says nothing about the effects of renaming: whether references are updated, name validation rules, conflict behavior when object_type is omitted, or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action. Each sentence adds distinct information: the operation, the supported types, the unsupported types, and the disambiguation tip. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with full schema coverage, the description is reasonably adequate for straightforward rename calls. However, it lacks behavioral details such as what happens when object_type is omitted and a naming conflict exists, side effects on object references, and any return/error behavior. An agent may be surprised by edge cases.
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 100% and each parameter already has a clear description. The tool description adds little beyond the schema; 'Use object_type to disambiguate naming conflicts' largely restates the schema's note for object_type. Baseline 3 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 states a specific verb and resource: 'Rename an IC-CAP object.' It further enumerates the supported types and explicitly lists unsupported types, making the tool's scope unambiguous and distinguishing it from other object_* operations.
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 supported and not-supported type lists, giving agents a clear when-to-use / when-not-to-use boundary. It also instructs to use object_type to disambiguate naming conflicts. However, it does not name alternative sibling tools or explain what to use for unsupported types, so it falls just short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_set_valB
Set the value of an IC-CAP object. For parameters: supports minvalmax. For datasets: supports msb and force.
| Name | Required | Description | Default |
|---|---|---|---|
| msb | No | B | |
| force | No | ||
| value | Yes | String value or JSON-encoded data | |
| minvalmax | No | Value | |
| object_path | Yes | ||
| object_type | No | Specify the exact IC-CAP type when a path can name more than one object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It does reveal one genuinely useful trait: behavior is object-type dependent, with minvalmax scoped to parameters and msb/force scoped to datasets. But it omits critical mutation facts such as whether the target object must pre-exist, what happens on invalid paths or values, the meaning of force, and whether the operation can overwrite read-only objects.
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 with the core action front-loaded and zero waste. Every clause earns its place, and the type-scoping information is delivered economically without repeating anything already in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, this description is thin. It lacks path format guidance, failure behavior, return value expectations, and routing logic among the dozens of setter siblings. The type-behavior note shows the author understood the key scoping issue but left an agent guessing about force semantics, object existence requirements, and which sibling tools this supersedes.
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 low (33%), so the description must compensate, and it partially does by mapping minvalmax to parameters and msb/force to datasets. This helps an agent understand when those optional parameters are relevant. However, it stops short of explaining the semantics of their values (what 'Opt Min' means, what M/S/B encodes, what force actually does), leaving meaning gaps for four undocumented 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 opens with a specific verb+resource ('Set the value of an IC-CAP object') that clearly identifies the core action. The second sentence adds type-scoped detail (minvalmax for parameters, msb/force for datasets), giving the tool a distinct identity among the sibling tools. However, it never contrasts itself with the many type-specific setters (mpar_set, dvar_set, svar_set, etc.), so a generic agent can't tell when this universal setter is preferred over them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance relative to the roughly 20 sibling setter tools, and no exclusion criteria or alternatives are named. The description states broad applicability ('an IC-CAP object') but doesn't explain when to choose this over type-specific setters or object_create. The only useful routing hint ('Specify the exact IC-CAP type when a path can name more than one object') lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimizer_setupA
Configure an Optimize Transform in a single call. Replaces multiple transform_set_optim_field calls.
Sets Algorithm, Error type, Inputs table (Target/Simulated/X range), Parameters table (Name/Min/Max), and Options all at once. The Transform must already exist with Function='Optimize' (use transform_create with transform_type='Optimize' first).
CRITICAL: ALL optimizer parameters MUST have both min AND max bounds specified. Unbounded parameters cause optimization failures (e.g. IS/N compensation). The server serializes all IC-CAP API calls, so parallel calls are automatically queued. If any field fails to set, the call stops and reports which field failed.
Options are validated against the selected algorithm. Common options per algorithm:
Random (R): RMS error, Rand Iters (NOT Max Iters!), Rand Std Dev, Rand Reward, Rand Penalty, Rand Seed, Comb Filter
LM (L): RMS error, Max error, Max Evals, Param Tol, Function Tol, Comb Filter, Param Delta
Hybrid (H): RMS error, Max error, Rand Iters, Comb Filter, Param Tol, Function Tol, Param Delta
Minimax (N): RMS error, Max error, Max Evals, Param Tol, Function Tol, Max Iters, Comb Filter
All algorithms also support: X/Y Lower/Upper Bound
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | Error type: 'Relative' or 'Absolute' | Relative |
| inputs | No | Inputs table rows | |
| options | No | Optimizer options (validated against algorithm) | |
| algorithm | No | Algorithm name or PEL code (L/R/H/B/G/N/Q/I) | Levenberg-Marquardt |
| parameters | No | Parameters table rows | |
| transform_path | Yes | Optimize Transform path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it warns that every optimizer parameter must have min and max bounds, states that options are validated against the algorithm, explains server-side serialization/queueing, and describes the failure mode (call stops and reports which field failed). This goes well beyond a generic 'set fields' statement.
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 long but information-dense; the core purpose, prerequisite, and critical warning come first, with algorithm-specific option tables at the end. Every section earns its place, and the bullet-style structure makes the compatibility rules scannable.
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 complex tool with no annotations and no output schema, the description covers the essential context: prerequisite creation, critical bound constraints, failure behavior, queueing, and option compatibility. The only minor omission is detailed guidance for the remaining algorithm codes (B/G/Q/I) beyond the four common ones, but this does not block correct invocation for the documented cases.
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 already 100%, so the baseline is 3, but the description adds real value: it turns the flat options schema into a per-algorithm compatibility map (e.g., Random uses Rand Iters NOT Max Iters) and stresses the min/max bound requirement for Parameters. This materially improves an agent's ability to populate the parameters/options objects correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Configure') and resource ('an Optimize Transform') and explicitly frames it as replacing multiple transform_set_optim_field calls. The description enumerates the exact fields set (Algorithm, Error type, Inputs, Parameters, Options), making the tool's scope unmistakable and distinct from sibling transform functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states the prerequisite: transform must already exist with Function='Optimize', and directs the agent to transform_create with transform_type='Optimize' first. It also identifies transform_set_optim_field as the alternative this tool replaces, and gives algorithm-specific option guidance so the agent knows what to send.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_createB
Create and configure an Output object.
Mode (modedict) options:
V: Voltage measurement (+Node, -Node, Unit)
I: Current measurement (ToNode, FromNode, Unit)
C: Capacitance measurement (HighNode, LowNode, Unit)
G: Conductance measurement
S: S-parameters (Port1, Port2, ACGround, Unit)
H: H-parameters
Z: Z-parameters
Y: Y-parameters
M: Multi-port S-parameters (PortType, NumPorts, ACGround, Unit)
Type: M=measured, S=simulated, B=both
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | I | |
| unit | No | ||
| port1 | No | ||
| port2 | No | ||
| to_node | No | ||
| low_node | No | ||
| ac_ground | No | ||
| from_node | No | ||
| high_node | No | ||
| num_ports | No | ||
| overwrite | No | Delete and replace an existing Output only when explicitly enabled | |
| plus_node | No | ||
| port_type | No | ||
| minus_node | No | ||
| output_path | Yes | ||
| output_type | No | B | |
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It describes creation and configuration modes but does not disclose side effects, persistence behavior, return values, or overwrite/checkpoint interactions. The schema's overwrite descriptions help, but the tool description itself is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and uses a scannable bullet list for modes. It is reasonably sized given the number of configuration options, though the incomplete mode coverage makes it feel slightly unbalanced.
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 17-parameter creation tool with no output schema and no annotations, the description omits critical context such as output_path semantics, defaults, and several valid mode enum values. The mode/type summary helps but is not sufficient for an agent to confidently construct all valid calls.
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 significantly compensates for the low 12% schema coverage by mapping mode letters to relevant parameters, e.g., V uses +/-Node, I uses ToNode/FromNode, and S uses Port1/Port2/ACGround. However, it does not define output_path, unit, port_type, or the undocumented R/U/N/K/A modes, so the compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create and configure an Output object.' The mode and type lists give additional configuration detail and distinguish it from sibling get/set/query tools on outputs.
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 output_create versus related creation tools such as input_create or object_create. The intended use is implied by the object type, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_get_dataC
Get Output dataset as dictionary.
| Name | Required | Description | Default |
|---|---|---|---|
| msb | No | B | |
| imag | No | ||
| output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals the return type as a dictionary but says nothing about whether the output dataset must already exist, what keys or structure the dictionary will have, how the msb and imag parameters affect behavior, or whether the operation has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and the core operation is front-loaded. It earns conciseness points, though the brevity comes at the expense of essential supporting detail.
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?
There is no output schema and no annotations, and the sibling set includes close alternatives like output_get_df and output_get_field, so the description needs to explain more. It does not cover the dictionary structure, parameter meanings, or usage context, making it barely adequate for simple default calls but insufficient for correct parameter selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it explains none of the three parameters. output_path is somewhat inferable from the word 'dataset,' while msb (M/S/B) and imag remain entirely unexplained, leaving the agent unable to decide how to set them correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get Output dataset as dictionary.' It clearly identifies the tool as retrieving an output dataset, and the 'as dictionary' phrasing differentiates it from likely siblings like output_get_df and output_get_field. However, it doesn't explicitly name sibling tools to sharpen the differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as output_get_df, output_get_field, or output_get_modedict. The description only implies it is for obtaining a dictionary representation, with no exclusions or selection criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_get_dfC
Get Output dataset as DataFrame with optional matrix indexing.
| Name | Required | Description | Default |
|---|---|---|---|
| m | No | ||
| n | No | ||
| msb | No | B | |
| imag | No | ||
| output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the result is a DataFrame and that matrix indexing is optional, but it does not explain what msb and imag do, how m/n are interpreted, whether any mutation occurs, or what errors might arise. This is too thin for a tool with no structured behavioral hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no redundant phrasing. It front-loads the core operation and result type, which is good for quick selection. However, the compressed phrase 'optional matrix indexing' hides substantial parameter complexity, so the structure is efficient but slightly under-specified.
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 five parameters, an enum, a required output_path, no output schema, and no annotations, this one-sentence description is not enough. An agent cannot correctly determine what m, n, msb, and imag mean or how to call the tool reliably without additional domain knowledge. The description names the deliverable but not the operational specifics needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for five undocumented parameters. It only gestures at 'optional matrix indexing', which likely maps to m, n, msb, and imag, but does not define any of them. The required output_path parameter is never mentioned, leaving critical semantic gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource-result relationship: 'Get Output dataset as DataFrame'. The phrase 'optional matrix indexing' adds a distinguishing feature and separates it from simpler sibling tools like output_get_data. However, it does not define what an 'Output dataset' is or how matrix indexing works, so it falls just short of full clarity.
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: an agent should call this when it wants an Output dataset as a DataFrame. It does not explicitly contrast with siblings such as input_get_df, transform_get_df, or output_get_data, nor does it state when not to use this tool. The usage context is inferable but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_get_fieldA
Get a specific field value from an Output (e.g. 'Mode', 'Unit'). Only works on Output objects, NOT Plot objects.
| Name | Required | Description | Default |
|---|---|---|---|
| field_name | Yes | ||
| output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It conveys the key limitation that only Output objects are supported and that it reads a single field, but it does not describe error behavior on invalid paths or non-Output objects, nor the return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys the operation, the target resource, examples, and an important exclusion. Every word earns its place and there is no redundant boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two parameters, and the description covers the core action and object restriction. However, the meaning of output_path and the expected return value are left implicit, which is a meaningful gap given the lack of schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives examples of field_name values ('Mode', 'Unit'), but does not explain output_path at all, leaving a required parameter semantically undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('field value from an Output') with concrete examples ('Mode', 'Unit'). The explicit warning that it does not work on Plot objects helps distinguish it from generic object getters and sibling lookup tools.
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 clearly scopes usage to Output objects and excludes Plot objects, which is a useful when/when-not signal. It does not explicitly name alternative tools like output_get_fields, but the restriction is enough for an agent to choose this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_get_fieldsA
Get all configurable field names for an Output. Only works on Output objects, NOT Plot objects.
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the object-type restriction, which is useful, and 'Get' implies a read-only operation. However, it does not describe what happens with an invalid path, the return format, or whether missing/wrong-type objects produce errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The action is front-loaded and the critical exclusions are stated immediately. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter, the core purpose and scope are adequately explained, but the missing parameter semantics and lack of return/error details leave meaningful gaps. Without an output schema or annotations, the description should be more explicit about how to identify the Output object and what 'field names' means operationally.
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, so the description must compensate for the single output_path parameter, but it never explains the path format, expected object naming, or how the path relates to sibling path tools. The parameter name is self-explanatory enough to avoid a score of 1, but the description adds no real semantic 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 states a specific action and resource: 'Get all configurable field names for an Output.' It also distinguishes the target from Plot objects, and the plural 'fields' differentiates it from the singular output_get_field sibling. This is clear and 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 clearly scopes usage to Output objects and explicitly excludes Plot objects. It does not name an alternative tool like input_get_fields or output_get_field, but the object-type exclusion gives the agent enough context to avoid the most likely misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_get_lengthB
Get the number of data points in the Output dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Get', implying a read operation, but does not disclose return format, error behavior, or how an invalid output_path is handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. Every word contributes meaning, and it is appropriately sized for the tool's apparent simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% schema parameter coverage, the description is too thin. It omits essential context about output_path and does not help an agent distinguish which object or dataset path is valid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain what output_path means beyond the schema's bare string type. It does not clarify whether this is an object path, a file path, or how it identifies the Output dataset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('the Output dataset') and states the exact result ('number of data points'). This clearly distinguishes it from sibling tools like output_get_data, output_get_df, input_get_length, and setup_get_length.
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 clear context: use this tool when you need the number of data points in an Output dataset. It does not explicitly discuss alternatives or when-not-to-use, but the resource scoping is enough to route an agent correctly in most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_get_modedictC
Get the mode dictionary for an Output.
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get' implies a read-only operation, but the description does not explicitly confirm side-effect-free behavior, return format, error conditions, or any output-specific requirements. This is minimal and leaves important behavioral traits undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler, repetition, or unnecessary detail. It is front-loaded with the action and the target resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and a jargon-heavy term like 'mode dictionary', the description is too sparse. It does not explain what the mode dictionary contains, how the output_path should be used, or what the agent should expect in return. A one-parameter getter could be adequately documented with a bit more context, but this falls short.
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 and only names the parameter `output_path` with a generic string type. The description does not explain what the path should point to, how it relates to an Output object, or what format it should take. The parameter name and the phrase 'for an Output' give only a minimal hint, but the description fails to compensate for the lack of schema-level 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 states a specific verb and resource: 'Get the mode dictionary for an Output.' It also distinguishes itself from the sibling `input_get_modedict` by explicitly targeting Output rather than Input. However, the term 'mode dictionary' is unexplained jargon, so the exact nature of the returned data is unclear without further 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 gives no guidance on when to use this tool versus alternatives such as `output_get_field`, `output_get_data`, or `output_get_df`. It does not state what a mode dictionary is used for, nor does it mention any exclusions or conditions that would make this tool the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_set_fieldC
Set a specific field value for an Output.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| field_name | Yes | ||
| output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the mutation ('Set') but does not disclose whether the field must already exist, whether the value overwrites, what happens on invalid paths, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant phrasing. Every word contributes to stating the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is too thin to be complete. An agent would need additional knowledge about output paths, allowed field names, and side effects to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain output_path format, valid field_name values, or value constraints. It only loosely maps the wording to output_path, field_name, and value, which is minimal compensation for the lack of schema documentation.
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 uses a specific verb ('Set') and resource ('Output'), and its compound name distinguishes it from getters like output_get_field and sibling setters like input_set_field. However, it does not specify what fields are valid or what 'specific field value' means, so some ambiguity remains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as input_set_field, output_get_field, or other setter tools. The intended use is only implied by the phrase 'for an Output,' which is not enough to route an agent confidently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_capture_windowA
Capture an IC-CAP Plot window by name and save it to a local file for visual inspection.
| Name | Required | Description | Default |
|---|---|---|---|
| save_dir | No | Directory for the captured image | workspace |
| plot_name | Yes | Plot name in window title, e.g. 'id_vg' | |
| wait_seconds | No | Seconds to wait for window to be ready | |
| filename_prefix | No | Captured-image filename prefix | plot_capture |
| timeout_seconds | No | Timeout in seconds | |
| include_all_titles_on_miss | No | Return all window titles if name not matched |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It states the core action and side effect (save to local file), giving a basic read-only capture impression. However, it does not disclose window-title matching behavior, failure/fallback behavior via include_all_titles_on_miss, or whether the operation alters IC-CAP 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?
One sentence conveys the tool's action, target, and output purpose without filler. The most important information (capture by name, save locally) 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?
For a straightforward capture utility with well-covered parameters and no output schema, the description is sufficient for an agent to select and invoke it. It omits details such as return value or error behavior, but those are less critical for a save-to-file tool and are partly represented by parameters like include_all_titles_on_miss.
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 100%, so the schema already explains plot_name, save_dir, wait_seconds, filename_prefix, timeout_seconds, and include_all_titles_on_miss. The description adds only the general 'by name' and 'local file' framing, which does not materially extend the parameter-level documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Capture'), a precise resource ('IC-CAP Plot window'), and a concrete outcome ('save it to a local file for visual inspection'). This clearly distinguishes it from sibling tools like plot_setup or plot_display, whose purpose is managing or showing plots rather than saving an image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for visual inspection' implies when the tool should be used, but the description gives no explicit when-to-use/when-not-to-use guidance or alternatives. An agent must infer from the tool name and sibling list rather than being told to prefer this over plot_display or other visualization tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_displayA
Display a Plot in the IC-CAP GUI. Use run_async=true for a broker-managed job; direct gateway execution remains on the UI thread.
| Name | Required | Description | Default |
|---|---|---|---|
| plot_path | Yes | Plot object path, e.g. '/model/dut/setup/id_vg' | |
| run_async | No | Submit as a managed broker job | |
| timeout_seconds | No | Timeout when run_async=false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses an important threading behavior: direct gateway execution remains on the UI thread, implying potential blocking. However, it does not mention side effects, prerequisites like an active GUI session, error handling for invalid plot_path, or whether the call returns anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core purpose is stated first, followed by the most important execution-mode nuance. Every phrase earns its place and the structure supports quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple three-parameter tool with no output schema, the description is largely complete: it states what the tool does, the key execution-mode decision, and the schema fully documents the parameters. It could be improved by briefly contrasting with plot_setup or noting the need for a running IC-CAP GUI, but these are gaps rather than critical omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema by explaining the consequence of run_async=false: direct gateway execution remains on the UI thread. This helps an agent reason about blocking behavior and job management.
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 a specific action and resource: 'Display a Plot in the IC-CAP GUI.' This distinguishes it from related sibling tools like plot_setup or plot_capture_window by its explicit GUI display behavior, though it does not name any sibling or contrast itself with them 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?
The description gives useful execution-mode guidance: use run_async=true for broker-managed jobs and notes that direct gateway execution stays on the UI thread. However, it does not explain when to choose this tool over plot_setup or other plot-related siblings, and it lacks any exclusion criteria or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_get_fieldsA
Return a Plot's complete field configuration in one call, without repeated tablevar_get round-trips or missed fields. Field names are enumerated from the live object, so the set always matches the Report Type — XY GRAPH: Report Type, Header, Footer, X Data, Curve Data, # of Traces, X/Y/Y2 Axis Type, Y2 Data, Y Data 0..7; SMITH PLOT: Sweep Data + Smith Data 0..7; POLAR PLOT: Sweep Data + Polar Data 0..7; RI GRAPH: Sweep Data + RI Data 0..7; SCATTER PLOT: single X Data + Y Data + axis types; HISTOGRAM / CDF PLOT: Data-set; MULTI PLOT: # of Plots, # of GUIs, Orientation, Plots Per Row, Plot 0..N. When any non-Plot object (Transform, Input, or Output — e.g. an output current named 'id' with a plot also named 'id') shares the Plot's name, the read runs inside an automatic rename-aside transaction (annotated conflict=true, resolved_as='Plot', via='rename_txn') and the original name is restored afterwards. In/Out Graphically are GUI runtime state, not table fields, and are not accessible via the API.
| Name | Required | Description | Default |
|---|---|---|---|
| plot_path | Yes | Plot path, e.g. '/model/dut/setup/gds1' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that field names are enumerated from the live object, that a rename-aside transaction occurs on name conflicts with non-Plot objects, and that the original name is restored afterwards. This is far more transparent than a generic 'get fields' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and every clause earns its place; the front-loaded one-call benefit and the explicit field lists are highly useful. However, the long semicolon-separated report-type enumeration could be more scannable with structural formatting, so it loses one point.
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 no output schema, the description compensates by listing exact field names for every report type, explaining conflict resolution behavior, and noting GUI-only fields that are not accessible. An agent has enough information to predict both the call and the returned field 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?
The schema already documents plot_path with an example and has 100% coverage. The description adds context about the Plot object's behavior but does not add new semantic information about the parameter itself, so the baseline score of 3 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 states a specific verb ('Return') and resource ('a Plot's complete field configuration'), and immediately differentiates itself from tablevar_get by offering one-call enumeration without round-trips or missed fields. It also enumerates exact field sets per report type, so an agent knows precisely what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly positions the tool as an alternative to repeated tablevar_get calls)Skip and clarifies that In/Out Graphically are GUI runtime state not accessible via the API. This gives clear when-to-use and when-not-to-use guidance relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_setupA
Create and fully configure a Plot in one call, never creating a name conflict. Supports all IC-CAP report types: XY GRAPH, SMITH PLOT, POLAR PLOT, RI GRAPH, SCATTER PLOT, HISTOGRAM, CDF PLOT, MULTI PLOT. Field mapping is live-verified per type: XY GRAPH traces go to 'Y Data 0..7' + '# of Traces'; SMITH/POLAR/RI use 'Sweep Data' + 'Smith/Polar/RI Data 0..7'; SCATTER PLOT takes a single 'Y Data' (only y_data[0] is used); HISTOGRAM/CDF PLOT take a single 'Data-set' (pass data_set, or y_data[0]); MULTI PLOT takes sub-plot names in y_data -> 'Plot 0..N' + '# of Plots' (set 'Orientation' afterwards via tablevar_set). Conflict guard: when a Transform/Input/Output already uses the requested name, the Plot is auto-suffixed '_plot' ('_plot2', ... on collision) and the response reports name_adjusted/final_name. Reconfiguring an existing conflicted Plot (overwrite=true) writes fields through a rename-aside transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| header | No | Optional plot header text | |
| x_data | No | X-axis or sweep data source name. Maps to 'X Data' (XY/SCATTER) or 'Sweep Data' (SMITH/POLAR/RI) | |
| y_data | No | Trace data source names. Maps to 'Y Data 0..N' (XY), 'Smith/Polar/RI Data 0..N', single 'Y Data' (SCATTER, only first item used), or 'Data-set' (HISTOGRAM/CDF, first item used when data_set is omitted) | |
| data_set | No | Data-set source for HISTOGRAM / CDF PLOT. Optional; falls back to y_data[0]. | |
| overwrite | No | Delete and replace an existing Plot only when explicitly enabled | |
| plot_path | Yes | Plot path, e.g. '/model/dut/setup/my_plot' | |
| curve_data | No | Curve data source for parameterized plots (SMITH/POLAR/RI/XY). Optional. | |
| object_type | No | Reserved; plot_setup always creates a Plot. Omit or pass 'Plot'. | |
| report_type | No | Report type: XY GRAPH (default), SMITH PLOT, POLAR PLOT, RI GRAPH, SCATTER PLOT, HISTOGRAM, CDF PLOT | XY GRAPH |
| x_axis_type | No | X axis: LINEAR (default), LOG10, dB. Only used by XY GRAPH and SCATTER PLOT. | LINEAR |
| y_axis_type | No | Y axis: LINEAR (default), LOG10, dB. Only used by XY GRAPH and SCATTER PLOT. | LINEAR |
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility, and it excels: it discloses the conflict-avoidance auto-suffixing, the overwrite=true rename-aside transaction, and the per-type live-verified field mapping. It also implicitly communicates that the tool can delete existing plots when overwrite is enabled, via the parameter description, but the main description adds significant behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized, front-loading the core purpose before diving into type-specific mappings. It avoids redundancy and every sentence contributes to the agent's understanding. While it is long, the complexity of the tool justifies the detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 12 parameters and no output schema, the description covers all major facets: supported report types, field mappings, conflict resolution, overwrite semantics, and response details (name_adjusted/final_name). It leaves no critical ambiguity for an agent deciding whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for all 12 parameters, so the baseline is 3. The description adds substantial value by explaining how parameters like y_data map differently per report type and how data_set falls back to y_data[0], which is not fully captured in the schema. This enriches the semantics beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb phrase 'Create and fully configure a Plot' and immediately adds the unique guarantee 'never creating a name conflict', which clearly distinguishes this tool from siblings like plot_get_fields or plot_display. It enumerates all supported report types, making its scope 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 clearly states what the tool does and its scope (all report types, live-verified field mapping), but it does not explicitly name alternative tools or conditions under which to choose a different tool. However, its role as the one-call setup tool is implied, and the conflict-guard behavior suggests when it should be preferred over object_create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_show_absolute_errorC
Show absolute error (MAX/RMS) on Plot window. Equivalent to ShowAbsoluteError in IC-CAP GUI.
| Name | Required | Description | Default |
|---|---|---|---|
| plot_path | Yes | Plot object path | |
| plot_number | No | Optional: Multiplot sub-plot number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior itself. It only states that the tool shows the error on the Plot window and does not mention whether this modifies the plot state, requires an existing plot, toggles a display setting, or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: the first sentence states the operation and the second adds a helpful GUI equivalence. No filler is present, though it sacrifices behavioral detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a display-mutating tool with no annotations and no output schema, the description leaves out prerequisites (e.g., plot must exist/window must be open) and any indication of return value or persistent effect. It is minimally usable 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 description coverage is 100%, so plot_path and plot_number are already documented. The description adds the metric context (MAX/RMS) but does not elaborate on how plot_path or plot_number should be formatted, so it stays at the 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 names a specific verb ('Show') and object ('absolute error (MAX/RMS) on Plot window'), so an agent can understand the intended operation. It does not explicitly contrast with the sibling plot_show_relative_error, but the metric in the name and description makes the distinction reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of plot_show_relative_error, plot_setup, or plot_display. The phrase 'Equivalent to ShowAbsoluteError in IC-CAP GUI' gives a domain reference but no decision rule for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_show_relative_errorB
Show relative error (MAX/RMS) on Plot window. Equivalent to ShowRelativeError in IC-CAP GUI.
| Name | Required | Description | Default |
|---|---|---|---|
| plot_path | Yes | Plot object path | |
| plot_number | No | Optional: Multiplot sub-plot number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are not provided, so the description carries the full burden. It only says the tool 'show relative error' and gives no information about side effects, whether it requires an active plot, whether it modifies the plot window state, or any error behavior. This leaves an agent without safety or side-effect awareness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact: the core action is front-loaded in the first clause, and the parenthetical 'MAX/RMS' adds precise metric detail. The second sentence contributes valuable domain equivalence without redundancy. 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?
Despite being a simple tool, the description leaves gaps: it does not explain what happens upon invocation, whether the operation is read-only, what plot_path refers to beyond the schema, or whether any preconditions must be met. With no annotations and no output schema, an agent has insufficient context to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for both parameters (plot_path and plot_number) with 100% coverage, so the schema already handles parameter semantics. The description adds no meaning beyond the schema, so the baseline of 3 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 states a specific verb ('Show'), a specific resource ('Plot window'), and a precise quantity ('relative error (MAX/RMS)'). It also grounds the tool in domain context by referencing 'ShowRelativeError in IC-CAP GUI', and the distinction from the sibling 'plot_show_absolute_error' is clear from the name and description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of alternatives such as plot_show_absolute_error, or about prerequisites like whether a plot must already exist or how plot_path should be resolved. The only contextual hint is the IC-CAP equivalence, which is not actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_openA
Open a .mdl project file into the named model slot (IC-CAP's Open action reads the file over the target, destroying its previous contents). When the target model exists, a Save-As-No-Data checkpoint of its current contents is taken first and returned in the response. The file must exist and satisfy the workspace path policy (set ICCAP_MCP_ALLOW_EXTERNAL_FILES=1 to open from anywhere). Use this to restore a project after an IC-CAP restart.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the .mdl project file; must satisfy the workspace path policy | |
| model_path | Yes | Target model slot, e.g. '/model_name' (contents are replaced by the file) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does so thoroughly. It discloses that opening destroys previous contents, that a Save-As-No-Data checkpoint is taken if the target exists, and that an environment variable controls external file access—valuable behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no redundancy, front-loading the core action and then efficiently covering side effects, prerequisites, and intended use. Every sentence earns its place, and the structure makes the destructive behavior immediately apparent.
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 only two required parameters, no annotations, and no output schema, the description is remarkably complete: it explains the operation, side effects, return content (checkpoint), prerequisites, and configuration needed for external files. An agent has enough context to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful context beyond the schema: it explains that opening replaces the target model's contents and clarifies the checkpoint behavior. This additional semantic detail justifies a score above 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 states a specific verb ('Open') and a specific resource ('.mdl project file') and names the destination ('the named model slot'), making the tool's purpose immediately clear. It also clarifies the destructive nature of the operation and the checkpoint behavior, which distinguishes it from generic file-reading tools.
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 use this tool 'to restore a project after an IC-CAP restart,' providing a clear use case. It also states prerequisites (file must exist, workspace path policy) but does not explicitly mention when not to use it or name alternative tools, so it stops short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_createA
Create a Setup object. Set overwrite=true explicitly to replace an existing Setup. Ordering: Transforms may be created before or after setup_import_mdm — both orders are supported (live-verified 2026-09-02: derivative, Optimize, and PythonLocal transforms created after import, no hangs). Importing data before creating program transforms lets their UPDATE_AUTO auto-execution run against real data.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | Delete and replace an existing Setup only when explicitly enabled | |
| setup_path | Yes | Setup path, e.g. '/model/dut/setup_name' | |
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
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 discloses the overwrite behavior, the ordering flexibility, and the auto-execution behavior of UPDATE_AUTO transforms. It doesn't mention error conditions or side effects beyond overwrite, but the key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loaded with the core purpose. The ordering note is a bit verbose with the parenthetical date and details, but it provides valuable context. Every sentence earns its place, though the parenthetical could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 3 parameters and no output schema, the description covers the essential context: what it creates, overwrite behavior, and ordering with a sibling tool. It doesn't explain return values, but no output schema exists and the tool's purpose is clear. The live-verified note adds credibility.
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 100%, so the schema already documents all three parameters. The description adds context about overwrite=true being explicit and the ordering benefit, but doesn't add much beyond what the schema provides. Baseline 3 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 creates a Setup object, with a specific verb and resource. It distinguishes itself from siblings like setup_import_mdm by mentioning ordering relationships, though it doesn't explicitly name all sibling alternatives for creation.
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 on when to use this tool, including the overwrite behavior and the ordering relationship with setup_import_mdm. It gives concrete, live-verified context about supported orders and the benefit of importing data before creating program transforms, which helps an agent decide when to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_export_mdmA
Export Setup measurement or simulation data to an .mdm file. File is written directly on the server side, suitable for large datasets. file_path should be an absolute path on the server machine.
| Name | Required | Description | Default |
|---|---|---|---|
| data_type | No | M=measured, S=simulated, B=both | M |
| file_path | Yes | Absolute path for the .mdm file, e.g. 'E:/path/to/data.mdm' | |
| setup_path | Yes | Setup path, e.g. '/diode_basics/DC____/forward' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It adds useful context not present in the schema: the file is written server-side, requiring an absolute server path, and is intended for large datasets. However, it does not mention overwrite behavior, whether the setup must already exist, or what the tool returns or confirms after writing.
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 concise sentences with no filler. The core purpose, key behavioral trait (server-side write), and critical parameter constraint are all front-loaded and each 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?
For a moderately simple export tool, the description covers the essential operation, parameter constraints, and a key behavioral detail. The lack of an output schema and annotations means a bit more would be helpful, such as overwrite semantics or return value, but the description is still largely sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for setup_path, file_path, and data_type. The tool description adds an important nuance beyond the schema by explicitly stating that file_path must be an absolute path on the server machine, clarifying that the path is interpreted server-side rather than client-side.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Export'), a clear resource ('Setup measurement or simulation data'), and the target format ('.mdm file'). It clearly distinguishes itself from the sibling setup_import_mdm, which performs the inverse operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it is for exporting setup data to an .mdm file on the server side, and is suitable for large datasets. It does not explicitly mention when to prefer this over alternatives, but no close alternative besides setup_import_mdm exists, so 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.
setup_get_infoA
Get complete Setup info: all input names, output names, transform names, plot names, and data length. Useful for verifying Setup structure.
| Name | Required | Description | Default |
|---|---|---|---|
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It clearly indicates this is a read-only information retrieval tool and specifies the exact categories of data returned. It does not describe the return format or error behavior for invalid setup paths, but the listed content is genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first front-loads exactly what the tool returns, and the second provides the intended use case. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with no output schema, the description adequately covers the return contents and the practical purpose. It could be slightly more complete by describing the return container or error behavior, but nothing critical is missing for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, setup_path, with the schema already saying 'Setup path'. The description adds no additional parameter format or usage detail, so the baseline of 3 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 names a specific verb ('Get') and a specific resource ('Setup info'), and enumerates exactly what is included: input names, output names, transform names, plot names, and data length. This distinguishes it from narrower sibling getters like setup_get_inputs or setup_get_length.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Useful for verifying Setup structure' provides a clear use case, and the word 'complete' implies this is for when all Setup details are needed at once. However, it does not explicitly state when to prefer this over the many granular sibling tools, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_get_inputsA
Get all Input names in this Setup.
| Name | Required | Description | Default |
|---|---|---|---|
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states that it gets names, implying a read-only operation. It does not disclose the return format (e.g., list of strings), behavior for invalid setup_path, or whether any state is read at a particular time; the 'Get' verb suggests no side effects but this is implied rather than explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler or redundant detail. It is front-loaded with the action and resource, making it 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?
The tool is simple (one required param, no output schema), and the description states that the result is the input names. However, without annotations or an output schema, an agent is left to infer return type and error behavior, and the distinction between 'Input names' and similar setup_get_* concepts is not fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents setup_path at 100% coverage with 'Setup path', so the description adds no new parameter-level meaning. The phrase 'in this Setup' weakly maps to setup_path but gives no format, examples, or interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource, 'Get all Input names', and scopes it to a Setup, which clearly distinguishes it from sibling tools like setup_get_outputs or setup_get_svars. It does not explicitly name alternatives, and 'Input names' retains some ambiguity about whether it means top-level input objects or input fields, so not a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'in this Setup' phrasing implies the tool should be used when a setup's input names are needed. It provides no explicit when-not-to-use guidance or mention of alternatives, and the distinction from input_get_* / setup_get_outputs has to be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_get_lengthB
Get the data length of the Setup's dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of explaining behavior. 'Get' implies a read operation, but the description does not disclose whether the tool returns a scalar count, requires an existing Setup, or has any side effects. The meaning of 'data length' is left ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the verb and resource. There is no redundant wording or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter getter, the description is minimally adequate for tool selection, but with no output schema and no annotations, it does not explain what the returned length represents or what happens if the setup path is invalid. An agent gets just enough to guess the call shape but not its full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the one parameter. The tool description adds no additional parameter meaning beyond 'Setup path', which is minimally descriptive. The baseline of 3 applies because the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('data length of the Setup's dataset'), and the name aligns with a family of length getters such as input_get_length and output_get_length. It does not explicitly define what 'data length' means (number of rows, samples, or bytes), so it is clear but not fully precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related length getters or other Setup introspection tools. The only usage signal is implied by the tool name and the parameter name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_get_outputsA
Get all Output names in this Setup.
| Name | Required | Description | Default |
|---|---|---|---|
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. The verb 'Get' implies a non-mutating read operation, but the description does not explicitly state that, nor does it mention return format, error behavior for invalid setup paths, or whether the operation has side effects. This is acceptable for a simple getter but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every word contributes to identifying the operation, and it is immediately scannable by an agent.
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 getter with one required parameter and no output schema, the description is nearly complete: it names the resource, scope, and implied return of names. It could be enhanced by noting that it only returns names and not output details, but overall it provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single parameter with 'Setup path'. The description's phrase 'in this Setup' maps the parameter to the operation's scope but adds no new detail about format, constraints, or behavior beyond what the schema states.
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 a specific verb ('Get'), resource ('Output names'), and scope ('in this Setup'), making the tool's purpose immediately understandable. It also distinguishes this tool from sibling getters like setup_get_inputs and setup_get_transforms by naming exactly what is retrieved.
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 usage context is implied by the tool name and sibling list: use this when you need output names for a setup rather than inputs, transforms, or plots. However, the description itself provides no explicit when-to-use guidance or mention of alternatives, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_get_plotsA
Get all Plot names in this Setup.
| Name | Required | Description | Default |
|---|---|---|---|
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It clearly indicates a read-only retrieval operation, but it does not disclose behavior for invalid setup paths, empty setups, or the exact return format. For a simple getter this is adequate, but still leaves some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that immediately states the action, resource, and scope. There is no filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one well-described parameter, the purpose and input are clear. However, there is no output schema and no annotation, and the description does not mention return shape, empty results, or error conditions. It is minimally viable 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?
The schema covers 100% of the parameter descriptions, so the baseline is 3. The description's 'this Setup' ties the parameter to the concept of a setup, but it adds no additional detail beyond what the schema already states for setup_path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('all Plot names'), and a scoping container ('in this Setup'). This makes it immediately distinguishable from siblings such as setup_get_inputs, setup_get_outputs, plot_setup, and plot_display.
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 clear context: use it when you need plot names belonging to a specific setup. It does not explicitly list alternatives or exclusions, but the operation is simple enough that the intended usage is evident from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_get_svarsB
Get all Setup variables (SVar) with their names and values.
| Name | Required | Description | Default |
|---|---|---|---|
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden. It indicates a read operation but says nothing about error handling, whether setup_path must already exist, side effects, permissions, or how values are represented. This is minimal 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?
A single, efficient sentence that front-loads the primary action and result. There is no redundant wording or restatement of the tool name.
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 single-parameter getter, the description covers the essential purpose and return type. However, with no output schema and no annotations, it stops short of explaining edge cases, return format details, or how this differs from related variable-getter tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with setup_path described as 'Setup path'. The description adds no parameter details beyond the schema, which fits the baseline of 3 when the schema already documents the parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get'), a specific resource ('all Setup variables'), and the returned data ('names and values'). It is unambiguous, though it does not explicitly contrast with siblings like svar_get, so it loses the top point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as svar_get, setup_get_inputs, or other setup-level getters. The intended context is only implied by the presence of setup_path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_get_transformsA
Get all Transform names in this Setup.
| Name | Required | Description | Default |
|---|---|---|---|
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It correctly implies a read-only operation and indicates that the result is names, but it does not state the exact return format (e.g., a list of strings), ordering, or behavior when the setup path is invalid.
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 one short, front-loaded sentence with no filler. Every word contributes to identifying the operation and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description is nearly complete: it states what is returned ('all Transform names') and the scope. It omits output type details, but the phrase 'names' and the absence of complex nested inputs keep the gap small.
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 100% and the single required parameter setup_path is described as 'Setup path', so the schema already handles the parameter. The tool description adds only that the transforms belong to 'this Setup', which is marginal extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a precise resource ('all Transform names'), and a clear scope ('in this Setup'). It distinguishes this tool from sibling setup_* getters (inputs, outputs, plots, svars) and transform_* operations, which target different entities or actions.
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 intended use is clear: call this when you need the list of Transform names attached to a Setup. It does not list alternatives or exclusion conditions, but the tool's narrow, unambiguous scope makes confusion unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_import_mdmA
Import data from an .mdm file into a Setup using Import Create command. Automatically creates inputs/outputs structure from MDM file. Ordering: Transforms may be created before or after the import — both orders are supported and live-verified (2026-09-02: derivative/Optimize/PythonLocal created after import, no hangs, configuration read back effective). A bonus of importing first: program transforms whose Program starts with an UPDATE_AUTO line auto-execute on creation, so that execution runs against the already-imported data. Data is processed on the server side, suitable for large datasets.
| Name | Required | Description | Default |
|---|---|---|---|
| data_type | No | M=import as measured, S=import as simulated | M |
| file_path | Yes | Absolute path to the .mdm file on the server | |
| setup_path | Yes | Setup path, e.g. '/model/dut/setup_name' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses several behavioral traits: automatic creation of inputs/outputs, support for both transform ordering scenarios, live-verified behavior with a specific date, auto-execution of UPDATE_AUTO transforms, and server-side processing. This is rich behavioral context beyond what the schema shows. It doesn't mention side effects like overwriting existing inputs/outputs, but the disclosed traits are substantial.
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 moderately sized and front-loaded with the core purpose. The ordering details and auto-execution note are valuable but add length; they are not wasted. The date-stamped verification adds credibility but could be trimmed. Overall, every sentence earns its place, though it is slightly verbose for a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (import with ordering nuances, auto-execution, server-side processing) and the absence of an output schema, the description covers the key behavioral aspects an agent needs. It doesn't explain return values or error conditions, but the description is complete enough for correct invocation. The lack of output schema is compensated by the detailed behavioral notes.
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 100%, so the baseline is 3. The description adds context about the .mdm file and the Setup, but it doesn't add meaning beyond the schema for the parameters themselves. The data_type enum is already documented in the schema. The description's mention of 'Import Create command' and 'inputs/outputs structure' indirectly clarifies the effect of setup_path and file_path, but not enough to raise the score above 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 states a specific verb ('Import'), a specific resource ('.mdm file into a Setup'), and the command used ('Import Create'). It also mentions the automatic creation of inputs/outputs structure, which clearly distinguishes it from sibling tools like setup_export_mdm and setup_get_inputs. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: when importing data from an .mdm file into a Setup, and it notes suitability for large datasets due to server-side processing. It does not explicitly name alternatives or exclusions, but the context is strong enough for an agent to select it over siblings like setup_export_mdm. The ordering guidance about transforms is a bonus but not a direct alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_measureB
Run measurement instruments on a Setup. Use run_async=true for a managed observable job.
| Name | Required | Description | Default |
|---|---|---|---|
| run_async | No | ||
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does add some value by indicating that running asynchronously produces a 'managed observable job,' but it does not disclose side effects, prerequisites, whether the call blocks, where results are stored, or how the returned job can be observed. This is partial but not complete behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the main action is front-loaded and the run_async tip is immediately actionable. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description is too thin. It does not explain what a successful run returns, how to retrieve measurement results, what 'managed observable job' means operationally, or whether the setup must already be fully configured. An agent could probably invoke it, but not confidently interpret the outcome.
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 only 50%, so the description needs to compensate. It adds meaning to run_async ('managed observable job') beyond the bare boolean schema, but it adds nothing about setup_path beyond the schema's 'Setup path.' The agent still lacks path format/scope details and how to consume the async job result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run'), a resource ('Setup'), and an action ('measurement instruments'), so an agent can tell this is an execution tool rather than a query tool. However, it does not explicitly distinguish itself from siblings like setup_simulate, and 'measurement instruments' is slightly jargon-heavy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'Use run_async=true for a managed observable job,' which is a parameter-level tip rather than tool-selection guidance. There is no mention of when to prefer setup_measure over setup_simulate or other setup-related tools, nor when sync vs async should be chosen beyond a vague descriptor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_simulateA
Run SPICE simulation on a Setup. The gateway executes it synchronously on IC-CAP's main thread; external MCP clients may submit it as a managed job.
| Name | Required | Description | Default |
|---|---|---|---|
| run_async | No | Reserved for broker-managed jobs; direct gateway calls must use false | |
| setup_path | Yes | Setup path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses synchronous execution on IC-CAP's main thread, which implies blocking behavior and main-thread coupling, and notes the managed-job path for external clients. It does not mention side effects or return behavior, but this is still meaningful transparency beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core purpose front-loaded and behavioral context in the second sentence. Every clause adds distinct information needed for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with one required parameter and no output schema, the description covers what the tool does and how it executes. It omits post-conditions such as what happens to simulation results, but the essential invocation details are present.
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 already describes both parameters, including run_async's reservation for broker-managed jobs, at 100% coverage. The description adds no parameter-level detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Run SPICE simulation on a Setup.' It clearly distinguishes this from measurement or transform tools in the sibling list by naming the exact operation (SPICE simulation) rather than a generic 'run' or 'execute'.
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 clear invocation context: synchronous execution on IC-CAP's main thread and managed-job submission for external MCP clients. It does not explicitly name alternatives like setup_measure or iccap_job_submit, but the execution-mode guidance is concrete and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
svar_createA
Create a Setup variable (SVar). Common uses: X_LOW, X_HIGH, sweep range parameters for optimizers.
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Initial value | |
| var_path | Yes | Full path, e.g. '/model/dut/setup/VAR_NAME' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Create' and gives usage examples; it does not mention side effects, overwrite/existence behavior, parent setup requirements, or return values, which are important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core purpose is front-loaded, and the usage context is delivered efficiently.
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 2-parameter creation tool with no annotations or output schema, this is minimally adequate. However, behavioral details such as whether the variable must not already exist, whether the parent setup path is required to already exist, and what happens on failure are left to inference.
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 100%: var_path is documented with a full path example and value is documented as 'Initial value'. The description adds semantic context through common use cases, but it does not add parameter-level detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a Setup variable') and gives concrete common uses (X_LOW, X_HIGH, sweep range parameters for optimizers). This makes it clearly distinguishable from sibling tools like svar_get, svar_set, or other variable-creation tools.
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 clear context for when the tool is appropriate, namely creating setup-level variables for sweeps and optimizer ranges. It does not explicitly list when-not-to-use alternatives, but the context is clear enough for an agent to infer the main use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
svar_getB
Get a Setup variable value.
| Name | Required | Description | Default |
|---|---|---|---|
| var_path | Yes | Full path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. 'Get a Setup variable value' clearly indicates a read operation with no destructive implications, but it does not describe return format, error behavior, or whether the value is scalar, string, or structured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler or redundant information. Every word contributes to identifying the tool's 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?
For a simple one-parameter getter, the description is minimally adequate: the required parameter is fully covered by the schema and the return concept ('value') is implied. However, with no output schema or annotations, it would benefit from clarifying what kind of value is returned and how paths are formatted.
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 100%, so the schema already documents var_path as 'Full path'. The description does not add meaningful parameter semantics beyond reinforcing that the path refers to a setup variable, which matches the baseline for high 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 uses a specific verb ('Get') and identifies a clear resource ('Setup variable value'), making it obvious this is a retrieval tool for setup variables. It is distinct from svar_create and svar_set in intent, though it does not explicitly name sibling 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 implies the tool is for retrieving setup variable values but provides no explicit guidance on when to choose it over similar getters/listers like setup_get_svars, object_get_val, or tablevar_get. No prerequisites, exclusions, or alternative routing are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
svar_setA
Set a Setup variable value. Pass scalar values as strings and arrays as JSON array strings such as '["a","b"]'.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| var_path | Yes | Full path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses the value encoding convention: scalars as plain strings and arrays as JSON array strings, with a concrete example. It does not discuss overwrite behavior or errors, but the key calling convention is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The main action is front-loaded, and the critical serialization guidance is provided immediately after, with a clear example.
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 two-parameter setter, the description and schema together provide enough to invoke it correctly: target path and value format are both covered. There is no output schema, but a setter's return value is not essential for correct use. Edge cases like nonexistent variables are not addressed, but they are not critical to basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents var_path as 'Full path' but gives no description for value. The description compensates by fully explaining how to encode scalar and array values, which is the non-obvious part. var_path is adequately covered by the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Set a Setup variable value.' It clearly identifies the target as a Setup variable, distinguishing it from sibling setters like dvar_set, mvar_set, and instrvar_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Setup variable' provides clear context about which variable family this tool applies to. It does not explicitly name alternatives or exclusions, but the target domain is clear enough for an agent to route correctly among the many setter tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tablevar_existsA
Check if a table field exists. Returns boolean. Use before tablevar_get/set to avoid errors on non-existent fields. On name-conflict paths (Plot sharing its name with a Transform/Input/Output) the untyped probe reflects the non-Plot side; pass object_type='Plot' to probe the Plot side through an automatic rename-aside transaction (annotated conflict=true, resolved_as='Plot').
| Name | Required | Description | Default |
|---|---|---|---|
| object_type | No | Disambiguation hint for name conflicts. Unset probes the untyped path (non-Plot object on conflict paths); 'Plot' probes the Plot side through an automatic rename-aside transaction when a conflict exists. | |
| tablevar_path | Yes | Full path including field name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It covers the boolean return, the untyped probe behavior on name-conflict paths, and the automatic rename-aside transaction for the 'Plot' side. It even exposes the conflict result metadata ('conflict=true, resolved_as='Plot''), which is valuable nuance an agent would not otherwise know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact yet information-dense. Every sentence earns its place: purpose and return type first, usage guidance second, then the nuanced conflict-path behavior. Despite the complexity of the rename-aside transaction, the text stays readable and front-loads the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, this description is complete. It states the return type, gives a clear precondition for use, and fully explains the one genuinely tricky edge case (name conflicts between Plot and Transform/Input/Output). An agent has enough information to call this tool correctly without further investigation.
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 100%, so the baseline is 3. The description's object_type explanation largely mirrors the schema's own description of the disambiguation behavior. The tablevar_path parameter is already described as 'Full path including field name,' and the description adds no further format or path-construction details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Check if a table field exists. Returns boolean.' This clearly distinguishes it from tablevar_get/tablevar_set and from generic object existence checks like object_exist. It states the exact scope of the operation and its return type, leaving no ambiguity about what the tool does.
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 tells the agent when to use this tool: 'Use before tablevar_get/set to avoid errors on non-existent fields.' This gives clear contextual guidance. It does not mention when not to use it or name alternative existence-check tools, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tablevar_getA
Get a table field value. Works on any IC-CAP object that has table fields: Transform ('transform_path/Program' for PEL content), Plot ('plot_path/Report Type', 'plot_path/X Data', 'plot_path/Y Data N'), etc. Use tablevar_exists first to verify the field exists. When a path has both a Transform and a Plot with the same name, reads default to the Transform and the result is annotated with conflict=true / resolved_as='Transform' (all common table fields are Transform-exclusive); pass object_type='Plot' to read the Plot side — when any non-Plot object (Transform, Input, or Output) shares the Plot's name, the read runs inside an automatic rename-aside transaction (conflict=true, resolved_as='Plot', via='rename_txn') that restores the original name afterwards. Reading a field the object does not own (e.g. Program on an empty-Function grouping transform, 'Plot 0' on an XY GRAPH) returns ICCAP_FIELD_NOT_APPLICABLE instead of touching the C API; use transform_get_fields / plot_get_fields to introspect first.
| Name | Required | Description | Default |
|---|---|---|---|
| eval_var | No | Evaluate value: Y=yes, T=yes, N=no (default), F=no | N |
| object_type | No | Disambiguation hint for name conflicts. Unset reads the sole owner (and defaults to the Transform on Transform/Plot conflicts). 'Plot' reads the Plot; on conflict paths this runs inside an automatic rename-aside transaction. | |
| tablevar_path | Yes | Full path including field name, e.g. '/model/dut/setup/transform_name/Program' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses conflict resolution (defaults to Transform, conflict=true / resolved_as='Transform'), the rename-aside transaction with restoration, and the ICCAP_FIELD_NOT_APPLICABLE path instead of touching the C API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then layered details about verification, conflict handling, and error behavior. Despite being long, every sentence carries non-redundant information necessary for correct use of a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is highly complete for a tool with no output schema and no annotations: it covers when to verify existence, how conflicts resolve, the transaction side effect and restoration, and the not-applicable return behavior. Any remaining expectations about value formats are field-dependent and not reasonably specifiable here.
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 100%, so the baseline is 3; the description adds meaningful context for object_type and tablevar_path by giving concrete path examples and explaining conflict-driven transaction behavior. eval_var is not elaborated beyond the schema, but the description adds enough beyond the bare parameter list to merit a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a table field value') and clarifies it applies to IC-CAP objects with table fields, including Transform and Plot. The examples and references to introspecting with transform_get_fields / plot_get_fields help distinguish it from sibling tools like tablevar_exists, tablevar_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly advises using tablevar_exists first and using transform_get_fields / plot_get_fields to introspect before reading, which gives concrete usage guidance. It does not explicitly contrast with tablevar_set or object_get_val as alternatives, but the guidance is actionable enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tablevar_setA
Set an existing table field; this tool cannot create fields. Use tablevar_exists first. On Transform/Plot name-conflict paths, writes default to the Transform (result annotated with conflict=true); pass object_type='Plot' to write the Plot side — on conflict paths this runs inside an automatic rename-aside transaction (necessary because a direct write on a conflict path silently targets the non-Plot object and reports success). Plot writes are validated against the plot's actual field set first: writing a field the current Report Type does not own (e.g. 'Plot 0' on an XY GRAPH, which STFV would accept while writing nothing) returns ICCAP_FIELD_NOT_APPLICABLE listing the available fields — never a false success. Transform-side writes are validated the same way against the Function type.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Value to set | |
| object_type | No | Disambiguation hint. Unset writes the sole owner (and defaults to the Transform on Transform/Plot conflicts). 'Plot' writes the Plot; on conflict paths this runs inside an automatic rename-aside transaction. | |
| tablevar_path | Yes | Full path including field name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and handles it excellently. It discloses silent-targeting risk on conflict paths, the automatic rename-aside transaction, validation against the actual field set, the ICCAP_FIELD_NOT_APPLICABLE error behavior, and the promise of 'never a false success.' This is unusually transparent for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average, but every sentence earns its place given the genuinely complex conflict and validation behavior. It is front-loaded with the core purpose and prerequisite, then proceeds logically through conflict handling and validation. Slight redundancy between the schema's object_type text and the description is the only minor inefficiency.
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 mutation tool with no output schema and no annotations, the description is remarkably complete. It covers prerequisites, conflict behavior, side effects, validation semantics, and an error code with the available-fields listing. An agent has enough context to invoke the tool correctly and to interpret non-obvious outcomes. The only minor absence is a general return-format statement, but the description's conflict=true annotation reference partially covers results.
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 100%, so the baseline is 3, but the description adds real value beyond the schema. It clarifies that tablevar_path must reference an existing field, deepens the meaning of object_type by explaining conflict-path write targeting, and explains why the 'Plot' option requires the rename-aside transaction. Only 'value' receives no additional semantic detail, 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?
The opening sentence 'Set an existing table field; this tool cannot create fields' states a specific verb, resource, and constraint. It clearly differentiates from sibling tools like tablevar_get and tablevar_exists, and the explicit 'cannot create fields' removes ambiguity against creation-style tools.
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, actionable guidance: 'Use tablevar_exists first' names the required prerequisite. It also explains exactly when to pass object_type='Plot' versus defaulting to Transform on conflict paths, which is strong usage direction. It stops short of contrasting against all possible set-like siblings, but that is not essential here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_allocateB
Allocate data space for a Transform with specified size. Used to pre-allocate dataset before filling with data. Default creates both measured and simulated (B) data with dimension 1.
| Name | Required | Description | Default |
|---|---|---|---|
| msb | No | M=measured, S=simulated, B=both, C=common | M |
| length | Yes | Number of data points to allocate | |
| transform_path | Yes | Transform path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It claims 'Default creates both measured and simulated (B) data,' but the input schema declares msb's default as 'M' (measured). This is a direct contradiction that would mislead an agent into assuming a different default behavior. It also does not disclose whether allocation overwrites existing data or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core action, adds usage timing, and mentions default behavior. Each sentence contributes to understanding, even though the default claim is inaccurate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema, so the description must carry the burden of context. It explains purpose and timing, but it fails to accurately describe the default msb behavior and says nothing about overwriting, existing data, or error cases. The schema covers parameters, but the description's contradiction leaves the agent without a reliable behavioral model.
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 100%, so the baseline is 3. However, the description adds a misleading claim about the default value of msb, contradicting the schema's default of 'M'. The only additional semantic, 'dimension 1,' is vague and not connected clearly to any parameter. Overall, the description does not add reliable meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Allocate data space for a Transform with specified size.' It clearly distinguishes the operation from siblings like transform_create, transform_execute, and transform_get_data by stating this is about pre-allocating data space. The intended use is explicit and recognizable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Used to pre-allocate dataset before filling with data' gives clear temporal context for when this tool should be used. It does not explicitly name alternatives or state when not to use it, but the usage intent is sufficiently clear for a tool of this simplicity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_createA
Create a Transform and optionally set its Function type and Program content in one call.
ORDERING: Transforms may be created before or after setup_import_mdm — both orders are supported (live-verified 2026-09-02). Engineer PEL programs conventionally start with an UPDATE_AUTO line, which makes the transform auto-execute on creation; with data already imported, that execution runs against real data.
TRANSFORM TYPES AND THEIR SYNTAX REQUIREMENTS:
PythonLocal - Python script. Use transform_type='PythonLocal', program=''. Example: transform_create(transform_type='PythonLocal', program='print("hello")')
PEL/Program - IC-CAP PEL script. Use transform_type='PEL', program=''. WARNING: PEL uses
returnstatement to output data. Direct assignment likebeta = ic/ibcauses parse error "Direct assignment to the data set beta is not allowed. Use the RETURN statement." Correct:return ic/ib. WRONG:beta = ic/ib. Example: transform_create(transform_type='PEL', program='return ic/ib')Equation - Simple mathematical expression. Use transform_type='Equation' (or check funcdict for available types). Equations are evaluated directly; no return statement is needed. Note: IC-CAP requires lowercase 'equation' as function type; the handler auto-maps 'Equation' to 'equation'. Equation content is stored in the 'Input' field (NOT 'Program'); the handler handles this automatically. Example: transform_create(transform_type='Equation', program='ic/ib')
Built-in - IC-CAP built-in extraction functions (e.g. BJTDC_is_nf, BJTDC_fwd_gummel, PNCAPsimu, RBBcalc). Use transform_type=''. Function is set automatically. Built-in transforms require table fields to be filled (data references to other setups/transforms). Inspect the transform's table fields with tablevar_get and consult the installed IC-CAP documentation for required fields. Example: transform_create(transform_type='BJTDC_is_nf') Then fill table fields: tablevar_set('/path/to/transform/Forward VC', 'fearly/vc')
Optimize - Optimization transform. Use transform_type='Optimize'. Configure it with optimizer_setup or with transform_set_optim_field for individual fields. Example: transform_create(transform_type='Optimize') Then: optimizer_setup(transform_path='/path/to/optimize', ...)
Malformed transform types, programs, or fields can leave IC-CAP unresponsive. Always verify the created transform with transform_get_function.
Creating a Transform onto a name a Plot already uses creates a name conflict: the result then carries a warning (the Transform is never auto-renamed), and Plot-side field access afterwards requires object_type='Plot'. Prefer distinct names for new objects.
Consult the IC-CAP documentation installed with your licensed software for model- and version-specific transform fields.
| Name | Required | Description | Default |
|---|---|---|---|
| program | No | Program script content. For PEL: MUST use 'return' statement, NOT direct assignment. For PythonLocal: standard Python code. For Equation: mathematical expression without return. | |
| function | No | Legacy alias for program parameter | |
| overwrite | No | Delete and replace an existing Transform only when explicitly enabled | |
| transform_path | Yes | Transform path, e.g. '/model/dut/setup/my_transform' | |
| transform_type | No | Function type: 'PythonLocal', 'PEL', 'Optimize', 'Equation', or built-in name (e.g. 'BJTDC_is_nf', 'PNCAPsimu'). Check funcdict via transform_get_funcdict for available types. | |
| allow_without_checkpoint | No | Proceed only if an automatic pre-overwrite save fails; use with care |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly. It discloses hazards ('Malformed transform types, programs, or fields can leave IC-CAP unresponsive'), syntax pitfalls (PEL return statement requirement with exact error text), automatic behaviors (Equation auto-mapping and Input field storage), and name-conflict side effects including the warning and object_type requirement.
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 long but every section earns its place: a front-loaded purpose, ordering note, type-by-type syntax with warnings, and follow-up verification. Headings and examples make it scannable, and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is highly complete for a complex tool with no output schema: it covers ordering, type syntax, side effects, and hazards. The only gap is that it never explicitly states the return value or success indication, though it mentions 'the result then carries a warning' in the name-conflict case. A brief return-value note would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds substantial meaning beyond the schema. It explains program semantics for each transform_type, gives examples for PythonLocal, PEL, Equation, Built-in, and Optimize, and clarifies the function alias. This far exceeds the schema's short property 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?
The opening sentence states a specific verb and resource: 'Create a Transform and optionally set its Function type and Program content in one call.' This clearly distinguishes it from related tools like transform_set_function by emphasizing combined creation and configuration. The subsequent type sections reinforce this purpose with concrete examples.
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 rich when-to-use guidance: ordering relative to setup_import_mdm, per-type parameter requirements, and explicit alternatives such as 'Configure it with optimizer_setup or with transform_set_optim_field' and 'Inspect the transform's table fields with tablevar_get.' It also recommends verification with transform_get_function, covering both usage and follow-up.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_executeA
Execute/Run a Transform. CRITICAL SAFETY CHECKS before executing:
Verify the Transform exists (use transform_get_function or setup_get_transforms)
Verify the Function type is correct (use transform_get_function)
Verify Program content is non-empty for PEL/PythonLocal types (use tablevar_get on transform_path+'/Program')
For built-in transforms, verify all required table fields are filled
An invalid function type, malformed PEL program, or missing table field can leave IC-CAP unresponsive and require a restart.
| Name | Required | Description | Default |
|---|---|---|---|
| run_async | No | Submit as an observable broker job | |
| transform_path | Yes | Transform path |
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 does so unusually well: it warns that an invalid function type, malformed PEL program, or missing table field can leave IC-CAP unresponsive and require a restart, and it names concrete verification steps.
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 longer than average but every sentence earns its place: the core action is front-loaded, and the numbered safety checks are structured and directly actionable. The warning about IC-CAP becoming unresponsive justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the critical context: required preconditions, failure modes, and verification tool paths. It does not describe what a successful execution returns, but for an execute-style tool with only two documented parameters, the existing guidance 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?
Schema coverage is 100%, so the schema already documents transform_path and run_async. The description adds meaningful semantics beyond the schema by explaining what can and must be verified about the transform_path target, including program content and built-in transform table fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Execute/Run a Transform,' a specific verb and resource that clearly identifies the tool's action. It is distinct from sibling tools like transform_create, transform_get_function, and setup_simulate by focusing on execution of an existing Transform.
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 clear pre-execution context: verify existence, function type, program content, and required fields before running. It effectively says 'do not execute unless these checks pass,' giving conditional usage guidance, though it does not explicitly contrast with alternative execute-type tools like macro_execute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_get_dataB
Get a Transform dataset as a dictionary. Returns measured (M), simulated (S), or both (B) data. Set imag=true to include imaginary components.
| Name | Required | Description | Default |
|---|---|---|---|
| msb | No | M=measured, S=simulated, B=both | B |
| imag | No | Include imaginary parts | |
| transform_path | Yes | Transform path |
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 communicates that this is a read operation returning a dictionary and describes the M/S/B selection and imaginary-part flag. However, it does not disclose error behavior, dictionary key structure, or any potential side effects, leaving some behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the core purpose and then adds the key options, making it easy for an agent to parse quickly.
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 retrieval tool with only three parameters and no output schema, the description is largely sufficient: it names the return type, the data variants, and the optional flag. It does not define the exact dictionary keys, but the overall usage is clear enough for a straightforward getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters with 100% description coverage, so the baseline is 3. The description reinforces the meaning of msb (M/S/B) and imag, but does not add new information beyond what the schema provides.
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 a specific verb ('Get'), a resource ('a Transform dataset'), and the return format ('as a dictionary'). It also defines the M/S/B data-type choice, which helps distinguish this from related tools such as transform_get_df. However, it does not explicitly name any sibling alternative, so it falls just short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of alternatives like transform_get_df, input_get_data, or output_get_data. The description explains what data can be requested but does not state when to choose this function over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_get_dfA
Get a Transform dataset as a DataFrame. Supports matrix indexing with m and n. Set imag=true to include imaginary components.
| Name | Required | Description | Default |
|---|---|---|---|
| m | No | Matrix m-dimension index | |
| n | No | Matrix n-dimension index | |
| msb | No | M=measured, S=simulated, B=both | B |
| imag | No | Include imaginary parts | |
| transform_path | Yes | Transform path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Get' clearly indicates a read-only operation, and the description explains optional behaviors: matrix indexing via m and n, and including imaginary components via imag=true. It does not mention side effects or failure modes, but for a simple getter the behavior is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no fluff. It front-loads the core purpose ('Get a Transform dataset as a DataFrame') and then adds only the most relevant behavioral details. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward getter tool with five schema-documented parameters, the description covers the essential purpose, return type, and key optional behaviors. It does not explicitly address the msb parameter, but the schema already documents it with a default. Overall, the description is sufficient for an agent to understand and invoke the tool correctly, though a note on when not to use it would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some value by grouping m and n as matrix-indexing dimensions and mentioning imag=true, but it largely restates what the schema already says about individual parameters. It does not meaningfully deepen understanding of msb or transform_path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a Transform dataset as a DataFrame.' It clearly identifies the output type and distinguishes this tool from siblings like transform_get_data by emphasizing DataFrame return. The matrix indexing mention adds further specificity without 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 implies use when a DataFrame representation of a Transform dataset is needed, but it does not explicitly state when to use this tool versus alternatives such as transform_get_data, input_get_df, or output_get_df. No when-not-to-use or alternative guidance is provided, so usage context remains only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_get_fieldsA
List the table fields readable on a Transform for its current Function type. Ownership: '' (empty, grouping node) owns no fields; 'equation' -> Input; 'derivative' -> Input, Output; 'Optimize' -> Algorithm/Error plus Target/Simulated/X Min/X Max/Name/Min/Max rows (actual row counts probed read-only) and algorithm-filtered option fields; program types -> Program. 'Function' itself is always readable. Use before tablevar_get/tablevar_set to introspect instead of triggering ICCAP_FIELD_NOT_APPLICABLE.
| Name | Required | Description | Default |
|---|---|---|---|
| object_type | No | Optional; transforms are always resolved by type, accepted for symmetry with tablevar tools. | |
| transform_path | Yes | Transform path |
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 reveals that the operation is read-only ('readable', 'probed read-only'), explains ownership semantics for grouping nodes, and notes special behavior like the always-readable 'Function' field and algorithm-filtered option fields. It does not cover error handling beyond the named ICCAP error, but for an introspection tool the key behavioral traits are well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with relevant ownership mappings and usage guidance, and it front-loads the core purpose before entering exceptions. The ownership enumeration is lengthy but each clause conveys distinct information about different Function types. It earns its length; a small formatting improvement (e.g., bullet list) could make the mapping easier to scan, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must communicate what the caller will learn. It does this well by listing the field categories per Function type and clarifying that row counts are probed read-only. It does not explicitly state the return format (e.g., array of string field names), but the phrase 'List the table fields' plus the ownership map makes the return value predictable. For a tool of this complexity, the coverage is strong.
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 already documents both parameters at 100% coverage, including the enum for object_type and a note that it is accepted for symmetry. The description adds context about the transform_path being the target of listing, but it does not materially deepen parameter-level semantics beyond the schema. A baseline of 3 is appropriate when the schema is already informative.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and object: 'List the table fields readable on a Transform for its current Function type.' It goes beyond a generic definition by enumerating ownership rules per function type, which clearly separates this introspection tool from tablevar_get/tablevar_set and other Transform-related siblings like transform_get_data or transform_get_df.
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 final sentence explicitly instructs when to use this tool: 'Use before tablevar_get/tablevar_set to introspect instead of triggering ICCAP_FIELD_NOT_APPLICABLE.' This is concrete, actionable guidance that names the operations it should precede and warns about the error it prevents, leaving no ambiguity about the intended calling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_get_funcdictA
Get the dictionary of available Transform function types (funcdict). Returns list of function type names that this Transform can be set to.
| Name | Required | Description | Default |
|---|---|---|---|
| transform_path | Yes | Transform path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does indicate a read-only operation returning a list of type names, but it does not explain what happens for invalid/nonexistent transform paths, and it uses 'dictionary' and 'list' inconsistently, leaving return-shape ambiguity.
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 with no filler; the first sentence identifies the tool's purpose and the second clarifies the return content. It is appropriately front-loaded and 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?
For a simple one-parameter getter with no output schema, the description adequately explains the return value and the general purpose. It could mention error behavior for invalid paths, but given the low complexity, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description adds little beyond the schema, though the phrase 'that this Transform can be set to' reinforces that transform_path refers to an existing Transform object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('dictionary of available Transform function types (funcdict)'), and clarifies the return value as function type names. It is clearly distinguishable from sibling tools like transform_get_function, which would retrieve the current or specific function rather than the list of available types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used to discover which function types a Transform can be set to, which suggests pairing with transform_set_function. However, it does not explicitly state when to use this tool versus alternatives or mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_get_functionA
Get the Transform's Function type (e.g. 'PythonLocal', 'PEL', 'Optimize'). This reads the 'Function' child field.
| Name | Required | Description | Default |
|---|---|---|---|
| transform_path | Yes | Transform path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It explicitly states that this 'reads' the 'Function' child field, signaling a read-only operation, and the examples clarify the kind of values returned. It does not cover edge cases or errors, but for a simple getter this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, efficient sentences. It front-loads the core purpose, adds clarifying examples, and includes one implementation detail that helps confirm the behavior. No filler or 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?
Given the tool's low complexity—one required parameter, no nested objects, no output schema—the description is sufficient. It states what is retrieved, where the value comes from, and provides examples of possible values, leaving only minor edge-case information unstated.
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 already describes the single parameter at 100% coverage ('Transform path'), so the baseline is 3. The description adds context by linking the path to a Transform and indicating the target is a child field, but it does not provide deeper format, syntax, or path-pattern details 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 uses a specific verb ('Get') and resource ('the Transform's Function type') with concrete examples ('PythonLocal', 'PEL', 'Optimize'). It also identifies the underlying source field. However, it does not explicitly distinguish itself from sibling tools like transform_get_funcdict or transform_get_fields, so the differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the main use case clear: retrieve the Function type of a Transform by reading the 'Function' child field. However, it does not mention alternatives, exclusions, or specific conditions for choosing this tool over related transform getter tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_get_lengthA
Get the number of data points in the Transform's dataset. Returns 0 for an empty dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| transform_path | Yes | Transform path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does add one useful trait: 'Returns 0 for an empty dataset.' However, it does not mention behavior for invalid or nonexistent transform paths, whether it errors, or any other edge cases. It is minimally transparent but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the main verb and object, with a brief edge-case note appended. There is no filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter getter with no output schema, the description covers the core function and the most important edge case. It does not state prerequisites (e.g., that the transform must exist or have been executed) or explicitly differentiate from sibling get_length tools, but these are minor gaps for such 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?
The schema has 100% description coverage for the only parameter (transform_path), so the baseline is 3. The tool description adds no additional meaning or context to the parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a clear resource ('the number of data points in the Transform's dataset'). The added empty-dataset behavior reinforces exactly what is counted. It is distinguishable from sibling get_length tools by the explicit 'Transform's dataset' scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool over sibling get_length tools such as input_get_length, output_get_length, or setup_get_length. There are no exclusions, prerequisites, or alternative routing instructions. Usage is only implied by the tool name and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_get_optim_fieldA
Read an Optimize Transform's table field value. Counterpart to transform_set_optim_field.
'Algorithm' and 'Error' are write-only in the IC-CAP API: the table fields do not exist and GTFV rejects them, so this tool returns readable=false with an explanation instead of an error. Track the value you set via transform_set_optim_field (its response echoes current_value); to inspect a transform configured elsewhere, open its GUI. Indexed fields (Target[0], Name[0], etc.) and options read reliably.
| Name | Required | Description | Default |
|---|---|---|---|
| field_name | Yes | Field name, e.g. Target[0], Name[0] | |
| transform_path | Yes | Optimize Transform path |
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, and it does so unusually well. It reveals that 'Algorithm' and 'Error' are write-only, that GTFV rejects them, that the tool returns readable=false with an explanation instead of throwing, and that indexed fields and options read reliably. This goes well beyond a generic 'read' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then uses compact sentences to cover caveats and usage guidance. Every clause earns its place, and the structure moves naturally from 'what it does' to 'what to watch out for' to 'when not to rely on it.' No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema and no annotations, the description covers the essential edge cases and limitations thoroughly. The only minor gap is that it does not explicitly describe the normal successful return shape beyond the mention of readable=false, though 'read a value' makes the common case reasonably inferable.
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 100%, so the baseline is 3. The description adds value by giving concrete field name examples like Target[0] and Name[0], and by calling out 'Algorithm' and 'Error' as invalid readable field names. This enriches the field_name semantics beyond the schema's brief example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Read an Optimize Transform's table field value.' It also explicitly identifies itself as the counterpart to transform_set_optim_field, immediately clarifying the operation's scope and distinguishing it from the setter and other getter siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when this tool is appropriate and gives concrete alternatives: track the value returned by transform_set_optim_field when you set it, and open the GUI to inspect transforms configured elsewhere. It could more explicitly compare against sibling getters like transform_get_fields or transform_get_data, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_set_functionA
Set the Transform's Function type (e.g. change from 'PythonLocal' to 'PEL'). This writes to the 'Function' child field. Note: For Optimize type, use transform_create with transform_type='Optimize' instead.
| Name | Required | Description | Default |
|---|---|---|---|
| function | Yes | Function type to set | |
| transform_path | Yes | Transform path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the operation writes to the 'Function' child field and changes the Function type, but it does not describe overwrite implications, validity requirements, potential errors, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense, front-loaded sentences with no filler: purpose, side-effect detail, and the key exception. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter this is largely adequate, and the Optimize exception is helpful. But it would be more complete with a pointer to transform_get_funcdict for valid Function values and a note about transform prerequisites.
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 describes both parameters with 100% coverage, so the baseline is 3. The description adds useful example values and the Optimize exception, but it does not clarify transform_path syntax or list the set of acceptable Function values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact action and resource: 'Set the Transform's Function type,' and gives a concrete example ('PythonLocal' to 'PEL'). It is clearly distinct from siblings like transform_get_function and transform_create.
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 use transform_create with transform_type='Optimize' for Optimize type, which is a clear alternative. However, it does not mention transform_get_funcdict for discovering valid Function values or provide broader when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_set_optim_fieldA
Set an Optimize Transform's table field value via STFV.
Configure IC-CAP optimizer Inputs, Parameters, and Options tables programmatically. Option field names are validated against the current algorithm; invalid names return success=false with an explanation.
Common fields:
Function: Set to "Optimize" to enable the optimizer
Algorithm: Optimization algorithm (full names or PEL short codes, auto-mapped). Unknown values are rejected before reaching IC-CAP (the native SetAlgorithm accepts anything without checking). On success the response carries current_value with current_value_source='this write': IC-CAP provides no way to read the algorithm back, so your own write is the authoritative record.
Full names: "Levenberg-Marquardt", "Random", "Hybrid", "Gradient", "Quasi-Newton", "Minimax", "Genetic", "Least Pth"
Short codes: "L", "R", "H", "B", "G", "N", "Q", "I"
Error: Error type (full names or PEL short codes, auto-mapped). Same write-only caveat as Algorithm.
Full names: "Relative", "Absolute" Short codes: "R", "A"
Inputs table (0-indexed rows):
"Target[i]": Target measured data, e.g. "ia.m"
"Simulated[i]": Simulated data, e.g. "ia.s"
"X Min[i]", "X Max[i]": X-axis range limits
Parameters table (0-indexed rows):
"Name[i]": Parameter name, e.g. "MAIN.IS"
"Min[i]": Parameter minimum bound
"Max[i]": Parameter maximum bound
Options table (algorithm-specific!):
Random (R): RMS error, Rand Iters, Rand Std Dev, Rand Reward, Rand Penalty, Rand Seed, Comb Filter
LM (L): RMS error, Max error, Max Evals, Param Tol, Function Tol, Comb Filter, Param Delta
Hybrid (H): RMS error, Max error, Rand Iters, Comb Filter, Param Tol, Function Tol, Param Delta
Minimax (N): RMS error, Max error, Max Evals, Param Tol, Function Tol, Max Iters, Comb Filter
All algorithms also support: X/Y Lower/Upper Bound
NOTE: Random uses 'Rand Iters' (NOT 'Max Iters'), LM uses 'Max Evals' (NOT 'Max Iters')
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Value to set | |
| field_name | Yes | Field name with optional row index, e.g. Target[0], Name[1], Min[BF] | |
| transform_path | Yes | Optimize Transform path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden and does so thoroughly. It reveals validation behavior ('invalid names return success=false with an explanation'), pre-validation before IC-CAP ('unknown values are rejected before reaching IC-CAP'), and the write-only caveat for Algorithm and Error fields, including the fact that IC-CAP provides no read-back mechanism.
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 long, but its length is earned given the algorithmic complexity. It front-loads the one-sentence purpose, then organizes details into Common fields, Inputs/Parameters/Options sections, and a final note clarifying the Random/LM/Max Iters distinction. Each section adds necessary information without significant redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description covers all needed context: accepted field names, valid values, validation failure semantics, algorithm-specific behavior, and the authoritative-write caveat. An agent can confidently construct valid calls for any of the listed algorithms and understand potential failure responses.
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 100% but the schema descriptions are minimal ('Value to set', 'Field name with optional row index'). The description massively enriches parameter semantics by documenting valid Algorithm/Error full names and short codes, the 0-indexed row syntax, algorithm-specific Options fields, and examples for Target[i], Simulated[i], Name[i], Min[i], 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 opening sentence 'Set an Optimize Transform's table field value via STFV' uses a specific verb and resource, and the second sentence clarifies it configures IC-CAP optimizer Inputs, Parameters, and Options tables. This clearly distinguishes it from sibling read tools like transform_get_optim_field and from generic setters like input_set_field.
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 clear context about when to use this tool: when programmatically configuring optimizer table fields. It lists common fields and their meanings, implicitly scoping usage to Optimize Transform tables. It does not explicitly state exclusions or name alternative tools for the same job, but the specialization is strong enough that an agent can route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
var_get_table_sizeA
Get the size of an ICCAP_ARRAY type variable. Only works on variables whose value is an ICCAP_ARRAY (set via mvar_set with a JSON array like '["a","b"]'). Returns null for scalar string values.
| Name | Required | Description | Default |
|---|---|---|---|
| var_path | Yes | Full path to the variable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It explains the return behavior for scalar values (null), which is a meaningful behavioral trait beyond the schema. It could additionally clarify error behavior for nonexistent paths, but for a simple getter this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly written sentences with no filler. The purpose is front-loaded, followed by the key usage constraint and the edge-case return behavior. Every sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter getter with full schema coverage and no output schema, the description provides enough context: what the tool does, what input it requires semantically, and what happens in a common edge case. It slightly underspecifies the exact return value for valid arrays, but 'size' reasonably implies a count.
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 already describes var_path as 'Full path to the variable', achieving 100% coverage. The description adds value by specifying that the path must point to an ICCAP_ARRAY variable, which clarifies what kind of variable the parameter should reference. This goes beyond the generic schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation ('Get the size') on a specific resource ('ICCAP_ARRAY type variable'), and it immediately distinguishes itself from generic variable getters by clarifying the required value type. This clearly separates it from sibling getters like mvar_get and tablevar_get.
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 clear context for when to use the tool: only for variables holding an ICCAP_ARRAY value, such as those set via mvar_set with a JSON array. It also provides an exclusion by noting scalar string values return null, though it does not explicitly name an alternative tool for non-array variables.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.2.3- Added
plot_get_fields - Changed
plot_setup3 fields changed- added
Input schema / properties / data_setAdded value: +{ + "description": "Data-set source for HISTOGRAM / CDF PLOT. Optional; falls back to y_data[0].", + "type": "string" +} - changed
Input schema / properties / object_type / descriptionPrevious value: -"Set to 'Plot' when a Transform with the same name exists, to avoid IC-CAP hang."New value: +"Reserved; plot_setup always creates a Plot. Omit or pass 'Plot'." - changed
Input schema / properties / y_data / descriptionPrevious value: -"Trace data source names. Maps to 'Y Data' (XY/SCATTER), 'Smith Data' (SMITH), 'Polar Data' (POLAR), 'RI Data' (RI)"New value: +"Trace data source names. Maps to 'Y Data 0..N' (XY), 'Smith/Polar/RI Data 0..N', single 'Y Data' (SCATTER, only first item used), or 'Data-set' (HISTOGRAM/CDF, first item used when data_set is omitted)"
- Changed
tablevar_exists1 field changed- added
Input schema / properties / object_typeAdded value: +{ + "description": "Disambiguation hint for name conflicts. Unset probes the untyped path (non-Plot object on conflict paths); 'Plot' probes the Plot side through an automatic rename-aside transaction when a conflict exists.", + "enum": [ + "Transform", + "Plot" + ], + "type": "string" +}
- Changed
tablevar_get1 field changed- changed
Input schema / properties / object_type / descriptionPrevious value: -"Disambiguation hint for Transform/Plot name conflicts. Unset or 'Transform' reads the Transform (safe default on conflict paths). 'Plot' only succeeds when no conflict exists: with a conflict the C API cannot reach Plot fields and the call fails with ICCAP_FIELD_NOT_APPLICABLE (rename the Plot first to read Plot fields)."New value: +"Disambiguation hint for name conflicts. Unset reads the sole owner (and defaults to the Transform on Transform/Plot conflicts). 'Plot' reads the Plot; on conflict paths this runs inside an automatic rename-aside transaction."
- Changed
tablevar_set1 field changed- changed
Input schema / properties / object_type / descriptionPrevious value: -"Disambiguation hint. Unset or 'Transform' writes the Transform (safe default on conflict paths). 'Plot' only succeeds without a name conflict; with a conflict the C API cannot reach Plot fields."New value: +"Disambiguation hint. Unset writes the sole owner (and defaults to the Transform on Transform/Plot conflicts). 'Plot' writes the Plot; on conflict paths this runs inside an automatic rename-aside transaction."
127 tool updates
v0.2.2- First observed
dpar_create - First observed
dpar_exists - First observed
dpar_get - First observed
dpar_set - First observed
dut_create - First observed
dut_get_dpars - First observed
dut_get_dvars - First observed
dut_get_setups - First observed
dvar_create - First observed
dvar_get - First observed
dvar_set - First observed
iccap_error_dialog_get - First observed
iccap_health - First observed
iccap_job_cancel - First observed
iccap_job_get - First observed
iccap_job_list - First observed
iccap_job_logs - First observed
iccap_session_select - First observed
iccap_sessions_list - First observed
iccap_status_get - First observed
input_B - First observed
input_create - First observed
input_get_data - First observed
input_get_df - First observed
input_get_field - First observed
input_get_fields - First observed
input_get_length - First observed
input_get_modedict - First observed
input_get_sweepdict - First observed
input_get_type - First observed
input_M - First observed
input_S - First observed
input_set_data - First observed
input_set_field - First observed
instrvar_exists - First observed
instrvar_get - First observed
instrvar_set - First observed
ivar_create - First observed
ivar_get - First observed
ivar_set - First observed
macro_create - First observed
macro_execute - First observed
macro_get_text - First observed
macro_set_text - First observed
main_get_child - First observed
main_get_ivars - First observed
main_get_models - First observed
main_get_valof - First observed
main_save - First observed
model_create - First observed
model_export_structure - First observed
model_get_circuit - First observed
model_get_duts - First observed
model_get_macros - First observed
model_get_mpars - First observed
model_get_mvars - First observed
model_set_circuit - First observed
mpar_exists - First observed
mpar_get - First observed
mpar_set - First observed
mpar_set_bounds - First observed
mvar_create - First observed
mvar_get - First observed
mvar_set - First observed
object_child_names_of_type - First observed
object_copy - First observed
object_create - First observed
object_delete - First observed
object_delete_children - First observed
object_exist - First observed
object_find_child_var - First observed
object_find_var - First observed
object_get_child - First observed
object_get_child_objects - First observed
object_get_fullname - First observed
object_get_path - First observed
object_get_precision - First observed
object_get_val - First observed
object_get_valof - First observed
object_rename - First observed
object_set_val - First observed
optimizer_setup - First observed
output_create - First observed
output_get_data - First observed
output_get_df - First observed
output_get_field - First observed
output_get_fields - First observed
output_get_length - First observed
output_get_modedict - First observed
output_set_field - First observed
plot_capture_window - First observed
plot_display - First observed
plot_setup - First observed
plot_show_absolute_error - First observed
plot_show_relative_error - First observed
project_open - First observed
setup_create - First observed
setup_export_mdm - First observed
setup_get_info - First observed
setup_get_inputs - First observed
setup_get_length - First observed
setup_get_outputs - First observed
setup_get_plots - First observed
setup_get_svars - First observed
setup_get_transforms - First observed
setup_import_mdm - First observed
setup_measure - First observed
setup_simulate - First observed
svar_create - First observed
svar_get - First observed
svar_set - First observed
tablevar_exists - First observed
tablevar_get - First observed
tablevar_set - First observed
transform_allocate - First observed
transform_create - First observed
transform_execute - First observed
transform_get_data - First observed
transform_get_df - First observed
transform_get_fields - First observed
transform_get_funcdict - First observed
transform_get_function - First observed
transform_get_length - First observed
transform_get_optim_field - First observed
transform_set_function - First observed
transform_set_optim_field - First observed
var_get_table_size
TDQS
Scored across 128 tools
Each tool has a clearly distinct purpose. Even with many similar getters/setters for different object types, the prefixes (mvar, dvar, svar, etc.) disambiguate them. Convenience wrappers like input_M/S/B are explicitly documented as equivalents to input_get_data with different msb flags, avoiding confusion.
Naming follows a consistent snake_case verb_noun pattern with object-type prefixes (object_, model_, dut_, setup_, input_, output_, transform_, plot_, macro_, mvar_, etc.). All tools adhere to this convention, with occasional compound names like 'object_get_fullname' and 'iccap_job_cancel' that still fit the pattern.
128 tools is far above the 25+ threshold for 'too many'. While IC-CAP is a complex domain requiring many operations, the sheer number overwhelms the agent's ability to select the right tool efficiently, risking misselection and cognitive overload.
The tool surface appears comprehensive for the IC-CAP domain: it covers creation, deletion, renaming, copying, inspection, and execution for all major object types (Model, DUT, Setup, Input, Output, Transform, Plot, Macro, variables, parameters). It also includes simulation, measurement, data import/export, session management, job control, and error handling, leaving no obvious dead ends.
Maintenance
Related MCP Connectors
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Discover and call AI agents via MCP. Supports A2A agents and platform agents with async tasks.
Agent communication platform for agent to agent messaging via MCP. Messages, channels, skills.
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables interaction with the AGNTCY multi-agent network through MCP, providing tools for agent registration, discovery, and messaging using ACP and SLIM protocols.7MIT
- AlicenseBqualityCmaintenanceEnables AI agents to automate COMSOL Multiphysics simulations, including model management, geometry building, physics configuration, meshing, solving, and results visualization through the MCP protocol.78MIT
- AlicenseCqualityDmaintenanceEnables AI agents to control Ansys Electronics Desktop (HFSS, Maxwell, Q3D, etc.) using MCP tools for simulation automation.10043PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to automate COMSOL Multiphysics simulations, including model management, geometry building, physics configuration, meshing, solving, and results visualization via the MCP protocol.MIT