zemax-mcp
Automates Ansys Zemax OpticStudio through ZOS-API, exposing operations for sequential and non-sequential optical systems, analysis, optimization, glass, tolerancing, configuration, and lifecycle management.
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., "@zemax-mcpoptimize the current system for minimum spot size"
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.
zemax-mcp
A Windows-only Model Context Protocol (MCP) server for automating Ansys Zemax OpticStudio through ZOS-API.
zemax-mcp exposes sequential, non-sequential, analysis, optimization, glass, tolerancing, configuration, and lifecycle operations to MCP clients such as Cherry Studio, Claude Desktop, Claude Code, and other clients that can launch a local stdio server.
Project status: alpha and offline-first. Public schemas, catalog coverage, import safety, and fake-backend behavior are tested without OpticStudio. A registered tool is not necessarily live-verified against ZOS-API; consult the capability status before relying on it in production.
Contents
Related MCP server: mcp-opentym
What this project does
The package separates the public JSON/MCP surface from the proprietary .NET runtime. Source inspection, packaging, CI, catalog generation, and offline tests therefore remain redistributable and runnable without Ansys software. Live optical operations load Python.NET and the locally installed ZOS-API assemblies only when needed.
The public interface is maintained in the checked-in tool registry and capability manifest. Each tool has an explicit implementation and evidence status so users can distinguish live-verified behavior from offline-tested or scaffolded functionality.
Current MCP surface
The source-derived catalog currently contains:
Surface or status | Count |
Registered tools | 143 |
MCP resources | 3 |
MCP prompts | 3 |
Production handlers | 131 |
Live-verified tools | 34 |
Offline-implemented tools | 97 |
Scaffolded tools | 11 |
Unsupported tools | 1 |
The 131 production handlers consist of 34 tools with recorded live evidence and 97 tools implemented and tested offline. The intentionally unsupported tool is zemax_eval.
Capability statuses mean:
live-verified: exercised successfully against a documented OpticStudio/API environment.offline-implemented: implemented and tested with fakes or offline tests, but not proven against a live ZOS-API environment.scaffolded: its public name and contract are cataloged, but execution is not implemented.unsupported: intentionally unavailable, with the reason recorded in the catalog.
The server also provides these resources:
zemax://catalog/manifestzemax://catalog/capabilitieszemax://session/status
And these workflow prompts:
zemax_analyze_systemzemax_optimize_systemzemax_build_nsc_system
Inspect the source-of-truth report with:
uv run zemax-mcp manifest
uv run zemax-mcp report --checkSee Tool coverage, tool-coverage.json, and the curated live test report.
Prerequisites
Offline installation, development, and CI
Windows 10 or Windows 11, 64-bit.
CPython 3.11 or 3.12, 64-bit.
uv.A compatible .NET runtime for Python.NET, normally the Windows .NET Framework runtime available on supported OpticStudio workstations.
Git, if cloning the repository instead of downloading a ZIP archive.
Confirm that the commands are available:
python --version
git --version
uv --versionLive OpticStudio use
Live operations additionally require:
A locally installed, ZOS-API-capable version of Ansys Zemax OpticStudio.
A valid OpticStudio/API license and an available license seat.
Access to the ZOS-API assemblies installed with OpticStudio.
For Interactive Extension mode, a running OpticStudio instance configured to accept the extension connection.
Permission under your Ansys license and organizational policy to perform the requested automation.
This package does not include, grant, emulate, or bypass OpticStudio or ZOS-API licensing.
Download from GitHub
The GitHub repository is:
https://github.com/YonggangG/Zemax_MCP_Server
Option 1: Clone with Git
Install Git and uv first, then verify that both commands are available:
winget install --id Git.Git --exact --source winget
winget install --id astral-sh.uv --exact --source winget
git --version
uv --version
git clone https://github.com/YonggangG/Zemax_MCP_Server.git
cd Zemax_MCP_ServerIf either command is still unavailable after installation, close and reopen PowerShell before continuing.
To update an existing clone later:
git pull --ff-only
uv sync --frozenOption 2: Download the source ZIP
Download the current main branch from:
https://github.com/YonggangG/Zemax_MCP_Server/archive/refs/heads/main.zip
Extract the ZIP, open PowerShell in the extracted directory, and follow the installation instructions below.
Option 3: Use a GitHub Release
Audited wheels and source archives may be attached to:
https://github.com/YonggangG/Zemax_MCP_Server/releases
The repository source is the normal choice for development and for the checked-in MCP client examples. The dist/ folder is generated build output and is not the GitHub source repository. Do not upload an old local dist/ blindly; rebuild and inspect release artifacts before publishing them.
Install and validate
Minimal runtime installation from a checkout
From the repository root:
uv sync --frozen
uv run zemax-mcp version
uv run zemax-mcp doctor
uv run zemax-mcp report --checkStart the default stdio server with:
uv run zemax-mcp serveThe server waits for an MCP client on standard input/output. It may appear idle when started directly in a terminal; that is normal.
Development installation
Install all optional and development dependencies:
uv sync --frozen --all-extras --devOptional direct executable
After uv sync, the checkout contains a console executable at:
C:\path\to\Zemax_MCP_Server\.venv\Scripts\zemax-mcp.exeThis absolute executable path is useful when a GUI client cannot find uv through its inherited PATH. Validate it with:
.\.venv\Scripts\zemax-mcp.exe version
.\.venv\Scripts\zemax-mcp.exe doctorWhat doctor checks
zemax-mcp doctor checks the Python version, installed MCP SDK, expected MCP SDK API import, non-empty tool catalog, CLR-free session import, and host platform information.
It does not prove that:
ZOS-API assemblies can be loaded;
an OpticStudio license is available;
standalone or Interactive Extension connection succeeds;
a particular lens can be opened or modified;
every registered tool works in the installed OpticStudio version.
For an actual live connectivity test, start the server from an MCP client and call zemax_connect.
Run the server
CLI commands
uv run zemax-mcp version
uv run zemax-mcp doctor
uv run zemax-mcp doctor --json
uv run zemax-mcp manifest
uv run zemax-mcp manifest --compact
uv run zemax-mcp report
uv run zemax-mcp report --check
uv run zemax-mcp serveCalling zemax-mcp without a subcommand also starts the stdio server.
Transports
Transport | Example | Intended use |
stdio |
| Default and recommended for Cherry Studio, Claude Desktop, and Claude Code. |
SSE |
| Local clients that specifically require the legacy SSE transport. |
Streamable HTTP |
| Local HTTP MCP clients. |
The checked-in client examples use stdio. SSE and Streamable HTTP are supported by CLI routing but are not the primary live-evidence transport. They do not add authentication or TLS; keep them bound to 127.0.0.1 unless a reviewed gateway supplies access control, encryption, and auditing.
Configure MCP clients
Use absolute Windows paths. For stdio, MCP JSON-RPC owns standard input/output; diagnostics must not be inserted into stdout. Avoid wrapping the server in PowerShell, cmd /c, or a pipeline unless the client specifically requires a shell.
Ready-to-edit templates are in examples/:
Cherry Studio
In Settings → MCP Servers, add a local command/stdio server:
Name:
zemaxType/transport:
stdioor local commandCommand:
uvArguments:
--directory,C:\path\to\Zemax_MCP_Server,run,zemax-mcp,serveEnvironment: at minimum, choose the intended connection mode
Equivalent JSON-shaped configuration:
{
"mcpServers": {
"zemax": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\Zemax_MCP_Server",
"run",
"zemax-mcp",
"serve"
],
"env": {
"ZEMAX_MCP_CONNECTION_MODE": "standalone",
"ZEMAX_MCP_INSTALL_DIR": "C:\\Program Files\\Ansys Zemax OpticStudio 2025 R1.01",
"ZEMAX_MCP_ZOSAPI_PATH": "C:\\Users\\yonggang\\Documents\\Zemax\\ZOS-API\\Libraries\\ZOSAPI_NetHelper.dll"
}
}
}
}If Cherry Studio cannot resolve uv, set command to the absolute C:\\path\\to\\Zemax_MCP_Server\\.venv\\Scripts\\zemax-mcp.exe path and set args to ["serve"].
Verify the paths before saving:
ZEMAX_MCP_INSTALL_DIRandZEMAX_MCP_ZOSAPI_PATHare examples for one workstation. Confirm the OpticStudio version, Windows user name, and DLL location on your computer, then replace these values as needed.
Cherry Studio settings example
The screenshot below shows a connected local stdio configuration. Replace the project, OpticStudio, and ZOS-API paths with locations on your own Windows workstation.

Save the entry, enable it, and review the server log if the connection indicator does not become ready.
Claude Desktop
On Windows, edit the per-user configuration file, normally:
%APPDATA%\Claude\claude_desktop_config.jsonAdd the server under mcpServers:
{
"mcpServers": {
"zemax": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\Zemax_MCP_Server",
"run",
"zemax-mcp",
"serve"
],
"env": {
"ZEMAX_MCP_CONNECTION_MODE": "standalone",
"ZEMAX_MCP_INSTALL_DIR": "C:\\Program Files\\Ansys Zemax OpticStudio 2025 R1.01",
"ZEMAX_MCP_ZOSAPI_PATH": "C:\\Users\\yonggang\\Documents\\Zemax\\ZOS-API\\Libraries\\ZOSAPI_NetHelper.dll"
}
}
}
}Verify the paths before saving:
ZEMAX_MCP_INSTALL_DIRandZEMAX_MCP_ZOSAPI_PATHare examples for one workstation. Confirm the OpticStudio version, Windows user name, and DLL location on your computer, then replace these values as needed.
Alternatively, set command to the absolute .venv\Scripts\zemax-mcp.exe path and set args to ["serve"].
Restart Claude Desktop completely after changing the configuration. If uv works in PowerShell but not in Claude Desktop, use where.exe uv and place the returned absolute uv.exe path in command, or use the direct executable pattern above.
Claude Code
Register the checkout as a local stdio server:
claude mcp add --transport stdio zemax -- uv --directory C:\path\to\Zemax_MCP_Server run zemax-mcp serve
claude mcp listOr register the direct executable:
claude mcp add --transport stdio zemax -- C:\path\to\Zemax_MCP_Server\.venv\Scripts\zemax-mcp.exe serve
claude mcp listFor a project-shared .mcp.json, start with examples/claude-code.mcp.json. Do not commit user-specific absolute paths, license information, customer paths, or secrets.
Other stdio MCP clients
Use one of these equivalent launch patterns:
uv --directory C:\path\to\Zemax_MCP_Server run zemax-mcp serveor:
C:\path\to\Zemax_MCP_Server\.venv\Scripts\zemax-mcp.exe serveMap the command, argument list, and environment variables into the client’s local-process/stdio MCP configuration format.
Runtime configuration
Environment variables are the stable way to configure desktop stdio clients:
Variable | Meaning | Default |
| OpticStudio installation root | auto-discover |
| ZOS-API directory or full path to | auto-discover |
|
|
|
| Interactive Extension instance ID |
|
| Internal serialized ZOS worker name |
|
| Explicit Glasscat search root(s), separated by the Windows path separator | unset |
| Zemax root whose | unset |
| Must be | unset |
Discovery checks explicit configuration first, followed by common Windows registry entries and known Program Files locations. If discovery fails, set ZEMAX_MCP_ZOSAPI_PATH explicitly.
Standalone versus Interactive Extension
Mode | Behavior | Recommended use |
| Starts and owns a headless OpticStudio application through ZOS-API. The server may close the application it created. | Reproducible automation jobs and isolated MCP sessions. |
| Borrows a user-started OpticStudio application through Interactive Extension. The server must not close the borrowed application by default. | Inspecting or modifying a system already open in the OpticStudio UI. |
For extension mode, enable Interactive Extension in OpticStudio before the MCP server connects, then use:
{
"ZEMAX_MCP_CONNECTION_MODE": "extension",
"ZEMAX_MCP_INSTANCE_ID": "0"
}Instance IDs are installation/session specific. 0 selects the first or default available instance.
Architecture
MCP transport / CLI
|
Tool registry + source-derived manifest
|
Pydantic contracts and service layer
|
Process-wide serialized ZOS executor
|
ZOS backend protocol
/ \
Fake backend Python.NET + local ZOS-API assembliesKey design rules:
Public modules and catalog inspection remain importable without loading OpticStudio or initializing Python.NET.
Proprietary assembly loading occurs only in the dedicated ZOS execution path.
ZOS-API calls are serialized because automation objects are stateful and thread-sensitive.
Standalone applications are owned; Interactive Extension applications are borrowed.
Handles prevent raw .NET objects from leaking into JSON/MCP contracts.
Fake backends support deterministic offline contract and lifecycle tests.
See Architecture.
Testing and development
Run the public offline checks from the repository root:
uv sync --frozen --all-extras --dev
uv run zemax-mcp report --check
uv run ruff format --check .
uv run ruff check .
uv run mypy src tests
uv run pytest -m "not live_zemax" --cov=zemax_mcp --cov-report=term-missing --cov-report=xml
uv build
uv run python scripts/verify_dist_contents.py distLive tests require both the marker and an explicit opt-in on a licensed workstation; they never run in public CI:
$env:ZEMAX_MCP_LIVE = '1'
uv run pytest -m live_zemaxReview live tests before running them. They may launch OpticStudio, consume a license seat, create output, or modify the active disposable system. See Testing.
Security and proprietary files
This server can open, modify, optimize, and save optical systems. Treat MCP access as local automation authority over the connected OpticStudio environment. Do not enable the server for untrusted users or prompts without suitable process, filesystem, network, and client controls.
This repository and its Python distributions do not include or redistribute ZOS-API DLLs, OpticStudio executables, glass catalogs, sample lens files, license material, or other Ansys/Zemax assets. At runtime the package discovers assemblies from the user’s licensed local installation.
Do not copy proprietary files into the repository, wheels, source archives, CI artifacts, examples, or bug reports. See SECURITY.md and THIRD_PARTY_NOTICES.md.
Troubleshooting
Start with:
uv run zemax-mcp doctor
uv run zemax-mcp doctor --json
uv run zemax-mcp report --checkSee Troubleshooting for uv path resolution, missing assemblies, Python/.NET bitness mismatches, unavailable licenses, Interactive Extension setup, stdio contamination, and stale client processes.
Roadmap
See Roadmap. Registration and offline implementation are not substitutes for expanding repeatable live-verification coverage across supported OpticStudio versions and connection modes.
License
MIT. See LICENSE.
Ansys, Zemax, OpticStudio, ZOS-API, Claude, and Cherry Studio are trademarks or products of their respective owners. This project is not endorsed by or affiliated with those vendors unless explicitly stated.
Available Tools
143 toolszemax_add_configuration_operandAdd Configuration OperandD
Add an MCE operand.
| Name | Required | Description | Default |
|---|---|---|---|
| param1 | No | Parameter 1 | |
| param2 | No | Parameter 2 | |
| param3 | No | Parameter 3 | |
| insertAt | No | Row; 0 appends | |
| operandType | Yes | THIC, CURV, CONI, PRAM, MOFF, and so on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it says nothing: not what state is mutated, whether the operand is appended or inserted (beyond the schema's insertAt), whether permissions or an existing configuration are required, or whether the change is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is short and front-loaded, but it is not concise in the useful sense — it is under-specified. It contains no wasted words because it contains almost no content at all.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5-parameter mutation tool with no annotations and no output schema, a five-word description is wholly inadequate. Nothing tells the agent how to call it correctly or what the effect of a successful call will be.
Complex tools with many parameters or behaviors need more documentation. 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 five parameters are already documented in the schema, which sets the baseline at 3. The description adds no parameter detail (nothing about valid operandType values, what param1-3 mean per operand type, or insertAt semantics), so it neither helps nor hurts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Add an MCE operand" essentially restates the tool name (add + configuration operand); the only new information is that MCE means the multi-configuration editor. It makes no attempt to distinguish itself from the near-identical sibling zemax_mce_add_operand, or from zemax_add_operand (merit-function operands), which is exactly the ambiguity an agent must resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no routing versus zemax_mce_add_operand, zemax_add_operand, or zemax_mce_add_config. The agent is left to guess whether a configuration must already exist or whether an alternative tool is the correct one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_add_material_catalogAdd Material CatalogB
Add a material catalog to the current optical system.
| Name | Required | Description | Default |
|---|---|---|---|
| catalogName | Yes | Material catalog name without the .agf extension |
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 not state whether the catalog is loaded from disk or generated, whether it requires the file to exist, what happens if the catalog is already added, or what the return is. 'Add' implies mutation, but no side effects or state changes are described.
Agents need to know what a tool does to the 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, front-loaded sentence with no wasted words. It directly states the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no output schema, and no described side effects, the description is insufficient. It should explain what adding a catalog entails (e.g., it becomes available for glass selection), whether it modifies the current system, and any prerequisites. As is, it leaves the agent with only the schema and tool name.
Complex tools with many parameters or behaviors need more documentation. 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% (the single parameter 'catalogName' is described as 'Material catalog name without the .agf extension'). The description adds no additional parameter information, but with one parameter and full schema coverage, a baseline of 4 is appropriate for zero additional need.
Input schemas describe structure but not intent. Descriptions should explain 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+resource: 'Add a material catalog to the current optical system.' This is precise and distinguishes the tool from its direct sibling zemax_remove_material_catalog and other catalog tools like zemax_get_glass_catalogs or zemax_export_glass_catalog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description does not say when to add a catalog versus when to use existing catalogs, or what conditions require this action. It also does not mention the alternative (zemax_remove_material_catalog) or refer to any prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_add_operandAdd OperandC
Add an optimization operand to the merit function.
| Name | Required | Description | Default |
|---|---|---|---|
| int1 | No | Integer parameter 1 | |
| int2 | No | Integer parameter 2 | |
| data1 | No | Data parameter 1 | |
| data2 | No | Data parameter 2 | |
| data3 | No | Data parameter 3 | |
| data4 | No | Data parameter 4 | |
| data5 | No | Data parameter 5 | |
| data6 | No | Data parameter 6 | |
| target | No | Target value | |
| weight | No | Weight | |
| insertAt | No | Row; 0 appends | |
| operandType | Yes | Operand mnemonic such as EFFL, MTFT, or RSCE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states that an operand is added, but does not disclose validation behavior, duplicate handling, persistence, or any required permissions/connection state. This is minimal mutation disclosure only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler. It is appropriately terse, though it offers no structural aids for navigating the 12-parameter complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 12-parameter mutation tool with no annotations and no output schema, yet the description is only one sentence. It does not explain valid operand mnemonics, insert behavior, defaults, or how to discover operands via siblings, leaving the definition inadequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 12 parameters, even if many descriptions are generic. The description adds no parameter-level meaning beyond the schema, which is the baseline 3 when structured fields carry the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ("Add") and resource ("optimization operand") plus the context that it is added to the merit function. It clearly distinguishes the core action from read/remove tools, but it does not explicitly differentiate itself from close siblings like zemax_add_configuration_operand or zemax_mce_add_operand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor are there prerequisites such as needing an open system or connected session. The intended use is only implied by the phrase "merit function."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_add_surfaceAdd SurfaceC
Insert a new sequential surface.
| Name | Required | Description | Default |
|---|---|---|---|
| radius | No | Radius; 0 is planar | |
| comment | No | Surface comment | |
| insertAt | No | Position; 0 appends before image | |
| material | No | Glass name; empty means air | |
| thickness | No | Thickness to the next surface |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It states that a surface is inserted but does not disclose side effects, permissions required, reversibility, or whether an active Zemax session is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple insertion tool, though its brevity contributes to gaps 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 five-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits usage context, behavioral details, and any indication of prerequisites or return behavior, leaving critical context 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 100%, so the schema fully documents all five parameters. The description adds no additional meaning beyond what the schema already provides, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Insert') and resource ('a new sequential surface'), and the qualifier 'sequential' distinguishes it from non-sequential siblings like zemax_nsc_add_object and zemax_nsc_insert_object. However, it does not differentiate itself from other sequential insertion tools such as zemax_lde_insert_surface or zemax_lde_set_surface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The word 'sequential' implies a context, but there is no explicit when/when-not or mention of sibling tools like zemax_lde_insert_surface.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_analysis_seriesAnalysis SeriesC
Run an arbitrary series analysis and return decimated curves.
| Name | Required | Description | Default |
|---|---|---|---|
| maxPoints | No | Approximate max points per curve | |
| analysisType | Yes | ZOSAPI AnalysisIDM member |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavior. It mentions decimated curves but doesn't explain what 'series' means (e.g., parameter sweeps), what the output structure is, performance implications, or any side effects. The omission of key behavioral context is significant for an analysis 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, concise sentence that front-loads the action and result. It could be slightly more informative without becoming verbose, but efficiency is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complexity of series analysis and the lack of annotations or output schema, the description is insufficient. It doesn't clarify what 'series' entails, what inputs are needed beyond analysisType, or what the output looks like, leaving critical gaps 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 parameters are fully documented in the schema. The description adds no parameter-specific details beyond the schema, which is acceptable given the baseline of 3 when coverage is high.
Input schemas describe structure but not intent. Descriptions should explain 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 verb ('Run') and resource ('arbitrary series analysis'), indicating an analysis-runner. However, it doesn't distinguish from sibling tools like zemax_run_analysis or the many specialized analysis tools (zemax_fft_mtf, zemax_ray_fan, etc.), leaving ambiguity about when this general series runner is preferred over specific analyzers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the numerous analysis-specific siblings. A user must infer that it's for series analyses not covered by dedicated tools, but this is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_batch_ray_traceBatch Ray TraceC
Trace a batch of normalized sequential rays.
| Name | Required | Description | Default |
|---|---|---|---|
| rays | Yes | [Hx,Hy,Px,Py] rays | |
| rayType | No | Real or Paraxial | Real |
| toSurface | No | -1 means image | |
| wavelength | No | Wavelength number |
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, yet it is a single terse sentence. It discloses nothing about return values, whether a lens/system must be loaded first, error behavior for malformed rays, or any connection 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 single sentence is front-loaded and free of filler, but its brevity reflects under-specification rather than efficient conciseness for a 4-parameter ray-tracing 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?
With no annotations, no output schema, and a domain-specific tool, the description is far too thin. It omits what is returned, whether an open Zemax instance is required, and how the batch input is interpreted or validated.
Complex tools with many parameters or behaviors need more documentation. 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 every parameter including the [Hx,Hy,Px,Py] format and the -1 image convention. The description adds no syntax or format meaning beyond what the schema provides, so the 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?
States a specific verb (trace) and resource (batch of normalized sequential rays), and the word 'sequential' meaningfully distinguishes it from the non-sequential siblings like zemax_nsc_ray_trace. However, it never explicitly references the sibling it most overlaps with (zemax_ray_trace), so the agent must infer the batch-vs-single 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 on when to use this over zemax_ray_trace or zemax_nsc_ray_trace. The description never states the context or conditions that select batch tracing, nor any prerequisites such as an open system or active connection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_cardinal_pointsCardinal PointsC
Calculate focal lengths, principal planes, and other cardinal points.
| Name | Required | Description | Default |
|---|---|---|---|
| wavelength | No | Wavelength number |
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. 'Calculate' implies a read-only computation, but the description does not say whether it acts on the currently loaded system, requires an active connection/file, or how the wavelength selection affects results. This leaves significant gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the key output types front-loaded. Slightly under-specified rather than bloated, and 'other cardinal points' is a touch vague, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should do more heavy lifting. It lists the main outputs but omits preconditions (loaded system, active connection) and does not indicate the return format, leaving the agent to infer how to call and interpret the 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?
Schema description coverage is 100% and the single wavelength parameter is documented in the schema. The description adds nothing about the parameter (e.g., that the wavelength number indexes the system's wavelength list), 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?
States a specific verb (Calculate) and resource (cardinal points) with examples of what is returned: focal lengths, principal planes. An agent can distinguish this analysis from siblings like zemax_seidel_coefficients or zemax_rms_spot. However, it does not name or contrast with any sibling explicitly, 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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The agent is not told when cardinal-point analysis is the right choice versus other first-order or aberration analyses in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_chromatic_focal_shiftChromatic Focal ShiftB
Calculate longitudinal chromatic focal shift versus wavelength.
| 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 behavioral burden and falls short: it does not say the tool is a read-only analysis, what system state it requires, or what happens if only one wavelength is configured. It adds essentially no behavioral context beyond the one-line purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity leaves little room for the usage and behavioral context an agent would need.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 analysis tool with no annotations and no output schema, the description covers the minimum but omits what the result looks like (shift values vs wavelength) and the preconditions for a meaningful run. It is adequate but leaves clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document and the baseline of 4 applies. Nothing in the description misrepresents the (empty) input contract.
Input schemas describe structure but not intent. Descriptions should explain 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 (Calculate) and a precise analysis quantity (longitudinal chromatic focal shift vs wavelength), which clearly identifies the tool's function. It does not, however, distinguish itself from closely related siblings such as zemax_lateral_color or zemax_longitudinal_aberration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 run this analysis versus the many related aberration/color analyses in the sibling list. No prerequisites (e.g. multiple wavelengths must be defined in the system) or alternative tools are mentioned, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_close_fileClose FileA
Close the current optical system while retaining the application connection.
| Name | Required | Description | Default |
|---|---|---|---|
| save | Yes | Save the current system if needed before closing |
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 disclosure burden. It usefully states that the application connection is retained, which is a meaningful side-effect distinction. However, it omits other consequential behavior such as whether unsaved changes are discarded when save is false and whether the closing action is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. The scoping detail about retaining the connection is included efficiently in the same sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter close operation with no output schema, the description covers the core action and the key connection-retention behavior. It is nearly complete, though slightly more context on usage alternatives or unsaved-change behavior 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 description coverage is 100%, so the single 'save' parameter is already documented in the schema. The description does not add any syntax, default, or side-effect details about the parameter, which is the expected baseline when the schema already covers it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb-resource pair: 'Close the current optical system.' It also distinguishes the action from disconnecting by stating the application connection is retained, which separates it from sibling tools such as zemax_disconnect and zemax_new_system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'while retaining the application connection' implies the intended context: close the current model without terminating the session. However, it does not explicitly state when to choose this over zemax_save_file, zemax_open_file, zemax_new_system, or zemax_disconnect, so alternates are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_connectConnectC
Connect to OpticStudio in standalone or interactive-extension mode.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Connection mode | standalone |
| instanceId | No | Interactive Extension instance ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the modes but does not state whether this must be called before other tools, what happens if a connection already exists, whether the connection persists, or if a disconnect is required afterward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a simple connection tool and immediately communicates the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a connection tool with no annotations, no output schema, and no usage guidance, the description is too sparse. It omits essential context such as the connection lifecycle, prerequisites for calling other tools, and what the connection enables.
Complex tools with many parameters or behaviors need more documentation. 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 parameters. The description repeats the mode options but adds no extra meaning or syntax beyond what the schema provides, which sets the baseline at 3.
Input schemas describe structure but not intent. Descriptions should explain 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 ("Connect") and resource ("OpticStudio"), and specifies the available modes. It is specific enough for an agent to understand the operation, but it does not distinguish itself from siblings like zemax_disconnect or zemax_status beyond the obvious connection semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, when not to use it, or what prerequisites are needed. It also does not explain which mode to choose in which situation, 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.
zemax_constrained_optimizeConstrained OptimizeC
Run the custom bound-constrained Levenberg-Marquardt optimizer.
| Name | Required | Description | Default |
|---|---|---|---|
| delta | No | Finite-difference step | |
| initialMu | No | Initial damping | |
| maxRestarts | No | Fresh-Jacobian restarts | |
| maxIterations | No | Maximum iterations | |
| useBroydenUpdate | No | Use rank-1 Jacobian updates |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it says nothing beyond the tool name. It does not state that optimization mutates the system (variables/merit function), whether runs are long or blocking, what happens on non-convergence, or whether prior state is recoverable. This is a significant gap for a state-mutating 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?
It is a single front-loaded sentence with no padding, but at the cost of under-specification rather than true efficiency — there is room for a clause on when to choose this over zemax_optimize without bloat. Concise but too sparse to be 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?
With no annotations, no output schema, and a mutation-heavy operation, the description should explain at least what state is affected and when to prefer it over the sibling optimizers. As written it is inadequate for an agent to invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all five numeric tuning parameters (delta, initialMu, maxRestarts, maxIterations, useBroydenUpdate) are documented in the schema itself. The description adds no meaning beyond the schema, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Run') and a specific optimizer ('custom bound-constrained Levenberg-Marquardt'), which is more precise than a generic 'optimize'. However, it offers no differentiation from the many sibling optimizers (zemax_optimize, zemax_multistart_optimize, zemax_hammer, zemax_global_search), so an agent cannot tell this apart from them without guessing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this optimizer versus the numerous sibling optimization tools, nor any preconditions (e.g. a merit function must exist, variables must be defined). The single sentence gives no routing guidance at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_delete_configuration_operandDelete Configuration OperandC
Delete an MCE operand row.
| Name | Required | Description | Default |
|---|---|---|---|
| row | Yes | One-based row |
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. 'Delete' implies a destructive, likely irreversible mutation, but the description says nothing about side effects on the multi-configuration editor, row renumbering after deletion, or error behavior for an invalid row index.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with zero filler. It is efficient, though the extreme brevity is part of why behavioral and usage context is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive mutation tool with no annotations and no output schema, the definition is too sparse: it omits what gets deleted, whether the action is reversible, and how failures are surfaced. An agent has only the name and parameter to act on.
Complex tools with many parameters or behaviors need more documentation. 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 'row' parameter is documented as 'One-based row' in the schema, so the description adds no further meaning. Baseline 3 applies when the schema fully documents 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?
States a specific verb (Delete) and resource (MCE operand row), which is enough to separate it from the merit-function operand tools like zemax_remove_operand. However, it does not explicitly distinguish itself from the similarly named add/set configuration operand siblings beyond the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to delete versus modify (zemax_set_configuration_operand_value) or add (zemax_add_configuration_operand), and no note about prerequisites such as needing an active configuration. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_design_lockdownDesign LockdownC
Apply destructive Design Lockdown to an owned disposable sequential system.
| Name | Required | Description | Default |
|---|---|---|---|
| excludePickups | No | Preserve eligible pickups | |
| timeoutSeconds | No | Bounded timeout in seconds | |
| fixModelGlasses | No | Replace model glasses | |
| decimalPrecision | No | Decimal precision 0-15 | |
| confirmDestructive | Yes | Explicitly confirm destructive changes | |
| usePrecisionRounding | No | Round prescription values | |
| convertSDToMaxApertures | No | Convert semi-diameters to maximum apertures |
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 does flag the operation as 'destructive' and scopes it to disposable systems, which is genuinely useful safety context, but it never states what is destroyed or mutated, whether the change is reversible, or what happens to a real production model.
Agents need to know what a tool does to the 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 grammatically complete sentence with zero filler and the destructive qualifier front-loaded, which is structurally clean. However, for a seven-parameter irreversible operation, one sentence is under-sized for the task rather than genuinely economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complex, destructive, seven-parameter mutation with no annotations and no output schema, yet the description omits what the lockdown accomplishes, which settings are affected, and whether results are reversible. An agent would need to infer the entire effect from parameter names alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every one of the seven parameters carries its own inline description (excludePickups, fixModelGlasses, convertSDToMaxApertures, usePrecisionRounding, decimalPrecision, timeoutSeconds, confirmDestructive). The description adds nothing 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 names a verb and a resource, but 'Design Lockdown' is unexplained jargon — an agent learns nothing about what the operation actually changes (freezing variables, replacing model glasses, converting semi-diameters, rounding values). It adds only the adjectives 'destructive' and a scope qualifier ('owned disposable sequential system'), so it largely restates the title rather than describing the effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'owned disposable sequential system' is a precondition hint, implying it should be run only on a copy you can discard, but there is no explicit when-to-use guidance and no mention of any alternative or follow-up tool. No sibling is referenced, and the required confirmDestructive gate is never explained in prose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_diffraction_encircled_energyDiffraction Encircled EnergyC
Calculate FFT diffraction encircled energy versus radius.
| Name | Required | Description | Default |
|---|---|---|---|
| sampling | No | Sampling level 1-6 | |
| useDashes | No | Use dashes reference |
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, yet it says nothing about whether this is a read-only analysis, what it returns, or any computational constraints. For an analysis tool with no annotations and no output schema, this leaves the agent guessing about the result surface.
Agents need to know what a tool does to the 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 waste. It is appropriately sized, though it is terse to the point of under-specifying rather than being elegantly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and no parameter guidance in the description, the definition is thin for a ZEMAX analysis tool whose return format (radius vs. energy table) an agent would want to know. The simple two-parameter schema keeps this from being lower, but key context 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?
Both parameters have 100% schema description coverage ('Sampling level 1-6', 'Use dashes reference'), so the schema does the explanatory work. The description adds nothing about how sampling affects results, which is the baseline for a fully-covered 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 ('Calculate') and resource ('FFT diffraction encircled energy versus radius'), which is specific enough to distinguish it from the sibling zemax_geometric_encircled_energy by virtue of the 'FFT diffraction' qualifier. It stops short of explicitly naming that sibling, so it misses the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 analysis versus the geometric encircled energy sibling or other spot/PSF analyses. The agent must infer the appropriate context from the name alone, which is a significant omission given the large family of analysis tools available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_disconnectDisconnectC
Disconnect cleanly and close an owned OpticStudio application.
| Name | Required | Description | Default |
|---|---|---|---|
| save | No | Save before disconnecting |
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. 'Disconnect cleanly' gestures at graceful teardown but does not say whether the application process is terminated, what happens to unsaved work, whether the connection can be re-established via zemax_connect, or what errors are possible.
Agents need to know what a tool does to the 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, front-loaded with the action and no wasted words. It is efficient, though terse to the point of under-specification rather than genuinely complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 session-terminating tool with zero annotation coverage and no output schema, the definition says nothing about irreversible effects, unsaved-state handling, or the post-disconnect state. An agent cannot tell whether this is a safe, reversible 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 100% and the single optional 'save' flag is already documented as 'Save before disconnecting'. The description adds nothing beyond the schema, so baseline 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?
States a specific verb (disconnect/close) and resource (owned OpticStudio application), and the word 'owned' hints at a scope distinction versus tools like zemax_close_file. It does not explicitly name a sibling to contrast with, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to disconnect versus zemax_close_file, zemax_restart, or simply leaving the session open. The only implicit signal is that this ends a session, which the agent must infer from the word 'disconnect'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_evalEvalC
Advanced backend-defined diagnostic/evaluation escape hatch; disabled unless explicitly allowed.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Backend-specific expression or statement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description must carry the full behavioral burden. It discloses that the tool is disabled unless explicitly allowed, which is useful, but says nothing about side effects, whether the backend code can mutate state, required permissions, error behavior, or security risk despite being an escape hatch for arbitrary backend expressions.
Agents need to know what a tool does to the 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 wording, which is structurally concise. However, its brevity comes at the cost of useful detail, so it is efficient but not maximally effective for such an open-ended tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is an advanced escape hatch with no annotations, no output schema, and arbitrary backend-defined input, the description is materially incomplete. It omits return behavior, failure modes, safety considerations, and when the explicit allowance is required, leaving an agent without enough 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?
Schema description coverage is 100%, and the single 'code' parameter is already documented as 'Backend-specific expression or statement.' The description adds no additional meaning about expected syntax, format, or constraints, so the baseline of 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels the tool as an 'advanced backend-defined diagnostic/evaluation escape hatch,' which largely restates the tool name/title rather than specifying a concrete verb and resource. It does not clarify what backend-defined evaluation actually does or how it differs from the many specific sibling analysis tools, leaving only a vague sense of 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 states a gating condition ('disabled unless explicitly allowed') but gives no guidance on when to use this tool versus alternatives. There is no indication of which situations call for the escape hatch or which sibling tools should be preferred, so the agent gets availability information but not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_export_analysisExport AnalysisB
Export an analysis result as text, bitmap, or structured data.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | text, bmp, json, or csv | text |
| filePath | Yes | Destination path | |
| analysisType | Yes | Analysis identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not explain whether analysis results must already exist, whether the export is idempotent, whether it can overwrite an existing file, or return behavior. It only names the output formats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and the format options included. Nothing extra.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter export tool with no annotations and no output schema, the description is minimal. It conveys the basic operation but omits prerequisites (e.g., an analysis must have been run), overwrite behavior, and return handling. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented in the schema, including the format values. The description adds the format list but nothing beyond the schema. 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?
Clear verb ('Export') and resource ('an analysis result') with the supported output formats enumerated. It doesn't differentiate from siblings like zemax_save_file, but the verb+resource is specific enough for an agent to understand the 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?
No guidance on when to use this vs alternatives such as zemax_run_analysis or zemax_save_file, or when each format is appropriate. The description states what it does but not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_export_glass_catalogExport Glass CatalogC
Export filtered glasses to a new AGF catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| wa | No | Vd weight | |
| wn | No | Nd weight | |
| wp | No | dPgF weight | |
| ndMax | No | Maximum Nd | |
| ndMin | No | Minimum Nd | |
| vdMax | No | Maximum Vd | |
| vdMin | No | Minimum Vd | |
| tceMax | No | Maximum TCE | |
| tceMin | No | Minimum TCE | |
| dpgfMax | No | Maximum dPgF | |
| dpgfMin | No | Minimum dPgF | |
| maxCost | No | Maximum cost | |
| ndTarget | No | Target Nd | |
| vdTarget | No | Target Vd | |
| overwrite | No | Overwrite existing | |
| dpgfTarget | No | Target dPgF | |
| catalogName | Yes | New catalog name without .agf | |
| preferredOnly | No | Only preferred glasses | |
| distanceRadius | No | Maximum distance | |
| sourceCatalogs | Yes | Comma-separated source catalogs | |
| outputDirectory | Yes | Explicit caller-owned output directory outside installed Glasscat directories | |
| maxMeltFrequency | No | Maximum melt frequency | |
| maxWavelengthCoverage | No | Maximum wavelength coverage | |
| minWavelengthCoverage | No | Minimum wavelength coverage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden for a 24-parameter write-to-disk operation, and it says almost nothing. It never mentions overwrite semantics, permission/connection prerequisites, what happens if the directory does not exist, or whether source files are modified; only the outputDirectory schema text hints at a sandboxing constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, and the verb/resource come first. It is arguably under-specified rather than bloated, but as a matter of conciseness there is nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 24 parameters, three required fields, no annotations, and no output schema, one sentence is not enough. The agent gets no picture of the export workflow, the filtering semantics powering the many optional bounds, or the failure modes of writing a catalog file.
Complex tools with many parameters or behaviors need more documentation. 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 24 parameters are already documented at the field level; baseline is 3. The description adds no meaning beyond the schema — notably it does not explain how the weighted parameters (wa, wn, wp) interact the numeric filter bounds, which is the one place prose could have helped.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Export) and resource (filtered glasses) with a concrete artifact (new AGF catalog). An agent can infer this is the catalog-writing counterpart to the filtering tools. It does not, however, distinguish itself from the nearby zemax_filter_glasses or zemax_get_glass_catalogs, leaving the agent to infer that this is the step that persists filtered results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, and no alternative is named. The relationship to zemax_filter_glasses (does this tool filter internally, or only export an already-filtered set?) is left entirely to inference, despite the schema containing a full set of filter parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_fft_mtfFft MtfC
Calculate diffraction FFT MTF curves for all fields.
| Name | Required | Description | Default |
|---|---|---|---|
| sampling | No | Sampling level 1-6 | |
| frequency | Yes | Maximum cycles/mm | |
| wavelength | No | 0 for polychromatic |
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 says the tool calculates curves but omits whether it is read-only, whether it modifies system state, what the return format is, and any permission or setup requirements. For a computation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words, and the core action and scope are front-loaded. It is appropriately sized for a straightforward analysis command.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 explain what result the agent receives (e.g., MTF values per field, plot, or file). It also lacks any when-to-use context in a crowded MTF sibling group. The description is too sparse to fully guide 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%, and each parameter is clearly documented in the schema (sampling level 1-6, frequency max cycles/mm, wavelength 0 for polychromatic). The description adds no extra meaning beyond that, 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?
States a specific verb ('Calculate') and resource ('diffraction FFT MTF curves') and adds the scope 'for all fields', which distinguishes it from the sibling zemax_fft_mtf_vs_field. However, it does not explicitly name or contrast with other MTF siblings (geometric, huygens), so it stops 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 description gives no guidance on when to use this tool versus the many MTF-related siblings such as zemax_geometric_mtf, zemax_huygens_mtf, or zemax_fft_mtf_vs_field. It does not state prerequisites (e.g., system must be loaded) or exclusions. Usage is only implied by the tool name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_fft_mtf_vs_fieldFft Mtf Vs FieldB
Calculate polychromatic FFT MTF versus Y field for up to six frequencies.
| Name | Required | Description | Default |
|---|---|---|---|
| sampling | No | Sampling level 1-6 | |
| frequency1 | No | Spatial frequency 1; 0 skips | |
| frequency2 | No | Spatial frequency 2; 0 skips | |
| frequency3 | No | Spatial frequency 3; 0 skips | |
| frequency4 | No | Spatial frequency 4; 0 skips | |
| frequency5 | No | Spatial frequency 5; 0 skips | |
| frequency6 | No | Spatial frequency 6; 0 skips |
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 says nothing about prerequisites (a loaded system, defined fields/wavelengths), whether an analysis window is opened, units, or computational cost. Only the computation itself is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb, resource, scan direction, and limit all present and zero filler. Nothing redundant or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter analysis tool with no output schema, the description covers what is computed but omits prerequisites and any hint about the result. Adequate but leaves the agent to infer the operational context from 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 100%, so the schema already documents sampling levels and the six frequency slots including the '0 skips' convention. The description adds only that frequencies are capped at six, which is a marginal restatement of the schema. Baseline 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?
States a specific verb (Calculate), resource (polychromatic FFT MTF) and a distinct scope (versus Y field, up to six frequencies). This differentiates it from zemax_fft_mtf (MTF vs frequency) and zemax_geometric_mtf_vs_field (geometric rather than FFT), though it never explicitly names those siblings to remove doubt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. An agent facing zemax_fft_mtf, zemax_geometric_mtf_vs_field, and zemax_huygens_mtf gets no help choosing this FFT-vs-field variant over the others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_fft_psfFft PsfC
Calculate a diffraction FFT point-spread function.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | One-based field | |
| sampling | No | Sampling level | |
| wavelength | No | 0 for polychromatic | |
| imageSampling | No | Image sampling level |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it only restates the computation. It does not say what the analysis returns, whether it requires an open system, or how the four sampling/field settings affect the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste, which is good structure. However, the extreme brevity leaves the definition under-specified rather than optimally concise for a 4-parameter analysis 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?
With no annotations, no output schema, and four optional parameters, the description should explain return content or setup requirements; it does neither. An agent lacks the context to invoke this analysis confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the four parameters (field, sampling, wavelength, imageSampling) are already documented in the schema, and the description adds nothing further. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Calculate') and resource ('diffraction FFT point-spread function'), so an agent knows the operation is a PSF computation. It implicitly distinguishes itself from zemax_huygens_psf by the 'FFT' qualifier, but never explicitly states the relationship to that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as zemax_huygens_psf or zemax_fft_mtf, nor any prerequisites (e.g. a loaded system, defined fields/wavelengths). The agent must infer applicability entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_field_curvature_distortionField Curvature DistortionC
Calculate tangential/sagittal field curvature and distortion.
| Name | Required | Description | Default |
|---|---|---|---|
| distortionType | No | f_tan_theta or f_theta | f_tan_theta |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the computed quantities. It does not state that it operates on the currently loaded system, whether it is read-only, what the return format is, or any limits. For an analysis tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is appropriately terse, though the terseness borders on under-specification rather than efficient density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 Zemax analysis tool with no annotations and no output schema, an agent needs to know it runs on the loaded system and roughly what comes back; neither is provided. The description names the measured quantities but omits the operational context required 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?
Schema description coverage is 100% and there is only one optional parameter, so the schema already documents distortionType ('f_tan_theta or f_theta'). The description adds no meaning beyond this — it doesn't explain what the two distortion conventions mean — so the baseline 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?
States a specific verb ('Calculate') and a specific resource ('tangential/sagittal field curvature and distortion'), naming the two quantities produced. It is distinct from siblings like seidel_coefficients and rms_spot, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this analysis versus alternatives such as zemax_seidel_coefficients or zemax_ray_fan, nor any prerequisite (e.g., that a lens/system must be loaded). The description only says what it computes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_filter_glassesFilter GlassesC
Filter glasses by preferred state, optical coordinates, cost, TCE, coverage, and melt frequency.
| Name | Required | Description | Default |
|---|---|---|---|
| wa | No | Vd weight | |
| wn | No | Nd weight | |
| wp | No | dPgF weight | |
| ndMax | No | Maximum Nd | |
| ndMin | No | Minimum Nd | |
| vdMax | No | Maximum Vd | |
| vdMin | No | Minimum Vd | |
| tceMax | No | Maximum TCE | |
| tceMin | No | Minimum TCE | |
| dpgfMax | No | Maximum dPgF | |
| dpgfMin | No | Minimum dPgF | |
| maxCost | No | Max BK7-relative cost | |
| catalogs | Yes | Comma-separated catalog names | |
| ndTarget | No | Target Nd | |
| vdTarget | No | Target Vd | |
| dpgfTarget | No | Target dPgF | |
| preferredOnly | No | Only preferred glasses | |
| distanceRadius | No | Max weighted optical distance | |
| maxMeltFrequency | No | Maximum melt frequency 1-5 | |
| maxWavelengthCoverage | No | Maximum wavelength coverage in um | |
| minWavelengthCoverage | No | Minimum wavelength coverage in um |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state the return shape, whether results are ranked by the weighted distance, how defaults (ndTarget 1.5168, vdTarget 64.17, wp 100) affect matching, or whether the operation is purely a read with no 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?
A single efficient sentence with the verb front-loaded and no filler. It is arguably too terse for a 21-parameter tool, but nothing in the sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 21-parameter query tool with no annotations and no output schema, the description leaves the agent without guidance on result ordering, how target/weight parameters combine with distanceRadius, or what comes back. The 100% schema coverage documents individual fields but not how they work together.
Complex tools with many parameters or behaviors need more documentation. 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 every one of the 21 parameters is already documented in the schema and the baseline is 3. The description adds only high-level grouping of those parameters (state, coordinates, cost, TCE, coverage, melt frequency) and no syntax, units, or interaction detail 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 gives a specific verb+resource ("Filter glasses") and enumerates the filtering dimensions (preferred state, optical coordinates, cost, TCE, coverage, melt frequency), which maps cleanly onto the schema. It does not name or contrast with the closest sibling, zemax_get_glasses, so an agent must infer the difference between retrieving and filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus zemax_get_glasses, zemax_get_glass_catalogs, or zemax_export_glass_catalog. The only implied usage is that filtering is appropriate when narrowing a glass list, with no prerequisites such as loading a catalog first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_forbes_merit_functionForbes Merit FunctionC
Build explicit OPD operands using Forbes 1988 Gaussian quadrature sampling.
| Name | Required | Description | Default |
|---|---|---|---|
| arms | No | Angular arms | |
| rings | No | Radial rings | |
| wavelength | No | Specific wavelength; 0 polychromatic | |
| addComments | No | Add BLNK comments | |
| operandType | No | OPDX, OPDC, or OPDM | OPDX |
| clearExisting | No | Clear existing operands | |
| assumeSymmetry | No | Use Y symmetry | |
| useRadauForAxial | No | Use Radau sampling for axial fields | |
| includeAllWavelengths | No | Include all wavelengths | |
| includeAllConfigurations | No | Include all configurations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does not disclose that the tool mutates the merit function, that clearExisting defaults to true and will delete existing operands, or any other 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?
A single sentence with no filler, front-loading the core action. It could be slightly expanded for a ten-parameter tool, but it is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given ten optional parameters, no annotations, and no output schema, the description is too thin. It omits that the operation modifies the merit function, the destructive default of clearExisting, and any guidance on sampling choices.
Complex tools with many parameters or behaviors need more documentation. 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 ten parameters with defaults and meanings. The description adds no parameter-level 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?
States a specific verb and resource: 'Build explicit OPD operands using Forbes 1988 Gaussian quadrature sampling.' This distinguishes it as a merit-function operand generator, but it does not name or differentiate from siblings like zemax_merit_wizard or zemax_add_operand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives such as zemax_merit_wizard, zemax_optimization_wizard, or manually adding operands. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_geometric_encircled_energyGeometric Encircled EnergyB
Calculate ray-based geometric encircled energy versus radius.
| Name | Required | Description | Default |
|---|---|---|---|
| sampling | No | Sampling level 1-6 | |
| useDashes | No | Use dashes reference | |
| scatterRays | No | Use scatter rays | |
| showDiffractionLimit | No | Include diffraction limit | |
| scaleByDiffractionLimit | No | Scale by diffraction limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It states the calculation is ray-based, but says nothing about prerequisites (e.g. whether a system must be loaded/connected), whether results are written to the lens file, or what the analysis returns. For a bare analysis tool this leaves real 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?
A single compact sentence with the resource and output axis front-loaded and zero filler. It is efficient, though the terseness is partly under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 five optional parameters, no annotations, and no output schema, the description should explain what the analysis returns and when it applies. It provides only the one-line purpose, leaving the agent without return-value or usage context for a moderately parameterized analysis 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 all five parameters (sampling, useDashes, scatterRays, showDiffractionLimit, scaleByDiffractionLimit) are already documented in the schema. The description adds no parameter-level meaning, 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 gives a specific verb and resource: 'Calculate ray-based geometric encircled energy versus radius.' That is enough to know exactly what the tool produces. However, it never distinguishes itself from the sibling 'zemax_diffraction_encircled_energy', which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 qualifier 'ray-based geometric' implicitly signals the ray-trace regime as opposed to a diffraction computation, which is a usable hint. But there is no explicit when-to-use, when-not-to-use, or named alternative despite the diffraction encircled-energy sibling existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_geometric_image_analysisGeometric Image AnalysisC
Run geometric image analysis and return/export the image grid.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | One-based field | |
| showAs | No | Display mode | |
| filePath | No | Optional export path | |
| raysX1000 | No | Ray count in thousands | |
| wavelength | No | 0 for polychromatic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It hints at a return/export of an 'image grid' but does not disclose whether it requires an open system/file, what the grid represents, whether export is conditional on filePath, 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?
A single compact sentence that is front-loaded with the action. It is efficient but arguably too terse to earn a top score given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter analysis tool with no annotations and no output schema, the description omits prerequisites, the meaning of the returned grid, and export behavior. The agent is left to guess about invocation 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 100%, so each of the 5 parameters (field, showAs, filePath, raysX1000, wavelength) is documented in the schema itself. The description adds nothing beyond the 'image grid' notion, so the baseline 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?
States a specific verb+resource ('Run geometric image analysis') and adds the output intent ('return/export the image grid'). It is clear on its own, but it does not distinguish itself from siblings like zemax_geometric_encircled_energy, zemax_geometric_mtf, or zemax_geometric_mtf_vs_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?
No indication of when to use this vs. other geometric analyses or when export is appropriate. The only hint is the 'filePath' parameter and the word 'export', leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_geometric_mtfGeometric MtfC
Calculate geometric MTF curves for all fields.
| Name | Required | Description | Default |
|---|---|---|---|
| wavelength | No | 0 for polychromatic | |
| maxFrequency | No | Maximum cycles/mm | |
| multiplyByDiffractionLimit | No | Multiply by diffraction limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses almost nothing: 'Calculate' implies a non-destructive read/compute, but there is no mention of prerequisites (open file, connection state), whether results are cached or recomputed, or what the analysis returns. For an analysis tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no filler or redundancy. The brevity is efficient, though it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should compensate by describing the return shape (MTF curves across frequency for each field) and any prerequisites. For a 3-parameter analysis tool it leaves the agent without enough 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?
Schema description coverage is 100% – wavelength ('0 for polychromatic'), maxFrequency ('Maximum cycles/mm'), and multiplyByDiffractionLimit are all documented in the schema. The description adds no additional semantics beyond that, 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 states a specific verb and resource ('Calculate geometric MTF curves') plus scope ('for all fields'), which is clear enough to identify the operation. However, it does not differentiate itself from closely related siblings such as zemax_fft_mtf, zemax_huygens_mtf, or zemax_geometric_mtf_vs_field, which an agent would need in order to choose correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the FFT MTF, Huygens MTF, or MTF-vs-field variants, and no prerequisites (e.g., a loaded lens system and a connected session are implied but not stated). The agent is left to infer the selection criteria entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_geometric_mtf_vs_fieldGeometric Mtf Vs FieldC
Calculate geometric MTF versus field for up to six frequencies.
| Name | Required | Description | Default |
|---|---|---|---|
| frequency1 | No | Spatial frequency 1; 0 skips | |
| frequency2 | No | Spatial frequency 2; 0 skips | |
| frequency3 | No | Spatial frequency 3; 0 skips | |
| frequency4 | No | Spatial frequency 4; 0 skips | |
| frequency5 | No | Spatial frequency 5; 0 skips | |
| frequency6 | No | Spatial frequency 6; 0 skips |
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 falls short. It does not state that this is a non-mutating analysis, whether it requires existing field definitions, what happens when all six frequencies are left at 0, or how results are presented.
Agents need to know what a tool does to the 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. It is efficient, though the brevity is part of the under-specification problem rather than a virtue in itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an analysis tool with no output schema and no annotations, the description should say what the result contains and what system state it depends on. It says neither, leaving an agent unable to predict the return value or 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?
Schema description coverage is 100% and every parameter documents its own '0 skips' behavior, so the baseline is 3. The description only adds the count ceiling ('up to six frequencies'), which is already evident from the six properties, so it contributes nothing 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?
States a specific verb and resource: calculate geometric MTF versus field. This distinguishes it from zemax_geometric_mtf (presumably vs frequency) by the 'versus field' scope, but it never names or contrasts the nearest sibling, zemax_fft_mtf_vs_field, so an agent must infer the geometric-vs-FFT 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 on when to choose this over zemax_fft_mtf_vs_field, zemax_geometric_mtf, or zemax_huygens_mtf. No prerequisites (fields/wavelengths must be defined first), no statement that it is an analysis-only read operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_afocal_modeGet Afocal ModeB
Get the sequential afocal-mode setting.
| 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 full burden. It does not disclose that this is a read-only operation, whether it requires an active connection, what it returns, or any side effects. Only the word 'Get' hints at read-only 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?
A single, compact sentence that is front-loaded and wastes no words. Appropriate 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?
Given the tool's simplicity (0 params, no output schema), the description is adequate but incomplete. It should mention that this reads the sequential mode's afocal setting and possibly what the return value represents (true/false or mode type). Missing connection requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description correctly indicates no inputs are needed, and the empty schema confirms this. No parameter semantics to add.
Input schemas describe structure but not intent. Descriptions should explain 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 (sequential afocal-mode setting), which is clear enough for an agent to act on. However, it does not distinguish itself from the sibling set_afocal_mode beyond naming, and it doesn't clarify scope or context. Read-only nature is implied but not 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 on when to use this tool versus alternatives, no prerequisites, and no mention of related tools like zemax_set_afocal_mode or zemax_get_system. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_apodizationGet ApodizationB
Get aperture apodization settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it discloses nothing about behavior. It doesn't confirm this is a non-mutating read, whether a system must be open/connected first, or what the returned settings contain.
Agents need to know what a tool does to the 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 padding, which is appropriate for a zero-argument getter. It is terse to the point of under-specification rather than wasteful, so it stays in the upper-middle range.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is the only source of information, and it says nothing about what apodization types exist, what fields come back, or any prerequisites. For a getter returning domain-specific optical data, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify beyond what the empty schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain 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 ('aperture apodization settings'), which is clearly distinct from the sibling zemax_set_apodization. However, it offers no further differentiation or scope detail beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this rather than zemax_get_aperture, zemax_get_system, or zemax_set_apodization. The read/write pairing with zemax_set_apodization is inferable from naming alone, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_aspheric_surfaceGet Aspheric SurfaceC
Get Even Asphere conic and alpha1-alpha8 coefficients.
| Name | Required | Description | Default |
|---|---|---|---|
| surfaceNumber | Yes | Surface number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it only names the returned fields. It says nothing about whether the surface must be of Even Asphere type, what happens on a non-aspheric surface, permission/connection requirements, or error behavior. For a read-only getter the risk is low, but the disclosure 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?
A single compact sentence that front-loads the key information with no filler. However it is arguably under-specified rather than concise: the brevity comes at the cost of any usage or behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter with no output schema, the description at least enumerates what is returned (conic and alpha1-alpha8), which compensates somewhat for the missing output schema. It still omits the precondition that the surface be an even asphere and any error/edge-case behavior, leaving meaningful gaps for its complexity level.
Complex tools with many parameters or behaviors need more documentation. 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% but the schema text is only 'Surface number', adding little. The description adds no format, indexing convention (e.g. surface 0 = object), or valid-range information beyond the parameter name. Baseline 3 is appropriate where the schema carries the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (Even Asphere surface) plus the exact returned quantities (conic, alpha1-alpha8), so an agent knows it reads aspheric coefficients rather than general surface data. It doesn't explicitly distinguish itself from the many sibling getters (e.g. zemax_get_surface, zemax_get_extra_data) or note the inverse sibling zemax_set_aspheric_surface, but the resource is specific enough to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all: no mention that the surface must be an even-asphere type, no prerequisites, no statement of when to prefer this over zemax_get_surface or zemax_get_extra_data. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_clear_semi_diameter_marginGet Clear Semi Diameter MarginC
Get the clear semi-diameter margin.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided and the description adds no behavioral context such as read-only status, required system state, or that it returns a margin value. It is a pure restatement with no disclosure beyond the 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 single sentence is concise but purely tautological, adding no information beyond the title. Conciseness here reflects under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter, the description should at least state what value is returned and its context in an optical design workflow. Without annotations or an output schema, the description carries full burden and fails to provide meaningful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. Schema coverage is 100%, and there are no parameters whose semantics need explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the tool name almost verbatim ('Get the clear semi-diameter margin'), providing a verb and resource but no additional clarifying detail. It conveys the basic purpose but does not explain what the margin is or how it differs from sibling tools like zemax_get_surface or zemax_get_system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. An agent cannot infer from the description whether this is a diagnostic check, a setup query, or a value needed before calling zemax_set_clear_semi_diameter_margin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_configurationGet ConfigurationA
Get number of configurations and current configuration.
| 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 full burden but provides minimal behavioral context. It does not disclose whether this requires an active connection, whether it mutates state, or what the return format looks like. It simply states a read 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, efficient sentence that front-loads the core action and scope. It is appropriately sized and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no annotations, no output schema), the description is minimal but arguably sufficient for a basic getter. However, without any behavioral context or usage guidance, an agent might not know when this tool is appropriate or what to expect, leaving some 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?
There are zero parameters, which is appropriate for a getter that retrieves configuration info. The description does not need to explain parameters, so this is fine. Baseline for zero params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Get' and the specific resource 'configuration', with the scope 'number of configurations and current configuration'. This is precise and distinguishes it from siblings like zemax_set_current_configuration or zemax_get_configuration_operands by focusing on the count and current index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites or related tools (e.g., use before setting configurations).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_configuration_operandsGet Configuration OperandsB
Get MCE operands and values across configurations.
| Name | Required | Description | Default |
|---|---|---|---|
| endRow | No | Last row; 0 means all | |
| startRow | No | First row |
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. 'Get' implies a read, but nothing is said about whether a file must be open, how these differ from a configuration summary, or how large result sets are bounded. The endRow=0 convention is left to 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?
A single sentence with no filler, front-loaded with the action and resource. Nothing wasted, nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema and no annotations, the description conveys the gist but omits what the returned operand/value structure looks like and whether results are paginated by row. Adequate but not fully self-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 description coverage is 100%, so startRow/endRow semantics are fully documented in the schema and the baseline is 3. The description adds only the phrase 'across configurations', which reinforces scope but adds no row-range or format detail beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain 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 (MCE operands and values across configurations), which is clear enough for an agent to know this is a read of multi-configuration editor data. It does not distinguish itself from close siblings like zemax_mce_summary or zemax_get_configuration, so it falls short of 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 when-to-use guidance, no mention of prerequisites (e.g. an open file with configurations defined), and no routing to alternatives such as zemax_mce_summary or zemax_get_configuration. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_extra_dataGet Extra DataC
Read surface Extra Data (XDAT) values.
| Name | Required | Description | Default |
|---|---|---|---|
| endParameter | No | Last XDAT parameter; 0 means all | |
| surfaceNumber | Yes | Surface number | |
| startParameter | No | First XDAT parameter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Read' implies a non-mutating operation, which is useful, but nothing is said about return format, whether XDAT exists on all surfaces, or what happens when parameters are out of range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is terse but efficient rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and three parameters, the description is too thin to fully position the tool. It does not say what the returned XDAT values look like or how they relate to surface definitions.
Complex tools with many parameters or behaviors need more documentation. 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 startParameter, endParameter, and surfaceNumber all documented (including the '0 means all' default behavior), so the schema does the heavy lifting. The description adds no parameter detail beyond naming the concept.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (surface Extra Data / XDAT values), so an agent can distinguish it from the sibling set_extra_data. It lacks explicit differentiation from other getter tools such as get_surface, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling getters (get_surface, get_surface_solves) or when to prefer set_extra_data. The agent must infer context 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.
zemax_get_glass_catalogsGet Glass CatalogsB
List glass catalog names installed in Glasscat.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. 'List' is a reasonably strong read-only, side-effect-free signal, which is the main behavioral trait that matters for a catalog enumeration. It says nothing about ordering, scope, or whether the returned list depends on session/license state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that front-loads the verb and the resource with no filler. Nothing could be trimmed 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?
For a zero-param enumeration tool with no output schema and no annotations, the description conveys the essentials (what is listed, from where). It falls short of fully positioning the tool among the several other glass-catalog siblings, which is the main remaining ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to convey; the baseline for a parameterless tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('glass catalog names installed in Glasscat'), so an agent knows exactly what comes back. It does not, however, distinguish this from near-siblings like zemax_get_glasses, zemax_filter_glasses, or zemax_export_glass_catalog, so sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the adjacent glass-related tools (get_glasses, filter_glasses, export_glass_catalog). The agent must infer usage purely from the name and the word 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_glassesGet GlassesB
List glasses and optical/manufacturing properties from catalogs.
| Name | Required | Description | Default |
|---|---|---|---|
| catalogs | Yes | Comma-separated catalog names |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. 'List' strongly implies a read-only operation with no side effects, which is useful, but the description does not explicitly state read-only behavior, output shape, pagination, or failure conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It states the resource, the returned properties, and the source in the fewest words necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 listing tool with full schema coverage, the description is mostly complete: it identifies the resource, source, and type of properties returned. It could optionally mention output format or whether all catalog glasses are returned, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter documentation already explains that 'catalogs' is a comma-separated list of catalog names. The description adds 'from catalogs' but does not extend parameter meaning beyond the schema, so the baseline score 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 states a clear verb and resource: list glasses and their optical/manufacturing properties from catalogs. It does not explicitly distinguish itself from close siblings such as zemax_filter_glasses or zemax_get_glass_catalogs, but the core 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 says what the tool does but gives no guidance on when to use it versus alternatives like zemax_filter_glasses or zemax_get_glass_catalogs. No prerequisites, exclusions, or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_merit_functionGet Merit FunctionC
Retrieve merit-function operands and optional calculated values.
| Name | Required | Description | Default |
|---|---|---|---|
| endRow | No | Last row; 0 means all | |
| startRow | No | First row | |
| includeValues | No | Calculate operand values |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. Beyond the word 'Retrieve' implying a read, it says nothing about cost of value calculation, whether rows are paginated like startRow/endRow suggest, or what error/lack-of-merit-function behavior looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and the value-retrieval option come first. It is efficient, though the same brevity is what leaves the guidance gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 sibling differentiation, a three-parameter query tool needs more than one sentence. Return shape, row-range semantics, and how it differs from zemax_merit_value are all unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so startRow, endRow, and includeValues are already documented in the schema and the baseline is 3. The phrase 'optional calculated values' loosely echoes includeValues but adds no format, range, or cost detail 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?
States a specific verb and resource: retrieve merit-function operands (and their calculated values). That tells an agent exactly what the tool returns, but it does nothing to separate it from close siblings such as zemax_merit_value, zemax_merit_wizard, or zemax_forbes_merit_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?
There is no when-to-use guidance, no condition selecting it over zemax_merit_value or zemax_load_merit_function_file, and no stated prerequisites. The agent is left to infer context 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.
zemax_get_mtf_unitsGet Mtf UnitsB
Get MTF spatial-frequency units.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses only that a value is fetched. It does not say whether this reads a lens/system setting, what the returned unit identifier looks like (e.g. cycles/mm vs cycles/mrad), or whether any session state is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Nothing could be removed without losing the tool's identity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 trivial no-argument getter this is nearly adequate, but with no output schema the description never states what form the returned unit takes, which is the one piece of information a caller of a 'get units' tool actually needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('MTF spatial-frequency units'), which is enough to separate it from the sibling setter zemax_set_mtf_units. It is slightly cryptic about what 'MTF units' concretely means (the unit convention used for MTF spatial frequency), but the read direction and target setting are 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?
No guidance on when to call this versus alternatives, and no mention of the paired setter zemax_set_mtf_units or of the MTF analysis tools whose output this setting governs. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_polarizationGet PolarizationB
Get the current optical system's default input polarization settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It implies a read-only operation but does not state whether it requires an open system, is idempotent, or what it returns. It is 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, front-loaded sentence with no extraneous words. Appropriately concise for a no-parameter 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 simple getter with no output schema, the description should ideally describe what 'polarization settings' includes (e.g., mode, parameters) to help an agent interpret the return. It is adequate but leaves gaps in return value expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the schema is trivially complete. The description adds no parameter information because there are none, which meets the baseline of 4 for 0-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Get' and resource 'polarization settings', clearly indicating a read operation. However, it does not differentiate from sibling zemax_set_polarization or mention what makes this distinct beyond the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like zemax_set_polarization or other getters. The description simply states its function without context or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_ray_aimingGet Ray AimingB
Get the ray-aiming setting.
| 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 full behavioral burden and discloses almost nothing: it does not confirm the operation is a safe read, list affected settings, or describe the returned state. A single clause restating the name leaves most behavioral questions unanswered.
Agents need to know what a tool does to the 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 padding, appropriately sized for a trivial zero-argument getter. It is front-loaded, though extremely terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should explain what the ray-aiming setting returns or what form it takes; it does not. For a getter with no annotations and no return documentation, the definition is incomplete for correct downstream use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric a baseline of 4 applies; there is nothing for the description to disambiguate. Schema coverage is 100% and no enums or nested objects exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('ray-aiming setting'), which clearly distinguishes it from the sibling setter zemax_set_ray_aiming. It is clear but does not explicitly differentiate itself from adjacent getters, 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 offers no when-to-use context, no prerequisites, and no alternatives. The read-only intent is only inferable from the 'Get' verb, so an agent gets implied but unstated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_surfaceGet SurfaceC
Get detailed data for a sequential surface.
| Name | Required | Description | Default |
|---|---|---|---|
| surfaceNumber | Yes | Surface number; 0 is object and -1 is image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It does not state that this is a read-only operation, what happens with out-of-range surface numbers, or whether it requires an open sequential file, leaving the safety and prerequisite profile undocumented.
Agents need to know what a tool does to the 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 wasted words. Its brevity is efficient, though it edges toward under-specification rather than rich conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with no annotations and no output schema, the description leaves the return shape and read-only nature entirely undocumented. In a namespace this large, that is an inadequate level of 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 coverage is 100%; the single parameter already documents the 0=object / -1=image convention. The description adds no indexing or format detail beyond what the schema provides, so the baseline 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?
States a specific verb (get) and resource (surface) with the qualifier 'sequential', distinguishing it from the many nsc_* siblings. It does not name a specific alternative reader like zemax_nsc_get_object or zemax_get_surface_solves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative routing is given. In a ~130-tool namespace with multiple surface-access tools (zemax_get_surface_solves, zemax_get_aspheric_surface, zemax_nsc_get_object), the agent gets no help choosing this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_surface_solvesGet Surface SolvesB
Get solve, pickup, and variable states for all surface properties.
| Name | Required | Description | Default |
|---|---|---|---|
| surfaceNumber | Yes | Surface number |
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. 'Get' implies a read-only operation, but the description does not disclose return format, error conditions, whether the surface must exist, or any other behavioral trait beyond the basic retrieval intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple getter 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?
There is no output schema and no annotations, so the description should ideally say more about what is returned or how the surface solve states are structured. The input is fully covered by the schema, but the lack of return-shape information leaves a noticeable 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 the single parameter ('surfaceNumber': 'Surface number'). The description adds no parameter meaning beyond that baseline, which is acceptable when the schema fully covers the 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 states a specific verb ('Get') and resource ('solve, pickup, and variable states for all surface properties'), so the agent knows this is a retrieval tool for surface solve data. It does not explicitly distinguish itself from sibling tools like zemax_get_surface or zemax_get_variables, but the resource is concrete enough to be understood.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description does not say when to choose this tool over zemax_get_surface, zemax_get_variables, or other related getters, nor does it state any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_systemGet SystemC
Get optical-system data, optionally including surfaces, fields, and wavelengths.
| Name | Required | Description | Default |
|---|---|---|---|
| includeFields | No | Include field definitions | |
| includeSurfaces | No | Include surface details | |
| includeWavelengths | No | Include wavelength definitions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Get' implies a read, but the description never states that it is non-mutating, whether it requires a connected/live Zemax session, how large the payload may be, or what happens when all includes are disabled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the optional components are listed in the same order as the parameters. It is efficient, though the brevity borders on under-specification for a general-purpose reader.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 say more about the shape and scope of the returned 'system data' and its relationship to narrower getters. As written it is minimally viable for a zero-required-parameter getter but leaves the agent guessing about the return payload.
Complex tools with many parameters or behaviors need more documentation. 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 three booleans are already documented with their meanings and defaults in the schema. The description merely restates that surfaces, fields, and wavelengths are optional, adding no format or interaction detail beyond the structured 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?
States a specific verb ('Get') and resource ('optical-system data') and enumerates the three optional sub-resources. It does not, however, differentiate itself from the many sibling readers such as zemax_get_configuration, zemax_get_title_notes, or zemax_lde_summary, so an agent cannot tell from this text alone which getter to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 word 'optionally' hints that the includes are toggles, but there is no when-to-use guidance, no statement that this is the general system-level reader versus the granular siblings, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_system_unitsGet System UnitsB
Get the current optical system's lens units.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the name. It does not say whether the call is a pure read, what happens if no system is open, or what unit values can come back — the 'current' qualifier is the only added 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?
One short, front-loaded sentence with no filler or repetition. It is efficient, though the extreme brevity is part of why behavioral detail is absent rather than a virtue of tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter this is close to adequate, but with no output schema the description should indicate what is returned (unit options such as mm/inches) or any precondition such as an open system file. As written, the agent must discover the return semantics by calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly implies a no-argument getter scoped to the active system, and there is nothing parameter-related to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('the current optical system's lens units'), so the agent knows exactly what is retrieved. It is distinguishable from zemax_set_system_units by the verb, but it does not explicitly name or contrast with that sibling or with zemax_get_mtf_units.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: read the lens units of the currently open system. There is no statement of when to prefer this over zemax_get_mtf_units or any prerequisite (e.g., a file must be loaded), leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_title_notesGet Title NotesA
Get the current optical system's title, notes, and author.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It conveys that this reads the 'current' system, implying an active file or connection context, but does not explicitly state read-only safety, side effects, or 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?
A single, front-loaded sentence with zero waste. Every word contributes to identifying the resource being retrieved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lists the fields returned (title, notes, author), which compensates for the missing output schema. For a zero-parameter getter it is adequate, though it could mention the need for an open system.
Complex tools with many parameters or behaviors need more documentation. 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. There is no parameter semantics for the description to clarify, and the empty schema is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain 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 ('current optical system's title, notes, and author'). It distinguishes itself from the sibling zemax_set_title_notes by being a read operation, though it does not explicitly contrast with broader getters like zemax_get_system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are provided. An agent must infer that this is for reading metadata when an optical system is active.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_get_variablesGet VariablesB
Scan the system for optimization variables and constraint states.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Scan' implies a read operation, but nothing states whether it is read-only, what a partial or empty result means, or what the returned variable/constraint state looks like. For a getter with zero structured support, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded and no filler. It is efficient, though quite sparse given the absence of any other structured documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no annotations, and no parameters, the description is the only documentation an agent has. It identifies the subject matter ('variables and constraint states') but says nothing about return shape, 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?
The tool takes zero parameters, so the baseline is 4. There is nothing parameter-related for the description to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('scan/get') and resource ('optimization variables and constraint states'), which is specific enough to distinguish it from the write-side siblings zemax_set_variable and zemax_set_variable_constraints. It stops short of naming those siblings explicitly, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as zemax_get_merit_function or zemax_set_variable_constraints. The context is only loosely implied by the word 'optimization'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_global_searchGlobal SearchC
Run native global optimization with optional glass substitution.
| Name | Required | Description | Default |
|---|---|---|---|
| cores | No | 0 uses all cores | |
| algorithm | No | DLS or Orthogonal | DLS |
| timeoutSeconds | No | 0 means no time limit | |
| solutionsToSave | No | 10, 20, 50, or 100 |
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 falls short. It does not disclose what the operation mutates (variables, glasses), whether it modifies the open file irreversibly, expected runtime, or that it may run long given a timeout parameter. 'Optional glass substitution' is asserted with no explanation of its effect.
Agents need to know what a tool does to the 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; the core action leads. It is efficient, though arguably too terse given the absence of annotations and output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation/optimization tool with no annotations and no output schema, the description is too thin. It omits whether the current system is modified, what becomes of results, and how this relates to the many sibling optimizers, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. 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 four parameters (cores, algorithm, timeoutSeconds, solutionsToSave) are fully documented in the schema, establishing a baseline of 3. The description adds nothing about parameters, and oddly references glass substitution, which has no corresponding 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 and resource: 'Run native global optimization.' However, it does not differentiate this from siblings that also perform global optimization, notably zemax_hammer (a global method) and zemax_multistart_optimize, so an agent cannot confidently choose between them from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus zemax_optimize, zemax_hammer, zemax_multistart_optimize, or zemax_constrained_optimize. The mention of 'optional glass substitution' is not framed as a condition or prerequisite for invoking the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_hammerHammerC
Run native Hammer optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| cores | No | 0 uses all cores | |
| algorithm | No | DLS or Orthogonal | DLS |
| automatic | No | Use automatic mode | |
| timeoutSeconds | No | Hard timeout | |
| targetRuntimeMinutes | No | Automatic target runtime |
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. 'Run native Hammer optimization' implies a computation that likely mutates the optical system, but it does not state that it modifies the system, whether a merit function is required, how long it may run, 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 a single front-loaded sentence with no filler. It is concise, though its extreme brevity means it omits almost all useful context rather than being padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an optimization tool with no annotations and no output schema, the description is far too thin. It omits prerequisites, whether other optimization tools should be preferred, expected behavior, and any relation to the many sibling optimization and analysis 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%, so all five parameters are already documented in the schema. The description adds no additional parameter semantics, 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?
States a specific verb, 'Run', and a specific resource, 'native Hammer optimization'. This distinguishes it from generic optimization siblings like zemax_optimize and zemax_multistart_optimize, but it does not explicitly say what Hammer is or how it differs from 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?
Provides no when-to-use guidance, no prerequisites, and no comparison to alternative optimization tools such as zemax_optimize, zemax_global_search, or zemax_multistart_optimize. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_huygens_mtfHuygens MtfC
Calculate Huygens MTF by direct pupil integration.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | Zero for all or one-based field | |
| useDashes | No | Use dashed reference | |
| imageDelta | No | Image spacing in micrometers; zero uses default | |
| wavelength | No | Zero for polychromatic or one-based wavelength | |
| configuration | No | One-based configuration | |
| imageSampling | No | Image sampling level 1-6 | |
| pupilSampling | No | Pupil sampling level 1-6 | |
| usePolarization | No | Use polarization | |
| maximumFrequency | Yes | Maximum spatial frequency |
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 doesn't state whether the system must be connected, whether the calculation is computationally expensive, what the output looks like (no output schema), or whether prior analysis settings apply. For a heavyweight optical analysis with zero annotation coverage, this is a major gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no waste. Slightly under-specified for the tool's complexity, but the structure is front-loaded and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 nine parameters, the description is far too thin. It doesn't explain the return values, the computational cost, prerequisites (e.g., a loaded system, valid fields/wavelengths), or how it differs from the multiple other MTF tools in the sibling list.
Complex tools with many parameters or behaviors need more documentation. 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 nine parameters with defaults and semantics. The description adds no parameter-level detail beyond 'direct pupil integration'. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Calculate Huygens MTF') and the method ('direct pupil integration'), which distinguishes it from siblings like zemax_fft_mtf or zemax_geometric_mtf. However, it doesn't explicitly name those alternatives, so the agent must infer the distinction from domain knowledge rather than the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus zemax_fft_mtf, zemax_geometric_mtf, or zemax_huygens_psf. An agent must know optics to choose correctly; the description provides no conditions, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_huygens_psfHuygens PsfC
Calculate a Huygens point-spread function.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | One-based field | |
| wavelength | No | 0 for polychromatic | |
| imageSampling | No | Image sampling | |
| pupilSampling | No | Pupil sampling |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full behavioral burden, and it delivers almost nothing. It does not state that this is a read-only analysis, whether it requires an open system file, computational cost, or how the result is returned. 'Calculate' implies a non-mutating computation but this is inferred, not 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?
A single short sentence with no waste and the core action front-loaded. It is efficient, though it is arguably too terse given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter optical analysis tool with no annotations and no output schema, the description is insufficient. It communicates neither operational prerequisites (such as requiring an open lens file), nor how this PSF differs from the FFT PSF variant, nor the shape of the returned data.
Complex tools with many parameters or behaviors need more documentation. 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%: field is documented as one-based, wavelength as 0-for-polychromatic, and both sampling parameters are named. The description adds no parameter meaning beyond the schema, which is acceptable given the high coverage baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Calculate') and resource ('Huygens point-spread function'), which identifies the operation. However, it does nothing to distinguish itself from closely related siblings like zemax_fft_psf or zemax_huygens_mtf, so an agent cannot tell from the description alone when this PSF variant is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use guidance, no alternatives, and no exclusions. With siblings such as zemax_fft_psf and zemax_huygens_mtf, the omission leaves the agent with no basis for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_infoInfoC
Report the current session and optical-system information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Report' implies a safe read, but it does not disclose what information is returned, whether it requires an open session, or how results are structured — a notable gap given there is 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?
A single short sentence with no filler and the action front-loaded. It is efficient, though its brevity is partly because it omits needed detail rather than because it is optimally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only source of information about what this tool returns, and it says only 'session and optical-system information.' An agent cannot tell what a caller will actually receive or how it differs from zemax_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify beyond what the empty schema already communicates. Baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Report' and the object 'session and optical-system information' give a rough sense of the tool, but the scope is vague and heavily overlaps with siblings like zemax_status, zemax_get_system, and zemax_get_title_notes. Nothing in the description lets an agent distinguish it from those 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?
There is no indication of when to call this versus zemax_status or zemax_get_system, nor any prerequisites such as needing an active connection. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_lateral_colorLateral ColorB
Calculate lateral color versus field.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. "Calculate" implies a read-only operation, but there is no disclosure of return format, permissions, or any other behavioral trait. For a computation tool with no annotations or output schema, this is sparse.
Agents need to know what a tool does to the 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 filler, and the operation is front-loaded. It is sized appropriately for a zero-parameter tool, though the extreme brevity borders on under-specification rather than elegant conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter analysis tool, the description minimally explains what is computed and that no inputs are required. However, it omits return-value context despite the absence of an output schema, and it does not help an agent choose this tool over similar Zemax analysis siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. The empty schema is complete for a no-input operation, and the baseline score for 0 parameters 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 states a specific verb and resource: "Calculate lateral color versus field." It is not a tautology and clearly identifies the computed aberration. However, it does not differentiate the tool from related sibling analysis tools such as zemax_longitudinal_aberration or zemax_chromatic_focal_shift.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of alternatives. It does not mention prerequisites, when-not conditions, or related Zemax analyses. It merely states what the tool calculates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_lde_insert_surfaceLde Insert SurfaceC
Insert a surface at a zero-based LDE position.
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes | Zero-based insertion position |
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 never states that inserting a surface shifts the indices of all subsequent surfaces, whether an out-of-range position errors or clamps, whether the operation is undoable, or what the call 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?
One short sentence with no filler, and the key constraint (zero-based) is front-loaded. It is efficient, though its brevity is partly under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The single parameter is fully documented and no output schema is expected, so the basic contract is covered. For a mutation tool with zero annotations in a complex optical-design domain, though, the side effects on surface numbering and error 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 description coverage is 100% and the single parameter is documented as 'Zero-based insertion position', which the description essentially restates as 'zero-based LDE position'. Baseline 3 is correct since the schema does the work and the description adds no new meaning (e.g., valid range or end-of-list behavior).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Insert') and resource ('surface') plus the positional semantics ('zero-based LDE position'), so an agent knows this mutates the lens data editor. However, it does not differentiate itself from close siblings like zemax_add_surface or zemax_lde_set_surface, leaving the agent to guess which mutation primitive applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. With zemax_add_surface, zemax_lde_set_surface, and zemax_remove_surface all present, the choice between 'insert', 'add', and 'set' is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_lde_set_surfaceLde Set SurfaceC
Legacy wrapper for editing common surface properties.
| Name | Required | Description | Default |
|---|---|---|---|
| radius | No | Radius | |
| comment | No | Comment | |
| surface | Yes | Zero-based surface | |
| material | No | Material | |
| thickness | No | Thickness | |
| semiDiameter | No | Semi-diameter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says 'editing' but doesn't state whether changes are reversible, what happens to unspecified properties, whether the surface must exist, or what permissions are required. 'Legacy wrapper' hints at deprecation but gives no concrete behavioral detail.
Agents need to know what a tool does to the 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. It is front-loaded but underspecified rather than concise-and-complete; still, nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description is inadequate. It omits return behavior, error conditions, and the relationship to the non-legacy surface setters, leaving the agent to guess how to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 6 parameters documented in the schema (albeit minimally, e.g. 'Radius', 'Comment'). The description adds no parameter-level meaning beyond the schema, so baseline 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?
States a verb (editing) and resource (surface properties), but 'Legacy wrapper' adds ambiguity about whether this is the preferred tool. It doesn't distinguish itself from siblings like zemax_set_surface, zemax_set_surface_parameter, or zemax_set_surface_type, all of which also edit surface 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 on when to use this versus zemax_set_surface or zemax_set_surface_parameter. The 'Legacy wrapper' label implies it may be superseded, but it never says by what or when to prefer the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_lde_summaryLde SummaryA
Return a compact sequential Lens Data Editor prescription.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It implies a read operation via 'Return' but does not state whether it requires an open model, whether it has side effects, or any other operational 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?
A single, front-loaded sentence with no waste. It communicates the essential purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description names the return value at a useful level ('compact sequential Lens Data Editor prescription'). It could elaborate slightly on the prescription contents, but it is largely complete for this simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to add parameter meaning, and none is given.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Return'), resource ('Lens Data Editor prescription'), and qualifier ('sequential', 'compact'). This distinguishes it from sibling summary tools such as zemax_tde_summary, zemax_mce_summary, zemax_nsc_summary, and zemax_zrd_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or in what context it should be called. It simply states what the tool returns, leaving usage entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_list_surface_typesList Surface TypesB
List surface types supported by the installed OpticStudio build.
| 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 full behavioral burden. The phrase 'installed OpticStudio build' usefully signals that results are environment-dependent, but it never states that the call is a safe read, whether it requires an open file or live connection, or what form the returned types take.
Agents need to know what a tool does to the 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, front-loading the verb and resource. Nothing could be removed without losing 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?
There is no output schema, so the description should say something about what is returned — names, numeric codes, or strings accepted by zemax_set_surface_type. It omits the return format and any file/connection precondition, leaving a small but real gap for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case: there is nothing for the description to disambiguate, and the empty schema is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (surface types) scoped to the installed OpticStudio build. It does not reference its obvious sibling zemax_set_surface_type, so an agent must infer the discovery-then-set relationship from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the alternative it complements, zemax_set_surface_type. The agent is left to infer that this is a lookup performed before setting a surface type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_load_merit_function_fileLoad Merit Function FileC
Load a .MF merit-function file.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute .MF file 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 implies a load operation but does not say whether it replaces the current merit function, requires a connected session, or has any side effects or 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 front-loaded sentence with no wasted words. It is appropriately concise for a simple tool, though it is very sparse and could benefit from one clarifying clause about side effects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple tool with no output schema and no annotations, the description identifies the operation and file type adequately. However, it omits important behavioral context such as whether loading replaces the existing merit function, leaving a clear 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% for the single filePath parameter, so the schema already documents the required absolute .MF path. The description adds no additional parameter meaning, which matches the baseline when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Load') and resource ('.MF merit-function file'), making the operation clear. It does not explicitly differentiate from sibling tools like zemax_save_merit_function_file, though the verb itself contrasts with save.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are provided. The description only restates the operation without helping an agent choose between this and related merit-function tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_longitudinal_aberrationLongitudinal AberrationB
Calculate longitudinal aberration versus pupil position.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. 'Calculate' implies a non-mutating analysis, but there is no mention of whether the lens state must already be open, whether the result is returned as data or a plot, or whether any configuration/wavelength context is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding or restatement of the tool name. It is efficient, though its brevity is also the source of the missing context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless analysis call the description covers the minimum, but with no output schema and no annotations the agent still lacks any indication of what comes back (numeric curve, plot, window) or what system state is required. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines zero parameters (additionalProperties false), so there is no parameter semantics for the description to compensate for. Baseline 4 applies; nothing is misleading about the empty signature.
Input schemas describe structure but not intent. Descriptions should explain 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 optical quantity: 'Calculate longitudinal aberration versus pupil position.' This is far more informative than a tautology and lets an agent distinguish it from lateral-color or chromatic-focal-shift siblings. It stops short of explicitly contrasting itself with the closer alternatives like zemax_pupil_aberration_fan or zemax_ray_fan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, nor any precondition (e.g., a lens must be loaded in the connected session). The agent gets an implied 'this computes an analysis' but no routing guidance among the many analysis siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_mce_add_configMce Add ConfigC
Legacy wrapper to append a configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| withPickups | No | Link new cells with pickups |
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, and it falls short. It never states that this mutates the lens/MCE state, whether the change is reversible, what permissions are required, or how it interacts with the current configuration count. The 'legacy' hint is the only behavioral signal, and it is not actionable without naming the replacement.
Agents need to know what a tool does to the 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, which is structurally clean. However, it is under-specified rather than genuinely concise, and 'legacy wrapper' spends the sentence's only content on implementation trivia instead of usage-relevant 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 state-mutating tool with no annotations and no output schema, the description is too thin. An agent cannot determine side effects, deprecation status, or the relationship to sibling configuration tools, all of which it must know to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and withPickups is documented in the schema as 'Link new cells with pickups', so the baseline of 3 applies. The description adds no further meaning about what a pickup link implies or when to enable it, but it is not required to given full 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 verb 'append' and resource 'configuration' are identifiable, but 'legacy wrapper' frames the tool in terms of its implementation history rather than what it does. It does not distinguish itself from close siblings such as zemax_set_number_of_configurations, zemax_add_configuration_operand, or zemax_mce_add_operand, so an agent cannot tell from the description which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. The word 'legacy' implies a preferred modern alternative exists, but that alternative is never named, so the agent is left to guess whether this tool should be used at all. No prerequisites, conditions, or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_mce_add_operandMce Add OperandC
Legacy wrapper to append an MCE operand.
| Name | Required | Description | Default |
|---|---|---|---|
| param1 | No | Primary parameter | |
| values | No | Per-configuration values | |
| operandType | Yes | MCE operand type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not say whether this mutates the open file, whether a connection/open file is required, whether the operand is appended at the end or at the current row, 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?
A single short sentence with no padding is appropriately front-loaded. However, the brevity reflects under-specification rather than economy — it is terse without being 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?
For a mutation tool with no annotations and no output schema, the definition omits prerequisites (open file/connection), the meaning of "MCE" context, valid operand types, and the deprecation path implied by "legacy." An agent has too little to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so operandType, param1, and values are already documented in the schema and the baseline of 3 applies. The description adds no syntax, valid operand-type values, or units beyond what structured data already supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It pairs a specific verb ("append") with a specific resource ("MCE operand"), which is better than a tautology. But "legacy wrapper" is unexplained and there is no differentiation from siblings such as zemax_add_configuration_operand, zemax_add_operand, or zemax_mce_add_config, so an agent cannot route confidently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 at all. The word "legacy" strongly implies a preferred alternative exists, yet no replacement tool, deprecation guidance, or prerequisite condition is named, leaving the agent to guess between several add-operand siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_mce_summaryMce SummaryD
Legacy compact MCE summary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It says nothing about what the summary contains, whether it is read-only, what side effects if any it has, or what its output looks like. 'Legacy' is the only behavioral hint, and it is too weak to act on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is extremely short at four words. Brevity is not a flaw by itself, but here the brevity comes at the cost of meaning; the sentence is front-loaded with a vague modifier rather than useful 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 summary tool with no annotations and no output schema, the description should explain what is summarized and how the result is delivered. It does none of that, leaving the agent unable to predict whether the call is safe, useful, or what it returns.
Complex tools with many parameters or behaviors need more documentation. 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 adds nothing on parameters, but there is nothing to add.
Input schemas describe structure but not intent. Descriptions should explain 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 'Legacy compact MCE summary' is essentially a restatement of the title 'Mce Summary' with the added but vague qualifiers 'Legacy' and 'compact'. It does not state a specific verb or resource with enough precision to distinguish it from siblings like zemax_mce_add_operand or zemax_nsc_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indication of when to use this tool, when not to use it, or what alternatives exist. The word 'Legacy' hints at deprecation but the description draws no actionable distinction from other MCE or summary tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_merit_valueMerit ValueB
Calculate the current merit-function value.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It says 'current' which implies reading live state, but doesn't disclose whether the merit function must exist, whether it requires an open lens file, whether the value is cached, or what happens if no merit function is defined. A read-only query with no annotations should state its preconditions.
Agents need to know what a tool does to the 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 clear sentence, front-loaded with the verb. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-annotation, no-output-schema tool in a family with several merit-function siblings, the definition is too thin. It should at least clarify the precondition (existing merit function/lens) and distinguish the 'current value' from zemax_get_merit_function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the schema burden is nil and the baseline is 4. The description doesn't need to explain parameters, and it correctly implies no inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Calculate the current merit-function value.' The agent knows exactly what it does. It doesn't differentiate from siblings like zemax_get_merit_function or zemax_forbes_merit_function, but the action ('calculate value') versus 'get function' implies a 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 on when to use this versus alternatives like zemax_get_merit_function. The description gives no context about when the agent would want the current value, no exclusions, no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_merit_wizardMerit WizardC
Legacy merit-function wizard wrapper.
| Name | Required | Description | Default |
|---|---|---|---|
| optimizationGoal | No | Informational goal | RMS_Spot |
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 labels the tool as a legacy wrapper and says nothing about side effects, interactive behavior, required permissions, or what happens when the wizard is invoked.
Agents need to know what a tool does to the 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 terse noun phrase, which avoids verbosity but is under-specified rather than efficiently front-loaded. For a tool with no annotations and no output schema, this brevity leaves the agent without actionable structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool complex enough to need behavioral or usage context, and it has no annotations or output schema to compensate. The only schema parameter is documented, but the description still omits what the wizard does and when 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?
Schema description coverage is 100%, and the single parameter optimizationGoal is documented as 'Informational goal' with a default. The description adds no further meaning, so the baseline of 3 is appropriate when the schema already covers the 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 'Legacy merit-function wizard wrapper' essentially restates the tool name and title without stating a concrete action or scope. It does not explain what the wizard does, what it configures, or how it differs from siblings like zemax_optimization_wizard or zemax_get_merit_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?
There is no guidance on when to use this tool versus alternatives such as zemax_optimization_wizard or zemax_forbes_merit_function. The word 'legacy' hints at an older wrapper but gives no condition for selecting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_multistart_optimizeMultistart OptimizeB
Start non-blocking randomized multistart constrained optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| delta | No | Finite-difference step | |
| resume | No | Resume prior run | |
| initialMu | No | Initial damping | |
| maxTrials | No | Random trials | |
| maxRestarts | No | Initial LM restarts | |
| constrainedOnly | No | Randomize only constrained variables | |
| progressInterval | No | Log every N trials | |
| useBroydenUpdate | No | Use Broyden updates | |
| initialLmIterations | No | Initial LM iterations | |
| lmIterationsPerTrial | No | LM iterations per trial | |
| randomizationPercent | No | Percent of variable bound range | |
| glassSubstitutionProbability | No | Per-trial probability |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and 'non-blocking' is a genuinely useful behavioral trait (it tells the agent the call returns immediately rather than blocking). However, it omits how progress is observed, whether the run persists across calls, and that the 'resume' parameter implies a prior run can be reattached — all material for an async job launcher.
Agents need to know what a tool does to the 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 tightly written sentence with no filler and the key qualifier 'non-blocking' front-loaded. It is efficient, though for a 12-parameter asynchronous optimizer it borders on under-specified rather than genuinely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, no annotations, and 12 parameters, yet the description says nothing about what starting a run returns (a handle? a job id?), how to monitor it via zemax_multistart_status, or how to abort via zemax_multistart_stop. For a fire-and-forget async tool this leaves the agent guessing at the surrounding workflow.
Complex tools with many parameters or behaviors need more documentation. 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 every one of the 12 parameters has an inline description, so the schema does the heavy lifting. The tool description adds no additional meaning about defaults, ranges, or interaction effects (e.g., maxTrials vs maxRestarts). Baseline 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?
States a specific verb (Start) and resource (randomized multistart constrained optimization), with modifiers that separate it from zemax_optimize and zemax_constrained_optimize. It does not, however, explicitly name any sibling or contrast itself with zemax_global_search or zemax_hammer, which occupy similar optimization territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no reference to the companion tools zemax_multistart_status and zemax_multistart_stop that an agent would obviously need after starting a run. The word 'Start' implies a follow-up is required, but that inference is left entirely to the reader.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_multistart_statusMultistart StatusB
Poll multistart progress without blocking.
| 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 full burden and it discloses one genuine behavioral trait: the call is non-blocking. It omits other important traits such as what happens when no multistart is running, whether it is safe to call repeatedly, or what state the response conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words, with the non-blocking trait placed prominently. Its brevity borders on being too terse for a tool with no supporting schema or annotations, but as structure it 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 polling tool with no output schema and no annotations, the description should say more about what the polled status contains (progress, iteration, convergence) so the agent knows how to interpret results. It covers the essence but leaves the return semantics implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document; the baseline for a 0-param tool is 4. The description adds no parameter detail, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain 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 (poll) and resource (multistart progress), which lets an agent distinguish it from the sibling write controls zemax_multistart_optimize and zemax_multistart_stop. It is clear but does not explicitly name those siblings to reinforce the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Poll ... without blocking' implies this is called periodically during a run, but there is no explicit when-to-use guidance, no statement of prerequisites (e.g. a multistart must be in flight), and no reference to the alternative stop/optimize tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_multistart_stopMultistart StopB
Request graceful stop of multistart optimization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Request graceful stop' does hint that the halt is cooperative/asynchronous rather than immediate, which is useful, but it omits whether the call blocks, whether it is idempotent, what happens if no optimization is running, and what response is returned.
Agents need to know what a tool does to the 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 (graceful, multistart) earns its place by narrowing 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?
For a parameterless control command with no output schema and no annotations, the description is minimally adequate but leaves out key operational context: blocking behavior, idempotency, and confirmation of the stop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to convey and the baseline of 4 applies. Nothing in the schema requires clarification in 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?
States a specific verb+resource ('stop of multistart optimization'), so the agent knows exactly what the tool acts on. It does not explicitly name the sibling zemax_multistart_optimize or zemax_multistart_status to disambiguate, but the intent is unambiguous from the name and text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer you call this to halt a running multistart job. There is no explicit statement of when to invoke it versus zemax_restart or zemax_multistart_status, nor any precondition (e.g., that an optimization must be in progress).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_new_systemNew SystemB
Create a blank sequential or non-sequential optical system.
| Name | Required | Description | Default |
|---|---|---|---|
| sequential | No | Create a sequential system |
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 doesn't disclose whether creation resets/discards an existing system (destructive), whether it requires a prior zemax_connect, or what happens to current state. For a session-initializing mutation, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that conveys verb, object, and the two modes. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple initializer, but with no annotations it omits behavioral essentials: state-reset semantics, connection prerequisites, and whether an existing model is overwritten. These are exactly the details an agent needs before creating a new system.
Complex tools with many parameters or behaviors need more documentation. 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 there is only one optional parameter with a default and description, so the schema already explains 'sequential'. The description adds no param detail but doesn't need to; baseline for fully covered params is high.
Input schemas describe structure but not intent. Descriptions should explain 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 (Create) and resource (blank optical system) with a mode discriminator (sequential or non-sequential). It does not distinguish itself from siblings like zemax_nsc_convert_to_nonsequential, but the purpose is clear from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this initializer versus alternatives such as zemax_open_file or the nsc_convert_* tools. The agent must infer that this is for creating an empty system from scratch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_add_objectNsc Add ObjectC
Append a non-sequential object.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | Object comment | |
| objectType | No | Optional Zemax object type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and fails to disclose mutation semantics: nothing about whether the object is added at the end, what happens on failure, or any permissions required. For a mutating tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no wasted words. It is concise, though the brevity comes at the cost of useful detail rather than by editing away 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 mutation tool with no annotations, no output schema, and optional parameters, the description should explain state changes, return behavior, and how it differs from insert/set siblings. It omits all of this.
Complex tools with many parameters or behaviors need more documentation. 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 both parameters (comment, objectType) are already documented in the schema. The description adds no syntax, format, or default information beyond the schema, so baseline 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 states a verb and resource ('Append a non-sequential object'), which is clearer than a bare name restatement but adds almost nothing beyond the title 'Nsc Add Object'. It does not distinguish itself from close siblings like zemax_nsc_insert_object or zemax_nsc_set_object.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 zemax_nsc_insert_object, zemax_nsc_set_object, or zemax_nsc_remove_object. The agent must infer from the one-word difference between 'append' and 'insert'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_clear_detectorsNsc Clear DetectorsA
Clear all or one non-sequential detector.
| Name | Required | Description | Default |
|---|---|---|---|
| objectNumber | No | 0 clears all |
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 doesn't disclose whether clearing is reversible, what happens to detector data, or any side effects. 'Clear' implies deletion, but the description is silent on behavioral traits beyond the basic 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?
A single, front-loaded sentence that is exactly as long as needed. 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?
For a simple clear operation with one optional parameter and no output schema, the description is minimally adequate. However, with no annotations, it should at least mention whether clearing is destructive or reversible, or what happens to the cleared detectors, to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the objectNumber parameter and its default. The description adds the scope semantics ('all or one'), which is useful context, but the schema description ('0 clears all') already covers this. Baseline 4 for 0 required params with full schema coverage is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (clear) and resource (non-sequential detector), and specifies the scope (all or one). It is easily distinguished from sibling detector tools like zemax_nsc_detector_data or zemax_nsc_load_detector, which read or load rather than 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?
The description implies when to use it (to clear detectors), but doesn't explicitly state when not to use it or name alternatives. Usage is inferable from the purpose but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_convert_to_nonsequentialNsc Convert To NonsequentialB
Convert or make the current optical system non-sequential.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It doesn't disclose whether the conversion is reversible, what happens to existing sequential data, whether it requires a saved system, or any side effects. 'Convert or make' is vague about mutation semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence that is front-loaded and wastes no words. Slightly terse given the state-changing nature of the operation, but structurally fine.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations, no output schema, and no behavioral disclosure is under-specified. The description should at least state that it changes the system mode and whether it is reversible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline is 4 per the rubric. No parameter details are needed and none are 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?
States a specific verb (convert) and resource (optical system to non-sequential), and the sibling zemax_nsc_convert_to_sequential makes the direction clear. However it doesn't explicitly differentiate itself from that sibling in the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no mention of the inverse sibling tool or when to prefer it. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_convert_to_sequentialNsc Convert To SequentialC
Convert an eligible NSC group to sequential mode.
| Name | Required | Description | Default |
|---|---|---|---|
| lastObject | No | Last object | |
| firstObject | No | First object |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose what 'eligible' means, what happens to the optical model during conversion, whether the operation is reversible (a sibling implies it may be), or whether it requires an open file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is efficient, though the brevity comes at the cost of omitted detail rather than being fully earned conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and vacuous parameter descriptions, the description is too thin. It leaves the eligibility condition, side effects, and reversibility entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is nominally 100%, so the schema is the primary parameter source. However, the schema descriptions ('First object', 'Last object') are tautological and add no real meaning, and the tool description adds nothing either, leaving the range semantics implicit. Baseline 3 applies given high nominal coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (convert an NSC group to sequential mode), which is clear on its own. It does not differentiate itself from the sibling zemax_nsc_convert_to_nonsequential (the inverse operation), 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?
There is no when-to-use guidance, no mention of prerequisites, and no reference to the reverse operation as an alternative. The single word 'eligible' hints that preconditions exist but never says what they are.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_detector_dataNsc Detector DataC
Read full detector data and aggregate statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| dataType | No | 1 incoherent flux, 2 coherent power, 3 coherent phase | |
| quantity | No | Optional exact detector quantity | |
| maxValues | No | Maximum detector values returned; 0 returns statistics only | |
| objectNumber | Yes | Detector object number |
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, but it only vaguely indicates a read operation ('Read full detector data') and mentions aggregate statistics. It does not clarify side effects, required permissions, whether the detector must be loaded, or how errors are handled, which are important for an agent to invoke it correctly.
Agents need to know what a tool does to the 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 is appropriately sized and free of filler. It could be slightly more informative without becoming verbose, but it is well-structured for its 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 the tool has no annotations, no output schema, and four parameters (with full schema coverage), the description is minimally adequate. It hints at the return content ('full detector data and aggregate statistics') but lacks usage context and behavioral details that would help an agent decide when and how to use it relative to sibling detector 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%, so all four parameters are fully documented in the input schema. The description adds no additional meaning beyond the schema, which is acceptable given the high coverage, but it does not help an agent understand parameter interactions or 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 ('Read') and resource ('full detector data and aggregate statistics'), making the core purpose understandable. However, it does not differentiate this tool from sibling tools like zemax_nsc_polar_detector_data or zemax_nsc_detector_pixel, so an agent cannot tell when to prefer this one over the others without further inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It simply states what the tool does, leaving the agent to guess the appropriate context from the name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_detector_pixelNsc Detector PixelC
Read one detector pixel or aggregate index.
| Name | Required | Description | Default |
|---|---|---|---|
| pixel | Yes | Pixel index; negative values may select totals | |
| dataType | No | 1 incoherent flux, 2 coherent power, 3 coherent phase | |
| quantity | No | Optional exact detector quantity | |
| objectNumber | Yes | Detector object number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. "Read" implies a safe read-only operation, but it says nothing about permissions, whether detector data must be loaded first, or what the returned value represents (flux/power/phase), which for a zero-annotation tool is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted tokens. It is tight, though the phrase "aggregate index" is slightly cryptic and could have been made concrete at negligible length cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4-parameter schema is well documented, but with no annotations and no output schema the description should have clarified what a pixel read returns and how aggregate indices behave. It is minimally adequate rather than complete for the agent's decision.
Complex tools with many parameters or behaviors need more documentation. 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 the pixel, dataType, quantity, and objectNumber parameters fully documented in the schema. The description adds nothing semantic beyond the schema's own wording, so the baseline 3 for high coverage 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 pairs a clear verb ("Read") with a specific resource ("one detector pixel or aggregate index"), so the agent knows it retrieves a single detector value. It does not, however, distinguish itself from close siblings like zemax_nsc_detector_data (bulk read) or zemax_nsc_polar_detector_pixel (polarized variant), which the agent must infer on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 zemax_nsc_detector_data, zemax_nsc_polar_detector_pixel, or the viewer tools. The phrase "aggregate index" hints at a special case but never states the condition (e.g., negative pixel values) that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_detector_viewerNsc Detector ViewerC
Run bounded Detector Viewer extraction for scalar or RGB data.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Detector Viewer scale | Linear |
| filter | No | Optional NSC filter expression | |
| showAs | No | Detector Viewer display mode | FalseColor |
| dataType | No | Detector Viewer data type | IncoherentIrradiance |
| maxCells | No | Maximum returned cells | |
| smoothing | No | Smoothing level | |
| objectNumber | Yes | Detector object number |
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. 'Bounded' hints at the maxCells limit but is not explained, and nothing is said about permissions, side effects, whether it mutates the system, or what the extraction returns for scalar vs RGB data.
Agents need to know what a tool does to the 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. It is efficient, though arguably too terse for a seven-parameter tool with no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters, no annotations, and no output schema, the one-sentence description is insufficient. It omits when to use it, how the bounded extraction behaves, and how it relates to the many sibling detector 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 7 documented parameters, so the baseline is 3. The description's 'scalar or RGB data' loosely gestures at dataType/showAs but adds no concrete 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 verb ('extraction') and resource ('Detector Viewer') plus the data scope ('scalar or RGB'). However, it never distinguishes this tool from close siblings such as zemax_nsc_detector_data, zemax_nsc_detector_pixel, or the polar variants, and 'bounded' is left unexplained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite (e.g. an open detector object), and no named alternative. The agent must infer from the name alone when this viewer tool should be picked over detector_data, detector_pixel, or load/save_detector.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_get_objectNsc Get ObjectB
Get a non-sequential object and its common/type-specific data.
| Name | Required | Description | Default |
|---|---|---|---|
| objectNumber | Yes | One-based object number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Get' makes the read-only nature reasonably clear and it discloses the shape of the returned data (common vs type-specific), but it says nothing about permissions, failure modes, or what happens for an out-of-range object number.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource front-loaded and no wasted words. It is efficient, though extremely terse given the tool's role in a large sibling set.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and no annotations, the description does at least characterize the return payload's two categories. It remains thin on how the object is identified relative to sibling read tools, but nothing essential to invoking it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents 'One-based object number'. The description adds no format, range, or indexing detail 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?
Names a specific verb (get) and resource (non-sequential object), and adds that the return includes common and type-specific data. It is distinguishable from sibling zemax_nsc_get_object_parameter, but the description never states that distinction explicitly, so the agent must infer it from the 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?
There is no statement of when to use this tool rather than zemax_nsc_get_object_parameter or zemax_nsc_summary, and no prerequisites or context. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_get_object_parameterNsc Get Object ParameterC
Get a type-specific NSC object parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| parameter | Yes | One-based parameter column | |
| objectNumber | Yes | One-based object number |
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. 'Get' implies a safe read, and 'type-specific' hints that valid parameter indices depend on the object type, but the description says nothing about error behavior for invalid object numbers or out-of-range parameters, nor whether the returned value's type/units vary. Significant gaps for a tool with zero structured behavioral coverage.
Agents need to know what a tool does to the 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. It is efficient, though it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with 100% schema coverage and no output schema, the description is close to sufficient. It still leaves an agent guessing how to obtain a valid object number and how parameter indices map per object type, which the 'type-specific' phrasing raises but does not answer.
Complex tools with many parameters or behaviors need more documentation. 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%: both parameters are fully documented as 'One-based parameter column' and 'One-based object number'. The description adds mild value with 'type-specific', signaling that the meaning of the parameter index depends on the object type, but it provides no concrete mapping or examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain 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 ('type-specific NSC object parameter'), which is precise enough to distinguish this from most siblings like zemax_nsc_get_object or detector tools. However, it never names the obvious counterpart (zemax_nsc_set_object_parameter) or explains what makes a parameter 'type-specific', so differentiation rests on the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite (e.g. requiring a valid object number from a prior get/list call), and no routing to alternatives such as zemax_nsc_get_object or zemax_nsc_summary. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_get_source_spectrumNsc Get Source SpectrumC
Get typed spectrum settings for an NSC source object.
| Name | Required | Description | Default |
|---|---|---|---|
| objectNumber | Yes | One-based source object number |
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' implies a read, but the description does not disclose whether it fails for non-source objects, what happens with an invalid objectNumber, or any permission/state requirements. For a read-only getter this is a modest gap, but nothing beyond the verb is revealed.
Agents need to know what a tool does to the 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. It is efficient, though the term 'typed' is unexplained jargon that slightly reduces immediate comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 key missing piece is what the returned 'typed spectrum settings' actually contain. Naming the retrieved quantity is minimally adequate, but with no output schema the description should say more about the return shape to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter (objectNumber, one-based source object number) is fully documented in the schema. The description only adds the qualifier that the object must be an NSC source, which is marginal value beyond the schema, so baseline 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?
States a specific verb (Get) and resource (typed spectrum settings) scoped to an NSC source object. It is clearly distinguishable from its setter sibling zemax_nsc_set_source_spectrum by the Get/Set verb pairing, though it never names that counterpart explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance, prerequisites, or alternatives. An agent must infer that this reads spectrum settings before modifying them, and nothing routes it away from or toward zemax_nsc_get_object or the setter sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_insert_objectNsc Insert ObjectC
Insert a non-sequential object.
| Name | Required | Description | Default |
|---|---|---|---|
| objectType | No | Optional Zemax object type | |
| objectNumber | Yes | One-based insertion row |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether insertion shifts the indices of existing objects, whether it requires an active non-sequential system, whether the change persists to file, or what side effects occur — all important for a mutating insert 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 single sentence is front-loaded and free of waste, but it is under-specified rather than genuinely concise — brevity here reflects missing information, not tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description is too thin: it omits index-shifting behavior, system-state requirements, and the distinction from sibling insert/add tools. The schema covers parameters but nothing else is filled in.
Complex tools with many parameters or behaviors need more documentation. 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 objectType and objectNumber are already documented in the schema ('Optional Zemax object type', 'One-based insertion row'). The description adds no syntax or format detail beyond that, so the baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain 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 (insert) and resource (non-sequential object), so the basic action is clear. However, it does not distinguish this tool from close siblings like zemax_nsc_add_object, zemax_nsc_set_object, or zemax_nsc_remove_object, leaving the agent unsure which insertion/modification tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus zemax_nsc_add_object or zemax_nsc_set_object, nor any prerequisite or context. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_load_detectorNsc Load DetectorC
Load detector data from a type-compatible detector data file.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Existing detector data file | |
| appendData | No | Append rather than replace | |
| objectNumber | Yes | Detector object number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state whether loading replaces existing detector data by default, what permissions or state are required, or what side effects occur; the only added context is the vague 'type-compatible' file constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized, though extremely terse given the operation's potential side effects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is too thin for a load operation that can replace detector data. It omits whether existing data is overwritten, what the return looks like, and how the required parameters interact, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents objectNumber, filePath, and appendData. The description adds no syntax or format details beyond the file compatibility note, 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 (Load) and resource (detector data), plus a compatibility constraint on the source file. It is clear but does not explicitly differentiate itself from siblings such as zemax_nsc_save_detector or zemax_nsc_detector_data beyond the load-from-file action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no prerequisites, and no mention of when not to use it. The agent is left to infer usage from the purpose statement alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_polar_detector_dataNsc Polar Detector DataC
Read bounded full Detector Polar data.
| Name | Required | Description | Default |
|---|---|---|---|
| quantity | Yes | Polar detector quantity | |
| maxValues | No | Maximum values returned | |
| objectNumber | Yes | Detector Polar object number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden and mostly fails it. 'Bounded' hints at truncation but never states what the bound is, whether results are truncated at maxValues, what happens if the detector is larger, or whether the object must exist first. It also never explicitly confirms this is a non-mutating read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key constraint ('bounded') is front-loaded. It is arguably under-specified rather than over-long, so it loses only a point for the ambiguous 'bounded full' 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?
With no output schema and no annotations, the description should explain the return shape and truncation semantics for this data-retrieval tool. It does not say what a returned record looks like, whether values are truncated, or what happens on a large detector, leaving significant gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (quantity, maxValues, objectNumber) are already documented in the schema, making a baseline of 3 appropriate. The description's only added signal is the word 'bounded,' which loosely ties to maxValues without explaining its truncation behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Read') and resource ('Detector Polar data'), which distinguishes it from the pixel-level sibling zemax_nsc_polar_detector_pixel. However, the phrase 'bounded full' is internally ambiguous -- it is unclear whether 'full' means the whole detector or a truncated payload -- so an agent gains only a rough sense of scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no explicit routing to or away from siblings such as zemax_nsc_polar_detector_pixel or zemax_nsc_detector_data is provided. The agent must infer that this fetches whole-detector polar data while the pixel sibling fetches a single element.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_polar_detector_pixelNsc Polar Detector PixelC
Read one Detector Polar pixel or aggregate value.
| Name | Required | Description | Default |
|---|---|---|---|
| pixel | Yes | Pixel or documented aggregate index | |
| quantity | Yes | Polar detector quantity | |
| objectNumber | Yes | Detector Polar object number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Read' implies a non-mutating operation, but nothing states permissions, whether the detector must be loaded/computed first, performance implications of per-pixel access, or the shape 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?
A single short sentence with no wasted words, front-loaded with the verb and resource. It is efficient, though the minimalism borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a bare schema for three required parameters, the description should explain what the pixel/aggregate read returns and how aggregate indices relate to pixels. It leaves an agent without enough to call the tool confidently 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 coverage is 100%, so the schema already documents all three parameters, establishing a baseline of 3. The description's phrase 'or aggregate value' loosely supplements the schema's 'documented aggregate index', but adds no format or indexing details beyond 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?
States a specific verb ('Read') and resource ('Detector Polar pixel or aggregate value'), which distinguishes it from the sibling zemax_nsc_detector_pixel (non-polar) and zemax_nsc_polar_detector_data. However, it never explicitly names those siblings or the non-sequential context, so the differentiation relies on the reader inferring from the word 'Polar'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the obvious alternative zemax_nsc_polar_detector_data for bulk retrieval. The agent must guess whether this is preferred over the sibling data tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_ray_traceNsc Ray TraceC
Run a non-sequential ray trace.
| Name | Required | Description | Default |
|---|---|---|---|
| rays | No | Compatibility ray count hint | |
| split | No | Split rays | |
| saveZrd | No | Save ray database | |
| scatter | No | Scatter rays | |
| zrdFile | No | Optional lens-directory ZRD filename | |
| zrdFormat | No | ZRD format | CompressedFullData |
| ignoreErrors | No | Ignore ray errors | |
| clearDetectors | No | Clear all detectors first | |
| usePolarization | No | Trace polarization |
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 discloses nothing beyond the bare action. It does not mention side effects such as clearing detectors, saving ZRD files, error handling, runtime characteristics, or whether the trace mutates system 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 one-sentence description is front-loaded and waste-free, but it is not appropriately sized for a 9-parameter tool with meaningful behavioral choices. It is concise to the point of under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 9 parameters, no annotations, and no output schema, the definition is substantially incomplete. The schema documents parameter names, but the description omits when to use the tool, what happens to detectors or ZRD state, and what to expect from the 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 100%, so all 9 parameters are already documented in the schema. The description adds no additional parameter meaning, making the baseline 3 appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Run a non-sequential ray trace.' The 'non-sequential' qualifier helps distinguish it from sequential ray tracing siblings, but it does not explicitly differentiate from other ray-trace-adjacent tools like zemax_batch_ray_trace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no alternatives, and no prerequisites. An agent must infer from the name that this is the NSC ray trace tool rather than the sequential zemax_ray_trace or batch variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_remove_objectNsc Remove ObjectC
Remove a non-sequential object.
| Name | Required | Description | Default |
|---|---|---|---|
| objectNumber | Yes | One-based object number |
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, but it only restates the removal action. It omits whether removal is permanent, whether object indices shift, what permissions are required, or what happens on invalid input—critical gaps for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and contains no filler, which is appropriate for a simple tool. Its extreme brevity, however, leaves no room for the behavioral context that would make it fully 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?
The tool is simple with one required parameter, and the schema fully documents that parameter, so an agent can invoke it correctly. However, because no annotations are present, the description should still disclose destructive side effects and prerequisites, which it does not.
Complex tools with many parameters or behaviors need more documentation. 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%: objectNumber is documented as a 'One-based object number' in the schema. The description adds no additional semantics for this parameter, so the baseline score 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 names a specific verb ('Remove') and resource ('non-sequential object'), which distinguishes it from sequential removal tools like zemax_remove_surface. It does not explicitly contrast with immediate siblings such as zemax_nsc_add_object or zemax_nsc_clear_detectors, 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?
There is no guidance on when to use this tool versus alternatives. It does not state prerequisites (e.g., needing an existing object number), nor when not to use it, leaving all routing to inference from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_save_detectorNsc Save DetectorC
Save detector data to a type-compatible detector data file.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Destination detector data file | |
| overwrite | No | Overwrite existing file | |
| objectNumber | Yes | Detector object number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose permissions, error conditions, what 'type-compatible' means, or the effect of the overwrite parameter. Only the basic save action is 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?
A single, well-structured sentence that is front-loaded with the action and resource. 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?
For a save operation with no annotations or output schema, the description is sparse. It omits critical details such as format compatibility requirements, overwrite behavior, failure modes, and whether objectNumber must reference an existing detector.
Complex tools with many parameters or behaviors need more documentation. 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 three parameters (filePath, overwrite, objectNumber) are documented in the schema. The description adds no parameter semantics beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (save) and resource (detector data) with the modifier 'type-compatible detector data file'. This is clear but does not distinguish from the sibling zemax_nsc_load_detector, which is the inverse operation, nor does it explain what 'type-compatible' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. The phrase 'type-compatible' implies some precondition but does not define it. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_set_objectNsc Set ObjectC
Set common placement, material, comment, and reference properties of an NSC object.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | Comment | |
| material | No | Material | |
| refObject | No | Reference object | |
| xPosition | No | X position | |
| yPosition | No | Y position | |
| zPosition | No | Z position | |
| objectType | No | Object type | |
| tiltAboutX | No | Tilt X | |
| tiltAboutY | No | Tilt Y | |
| tiltAboutZ | No | Tilt Z | |
| objectNumber | Yes | One-based object number |
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. 'Set' implies mutation, but the description does not disclose required permissions, whether changes are persistent, error behavior for invalid object numbers, or side effects on the NSC system.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficiently sized, though its brevity contributes to the gaps in behavioral and contextual 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 an 11-parameter mutation tool with no annotations and no output schema, the description is sparse. It omits objectType and specific tilt details, gives no preconditions or side effects, and does not explain the relationship between this tool and zemax_nsc_set_object_parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description groups properties (placement, material, comment, reference) that map to schema parameters, but adds no format, range, or interdependency details beyond what the schema already 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?
States a specific verb 'Set' and resource 'common placement, material, comment, and reference properties of an NSC object', listing the categories of properties affected. It does not explicitly differentiate from the sibling zemax_nsc_set_object_parameter, so an agent must still infer which tool to choose for individual properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, preconditions, or alternatives are given. The description only says what the tool does, leaving the agent to infer when it applies versus zemax_nsc_set_object_parameter or zemax_nsc_get_object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_set_object_parameterNsc Set Object ParameterC
Set a type-specific NSC object parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Numeric or string value | |
| parameter | Yes | One-based parameter column | |
| objectNumber | Yes | One-based object number |
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. 'Set' implies a mutation, but the description says nothing about permissions, reversibility, error behavior, or what happens to existing values. This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It is appropriately concise, though it is perhaps too terse to be fully helpful, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with no annotations, no output schema, and a sparse description, the definition is not complete enough. It does not explain required state, valid parameter ranges, error behavior, or side effects, so an agent lacks important context for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters well, including one-based object and parameter columns. The description adds only that the parameter is type-specific, which is useful context but minimal. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain 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 verb (Set) and resource (NSC object parameter) and notes that the parameter is type-specific. It is distinguishable from get_object_parameter and set_object, but does not explicitly name the sibling it is not, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of required system state. It only states what the tool does, leaving all usage context to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_set_source_spectrumNsc Set Source SpectrumC
Set typed spectrum settings for an NSC source object.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Source color mode | |
| settings | Yes | ||
| objectNumber | Yes | One-based source object number |
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. 'Set' implies mutation but the description says nothing about reversibility, whether prior spectrum data is overwritten, required object state, or what the mode values constrain. For a mutation tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no waste. It is front-loaded with the verb, though brevity here edges toward under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations, no output schema, a nested opaque settings object, and no guidance on valid modes or expected inputs. The description leaves too much unspecified for an agent to invoke it correctly on the first try.
Complex tools with many parameters or behaviors need more documentation. 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 critical 'settings' parameter is an empty object with additionalProperties=false and no properties defined – the description gives no clue what keys belong there or their form. 'mode' is vaguely described as 'Source color mode' with no enum, and the description adds nothing 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?
States a verb ('Set') and resource ('typed spectrum settings for an NSC source object'), so the action is identifiable. However, 'typed spectrum' is domain jargon not elaborated, and the description doesn't differentiate from sibling zemax_nsc_get_source_spectrum beyond the get/set distinction already in the 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?
No when-to-use guidance, no prerequisites, and no mention of the sibling zemax_nsc_get_source_spectrum as the read counterpart. The agent must infer that this mutates the spectrum while the sibling reads it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_nsc_summaryNsc SummaryB
List non-sequential objects and common properties.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. The word "List" weakly implies a read-only operation, but the description does not explicitly state that it is non-destructive, side-effect-free, or what permissions are needed. Behavioral disclosure is 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?
The description is a single, front-loaded sentence with no filler or redundancy. It is appropriately sized for a zero-parameter summary tool. Every word contributes to identifying the 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 zero-parameter tool with no output schema and no annotations, the description is minimally adequate. It identifies the operation but does not explain what "common properties" are returned or provide usage context relative to sibling NSC tools. This leaves clear gaps, though invocation itself is unambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are not applicable. Per the rubric, a tool with 0 parameters has a baseline score of 4 for this dimension. The empty schema and lack of parameters require no additional 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 states a specific verb and resource: "List non-sequential objects and common properties." This clearly identifies the tool as a summary/listing operation over non-sequential objects. However, it does not explicitly distinguish itself from sibling tools such as zemax_nsc_get_object or zemax_nsc_get_object_parameter, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance about when to use this tool versus alternatives. It implies an overview use case through "summary," but does not state when-not-to-use or name sibling alternatives like zemax_nsc_get_object. No prerequisites or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_opd_fanOpd FanB
Calculate optical-path-difference fans for all fields and wavelengths.
| 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 full burden. It discloses the computation scope (all fields and wavelengths) but nothing about whether it mutates state, opens a viewer, requires a loaded lens file, or how results are returned. For an analysis tool this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first and no filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 analysis tool with no output schema, the description omits whether a system must be loaded/connected before invoking. It is minimally viable but leaves an agent to infer 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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The description cannot add parameter semantics because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('optical-path-difference fans'), which is clearly distinct from data-retrieval siblings. It does not explicitly say how it differs from the adjacent analysis tools zemax_ray_fan or zemax_pupil_aberration_fan, 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?
There is no guidance on when to choose this over related fan/aberration analyses, and no stated preconditions (e.g., an open system or connected session). The only hint of scope, 'for all fields and wavelengths,' is a computational scope rather than a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_open_fileOpen FileC
Open a Zemax .zmx or .zos lens file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Legacy absolute lens-file path | |
| filePath | No | Absolute Windows lens-file path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It states the operation but does not disclose side effects such as whether opening replaces the current system, what happens if the file is missing, or whether a connection is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized, though the brevity contributes to missing usage and behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file-opening tool with no annotations and no output schema, the description is too sparse. It omits whether a connection is required, what opening does to the current lens system, how path and filePath differ in practice, and when to use this instead of zemax_new_system or zemax_connect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema explains both parameters as absolute lens-file paths, including the legacy versus Windows distinction. The description adds only the supported file extensions, 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 and resource: 'Open a Zemax .zmx or .zos lens file.' It clearly identifies the action and supported file types, but does not distinguish this tool from siblings such as zemax_close_file, zemax_save_file, or zemax_new_system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like zemax_connect, zemax_new_system, or zemax_restart. It also omits prerequisites such as whether a Zemax session must already be connected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_operand_helpOperand HelpC
Get detailed documentation for an optimization operand.
| Name | Required | Description | Default |
|---|---|---|---|
| operandType | Yes | Operand mnemonic |
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 implies a safe read via 'Get documentation' but does not state read-only status, whether it hits the filesystem or a static reference, or what it returns/errors on unknown mnemonics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the purpose front-loaded and no filler. It is appropriately sized for a one-parameter lookup tool, though it could carry slightly more substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-param help tool with no output schema, this is minimally adequate. It omits what the documentation contains and how unknown mnemonics are handled, but the core intent is conveyed.
Complex tools with many parameters or behaviors need more documentation. 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 operandType as an 'Operand mnemonic'. The description adds no format or lookup semantics 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?
States a specific verb+resource: 'Get detailed documentation for an optimization operand.' An agent can distinguish this from peers like zemax_add_operand or zemax_search_operands by the documentation intent, though it does not name or contrast them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no reference to the closely related sibling zemax_search_operands. The agent is left to infer that this is for looking up an operand's meaning rather than finding operands by criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_optimization_wizardOptimization WizardC
Construct a merit function using Optimization Wizard criteria.
| Name | Required | Description | Default |
|---|---|---|---|
| arms | No | Gaussian arms | |
| rings | No | Gaussian rings | |
| gridSize | No | Rectangular grid size | |
| criterion | No | RMSSpotRadius, RMSWavefront, PeakToValley, etc. | RMSSpotRadius |
| reference | No | Centroid or ChiefRay | Centroid |
| wavelength | No | 0 for polychromatic | |
| clearExisting | No | Clear existing operands | |
| includeAllFields | No | Include every field | |
| minEdgeThickness | No | Minimum air edge thickness | |
| pupilIntegration | No | GaussianQuadrature or RectangularArray | GaussianQuadrature |
| maxCenterThickness | No | Maximum glass center thickness | |
| minCenterThickness | No | Minimum glass center thickness | |
| addBoundaryConstraints | No | Add thickness constraints |
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-disclosure burden. It implies a write/mutation operation by saying 'Construct,' but it does not warn that clearExisting defaults to true, that existing operands may be cleared, or that boundary constraints may be added by default. It gives no side-effect, permission, or state-change 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?
It is a single front-loaded sentence with no filler, but it is under-specified for a 13-parameter mutation tool. Brevity here reflects missing context rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, unannotated, 13-parameter tool with no output schema, the description is far too thin. It omits when to use it, how it differs from sibling merit-function tools, default side effects, and expected outcomes, leaving major 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%, so the schema already documents all 13 parameters thoroughly. The description adds no parameter meaning beyond what the schema provides, which is the baseline 3 when structured fields do the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Construct a merit function.' However, 'using Optimization Wizard criteria' is circular and does not explain what criteria are or how this differs from sibling zemax_merit_wizard. The purpose is only vaguely clear beyond the tool name and title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, when to prefer alternatives like zemax_merit_wizard, or what prerequisites or system state are required. The description gives no usage context at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_optimizeOptimizeC
Run native local optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| cores | No | Legacy CPU core count | |
| cycles | No | 0 for automatic | |
| method | No | Legacy local, hammer, or global | |
| algorithm | No | DLS or Orthogonal | DLS |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but 'Run native local optimization' does not disclose side effects such as modifying lens variables, required system state such as a merit function or defined variables, or what the operation returns. It adds only the 'local' qualifier beyond the title.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single four-word sentence, front-loaded with the action and scope; no filler or repetition. It is appropriately terse for a tool whose name and title are already visible to the 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 complex optimizer with no annotations and no output schema, the description is too thin: it omits prerequisites, side effects, and result behavior. It says it runs local optimization but leaves the agent unable to determine how to prepare for or interpret the 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?
Schema description coverage is 100%, and the schema already documents cores, cycles, method, and algorithm with defaults. The description adds no parameter meaning beyond that, so baseline 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?
States a concrete action ('Run') and a resource ('local optimization'), and the word 'local' distinguishes it from global or hammer optimizers among siblings. However, it does not explicitly name or contrast those alternatives, so sibling differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to prefer this over zemax_global_search, zemax_hammer, zemax_multistart_optimize, or zemax_constrained_optimize. The description offers no prerequisites, exclusions, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_popPopC
Run Physical Optics Propagation (POP).
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | One-based field | |
| beamType | No | Beam type | GaussianWaist |
| dataType | No | Irradiance, phase, etc. | Irradiance |
| samplingX | No | X sampling | |
| samplingY | No | Y sampling | |
| endSurface | Yes | End surface | |
| wavelength | No | One-based wavelength | |
| startSurface | Yes | Start surface | |
| beamParameter1 | No | Beam parameter 1 | |
| beamParameter2 | No | Beam parameter 2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing: nothing about whether this is a read-only computation, whether it is expensive/slow, what it returns (irradiance/phase maps), or how startSurface/endSurface bound the propagation. The word 'Run' weakly implies a computation rather than a mutation, but that is the only signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the acronym expansion is the one piece of added value. It is concise to the point of being terse for a 10-parameter analysis tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, annotation-free, output-schema-free analysis tool, the definition leaves an agent without the essential context: what the propagation produces, how beam type couples to beam parameters, and what the surface range constrains. Given no output schema exists, return-value behavior should have been described but is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is nominally 100%, so the baseline is 3, but the schema text is largely tautological ('Beam parameter 1', 'X sampling'), leaving key semantics — that beamParameter1/2 meaning depends on beamType, and that field/wavelength are one-based — unexplained. The description adds nothing to compensate.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Run') and a named, non-obvious analysis resource ('Physical Optics Propagation (POP)'), expanding the acronym so an agent can recognize it as a distinct Zemax analysis rather than a generic run command. It does not, however, contrast itself with any sibling analysis tool such as zemax_fft_psf or zemax_huygens_psf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 POP is the right analysis versus the many other propagation/diffraction siblings, nor any prerequisite (e.g. which beam definition must already exist, when a Gaussian-waist beam model is valid). The agent must infer applicability on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_pupil_aberration_fanPupil Aberration FanB
Calculate entrance-pupil aberration fans.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether this is a read-only analysis, whether it requires an open/connected Zemax session, whether it mutates state, or what the output looks like (plot vs. numeric data). Only the barest assertion of what is computed is given.
Agents need to know what a tool does to the 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, which is efficient. It is terse to the point of under-specification rather than bloated, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument analysis tool with no output schema and no annotations, the description should at minimum indicate prerequisites (active system/file) and the nature of the result. Neither is present, leaving the agent with meaningful gaps before 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 tool takes zero parameters, so there are no parameter semantics to document and the baseline is 4. No description content is needed here.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Calculate') and resource ('entrance-pupil aberration fans'), which is more precise than a bare 'aberration fans' and hints at the entrance-pupil distinction. It does not, however, differentiate itself from sibling analysis tools like zemax_ray_fan, zemax_opd_fan, or zemax_seidel_coefficients, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no stated preconditions (e.g., a loaded lens file in Zemax), and no mention of which sibling to prefer for related aberration analyses. The agent gets no routing information at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_quick_focusQuick FocusC
Run Quick Focus to adjust back focal distance.
| Name | Required | Description | Default |
|---|---|---|---|
| criterion | No | SpotSizeRadial, SpotSizeXOnly, SpotSizeYOnly, or RMSWavefront | SpotSizeRadial |
| useCentroid | No | Reference spot size to the centroid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says the tool 'adjusts back focal distance' — a mutation of system state — but does not disclose whether the change is persisted, reversible, requires specific modes, or what it 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?
A single short sentence with no filler and the action front-loaded. It is efficient, though perhaps too terse given the missing behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-mutating tool with no annotations and no output schema, the description omits the information an agent needs: what the adjustment affects, whether it operates on the loaded system, and side effects. Two schema-documented params are covered, but the behavioral picture is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (criterion, useCentroid) already carry descriptions and defaults, so the schema does the heavy lifting. The tool description adds no parameter meaning beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('adjust back focal distance') via a named feature ('Quick Focus'), so the agent knows what it does. It does not distinguish itself from related optimization/analysis siblings like zemax_optimize or zemax_quick_focus alternatives, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use Quick Focus versus other refocusing or optimization tools, and no prerequisites such as needing an open lens file or a defined merit function. The agent gets no context beyond what the name implies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_ray_fanRay FanB
Calculate transverse ray aberration fans for all fields and wavelengths.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, whether it requires a loaded lens system, what permissions are needed, or what the output looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action and scope. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter analysis tool, the description states what is computed and the scope (all fields and wavelengths). However, it lacks guidance on when to use this analysis versus closely related tools (OPD fan, pupil aberration fan) and omits any note about required system state or output interpretation.
Complex tools with many parameters or behaviors need more documentation. 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 input parameters, so the baseline is 4. The description adds no parameter information because there is none to add.
Input schemas describe structure but not intent. Descriptions should explain 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 (Calculate) and resource (transverse ray aberration fans) with scope (all fields and wavelengths). It implicitly distinguishes from wavefront-based fans like OPD fan, but does not name any sibling tool or state when to prefer this 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?
No explicit when-to-use guidance, no prerequisites, and no alternatives named. Usage is only implied by 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.
zemax_ray_traceRay TraceC
Trace one normalized sequential ray.
| Name | Required | Description | Default |
|---|---|---|---|
| hx | No | Normalized field X | |
| hy | No | Normalized field Y | |
| px | No | Normalized pupil X | |
| py | No | Normalized pupil Y | |
| surface | No | 0 traces to image | |
| wavelength | No | Wavelength number |
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, and it offers almost none: it does not say whether the call mutates any state, what it returns, whether it requires an open sequential system, or what "normalized" input coordinates mean. Only the sequential-mode hint adds minor 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?
A single front-loaded sentence with no filler. It is efficient, though arguably under-specified rather than optimally concise for a six-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with no annotations and no output schema, the description explains neither the return value (ray coordinates? OPD? status?) nor the preconditions for calling it. The schema covers inputs, but the behavioral and output dimensions are left entirely 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%, so all six parameters are already documented (hx/hy, px/py, surface, wavelength). The description adds only the word "normalized", which is consistent with the schema but redundant; baseline 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?
States a specific verb and resource ("Trace ... ray") and the scope ("one", "sequential", "normalized"), which implicitly separates it from siblings like batch_ray_trace and nsc_ray_trace. Clear enough that an agent knows what it does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, no prerequisites (e.g. a system must be open/connected first), and no routing to alternatives such as zemax_batch_ray_trace or zemax_nsc_ray_trace. The qualifiers "one" and "sequential" hint at distinction but do not state it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_relative_illuminationRelative IlluminationB
Calculate relative illumination and effective F-number versus field.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says what is computed but not what is returned (curve vs. array vs. scalar), whether a system must already be loaded, what units or field points are used, or how failures 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?
A single front-loaded sentence naming both computed quantities with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and no annotations, the description is the only source of information, and it stops short of describing the return values or the system state required before calling. It is adequate to identify the analysis but leaves real gaps 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 tool takes zero parameters, so there is nothing for the description to disambiguate. The baseline for a parameterless tool applies; no syntax or defaults are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (relative illumination and effective F-number versus field), which is precise enough to distinguish it from sibling analyses like fft_mtf_vs_field or rms_spot. However, it does not explicitly contrast itself with the generic zemax_run_analysis or zemax_analysis_series entry points.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 offers no guidance on when to use this tool versus alternatives such as zemax_run_analysis or other field-dependent analyses. There are no prerequisites, exclusions, or context cues; the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_remove_material_catalogRemove Material CatalogC
Remove a material catalog from the current optical system.
| Name | Required | Description | Default |
|---|---|---|---|
| catalogName | Yes | Material catalog name without the .agf extension |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies mutation but says nothing about reversibility, whether removal fails when the catalog is in active use, what happens to dependent glass definitions, or permission 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?
One clean, front-loaded sentence with zero filler. It is efficient, though the terseness contributes to the missing behavioral 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 destructive mutation tool with no annotations and no output schema, the description should disclose consequences of removal and failure modes. The single parameter is fully covered by the schema, but the behavioral context an agent needs before invoking a delete-style operation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single parameter, so the schema already documents catalogName including the notable '.agf extension' nuance. The description adds nothing beyond it, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain 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 (Remove) and resource (material catalog) scoped to the current optical system, so the operation is unambiguous. It does not, however, differentiate itself from siblings like zemax_add_material_catalog or zemax_get_glass_catalogs, which an agent must infer from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus the obvious inverse (zemax_add_material_catalog) or how it relates to catalog inspection via zemax_get_glass_catalogs. No prerequisites are stated, such as whether the catalog must first be loaded or whether glasses referencing it must be removed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_remove_operandRemove OperandB
Remove a merit-function operand.
| Name | Required | Description | Default |
|---|---|---|---|
| row | Yes | One-based row |
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 states removal but does not mention that the operation is destructive, whether it is reversible, what permissions are required, or how it affects the merit function. This is a significant 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 a single sentence with no wasted words and the action is front-loaded. It is appropriately sized for a simple one-parameter tool. 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?
The tool is simple, with one fully documented parameter and no output schema, so the description is minimally sufficient to invoke it. However, the lack of annotations and the absence of any behavioral context for a destructive operation leaves a gap. The description could do more to explain side effects or expected outcomes.
Complex tools with many parameters or behaviors need more documentation. 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 single parameter 'row' is documented as 'One-based row'. The description adds no additional meaning about the parameter beyond what the schema already provides. A baseline score of 3 is appropriate when the schema fully documents the inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Remove') and resource ('merit-function operand'), making the tool's action immediately clear. It distinguishes this tool from sibling removal tools like zemax_remove_surface or zemax_nsc_remove_object by specifying the exact object type. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives such as zemax_add_operand, zemax_search_operands, or zemax_delete_configuration_operand. It does not state prerequisites, context, or exclusions. Usage is only implied by the verb 'Remove', which is insufficient for routing decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_remove_surfaceRemove SurfaceC
Remove a sequential surface.
| Name | Required | Description | Default |
|---|---|---|---|
| surfaceNumber | Yes | Surface number to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose that removal is destructive and irreversible, that subsequent surface indices shift, whether the surface must be unlocked or unused, or what the call returns on failure. 'Remove' hints at mutation but nothing more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is structurally fine; its brevity is a completeness problem rather than a conciseness problem, so it is not penalized heavily here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive structural mutation on a lens model, with no annotations and no output schema, the description leaves out the consequences of removal and any safety or ordering constraints. An agent could invoke it correctly syntactically but has no basis for judging the side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage, so the schema already documents 'surfaceNumber' as 'Surface number to remove'. The description adds no numbering convention, range, or base-index information beyond that, matching 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?
States a specific verb and resource ('Remove a sequential surface'), and the word 'sequential' does implicitly separate it from zemax_nsc_remove_object. However, it adds nothing beyond the title 'Remove Surface' apart from that one qualifier; there is no detail about what removal entails or which surface model it applies to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. An agent cannot tell from the description whether this is preferred over zemax_lde_insert_surface/zemax_add_surface workflows or when a surface must not be removed (e.g., the image or object surface).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_restartRestartA
Restart the OpticStudio connection when the current session is unhealthy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states that it restarts the connection but does not disclose side effects such as session state loss, whether an existing connection is required, or whether the operation is safe to call repeatedly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is perfectly sized and structured for a zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no annotations and no output schema, the description covers purpose and trigger condition. However, it omits behavioral context about what happens during a restart, leaving the agent to infer side effects and 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 tool has zero parameters and the schema description coverage is 100%, so no parameter details are needed. The description adds no parameter information, which is appropriate and matches the baseline of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb 'Restart' and resource 'OpticStudio connection', and gives the condition 'when the current session is unhealthy'. Does not explicitly distinguish from sibling tools like zemax_connect or zemax_disconnect, so sibling differentiation is partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use the tool: when the current session is unhealthy. No exclusions or named alternatives are given, but the condition is actionable and sufficiently specific.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_rms_spotRms SpotC
Calculate an RMS spot radius for a normalized field point.
| Name | Required | Description | Default |
|---|---|---|---|
| hx | No | Normalized field X | |
| hy | No | Normalized field Y | |
| useGrid | No | Use rectangular sampling | |
| sampling | No | Rings or grid size | |
| reference | No | centroid or chief | centroid |
| wavelength | No | 0 for polychromatic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the calculation mutates the system, requires an open/connected file, is read-only, or how a single returned radius is reported. For a 'calculate' tool with zero annotation coverage, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb and scope front-loaded and no wasted words. It is efficient, though so short that it omits useful routing and return information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say what is returned (a scalar RMS radius, and perhaps units), which it does not. Combined with the unresolved overlap with zemax_spot_rms, the definition is only minimally sufficient for a 6-parameter analysis 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 all six parameters (hx, hy, useGrid, sampling, reference, wavelength) are already documented in the schema. The description only implies the field point is normalized, adding no detail beyond the schema; baseline 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?
States a specific verb (Calculate) and resource (RMS spot radius) with scope (a normalized field point), so the agent knows what it produces. However, it fails to differentiate from the near-identical sibling zemax_spot_rms (and zemax_spot_diagram), leaving duplication unresolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus zemax_spot_rms, zemax_spot_diagram, or the other spot/aberration analyses. No prerequisites (e.g., an open lens file) or context on when weights over a single field point are appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_run_analysisRun AnalysisC
Run an arbitrary AnalysisIDM by name and extract sample results.
| Name | Required | Description | Default |
|---|---|---|---|
| analysisType | Yes | ZOSAPI AnalysisIDM member |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It says nothing about whether the analysis opens a window, requires a connected session, blocks, costs compute time, or how 'sample results' are selected or returned. 'Extract sample results' is vague about the return shape 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?
A single efficient sentence with no padding and the verb front-loaded. It is appropriately sized for a one-parameter tool, though it is arguably under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic dispatch tool sitting beside dozens of specific analysis tools, the description is missing the crucial context: what an AnalysisIDM is, how to discover valid names, how it relates to the specialized siblings, and what 'sample results' means. With no annotations and no output schema, this leaves the agent unable to call the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter, documented as 'ZOSAPI AnalysisIDM member'. The description adds no examples, no valid value list, and no format details beyond the schema, so the baseline 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 states a verb ('Run') and resource ('an arbitrary AnalysisIDM by name'), but 'AnalysisIDM' is ZOSAPI-internal jargon that an agent cannot resolve without external knowledge. It is distinguishable from siblings like zemax_fft_mtf or zemax_ray_fan only by the fact that those name specific analyses, but the description does not explain this distinction or what an AnalysisIDM actually is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 generic tool versus the many specialized analysis siblings (zemax_fft_mtf, zemax_ray_fan, zemax_spot_diagram, etc.). An agent cannot tell whether this is a fallback for unsupported analyses or the preferred path, 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.
zemax_run_tolerancingRun TolerancingC
Run bounded Monte Carlo tolerancing.
| Name | Required | Description | Default |
|---|---|---|---|
| monteCarloRuns | No | Number of Monte Carlo runs (1-100) | |
| timeoutSeconds | No | Hard timeout in seconds (maximum 300) |
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 says 'bounded' without explaining what bounds apply, and does not state whether the run is blocking, what happens on timeout, whether results are stored for the tde_summary tool, or whether a tolerance setup must exist first.
Agents need to know what a tool does to the 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 clause with no filler. It is efficient, though arguably under-specified rather than concise by design.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation/execution tool with no annotations, no output schema, and no explanation of prerequisites, blocking behavior, timeout handling, or where results go. For a run operation in a family of tolerance tools, the description is too thin to guide 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%: both parameters (monteCarloRuns 1-100, timeoutSeconds max 300) are fully documented in the schema. The description adds no parameter detail. Baseline 3 is appropriate when the schema does the heavy lifting, though 'bounded' loosely gestures at the caps.
Input schemas describe structure but not intent. Descriptions should explain 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 (Run) and resource (Monte Carlo tolerancing) with a modifier (bounded), but gives no hint of how it differs from siblings like zemax_tolerance_wizard or zemax_tde_summary. Siblings exist for tolerance setup and reporting, yet the description does not distinguish which one an agent should pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative routing. An agent seeing both zemax_tolerance_wizard and zemax_run_tolerancing has no guidance on which is the setup tool and which is the execution tool. The word 'Run' implies execution, but nothing is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_save_fileSave FileB
Save the current lens, optionally using Save As.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Legacy optional destination path | |
| filePath | No | Optional destination 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 states the operation is a save and mentions an optional Save As variant, but it does not say whether the operation overwrites existing files, what happens if no path is given and no current file exists, which of the two path parameters takes precedence, or whether a lens must be loaded first. Significant 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?
A single, front-loaded sentence with no wasted words. It states the action and the optional variation 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 save tool with two documented optional parameters and no output schema, the description is minimally adequate. However, it omits important context such as the difference between 'path' and 'filePath', the conditions under which 'Save As' is triggered, and whether the operation requires an open file, leaving the agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'path' (legacy optional destination path) and 'filePath' (optional destination path). The description adds nothing about the distinction, precedence, or format of these parameters, 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?
States a specific verb ('Save') and resource ('current lens'), clearly distinguishing it from unrelated siblings like zemax_get_system or zemax_run_analysis. It does not explicitly differentiate from the similarly named zemax_save_merit_function_file, but the resource 'lens' is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('Save the current lens') and hints at an optional Save As mode, but it gives no explicit when-to-use guidance, no prerequisites, and no exclusions or alternatives. Usage is inferable from the tool name and context, which meets the minimum viable threshold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_save_merit_function_fileSave Merit Function FileC
Save the merit function to a .MF file.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute .MF file 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 does not disclose whether an existing file is overwritten, whether the directory must exist, whether the write requires a connected Zemax session, 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?
A single tight sentence with the action front-loaded and no filler. It is appropriately sized for a one-parameter persistence call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 nested objects, no output schema), and the description covers the basic action. However, for a filesystem write it omits overwrite semantics and any session/connection requirement, leaving a small but real 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?
Only one parameter (filePath) and the schema already documents it at 100% coverage as an 'Absolute .MF file path'. The description adds nothing 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?
States a specific verb (Save) and resource (merit function) with the target artifact (.MF file), which cleanly separates it from zemax_load_merit_function_file. It stops short of explicitly naming that sibling, so it is clear but not maximally disambiguating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus zemax_save_file (full system save) or zemax_load_merit_function_file. Nothing is said about prerequisites, such as needing a merit function already defined via zemax_get_merit_function or the operand tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_scale_lensScale LensC
Scale a disposable lens by factor or convert it to another lens unit.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Scaling mode | |
| scaleFactor | No | Finite positive scale factor | |
| scaleToUnit | No | Target lens unit | |
| lastComponent | No | Last component to scale | |
| firstComponent | No | First component to scale | |
| timeoutSeconds | No | Bounded timeout in seconds |
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 falls short. It does not say whether scaling mutates the in-memory lens in place or persists to file, whether the change is reversible, whether it applies to all surfaces unless firstComponent/lastComponent narrow the range, or what units the factor is relative to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler and the two capabilities stated up front. It is efficient, though arguably too terse for a six-parameter mutation tool; the odd 'disposable lens' wording slightly dilutes precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with six parameters, no annotations, and no output schema needs more than one sentence. Missing are the interaction between mode and its two dependent parameters, the component-range scoping, timeout behavior, and any note on what the lens state looks like afterward.
Complex tools with many parameters or behaviors need more documentation. 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 six parameters, making 3 the baseline. The description reinforces the two mode concepts but adds no constraint beyond the schema — it never clarifies the factor/units coupling with mode or the inclusive/exclusive semantics of firstComponent/lastComponent.
Input schemas describe structure but not intent. Descriptions should explain 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 ('scale') and resource ('lens') and even names the two supported operations (factor scaling vs. unit conversion), which matches the mode enum. It does not distinguish itself from related unit/system tools such as zemax_set_system_units, and the phrase 'disposable lens' is an unusual qualifier that could confuse an agent about what is being scaled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 two branches (factor vs. unit conversion) but gives no when-to-use guidance, no prerequisites, and no alternatives. An agent must infer from the mode enum that exactly one of scaleFactor/scaleToUnit should accompany each mode, and nothing tells it when scaling is appropriate versus using a unit-setting tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_search_operandsSearch OperandsB
Search operand names and descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| category | No | Optional category filter | |
| maxResults | No | Maximum results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states what is searched but does not disclose whether a Zemax connection is required, how results are returned, whether the search spans local help or loaded merit functions, or any limits beyond the maxResults parameter.
Agents need to know what a tool does to the 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, and the core action is front-loaded. It earns its place, though it is arguably terse given the surrounding toolset.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, read-only search tool with low complexity, the description states what is searched. However, with no output schema and no annotations, it does not explain the return format or connection prerequisites, making it only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (query, category, maxResults) are already documented in the input schema. The description adds no syntax, matching rules, or category semantics beyond what the schema provides, so the baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Search') and resource ('operand names and descriptions'), making the core action clear. However, it does not distinguish this tool from siblings like zemax_operand_help or zemax_global_search, leaving scope to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus zemax_operand_help, zemax_global_search, or other operand-related tools. The description only states the action, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_seidel_coefficientsSeidel CoefficientsC
Calculate third-order Seidel and chromatic aberration coefficients.
| Name | Required | Description | Default |
|---|---|---|---|
| wavelength | No | 0 for primary |
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 implies a read-only analysis but does not confirm non-mutation, does not state that a system must be loaded in Zemax, and gives no hint about output format, coefficient ordering, or sign conventions for a domain-specific computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no redundancy, and the core action is front-loaded. It is well-sized for the information it chooses to convey, though it is arguably too sparse rather than too verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a specialized optical aberration analysis tool with no annotations and no output schema, the description is thin. It omits whether the system must be configured, what form the returned coefficients take, and how results map to the requested wavelength, leaving meaningful gaps an agent would need filled.
Complex tools with many parameters or behaviors need more documentation. 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 wavelength parameter is documented ('0 for primary'), so the schema does the heavy lifting. The description adds no additional parameter meaning, so the baseline 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 states a specific verb (Calculate) and resource (third-order Seidel and chromatic aberration coefficients), which is more informative than the bare title 'Seidel Coefficients'. However, it does not differentiate itself from closely related siblings like zemax_longitudinal_aberration or zemax_chromatic_focal_shift, so the agent must infer 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 when-to-use guidance, no prerequisites, and no mention of alternatives. The agent is not told when Seidel coefficients are preferable to lateral color, pupil aberration fan, or the other aberration tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_afocal_modeSet Afocal ModeA
Enable or disable sequential afocal mode.
| Name | Required | Description | Default |
|---|---|---|---|
| afocalMode | Yes | Whether afocal mode is enabled |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does convey that this is a reversible boolean toggle rather than a destructive or accumulating operation, which is meaningful for an agent. It says nothing about whether a system must be loaded first, whether the change persists to file, 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?
A single short sentence that front-loads the action and the target state. Nothing extraneous and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter boolean setter with a fully documented schema and no output schema, the description is roughly adequate. Its real gap is behavioral: it does not say that a system/file context is required or that the setting is a persistent system property rather than a transient flag.
Complex tools with many parameters or behaviors need more documentation. 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% — the single boolean parameter is fully documented in the schema as 'Whether afocal mode is enabled'. The description adds no format, default, or side-effect detail beyond that, 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?
States a specific verb pair ('enable or disable') and resource ('sequential afocal mode'), so the agent knows exactly what state is being toggled. It does not explicitly name get_afocal_mode as its counterpart, but the read/write pairing is self-evident from the naming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 word 'sequential' scopes the tool to sequential-mode systems as opposed to the many non-sequential (nsc_) siblings, which is a useful implicit boundary. However, there is no explicit when-to-use, prerequisite (e.g. a loaded system), or when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_apertureSet ApertureC
Set the system aperture type and value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Aperture value | |
| apertureType | No | EPD, FNumber, ObjectNA, FloatByStop, or Zemax enum name | EPD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose that this mutates global system state, whether the change affects subsequent analyses, what happens on an invalid aperture type, or that apertureType defaults to EPD. For a mutation tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is appropriate for a two-parameter setter. It is efficient, though it is arguably too thin to be fully informative rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a global system-state mutation with no annotations and no output schema, the description omits everything an agent needs beyond the schema: prerequisites, side effects on later analyses, and error behavior. The schema covers parameter shape but the description leaves the operational context incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'value' and the 'apertureType' enum list and default. The description's phrase 'type and value' merely restates the schema at a high level and adds no format, unit, or constraint detail. Baseline 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 names a specific verb and resource ('Set the system aperture') and lists the two things being set (type and value), so the agent knows exactly what operation is performed. It does not, however, distinguish this from neighbouring set_* tools such as zemax_set_afocal_mode or zemax_set_apodization, which also mutate system-level settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. a system must be open/connected), and no mention of alternatives or when not to call it. The agent must infer the context entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_apodizationSet ApodizationC
Set aperture apodization type and factor.
| Name | Required | Description | Default |
|---|---|---|---|
| factor | Yes | Apodization factor | |
| apodizationType | Yes | Apodization type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation but never says what state is affected, whether the change is reversible, what persists on save, or whether an active connection/system is required — a significant gap for a state-changing tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action and targets front-loaded and no filler. It is efficient, though brevity here borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a required-two-parameter mutation tool with no annotations and no output schema, the description leaves key agent-facing questions unanswered: valid apodization type values, factor semantics, and preconditions. It is not complete enough to call correctly without outside knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are documented structurally and the baseline is 3. The description only echoes 'type and factor' without clarifying accepted apodization type strings (0 enums) or the meaning/range of the factor, adding nothing 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?
States a specific verb+resource pair ('set aperture apodization') plus the two values being set, so an agent knows exactly what changes. It does not explicitly distinguish itself from the sibling zemax_get_apodization, though the set/get contrast is inferable from the 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?
No statement of when to use this tool, no prerequisites (e.g., a system must be open/connected), and no mention of the read-side alternative zemax_get_apodization for inspection first. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_aspheric_surfaceSet Aspheric SurfaceC
Convert to Even Asphere and set conic and alpha coefficients.
| Name | Required | Description | Default |
|---|---|---|---|
| conic | No | Conic constant | |
| alpha1 | No | Even-asphere alpha1 coefficient | |
| alpha2 | No | Even-asphere alpha2 coefficient | |
| alpha3 | No | Even-asphere alpha3 coefficient | |
| alpha4 | No | Even-asphere alpha4 coefficient | |
| alpha5 | No | Even-asphere alpha5 coefficient | |
| alpha6 | No | Even-asphere alpha6 coefficient | |
| alpha7 | No | Even-asphere alpha7 coefficient | |
| alpha8 | No | Even-asphere alpha8 coefficient | |
| conicVariable | No | Make conic variable | |
| surfaceNumber | Yes | Surface number | |
| alpha1Variable | No | Make alpha1 variable | |
| alpha2Variable | No | Make alpha2 variable | |
| alpha3Variable | No | Make alpha3 variable | |
| alpha4Variable | No | Make alpha4 variable | |
| alpha5Variable | No | Make alpha5 variable | |
| alpha6Variable | No | Make alpha6 variable | |
| alpha7Variable | No | Make alpha7 variable | |
| alpha8Variable | No | Make alpha8 variable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It does disclose the important trait that the surface is converted to Even Asphere (a real type mutation), but it says nothing about what gets overwritten by the conversion, whether coefficients are optional, or that the *Variable flags mark terms as optimization variables.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its terseness is arguably insufficient given a 19-parameter mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits the purpose of the variable flags, the optionality of coefficients, and any post-conversion side effects an agent would need to call it safely.
Complex tools with many parameters or behaviors need more documentation. 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 each of the 19 parameters is already self-documented, establishing a baseline of 3. The description confirms the conic/alpha coefficient family but adds no syntax, range, or interaction detail (e.g., relationship between alphaN and alphaNVariable) 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 specific compound verb ('Convert to Even Asphere and set conic and alpha coefficients') and a clear resource, so an agent knows it both changes the surface type and populates coefficients. However, it does not explicitly distinguish itself from closely-named siblings like zemax_get_aspheric_surface or zemax_set_surface_type, leaving the 'read vs. write' and 'type-change vs. coefficient-set' boundaries to be inferred from naming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 zemax_set_surface, zemax_set_surface_parameter, or zemax_set_surface_type. No prerequisites (e.g., an open lens file or valid surface number) are mentioned, so the agent must guess the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_clear_semi_diameter_marginSet Clear Semi Diameter MarginC
Set the clear semi-diameter margin.
| Name | Required | Description | Default |
|---|---|---|---|
| margin | Yes | Margin value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses nothing. It does not explain what the 'margin' controls (e.g., a buffer applied around the clear semi-diameter during surface sizing), what units it takes, whether it is persisted to the file, or what side effects it has.
Agents need to know what a tool does to the 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, but the brevity reflects under-specification rather than efficient structure. It is front-loaded by default since there is only one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a domain-specific concept ('clear semi-diameter margin') that many agents will not know, the description is too thin to support correct invocation. It does not say what the value represents numerically or how it affects the optical 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?
There is a single required parameter with 100% schema description coverage, so the baseline is 3. The description adds no meaning beyond the schema's terse 'Margin value' text, but the schema already documents the parameter's existence and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially the tool name with underscores removed: 'Set the clear semi-diameter margin.' It states a verb and a resource but adds no information beyond the title, and it makes no attempt to distinguish itself from the sibling zemax_get_clear_semi_diameter_margin, which it directly mirrors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 setter, no mention of its getter counterpart, and no indication of prerequisites such as a loaded/open lens file. The agent must infer all usage context 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.
zemax_set_configuration_operand_valueSet Configuration Operand ValueC
Set a value or pickup solve for one configuration operand cell.
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Direct value | |
| offset | No | Pickup offset | |
| operandRow | Yes | One-based operand row | |
| scaleFactor | No | Pickup scale | |
| pickupConfig | No | Pickup configuration | |
| configurationNumber | Yes | One-based configuration |
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 touches on the two modes (direct value vs pickup solve), which is useful, but says nothing about what a pickup solve does, whether offset/scaleFactor only apply in pickup mode, whether value and pickup parameters are mutually exclusive, or what permissions/state are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the operation front-loaded and no filler. It is appropriately sized, though very terse for a tool where the two operating modes need clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description is too thin. It never explains how value/offset/scaleFactor/pickupConfig interact, nor what happens to the cell's existing solve, which an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented (value, offset, operandRow, scaleFactor, pickupConfig, configurationNumber). The description's 'value or pickup solve' hints at the mode distinction that the schema does not resolve, but adds no syntax or interaction detail beyond that. Baseline 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?
States a specific verb ('Set') and resource ('configuration operand cell') with the supported value types (value or pickup solve). It is clear on its own but does not differentiate itself from nearby siblings like zemax_add_configuration_operand, zemax_delete_configuration_operand, or zemax_mce_add_operand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus adding/deleting an operand, or versus zemax_get_configuration_operands for reading. Usage is only implied by the verb 'Set'. No prerequisites (e.g., the configuration and operand row must already exist) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_current_configurationSet Current ConfigurationC
Set the active configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| configurationNumber | Yes | One-based configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it discloses almost nothing. It implies a state mutation (changing the active configuration) but says nothing about whether the operation is reversible, what happens to other configurations, required permissions, or how errors (e.g., out-of-range index) manifest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no wasted words and the intent is front-loaded. The brevity leans toward under-specification, but there is no structural bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 state-mutating tool with no annotations and no output schema, the description is too thin. It omits side effects, error conditions, and the relationship to the configuration-management siblings, leaving meaningful gaps for an agent trying to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema coverage, the schema already explains that configurationNumber is one-based. The description adds no meaning beyond that, 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 gives a clear verb and resource (set the active configuration), so the basic purpose is unambiguous. However, it essentially restates the tool name and title verbatim and offers no differentiation from siblings such as zemax_get_configuration or zemax_set_number_of_configurations, leaving an agent to infer the distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not say whether it must follow zemax_set_number_of_configurations, how it relates to zemax_get_configuration, or what preconditions (existing configurations) must hold before calling it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_extra_dataSet Extra DataC
Set one or more surface Extra Data (XDAT) values.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | XDAT entries | |
| surfaceNumber | Yes | Surface number |
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, yet it only implies mutation through the verb 'Set'. It does not say whether changes are persistent, whether existing XDAT values are overwritten, what permissions or file state are required, or what happens on an invalid parameter number.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler and no repetition of the schema. It is efficient, though its brevity is partly the source of the missing behavioral and usage detail rather than a deliberate summary of it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and no usage guidance, the description is insufficient: an agent cannot tell what state is required, what gets overwritten, or what result to expect. The schema covers parameters, but the behavioral context is essentially absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents surfaceNumber and the parameter/value entries; baseline 3 applies. The phrase 'one or more' adds the useful fact that the values array is a batch update, but no additional syntax or constraint meaning is given.
Input schemas describe structure but not intent. Descriptions should explain 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 (Set) and resource (surface Extra Data / XDAT values), so an agent understands the concrete mutation. It does not distinguish itself from adjacent siblings such as zemax_get_extra_data or zemax_set_surface_parameter, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives like zemax_set_surface_parameter or the read-side zemax_get_extra_data, and no prerequisites (e.g. an open file, valid surface number). Usage must be fully inferred from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_fieldsSet FieldsC
Set all field points and the field coordinate type.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field definitions | |
| points | No | Legacy [x,y] coordinate pairs | |
| fieldType | No | Angle, ObjectHeight, ParaxialImageHeight, or RealImageHeight | Angle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It implies replacement of all field points via 'set all,' but does not explain overwrite behavior, prerequisites, effects on existing fields, or whether the operation is destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the operation and its scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and no output schema, the description is too thin. It does not clarify how the 'fields' and legacy 'points' parameters interact, what happens to existing fields, or other behavior an agent needs before invoking 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?
Schema description coverage is 100%, so the schema already documents the parameters and their nested structure. The description only restates the overall target of the parameters and adds no syntax, precedence, or legacy-vs-modern guidance 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 verb and resource: setting field points and the field coordinate type. It distinguishes itself from related tools such as setting the number of fields, but it does not explicitly name alternatives or scope boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, when not to, or which sibling tool is appropriate for related field operations. Usage is only implied by 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.
zemax_set_mtf_unitsSet Mtf UnitsC
Set MTF spatial-frequency units.
| Name | Required | Description | Default |
|---|---|---|---|
| mtfUnits | Yes | MTF units |
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, yet it only restates the setting. It does not disclose accepted unit strings, whether the change is global or per-analysis, whether it requires an active model, or what side effects follow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with the verb and resource first and zero padding. It is efficient but under-specified rather than overwritten.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 setter with no annotations and no output schema, the definition omits the valid unit set, the effect scope, and any precondition, leaving an agent unable to call it reliably without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the schema's 'MTF units' label is itself tautological. The description adds only the qualifier 'spatial-frequency,' without enumerating valid strings, so it does not meaningfully enrich the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Set) and a precise resource (MTF spatial-frequency units), which cleanly distinguishes it from the sibling zemax_get_mtf_units. However, it does not name the valid unit values or the scope of the setting, so it is clear but not maximally informative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 setter versus reading with zemax_get_mtf_units, nor any prerequisite such as needing an open file or loaded MTF analysis. The agent must infer the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_number_of_configurationsSet Number Of ConfigurationsC
Set the number of configurations.
| Name | Required | Description | Default |
|---|---|---|---|
| numberOfConfigurations | Yes | Desired count |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only implies mutation via 'Set.' It does not say whether increasing or decreasing the count adds/removes configurations, what happens to existing configuration data, whether the operation is reversible, 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 a single front-loaded sentence with no filler or repetition. It is appropriately sized for what it attempts to convey, even though the content itself is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-annotation, no-output-schema mutation tool, the description is not complete enough. It omits what happens when configurations are reduced, whether dependent configuration data is affected, and any connection or state 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?
Schema description coverage is 100%: the single parameter numberOfConfigurations is documented as 'Desired count.' The description adds no meaning beyond the schema, so the baseline of 3 applies for a high-coverage single-parameter 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 restates the tool name and title almost verbatim: 'Set the number of configurations.' It does not differentiate this setter from sibling tools like zemax_set_current_configuration or zemax_mce_add_config, so an agent must rely on the name alone to understand the exact effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 zemax_set_current_configuration, zemax_mce_add_config, or configuration operand tools. It also omits prerequisites, so the agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_number_of_fieldsSet Number Of FieldsC
Set the number of field rows.
| Name | Required | Description | Default |
|---|---|---|---|
| numberOfFields | Yes | Desired field count |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It states a mutation but doesn't disclose whether existing field data is preserved, truncated, or requires a connected session. For a state-changing tool with zero annotation support, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence with no waste. It could be improved by front-loading the behavioral implication, but it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description is too thin. It omits what happens to existing fields, whether reconnection is required, and how it relates to the zemax_set_fields sibling. The agent lacks enough context to call 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?
Schema description coverage is 100%, so the parameter is already documented in the schema. The description adds no syntax, range, or constraint details 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?
States a specific verb (Set) and resource (number of field rows), which is clearer than the name alone implies. However, it doesn't distinguish from the sibling zemax_set_fields, which likely handles field definitions more broadly. Without opening schemas, an agent may not know which to choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no mention of when to call this instead of zemax_set_fields. The agent must infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_number_of_wavelengthsSet Number Of WavelengthsC
Set the number of wavelength rows.
| Name | Required | Description | Default |
|---|---|---|---|
| numberOfWavelengths | Yes | Desired wavelength count |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. 'Set' implies mutation but the description says nothing about what happens to existing wavelength rows when count is increased/decreased, whether this is destructive, or whether it requires a connected system. Significant gap for a mutation with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single short sentence, front-loaded with the action and resource. Efficient, though so terse that it omits potentially useful context rather than being overlong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no output schema, and a sibling (zemax_set_wavelengths) that could be confused with it, the description is insufficient. It should clarify the count-vs-value distinction and the effect on existing data.
Complex tools with many parameters or behaviors need more documentation. 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 parameter's meaning ('Desired wavelength count') is fully documented in the schema. The description adds nothing beyond what the schema already provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Set the number of wavelength rows.' An agent can tell it controls wavelength count specifically. However, it does not differentiate against sibling tools like zemax_set_wavelengths (which sets wavelength values), leaving ambiguity between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives. The sibling zemax_set_wavelengths exists and is not referenced, so the agent must infer whether to call this to change count vs. to change values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_polarizationSet PolarizationC
Update the current optical system's default input polarization settings.
| Name | Required | Description | Default |
|---|---|---|---|
| jx | No | X-component Jones amplitude | |
| jy | No | Y-component Jones amplitude | |
| method | No | Polarization-axis reference method | |
| xPhase | No | X-component phase | |
| yPhase | No | Y-component phase | |
| unpolarized | No | Treat rays as unpolarized | |
| convertThinFilmPhaseToRayEquivalent | No | Convert thin-film phase to its ray-equivalent value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It says it updates settings but does not disclose side effects, whether changes are reversible, required system state, defaults, or how partial parameter omission is handled. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized for its content, though it is minimal given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no annotations and no output schema, the description is incomplete. It does not explain parameter interactions, default behavior, or how the update affects the current system, leaving important context absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all seven parameters. The description adds no extra semantic detail about parameters, but baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Update') and resource ('default input polarization settings') for the current optical system. It distinguishes from the read counterpart get_polarization by implication of 'update', but does not name or explicitly contrast with any sibling 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?
No guidance is provided on when to use this tool, prerequisites, or alternatives such as get_polarization. The only implied usage is that it sets polarization, which is minimal and leaves the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_ray_aimingSet Ray AimingB
Set ray aiming to Off, Paraxial, or Real.
| Name | Required | Description | Default |
|---|---|---|---|
| rayAiming | Yes | Ray-aiming mode |
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 only implies a mutation and lists allowed values, but does not explain what ray aiming does, how modes affect calculations, or whether the change persists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple setter tool and directly presents the required 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 one-parameter enum tool with full schema coverage and no output schema, the description is minimally adequate to invoke the tool. However, without annotations it omits why or when each mode should be used, leaving a gap in decision-making 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 schema already documents the single parameter at 100% coverage, including the enum values and a brief description. The description merely restates the enum values, adding no 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 specific verb ('Set') and resource ('ray aiming to Off, Paraxial, or Real'), making the tool's basic function clear. However, it does not differentiate from the sibling zemax_get_ray_aiming, which reads the same setting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor does it explain when each mode is appropriate. There is no mention of prerequisites or the related get tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_surfaceSet SurfaceC
Modify common properties and variable states of a sequential surface.
| Name | Required | Description | Default |
|---|---|---|---|
| conic | No | Conic constant | |
| isStop | No | Set as stop | |
| radius | No | Radius of curvature | |
| comment | No | Comment | |
| material | No | Glass name | |
| thickness | No | Thickness to next surface | |
| semiDiameter | No | Semi-diameter | |
| thicknessMax | No | Hard upper thickness bound | |
| thicknessMin | No | Hard lower thickness bound | |
| conicVariable | No | Make conic variable | |
| surfaceNumber | Yes | Surface to modify | |
| radiusVariable | No | Make radius variable | |
| thicknessVariable | No | Make thickness variable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies mutation but says nothing about permissions, reversibility, whether omitted parameters leave values unchanged, or whether variable-state flags interact with optimization. For a 13-parameter mutation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity borders on under-specification for a 13-parameter 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?
With 13 parameters, no annotations, and no output schema, the description should carry more weight. It omits mutation semantics, error behavior, and any indication of how the property and variable-state families relate, leaving the agent under-informed for a complex write 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 100%, so every parameter is already documented in the schema, and the baseline is 3. The phrase 'common properties and variable states' loosely groups the parameters but adds no format, unit, or interaction detail beyond what the schema already 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?
States a verb (Modify) and resource (sequential surface) plus the category of fields touched (common properties and variable states). However, 'common properties' is undefined and there is no differentiation from closely related siblings such as zemax_set_surface_parameter, zemax_set_surface_type, or zemax_set_variable, leaving the agent uncertain which tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no prerequisites (e.g., whether the surface must already exist, whether sequential mode is required), and no exclusions or alternatives. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_surface_parameterSet Surface ParameterC
Set a type-specific surface parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Parameter value | |
| parameter | Yes | One-based parameter number | |
| surfaceNumber | Yes | Surface number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation but says nothing about persistence, error conditions, whether the surface type must already support the given parameter, or what happens on an out-of-range parameter index. Only the word 'type-specific' hints at any 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?
A single front-loaded clause with no wasted words, but its brevity reflects under-specification rather than disciplined conciseness. There is no padding to remove, but also no useful structure to reward above the minimum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 three required parameters, no annotations, and no output schema, the description is too thin. It omits prerequisites, valid parameter ranges per surface type, and failure behavior, none of which are recoverable from the structured fields alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the three parameters are self-documented, establishing a baseline of 3. The description's 'type-specific' wording adds a modest semantic layer, signaling that valid parameter numbers depend on the surface type, which the schema's bare 'One-based parameter number' does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Set) and resource (surface parameter), plus the qualifier 'type-specific'. However, it does not differentiate itself from closely named siblings like zemax_set_surface, zemax_set_surface_solve, zemax_set_surface_type, or zemax_lde_set_surface, leaving the agent to guess which one applies. Purpose is understandable but not distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus the many adjacent set_surface* siblings, and no prerequisites (e.g. surface must exist, must be the correct type). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_surface_solveSet Surface SolveD
Set the solve type for a surface property.
| Name | Required | Description | Default |
|---|---|---|---|
| height | No | Ray height or angle | |
| offset | No | Pickup offset | |
| catalog | No | Glass substitution catalog | |
| fNumber | No | F-number solve value | |
| position | No | Position solve distance | |
| property | Yes | radius, thickness, conic, semiDiameter, material, or param1-param8 | |
| pupilZone | No | Pupil zone | |
| solveType | Yes | Fixed, Variable, Pickup, ray-height/angle, edge-thickness, position, FNumber, or material solve | |
| thickness | No | Edge thickness | |
| indexOffset | No | Material index offset | |
| scaleFactor | No | Pickup scale | |
| materialName | No | Material name | |
| pickupColumn | No | Pickup source column | |
| radialHeight | No | Edge radial height | |
| pickupSurface | No | Pickup source surface | |
| surfaceNumber | Yes | Surface number | |
| referenceSurface | No | Reference surface |
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 not state that this is a mutation, whether existing solves are overwritten, what permissions are needed, or any side effects or return behavior. For a 17-parameter write operation, this is a severe transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is short, but it is not 'appropriately sized' for a tool with 17 parameters and a complex solve-type concept. The description is under-specified rather than concise, omitting information that would be needed to invoke it 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?
Given 17 parameters, no annotations, no output schema, and a nontrivial domain concept (solve types), the description is wholly inadequate. It provides none of the contextual detail an agent needs to understand the tool's behavior, constraints, or effects.
Complex tools with many parameters or behaviors need more documentation. 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 every parameter is already documented in the schema. The description adds no additional parameter meaning, which is the baseline 3 for a fully covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set') and resource ('solve type for a surface property'), so the action is identifiable. However, it does not differentiate this tool from closely named siblings like zemax_set_surface_type, zemax_set_surface_parameter, or zemax_set_surface, leaving ambiguity about its distinct role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, when not to, or which alternative (e.g., set_surface_type vs set_surface_parameter) to choose. The agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_surface_typeSet Surface TypeC
Change a surface to a named Zemax surface type.
| Name | Required | Description | Default |
|---|---|---|---|
| surfaceType | Yes | Zemax surface type | |
| surfaceNumber | Yes | Surface number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It implies a mutation but does not state whether existing surface data is preserved or destroyed when the type changes, whether the change is reversible, or what errors occur for invalid type names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though its brevity comes at the cost of the guidance noted 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 mutation tool with no annotations, no output schema, and no mention of valid type names or where to obtain them, the description is too thin. The schema documents both parameters, but nothing covers side effects or the discovery path via zemax_list_surface_types.
Complex tools with many parameters or behaviors need more documentation. 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 phrase 'named Zemax surface type' adds a small hint that surfaceType is a keyword rather than free-form, but no format, allowed values, or reference to zemax_list_surface_types is offered.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Change') and resource ('a surface') to a named Zemax surface type, so an agent can tell it apart from generic setters like zemax_set_surface. However, it does not explicitly contrast with closely related siblings such as zemax_set_surface_parameter or zemax_lde_set_surface, leaving some differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, prerequisites, or alternatives are given. The agent gets no guidance on choosing this over zemax_set_surface or on whether a surface must already exist before its type can be changed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_system_unitsSet System UnitsC
Set the current optical system's lens units.
| Name | Required | Description | Default |
|---|---|---|---|
| lensUnits | Yes | Lens coordinate and prescription units |
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 says nothing about whether changing lens units merely relabels values or rescales existing prescription data, whether it requires an active connection/open file, or whether the change is reversible. For a system-wide mutation in an optical design context, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler or redundancy. It is appropriately sized for a single-parameter tool, though it is arguably too terse to earn a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should at minimum state the effect on existing system data and any connection/precondition requirements. With only one well-documented parameter, the core invocation is clear, but the behavioral context is under-specified for a system-level mutation.
Complex tools with many parameters or behaviors need more documentation. 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% - the single lensUnits parameter is documented with an enum and a description ('Lens coordinate and prescription units'). The description adds no additional meaning beyond the schema, which matches the baseline 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Set') and resource ('the current optical system's lens units'), so the action is unambiguous. It implicitly distinguishes itself from the sibling zemax_get_system_units via the set/get verb pair, but does not explicitly call out that contrast or differentiate from zemax_set_mtf_units, which also sets units of a different kind.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, no prerequisites (e.g., whether a system must be open or connected first), and no mention of alternatives such as zemax_set_mtf_units or zemax_get_system_units. The agent must infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_title_notesSet Title NotesC
Update the current optical system's title, notes, and author.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optical-system notes; an empty string clears them | |
| title | No | Optical-system title; an empty string clears it | |
| author | No | Optical-system author; an empty string clears it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it adds nothing beyond the word 'Update'. It does not say whether changes persist to disk, whether they affect the open session only, what happens to fields left out, or any permission requirements. The empty-string-clears behavior lives only in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming the verb and the exact fields, with zero filler. It is efficient, though the brevity is part of why behavioral and usage context is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low-risk three-optional-string tool with full schema coverage and no output schema, the description is minimally adequate. It omits the read counterpart (zemax_get_title_notes) and the fact that fields are independently optional, which an agent would want in order 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 100% and each parameter already documents its clearing semantics, so the baseline of 3 applies. The description only echoes the three field names without adding format, length, or interaction 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?
States a specific verb (Update) and resource (current optical system's title, notes, and author), so an agent immediately knows what it changes. It does not distinguish itself from the obvious sibling zemax_get_title_notes, which reads the same fields, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus zemax_get_title_notes or any other setter, and no note that these fields are optional and can be updated independently. Usage must be inferred entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_variableSet VariableC
Legacy wrapper to make a surface cell variable.
| Name | Required | Description | Default |
|---|---|---|---|
| cell | No | Cell | thickness |
| surface | Yes | Surface number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a state mutation (marking a cell as a variable) but says nothing about what is changed, whether it is reversible, what permissions are needed, or what 'legacy wrapper' means operationally. 'Legacy' hints at deprecation without any concrete behavioral detail.
Agents need to know what a tool does to the 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, appropriately front-loaded. However, its brevity comes at the cost of substance rather than being an efficient expression of a complete idea.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 state-mutating tool with no annotations, no output schema, and only a one-line description. The deprecation/'legacy' implication and the optimization-variable semantics an agent needs to call it correctly are both left unexplained, leaving the definition inadequate for its 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?
Schema description coverage is 100%, so the baseline is 3. The description's phrase 'surface cell variable' loosely maps to the surface and cell parameters but adds no syntax, constraints, or default behavior beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain 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 verb+resource pair (make a surface cell variable), which is more specific than the title alone, but the meaning of 'variable' in this context (optimization variable) is never explained. The 'legacy wrapper' framing adds ambiguity rather than clarity, and no sibling tool is named for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 word 'Legacy' strongly implies a preferred alternative exists but the description never names it or states when this tool should still be used versus zemax_get_variables or zemax_set_variable_constraints. No when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_variable_constraintsSet Variable ConstraintsC
Set hard min/max constraints on optimization variables.
| Name | Required | Description | Default |
|---|---|---|---|
| constraints | Yes | Variable constraints |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses that constraints are 'hard' and apply to 'optimization variables,' but says nothing about whether existing constraints are replaced, required variable state, idempotency, side effects, or error behavior 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?
A single, front-loaded sentence with no filler. The purpose is immediately visible and the description is appropriately sized for a focused setter 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 tool mutates optimization variables, has a nested required parameter, no annotations, and no output schema. The description is too terse to cover key behavioral context, such as persistence, replacement semantics, or interaction with other optimization 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%, and the nested fields include descriptions and the allowed constraint values. The description merely mirrors the min/max concept and adds no syntax or format detail 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?
States a specific verb and resource: set hard min/max constraints on optimization variables. It is clear what the tool does, but it does not explicitly distinguish itself from the sibling zemax_set_variable tool, which likely also deals with optimization 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?
The description gives no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. An agent can infer it is used during optimization setup, but nothing is stated explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_set_wavelengthsSet WavelengthsB
Replace wavelength definitions and select the primary wavelength.
| Name | Required | Description | Default |
|---|---|---|---|
| primary | No | Legacy one-based primary wavelength | |
| wavelengths | No | Wavelength definitions | |
| wavelengthsUm | No | Legacy list of wavelengths in micrometers | |
| primaryWavelength | No | One-based primary wavelength |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose that existing wavelength definitions are replaced (destructive overwrite) and that a primary wavelength is selected, which is useful. However, it omits system-state prerequisites, reversibility, and other 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?
A single front-loaded sentence with no wasted words. It states the action and its secondary 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 four-parameter setter with no required arguments, no annotations, and no output schema, the one-line description is too terse. It does not guide the agent on legacy vs modern parameter pairs (wavelengthsUm/primary vs wavelengths/primaryWavelength) or default behavior, leaving significant ambiguity.
Complex tools with many parameters or behaviors need more documentation. 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, including the legacy/modern pairs, are fully documented in the schema. The description adds no parameter-level syntax or semantics beyond mentioning 'primary wavelength'; 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 ('Replace') and resource ('wavelength definitions'), plus the secondary effect of selecting the primary wavelength. It does not explicitly distinguish itself from the sibling zemax_set_number_of_wavelengths, so it is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no alternatives named. Usage is only implied by the verb 'Replace', which is insufficient for routing against the many other zemax_set_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_spot_diagramSpot DiagramC
Calculate spot-size analysis for one field.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | One-based field | |
| rings | No | Gaussian rings | |
| wavelength | No | 0 for polychromatic |
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 notes that analysis is for one field. It does not state whether the tool is read-only, whether it returns data or opens a window, what permissions are required, 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?
The description is a single efficient sentence with no wasted words and the action is front-loaded. It is appropriately concise for a one-sentence definition, though its extreme brevity borders on under-specification for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and an analysis tool with three parameters, the description is too sparse. It omits prerequisites (e.g., a loaded system), return format, and any distinction from sibling spot-analysis tools, leaving the agent with minimal context beyond the name and schema.
Complex tools with many parameters or behaviors need more documentation. 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 explains each parameter (one-based field, Gaussian rings, 0 for polychromatic). The description adds only the phrase 'for one field', which aligns with the field parameter but provides no extra syntax or format detail, so 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 ('Calculate') and resource ('spot-size analysis') and adds scope ('for one field'). It is clear what the tool does, but it does not differentiate from sibling tools like zemax_rms_spot or zemax_spot_rms, which likely produce related spot metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 zemax_rms_spot, zemax_ray_fan, or zemax_geometric_image_analysis. The only usage hint is the implicit 'one field' scope, which is insufficient for selecting among related analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_spot_rmsSpot RmsB
Legacy RMS spot radius analysis for every field.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the analysis type and does not describe return format, computational behavior, prerequisites, or whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a parameterless analysis 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?
With no output schema and no annotations, the description should explain what the analysis returns, why it is considered legacy, and any relevant limitations. It provides none of that, leaving the agent insufficiently informed for calling 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?
The tool has zero parameters, so there are no parameter semantics to document. Baseline 4 is appropriate because the empty schema leaves nothing to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific analysis type (RMS spot radius) and scope (for every field), clearly identifying what the tool does. It does not explicitly differentiate itself from similar siblings like zemax_rms_spot or zemax_spot_diagram, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'legacy' hints that this is a deprecated or older method, but there is no explicit guidance on when to use this tool versus alternatives such as zemax_rms_spot. No conditions, exclusions, or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_statusStatusA
Return connection, ownership, license, and current-system status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Return ... status' strongly implies a non-mutating inspection call, and enumerating the four status categories adds genuine context. However, it does not state whether the call is safe to poll, whether it fails or returns an error status when disconnected, or whether it has side effects on the connection.
Agents need to know what a tool does to the 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 (the four status facets) conveys content 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?
With no output schema, the description does double duty and largely succeeds by naming the four categories of status returned. It stops short of describing the shape of those values or any error/offline state, which would fully close the gap for a diagnostics tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema imposes no semantic burden and the baseline is 4. The description correctly adds no parameter commentary, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Return' plus the resource 'status' is specific, and the four enumerated facets (connection, ownership, license, current-system) tell an agent exactly what information comes back. It implicitly distinguishes itself from zemax_multistart_status, which is scoped to multistart runs, but it never names or contrasts with that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus zemax_info, zemax_connect, or zemax_multistart_status. A caller must infer that this is a pre-flight/health-check call. No prerequisites, ordering, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_tde_summaryTde SummaryB
Return tolerance operands and bounds.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Return' implies a read, but it doesn't state whether a file must be open, whether it reflects enabled/disabled operands, whether it is read-only, or anything about the response shape, all of which matter for a summary 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?
A single front-loaded sentence with no filler. It is efficient, though so terse that it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must explain what comes back and under what preconditions. It only names two noun categories ('operands and bounds') and leaves the structure of the returned tolerance operands and bounds, plus any file-state requirements, entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate. No parameter-related gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Return tolerance operands and bounds'), expanding the cryptic 'TDE' name into its domain meaning. It is clearer than a bare name restatement and does implicitly distinguish it from zemax_lde_summary/zemax_mce_summary by naming 'tolerance' operands, but it never explicitly contrasts with those sibling summary 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?
There is no statement of when to call this versus zemax_tolerance_wizard, zemax_run_tolerancing, or the other *_summary siblings. The only usage signal is the word 'tolerance', leaving the agent to infer the TDE context on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_tolerance_wizardTolerance WizardC
Populate default sequential tolerances.
| 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 full behavioral burden, yet it only implies a write operation by saying 'Populate.' It does not disclose whether existing tolerances are overwritten, what 'default' includes, required system state, or side effects on the lens model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and wastes no words, but it is a bare fragment rather than a structured, self-sufficient description. It is minimally concise but under-specifies the behavior it should convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 wizard that likely mutates the tolerance setup, the description is far too sparse. It does not explain what a 'default sequential tolerance' set contains, whether existing data is replaced, or what system state is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there are no parameter semantics to document. Per the rubric, a zero-parameter tool receives a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Populate') and resource ('default sequential tolerances'), making the basic action clear. It does not differentiate this tool from related siblings like run_tolerancing or tde_summary, but the tolerance-specific scope is adequately identified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 zemax_merit_wizard, zemax_optimization_wizard, or zemax_run_tolerancing. It also omits preconditions like whether a sequential lens must be loaded or whether tolerances already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_zrd_readZrd ReadC
Read a bounded nested ray and segment sample from a ZRD.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional OpticStudio NSC filter expression | |
| maxRays | No | Maximum returned rays | |
| filePath | Yes | Existing absolute .ZRD file path | |
| maxSegments | No | Maximum total returned segments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. 'Read' and 'bounded' hint that this is a non-mutating, size-limited operation, but the description never confirms it does not modify the file, what the bounds default to, or what happens when the limits are hit. For a read tool with zero annotation coverage this 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?
A single front-loaded sentence with no padding or redundancy. It is efficient, though so terse that it omits useful context rather than being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and the description never explains the 'nested ray and segment sample' return structure, which is the most ambiguous part of the tool. Combined with no annotations and no usage guidance, an agent lacks what it needs to interpret results or decide when 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?
Schema description coverage is 100%, so filePath, filter, maxRays and maxSegments are already documented in the schema and the baseline is 3. The description adds no syntax, format, or default-value detail 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 gives a concrete verb ('Read') and resource ('a ... ray and segment sample from a ZRD'), scoping the operation to a bounded portion of the file. It is clear what the tool retrieves, though it never names or differentiates itself from the sibling zemax_zrd_summary, which an agent must infer operates on the same ZRD files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus zemax_zrd_summary or the other NSC ray-trace tools, nor any prerequisite guidance (e.g., that a ZRD must already exist from a prior trace). The 'bounded sample' phrasing implies a use case but the agent gets no explicit routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zemax_zrd_summaryZrd SummaryB
Stream an existing ZRD and return bounded aggregate metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional OpticStudio NSC filter expression | |
| filePath | Yes | Existing absolute .ZRD file path | |
| maxRaysToScan | No | Maximum rays to scan | |
| maxSegmentsToScan | No | Maximum segments to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but does disclose two useful traits: it "streams" (rather than loading the whole file) and returns "bounded" aggregates. It does not describe what the aggregate fields are, permission requirements, or error behavior on a missing/invalid ZRD.
Agents need to know what a tool does to the 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 waste. It is efficient, though "bounded aggregate metadata" is slightly abstract and could be swapped for one concrete clause at no length cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, yet the description never says what "aggregate metadata" contains, so an agent cannot know the return shape before calling. Combined with no annotations, this leaves a meaningful gap for an analysis-style 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 all four parameters (filter, filePath, maxRaysToScan, maxSegmentsToScan) are already documented in the schema. The description adds no additional syntax, format, or interaction detail beyond that 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 gives a specific verb ("Stream") and resource ("existing ZRD") plus the return shape ("aggregate metadata"), which distinguishes it somewhat from the raw-ray sibling zemax_zrd_read. However, it never names zemax_zrd_read or explicitly contrasts summary vs full read, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite statement, and no mention of the obvious alternative zemax_zrd_read. The agent must infer from the tool name that this is the summarization path rather than the full-read path.
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.
143 tool updates
v0.1.0- First observed
zemax_add_configuration_operand - First observed
zemax_add_material_catalog - First observed
zemax_add_operand - First observed
zemax_add_surface - First observed
zemax_analysis_series - First observed
zemax_batch_ray_trace - First observed
zemax_cardinal_points - First observed
zemax_chromatic_focal_shift - First observed
zemax_close_file - First observed
zemax_connect - First observed
zemax_constrained_optimize - First observed
zemax_delete_configuration_operand - First observed
zemax_design_lockdown - First observed
zemax_diffraction_encircled_energy - First observed
zemax_disconnect - First observed
zemax_eval - First observed
zemax_export_analysis - First observed
zemax_export_glass_catalog - First observed
zemax_fft_mtf - First observed
zemax_fft_mtf_vs_field - First observed
zemax_fft_psf - First observed
zemax_field_curvature_distortion - First observed
zemax_filter_glasses - First observed
zemax_forbes_merit_function - First observed
zemax_geometric_encircled_energy - First observed
zemax_geometric_image_analysis - First observed
zemax_geometric_mtf - First observed
zemax_geometric_mtf_vs_field - First observed
zemax_get_afocal_mode - First observed
zemax_get_apodization - First observed
zemax_get_aspheric_surface - First observed
zemax_get_clear_semi_diameter_margin - First observed
zemax_get_configuration - First observed
zemax_get_configuration_operands - First observed
zemax_get_extra_data - First observed
zemax_get_glass_catalogs - First observed
zemax_get_glasses - First observed
zemax_get_merit_function - First observed
zemax_get_mtf_units - First observed
zemax_get_polarization - First observed
zemax_get_ray_aiming - First observed
zemax_get_surface - First observed
zemax_get_surface_solves - First observed
zemax_get_system - First observed
zemax_get_system_units - First observed
zemax_get_title_notes - First observed
zemax_get_variables - First observed
zemax_global_search - First observed
zemax_hammer - First observed
zemax_huygens_mtf - First observed
zemax_huygens_psf - First observed
zemax_info - First observed
zemax_lateral_color - First observed
zemax_lde_insert_surface - First observed
zemax_lde_set_surface - First observed
zemax_lde_summary - First observed
zemax_list_surface_types - First observed
zemax_load_merit_function_file - First observed
zemax_longitudinal_aberration - First observed
zemax_mce_add_config - First observed
zemax_mce_add_operand - First observed
zemax_mce_summary - First observed
zemax_merit_value - First observed
zemax_merit_wizard - First observed
zemax_multistart_optimize - First observed
zemax_multistart_status - First observed
zemax_multistart_stop - First observed
zemax_new_system - First observed
zemax_nsc_add_object - First observed
zemax_nsc_clear_detectors - First observed
zemax_nsc_convert_to_nonsequential - First observed
zemax_nsc_convert_to_sequential - First observed
zemax_nsc_detector_data - First observed
zemax_nsc_detector_pixel - First observed
zemax_nsc_detector_viewer - First observed
zemax_nsc_get_object - First observed
zemax_nsc_get_object_parameter - First observed
zemax_nsc_get_source_spectrum - First observed
zemax_nsc_insert_object - First observed
zemax_nsc_load_detector - First observed
zemax_nsc_polar_detector_data - First observed
zemax_nsc_polar_detector_pixel - First observed
zemax_nsc_ray_trace - First observed
zemax_nsc_remove_object - First observed
zemax_nsc_save_detector - First observed
zemax_nsc_set_object - First observed
zemax_nsc_set_object_parameter - First observed
zemax_nsc_set_source_spectrum - First observed
zemax_nsc_summary - First observed
zemax_opd_fan - First observed
zemax_open_file - First observed
zemax_operand_help - First observed
zemax_optimization_wizard - First observed
zemax_optimize - First observed
zemax_pop - First observed
zemax_pupil_aberration_fan - First observed
zemax_quick_focus - First observed
zemax_ray_fan - First observed
zemax_ray_trace - First observed
zemax_relative_illumination - First observed
zemax_remove_material_catalog - First observed
zemax_remove_operand - First observed
zemax_remove_surface - First observed
zemax_restart - First observed
zemax_rms_spot - First observed
zemax_run_analysis - First observed
zemax_run_tolerancing - First observed
zemax_save_file - First observed
zemax_save_merit_function_file - First observed
zemax_scale_lens - First observed
zemax_search_operands - First observed
zemax_seidel_coefficients - First observed
zemax_set_afocal_mode - First observed
zemax_set_aperture - First observed
zemax_set_apodization - First observed
zemax_set_aspheric_surface - First observed
zemax_set_clear_semi_diameter_margin - First observed
zemax_set_configuration_operand_value - First observed
zemax_set_current_configuration - First observed
zemax_set_extra_data - First observed
zemax_set_fields - First observed
zemax_set_mtf_units - First observed
zemax_set_number_of_configurations - First observed
zemax_set_number_of_fields - First observed
zemax_set_number_of_wavelengths - First observed
zemax_set_polarization - First observed
zemax_set_ray_aiming - First observed
zemax_set_surface - First observed
zemax_set_surface_parameter - First observed
zemax_set_surface_solve - First observed
zemax_set_surface_type - First observed
zemax_set_system_units - First observed
zemax_set_title_notes - First observed
zemax_set_variable - First observed
zemax_set_variable_constraints - First observed
zemax_set_wavelengths - First observed
zemax_spot_diagram - First observed
zemax_spot_rms - First observed
zemax_status - First observed
zemax_tde_summary - First observed
zemax_tolerance_wizard - First observed
zemax_zrd_read - First observed
zemax_zrd_summary
TDQS
Scored across 143 tools
Many tools overlap heavily, including legacy wrappers alongside modern equivalents (e.g., zemax_set_surface vs zemax_lde_set_surface, zemax_optimization_wizard vs zemax_merit_wizard) and multiple spot/MTF/detector variants. Descriptions sometimes clarify legacy status, but the boundaries remain unclear and misselection is likely.
Almost all tools use a consistent zemax_ prefix and snake_case, and getter/setter pairs follow predictable verb_noun patterns. However, many analysis tools use noun phrases (e.g., zemax_fft_mtf, zemax_ray_fan) and legacy wrappers introduce minor naming deviations.
With 143 tools, this server is far beyond any reasonable MCP tool surface, even for a complex optical design domain. The set includes many legacy wrappers and overlapping analysis/detector variants, making it an extreme mismatch rather than a well-scoped collection.
The surface covers sequential and non-sequential systems, surface/object CRUD, optimization, tolerancing, numerous analyses, file lifecycle, and configuration handling. No obvious core gaps are apparent for the stated optical design purpose.
Maintenance
Related MCP Connectors
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceState-aware Windows automation MCP server for AI agents, enabling app control, UI interaction, COM Office, and more via 59 tools with fallback layers and audit logging.8MIT
- FlicenseNot gradedqualityFmaintenanceA lightweight MCP HTTP server giving AI assistants real tools to interact with your Windows machine, including running commands, file access, system info, web search, and browser automation.1-
- AlicenseNot gradedqualityDmaintenanceAn open-source MCP server for Windows that provides traceable system operations (file, screenshot, clipboard, process, power management) to AI assistants via HTTP/SSE.13GPL 3.0
- FlicenseNot gradedqualityBmaintenanceSafety-first MCP server enabling AI assistants to drive Zemax OpticStudio sequential-mode optical design workflows, including a mock backend for validation.1-