Skip to main content
Glama
wjc9011
by wjc9011

COMSOL MCP Server

MCP Server for COMSOL Multiphysics simulation automation via AI agents.

English | 中文

Star History

GitHub stars

Star History Chart

Related MCP server: flex-sensor-agent-mcp

Publication and Citation

The research paper describing COMSOL-MCP is available in Neurocomputing:

Naiyin Zhang and Junchao Wang, “COMSOL-MCP: An open-source model context protocol interface for AI-assisted multiphysics simulation,” Neurocomputing, vol. 703, article 134481, 2026.

Publisher page: ScienceDirect

If COMSOL-MCP contributes to your research, please cite the paper:

@article{Zhang2026COMSOLMCP,
  title   = {COMSOL-MCP: An Open-Source Model Context Protocol Interface for AI-Assisted Multiphysics Simulation},
  author  = {Zhang, Naiyin and Wang, Junchao},
  journal = {Neurocomputing},
  volume  = {703},
  pages   = {134481},
  year    = {2026},
  doi     = {10.1016/j.neucom.2026.134481},
  url     = {https://doi.org/10.1016/j.neucom.2026.134481}
}

Citation guidance

  • Cite the paper when referring to the COMSOL-MCP method, architecture, capabilities, or evaluation.

  • If you use or modify the software, cite both the paper and the repository. Use GitHub’s Cite this repository menu, which is backed by CITATION.cff.

  • For reproducibility, identify the exact release tag or commit used and include the repository URL and access date in your data/code availability statement.

Project Goal

Build a complete COMSOL MCP Server enabling AI agents (like Claude, opencode) to perform multiphysics simulations through the MCP protocol:

  1. Model Management - Create, load, save, version control

  2. Geometry Building - Blocks, cylinders, spheres, boolean operations

  3. Physics Configuration - Heat transfer, fluid flow, electrostatics, solid mechanics

  4. Meshing & Solving - Auto mesh, stationary/time-dependent studies

  5. Results Visualization - Evaluate expressions, export plots

  6. Knowledge Integration - Embedded guides + PDF semantic search

Requirements

  • COMSOL Multiphysics (version 5.x or 6.x)

  • Python 3.10+ (NOT Windows Store version)

  • Java runtime (required by MPh/COMSOL)

Installation

# Clone repository
git clone https://github.com/wjc9011/COMSOL_Multiphysics_MCP.git
cd COMSOL_Multiphysics_MCP

# Install dependencies
python -m pip install -e .

# Test server
python -m src.server

Building PDF Knowledge Base

# Install additional dependencies
pip install pymupdf chromadb sentence-transformers

# Build knowledge base
python scripts/build_knowledge_base.py

# Check status
python scripts/build_knowledge_base.py --status

Usage

Option 1: With opencode

Create opencode.json in project root:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "comsol": {
      "type": "local",
      "command": ["python", "-m", "src.server"],
      "enabled": true,
      "environment": {
        "HF_ENDPOINT": "https://hf-mirror.com"
      },
      "timeout": 30000
    }
  }
}

Option 2: With Claude Desktop

{
  "mcpServers": {
    "comsol": {
      "command": "python",
      "args": ["-m", "src.server"],
      "cwd": "/path/to/COMSOL_Multiphysics_MCP"
    }
  }
}

Code Structure

comsol_mcp/
├── opencode.json                    # MCP server config for opencode
├── pyproject.toml                   # Python project config
├── README.md                        # This file
│
├── src/
│   ├── server.py                    # MCP Server entry point
│   ├── tools/
│   │   ├── session.py               # COMSOL session management (start/stop/status)
│   │   ├── model.py                 # Model CRUD + versioning
│   │   ├── parameters.py            # Parameter management + sweeps
│   │   ├── geometry.py              # Geometry creation (block/cylinder/sphere)
│   │   ├── physics.py               # Physics interfaces + boundary conditions
│   │   ├── mesh.py                  # Mesh generation
│   │   ├── study.py                 # Study creation + solving (sync/async)
│   │   └── results.py               # Results evaluation + export
│   ├── resources/
│   │   └── model_resources.py       # MCP resources (model tree, parameters)
│   ├── knowledge/
│   │   ├── embedded.py              # Embedded physics guides + troubleshooting
│   │   ├── retriever.py             # PDF vector search retriever
│   │   └── pdf_processor.py         # PDF chunking + embedding
│   ├── async_handler/
│   │   └── solver.py                # Async solving with progress tracking
│   └── utils/
│       └── versioning.py            # Model version path management
│
├── scripts/
│   └── build_knowledge_base.py      # Build PDF vector database
│
├── client_script/                   # Standalone modeling scripts (examples)
│   ├── create_chip_tsv_final.py     # Example: Chip thermal model
│   ├── create_micromixer_auto.py    # Example: Fluid flow simulation
│   ├── create_chip_thermal*.py      # Various chip thermal variants
│   ├── create_micromixer*.py        # Various micromixer variants
│   ├── visualize_*.py               # Result visualization scripts
│   ├── add_visualization.py         # Add plot groups to model
│   └── test_*.py                    # Integration tests
│
├── comsol_models/                   # Saved models (structured)
│   ├── chip_tsv_thermal/
│   │   ├── chip_tsv_thermal_20260216_*.mph
│   │   └── chip_tsv_thermal_latest.mph
│   └── micromixer/
│       └── micromixer_*.mph
│
└── tests/
    └── test_basic.py                # Unit tests

Available Tools (100+ total)

Session (4)

Tool

Description

comsol_start

Start local COMSOL client

comsol_connect

Connect to remote server

comsol_disconnect

Clear session

comsol_status

Get session info

Model (9)

Tool

Description

model_load

Load .mph file

model_create

Create empty model

model_save

Save to file

model_save_version

Save with timestamp

model_list

List loaded models

model_set_current

Set active model

model_clone

Clone model

model_remove

Remove from memory

model_inspect

Get model structure

Parameters (5)

Tool

Description

param_get

Get parameter value

param_set

Set parameter

param_list

List all parameters

param_sweep_setup

Setup parametric sweep

param_description

Get/set description

Geometry (16)

Tool

Description

geometry_list

List geometry sequences

geometry_create

Create geometry sequence

geometry_add_feature

Add generic feature

geometry_add_block

Add rectangular block

geometry_add_cylinder

Add cylinder

geometry_add_sphere

Add sphere

geometry_add_rectangle

Add 2D rectangle

geometry_add_circle

Add 2D circle

geometry_boolean_union

Union objects

geometry_boolean_difference

Subtract objects

geometry_import

Import CAD file

geometry_build

Build geometry

geometry_list_features

List features

geometry_get_boundaries

Get boundary numbers

geometry_create_box_selection

Create a named selection by position

geometry_create_side_selections

Create left/right/top/bottom selections

Physics (28)

Tool

Description

physics_list

List physics interfaces

physics_get_available

Available physics types

physics_add

Add generic physics

physics_add_electrostatics

Add Electrostatics

physics_add_solid_mechanics

Add Solid Mechanics

physics_add_heat_transfer

Add Heat Transfer

physics_add_laminar_flow

Add Laminar Flow

physics_add_acoustics

Add a geometry-based acoustic interface by COMSOL type

physics_add_pressure_acoustics

Add Pressure Acoustics

physics_add_coefficient_form_pde

Add Coefficient Form PDE

physics_add_general_form_pde

Add General Form PDE

physics_add_weak_form_pde

Add Weak Form PDE

physics_configure_boundary

Configure boundary condition

physics_configure_acoustic_boundary

Configure one acoustic boundary condition

physics_setup_acoustic_boundaries

Configure multiple acoustic boundary conditions

physics_configure_pde_boundary

Configure one PDE boundary condition

physics_setup_pde_boundaries

Configure multiple PDE boundary conditions

physics_get_acoustic_boundary_conditions

List common acoustic boundary feature types

physics_get_pde_boundary_conditions

List common PDE boundary feature types

physics_set_material

Assign material

physics_list_features

List physics features

physics_remove

Remove physics

multiphysics_add

Add coupling

physics_interactive_setup_heat

Interactive heat BC setup

physics_setup_heat_boundaries

Configure heat boundaries

physics_interactive_setup_flow

Interactive flow BC setup

physics_boundary_selection

Generic boundary setup

Electrochemistry (10)

Battery, fuel cell, electrodeposition, and corrosion support backed by a type registry verified against a live COMSOL 6.3 session (26 interfaces, 600+ feature/subfeature types). A complete worked example — an 18650 cell 1C constant-current discharge — is included in src/knowledge/prompts/electrochemistry.md; call docs_get("electrochemistry") to retrieve it at runtime.

Tool

Description

electrochemistry_get_interfaces

List verified interface types (battery, current distribution, corrosion, ...)

electrochemistry_get_feature_types

List verified feature types of an interface with dimensions

electrochemistry_add_interface

Add a verified interface (e.g. LithiumIonBatteryMPH, LumpedBattery)

electrochemistry_list_features

Inspect features with actual COMSOL types (getType())

electrochemistry_add_feature

Create a feature, incl. subfeatures via parent_feature

electrochemistry_set_feature_selection

Assign domains/boundaries to an existing feature

electrochemistry_set_feature_properties

Set feature properties (rejected names reported)

electrochemistry_list_feature_properties

Ask COMSOL for a feature's valid property names

electrochemistry_list_interface_properties

Read interface-level property groups (e.g. BatterySettings)

electrochemistry_set_interface_properties

Configure interface-level settings (capacity, SOC, current, ...)

Mesh (4)

Tool

Description

mesh_list

List mesh sequences

mesh_create_sequence

Create a mesh sequence

mesh_create

Generate mesh

mesh_info

Get mesh statistics

Study & Solving (8)

Tool

Description

study_list

List studies

study_solve

Solve synchronously

study_solve_async

Solve in background

study_get_progress

Get progress

study_cancel

Cancel solving

study_wait

Wait for completion

solutions_list

List solutions

datasets_list

List datasets

Results (9)

Tool

Description

results_evaluate

Evaluate expression

results_global_evaluate

Evaluate scalar

results_inner_values

Get time steps

results_outer_values

Get sweep values

results_export_data

Export data

results_export_image

Export plot image

results_exports_list

List export nodes

results_plots_list

List plot nodes

Knowledge (8)

Tool

Description

docs_get

Get documentation

docs_list

List available docs

physics_get_guide

Physics quick guide

troubleshoot

Troubleshooting help

modeling_best_practices

Best practices

pdf_search

Search PDF docs

pdf_search_status

PDF search status

pdf_list_modules

List PDF modules

Example Cases

Case 1: Chip Thermal Model with TSV

3D thermal analysis of a silicon chip with Through-Silicon Via (TSV).

Geometry: 60×60×5 µm chip, 5 µm diameter TSV hole, 10×10 µm heat source

# Key steps:
# 1. Create chip block and TSV cylinder
# 2. Boolean difference (subtract TSV from chip)
# 3. Add Silicon material (k=130 W/m·K)
# 4. Add Heat Transfer physics
# 5. Set heat flux on top, temperature on bottom
# 6. Solve and evaluate temperature distribution

Script: client_script/create_chip_tsv_final.py

Run:

cd /path/to/COMSOL_Multiphysics_MCP
python client_script/create_chip_tsv_final.py

Results: Temperature rise from ambient with heat flux of 1 MW/m²

Case 2: Micromixer Fluid Flow

3D laminar flow simulation in a microfluidic channel.

Geometry: 600×100×50 µm rectangular channel

# Key steps:
# 1. Create rectangular channel block
# 2. Add water material (ρ=1000 kg/m³, μ=0.001 Pa·s)
# 3. Add Laminar Flow physics
# 4. Set inlet velocity (1 mm/s), outlet pressure
# 5. Add Transport of Diluted Species for mixing
# 6. Solve and evaluate velocity profile

Script: client_script/create_micromixer_auto.py

Run:

cd /path/to/COMSOL_Multiphysics_MCP
python client_script/create_micromixer_auto.py

Results: Velocity distribution, concentration mixing profile

Model Versioning

Models are saved with structured paths:

./comsol_models/{model_name}/{model_name}_{timestamp}.mph
./comsol_models/{model_name}/{model_name}_latest.mph

Example:

./comsol_models/chip_tsv_thermal/chip_tsv_thermal_20260216_140514.mph
./comsol_models/chip_tsv_thermal/chip_tsv_thermal_latest.mph

Key Technical Discoveries

1. mph Library API Patterns

# Access Java model via property (not callable)
jm = model.java  # NOT model.java()

# Create component with True flag
comp = jm.component().create('comp1', True)

# Create 3D geometry
geom = comp.geom().create('geom1', 3)

# Create physics with geometry reference
physics = comp.physics().create('spf', 'LaminarFlow', 'geom1')

# Boundary condition with selection
bc = physics.create('inl1', 'InletBoundary')
bc.selection().set([1, 2, 3])
bc.set('U0', '1[mm/s]')

2. Boundary Condition Property Names

Physics

Condition

Property

Heat Transfer

HeatFluxBoundary

q0

Heat Transfer

TemperatureBoundary

T0

Heat Transfer

ConvectiveHeatFlux

h, Text

Laminar Flow

InletBoundary

U0, NormalInflowVelocity

Laminar Flow

OutletBoundary

p0

Pressure Acoustics

SoundHard

No additional property

Pressure Acoustics

SoundSoft

No additional property

Pressure Acoustics

Pressure

p0

Pressure Acoustics

Impedance

Zn

Pressure Acoustics

NormalAcceleration

nacc

Pressure Acoustics

NormalVelocity

nvel

Pressure Acoustics

PlaneWaveRadiation

No additional property

Pressure Acoustics

SphericalWaveRadiation

No additional property

PDE

DirichletBoundary

r

PDE

FluxBoundary

g, q

PDE

ZeroFluxBoundary

No additional property

PDE

WeakContribution

weak

PDE

PeriodicCondition

No additional property

3. Client Session Limitation

The mph library creates a singleton COMSOL client. Only one Client can exist per Python process:

# This is handled in session.py - client is kept alive and models are cleared
client.clear()  # Clear models instead of full disconnect

4. Offline Embedding Model

PDF search supports offline operation with local HuggingFace cache:

# Set mirror for China
export HF_ENDPOINT=https://hf-mirror.com

Development Status

Phase

Description

Status

1

Basic framework + Session + Model

Done

2

Parameters + Solving + Results

Done

3

Geometry + Physics + Mesh

Done

4

Embedded knowledge + Tool docs

Done

5

PDF vector retrieval

Done

6

Integration tests

In Progress

Next Steps

  1. Complete Phase 6 - Full integration test with proper boundary conditions

  2. Visualization Export - Generate PNG images from plot groups

  3. LSP Warnings - Fix type hints in physics.py

  4. More Examples - Add electrostatics, solid mechanics cases

  5. Error Handling - Improve error messages and recovery

Resources

URI

Description

comsol://session/info

Session information

comsol://model/{name}/tree

Model tree structure

comsol://model/{name}/parameters

Model parameters

comsol://model/{name}/physics

Physics interfaces

License

MIT

Available Tools

93 tools
comsol_connectA

Connect to a remote COMSOL server.

Args: port: Port number the COMSOL server is listening on host: Server hostname or IP address (default: 'localhost')

Returns: Connection info or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNolocalhost
portYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It states connection and return of info/error, but lacks details on side effects, session management, blocking behavior, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose. The docstring format with Args/Returns is efficient, and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the return description is adequate but minimal. Missing context about prerequisites (e.g., server must be running) and relation to sibling tools. Could note that this is typically used before other COMSOL operations.

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

Parameters4/5

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

Schema description coverage is 0%, but the description adds meaning by explaining 'port' and 'host' (including default). This compensates for the missing schema descriptions, though port range or format could be more specific.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Connect') and the resource ('remote COMSOL server'), distinguishing it from sibling tools like 'comsol_disconnect' and 'comsol_start'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives, nor prerequisites like server availability. The implied usage is to connect before other operations, but no exclusions are provided.

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

comsol_disconnectA

Disconnect from COMSOL and clear all models from memory.

Returns: Success status and message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Discloses destructive action (clearing models) without annotations. However, could mention side effects like unsaved work loss. Still, good transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with front-loaded purpose. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, description adequately covers purpose and return. Could elaborate on return format.

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

Parameters4/5

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

No parameters; schema coverage is 100% trivially. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Disconnect from COMSOL and clear all models from memory', using specific verb and resource. It distinguishes itself from siblings like comsol_connect and comsol_start.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage context (disconnect after connecting), but no explicit when-not or alternatives guidance.

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

comsol_startA

Start a local COMSOL client session.

Args: cores: Number of processor cores to use (default: all available) version: COMSOL version to use, e.g., '6.0' (default: latest installed) products: List of COMSOL products to load, e.g., ["ACDC"], ["ACDC", "CADImport"] (default: all available products)

Returns: Session info including version and core count, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
coresNo
versionNo
productsNo

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full load. It does disclose the return shape ('Session info including version and core count, or error message') and the effective defaults for each argument, which is useful. It says nothing about latency (starting a COMSOL session is slow), whether an existing session is replaced, or resource/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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one line, followed by compact Args/Returns blocks. Every sentence earns its place; there is no redundancy with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-param entry-point tool with no output schema and no annotations, the definition covers parameters and return shape adequately. It omits the operational context an agent would want — relationship to comsol_connect/comsol_disconnect and session lifecycle — leaving it only marginally complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does: each of the three parameters gets meaning plus an example ('6.0', ["ACDC", "CADImport"]) and the semantic default ('all available', 'latest installed'), which the schema's null defaults do not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource: 'Start a local COMSOL client session.' That is clearly distinct from most modeling siblings. However, it does not differentiate itself from close siblings such as comsol_connect or comsol_status, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied — the tool is an entry point that logically precedes modeling calls. There is no explicit when-to-use statement and no guidance on choosing between comsol_start and the near-neighbor comsol_connect, which is the main selection risk here.

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

comsol_statusA

Get the current COMSOL session status.

Returns: Session information including connection status, version, and loaded models

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavioral traits. It states the tool 'gets' status and 'returns' information, implying no side effects, but does not confirm read-only behavior, whether it requires an active session, or any potential impacts. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences that directly convey purpose and return value. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status tool with no parameters and no output schema, the description gives a reasonable overview of what is returned. However, it lacks specifics about the format or structure of the return value, and could clarify if it works only when COMSOL is connected.

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

Parameters4/5

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

No parameters in the input schema, so schema description coverage is 100% by default. The description does not need to add parameter details; baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the current COMSOL session status and returns session information including connection status, version, and loaded models. This distinguishes it from sibling tools like comsol_connect (connect to COMSOL) or comsol_start (start session).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to check session status, but does not explicitly state when to use it versus alternatives or provide prerequisites (e.g., requires an active session). No exclusions or when-not-to-use guidance.

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

datasets_listB

List all datasets in a model.

Datasets represent solution data that can be evaluated or visualized.

Args: model_name: Model name (default: current model)

Returns: List of dataset names

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

B3.1/5.0
Behavior2/5

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 tool lists datasets but does not discuss scope (e.g., all models vs. current model), error behavior, pagination, performance, or side effects. The agent has limited insight into the tool's operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and well-structured. It opens with a clear purpose statement, then briefly defines the term 'datasets,' followed by parameter documentation. Every sentence provides value with no extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description is reasonably complete. It explains the return value ('list of dataset names') and the parameter. However, it omits details like authentication requirements, potential errors, or whether the list is exhaustive. For a simple read tool, this is acceptable but not exceptional.

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

Parameters3/5

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

The input schema has 0% description coverage, so the description compensates by explaining the model_name parameter's purpose and default value ('Model name (default: current model)'). This adds meaningful context beyond the schema, which only shows the type and default null. The description is adequate for the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists all datasets in a model, specifying the action (list) and resource (datasets). It also provides a brief explanation of what datasets are, aiding understanding. However, it does not explicitly distinguish from sibling tools, though no other tool appears to directly compete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or how it compares to other tools like model_list or solutions_list. The agent must infer usage context 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.

docs_getA

Get documentation on a specific topic.

Available topics:

  • "mph_api": MPh Python API reference

  • "physics_guide": Physics interfaces and boundary conditions

  • "workflow": Step-by-step modeling workflows

Args: topic: Documentation topic to retrieve

Returns: Documentation content for the topic

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes

TDQS

A3.8/5.0
Behavior2/5

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

Without annotations, the description carries the burden of behavioral disclosure. It only states that it 'returns documentation content' but does not mention whether the operation is purely read-only, if any authentication is needed, or how errors (e.g., invalid topic) are handled. This is insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences plus a bulleted list of topics. It front-loads the main action and presents the parameter options clearly without any superfluous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with one parameter and no output schema, the description adequately covers what the tool does and what inputs are valid. However, it omits details like error handling, response format, or whether the documentation content is raw text or structured, which could be helpful but are not critical.

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

Parameters4/5

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

The schema has 0% description coverage for the 'topic' parameter, but the description compensates by listing three specific valid topics with brief explanations. This adds significant meaning beyond the bare schema, though it could be improved by including format constraints or error handling notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get documentation on a specific topic' and enumerates the available topics, making the tool's purpose unambiguous. It distinguishes itself from siblings like docs_list (which lists topics) and physics_get_guide (which is physics-specific).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when a user needs documentation on a known topic, but it provides no explicit guidance on when to prefer this tool over alternatives like physics_get_guide or docs_list. No exclusions or conditions are stated.

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

docs_listB

List all available documentation topics.

Returns: List of available documentation topics with descriptions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Describes return value as list of topics with descriptions. No annotations exist, so burden is on description. It is adequate but lacks details on output format or side effects (none expected).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. Structure is simple but effective for a zero-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description should specify return format. It says 'list of topics with descriptions' but not whether it's an array of strings or objects. Adequate but minimal.

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

Parameters4/5

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

No parameters, so baseline 4. No additional parameter info needed beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists documentation topics. Differentiates from sibling 'docs_get' which likely retrieves a specific topic, though not explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 docs_get. Does not specify prerequisites or context.

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

geometry_add_blockB

Add a block (rectangular cuboid) to the geometry.

Args: position: Base position [x, y, z] in meters (default: origin) size: Dimensions [width, depth, height] in meters (default: 1m cube) geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model)

Returns: Created block info

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo
positionNo
model_nameNo
feature_nameNo
geometry_nameNo
component_nameNocomp1

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions auto-generation of feature_name but does not describe side effects (e.g., whether it modifies existing geometry, error handling, or what 'Created block info' entails). Critical behavioral traits are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: one sentence for purpose, then a list of parameters with one-line explanations, and a return note. It is front-loaded and each sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately documents all parameters but lacks behavioral context such as what happens if geometry_name is null or invalid, error conditions, and the format of the return value. For a tool with 6 optional parameters and no output schema, more completeness is needed.

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

Parameters5/5

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

With 0% schema description coverage, the description compensates excellently. Each parameter is explained with meaningful context: units for position and size, defaults, and optionality for geometry_name, feature_name, model_name. This adds value beyond the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool adds a block (rectangular cuboid) to the geometry. The verb 'Add' and resource 'block' are specific, and the shape name distinguishes it from sibling geometry_add_circle, cylinder, etc. However, it does not explicitly contrast with alternatives, missing a chance to differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other geometry_add_* tools or when to avoid it. There is no mention of prerequisites, context, or comparison, leaving the agent without decision support.

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

geometry_add_circleB

Add a circle to a 2D geometry or work plane.

Args: position: Center [x, y] in meters radius: Radius in meters (default: 0.5) geometry_name: Geometry sequence name model_name: Model name (default: current model)

Returns: Created circle info

ParametersJSON Schema
NameRequiredDescriptionDefault
radiusNo
positionNo
model_nameNo
geometry_nameNo

TDQS

B3.4/5.0
Behavior2/5

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. While it states 'Add a circle,' implying mutation, it does not describe side effects, required state (e.g., geometry must exist), or what happens if parameters are omitted beyond defaults. No information about rate limits or destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively brief and includes a structured Args and Returns section. It is not verbose, but the return value is minimally described ('Created circle info'), which could be expanded. Overall, it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool among many geometry_add_* siblings and without an output schema, the description adequately explains parameters but lacks context on when to choose this shape and how it interacts with existing geometry. It does not specify whether geometry_name must refer to an existing geometry or work plane, leaving ambiguity.

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

Parameters4/5

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

Despite 0% schema coverage, the description adds meaningful semantics for all four parameters: position as center [x, y] in meters, radius in meters, geometry_name as geometry sequence name, model_name with default current model. This clarifies usage beyond the schema's defaults and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as adding a circle to a 2D geometry or work plane. It distinguishes itself from sibling tools like geometry_add_block, geometry_add_cylinder, geometry_add_rectangle, and geometry_add_sphere by specifying the shape.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other geometry_add_* tools. It does not mention prerequisites, such as the need for an existing geometry or work plane, nor does it suggest alternatives.

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

geometry_add_cylinderC

Add a cylinder to the geometry.

Args: position: Center of base [x, y, z] in meters radius: Radius in meters (default: 0.5) height: Height in meters (default: 1.0) geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model)

Returns: Created cylinder info

ParametersJSON Schema
NameRequiredDescriptionDefault
heightNo
radiusNo
positionNo
model_nameNo
feature_nameNo
geometry_nameNo
component_nameNocomp1

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states it adds a cylinder, but does not disclose side effects, whether it modifies existing geometry, what 'add' means in terms of geometry sequences, or the format of return info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Structured with Args and Returns, brief and to the point. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 description is insufficient. It does not explain parameter behavior or return format, making it incomplete for effective tool usage.

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

Parameters3/5

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

Schema coverage is 0%, so description compensates with parameter descriptions (position, radius, height, etc.). However, lacks details on geometry_name (which geometry?), component_name, and feature_name semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool adds a cylinder to the geometry. The verb 'add' and resource 'cylinder' are specific, but it does not differentiate from sibling tools like geometry_add_block or geometry_add_sphere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like adding other shapes or using geometry_add_feature. No mention of prerequisites or when not to use it.

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

geometry_add_featureB

Add a geometry feature to a geometry sequence.

Common feature types:

  • Block: Rectangular block (3D)

  • Cylinder: Cylinder (3D)

  • Sphere: Sphere (3D)

  • Cone: Cone (3D)

  • WorkPlane: Working plane for 2D geometry

  • Rectangle: Rectangle (2D)

  • Circle: Circle (2D)

  • Polygon: Polygon from points

  • Import: Import CAD geometry

  • Union, Intersection, Difference: Boolean operations

Args: feature_type: Type of geometry feature (Block, Cylinder, etc.) geometry_name: Geometry sequence name (default: first geometry) feature_name: Name for the feature (auto-generated if None) model_name: Model name (default: current model) **kwargs: Feature-specific properties (position, size, etc.)

Returns: Created feature info

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes
model_nameNo
feature_nameNo
feature_typeYes
geometry_nameNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It mentions adding a feature and returning info, but lacks details on side effects (e.g., whether the geometry is built or needs rebuilding), permissions, or constraints. Behavioral traits are partially disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear action sentence, a list of feature types, and an 'Args' section. It is concise but informative, with no redundant information. Front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and many sibling tools, the description is moderately complete. It explains parameters and returns but lacks examples and behavioral details. Familiar users might find it sufficient, but novices may need more context.

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

Parameters3/5

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

Schema coverage is 0%, so description must compensate. It explains the purpose of each parameter (feature_type, geometry_name, etc.) and mentions kwargs as feature-specific properties. However, it does not provide examples or format for kwargs, nor allowed values for feature_type beyond the list. Adds some meaning but not comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add a geometry feature to a geometry sequence' and lists common feature types, which distinguishes it from sibling tools. However, it does not explicitly differentiate from specific geometry_add_* tools (e.g., geometry_add_block).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists feature types implying when to use this tool, but does not provide explicit guidance on when to use this generic version versus the specific shape tools (siblings). No when-not-to-use or alternative recommendations.

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

geometry_add_rectangleB

Add a rectangle to a 2D geometry or work plane.

Args: position: Base position [x, y] in meters size: Dimensions [width, height] in meters geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model)

Returns: Created rectangle info

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo
positionNo
model_nameNo
feature_nameNo
geometry_nameNo
component_nameNocomp1

TDQS

B3.2/5.0
Behavior2/5

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

Describes only the action of adding a rectangle without disclosing behavioral traits like side effects, dependency on geometry existence, or performance implications. No annotations exist to compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise docstring format with Args and Returns sections. The first sentence clearly states purpose. Every sentence serves a purpose, though the Returns section is minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the basics for a simple add tool but lacks details on return value format and prerequisites like needing an open geometry or work plane. Output schema is absent, so description carries additional burden.

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

Parameters3/5

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

Provides brief descriptions for each parameter (e.g., 'position: Base position [x, y] in meters') and default values, adding some meaning beyond the schema. However, with 0% schema coverage, more detail would be beneficial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Add a rectangle to a 2D geometry or work plane' with specific verb and resource, distinguishing it from siblings like geometry_add_block or geometry_add_circle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., circle, block). Does not specify prerequisites or context such as requiring an existing geometry.

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

geometry_add_sphereA

Add a sphere to the geometry.

Args: position: Center [x, y, z] in meters radius: Radius in meters (default: 0.5) geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model)

Returns: Created sphere info

ParametersJSON Schema
NameRequiredDescriptionDefault
radiusNo
positionNo
model_nameNo
feature_nameNo
geometry_nameNo
component_nameNocomp1

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided. The description only states the action and returns 'Created sphere info' but does not disclose side effects, model requirements, or whether the operation is reversible. Minimal behavioral context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured as a clear docstring with Args and Returns. It is concise, with no unnecessary words, and front-loades the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters and no output schema or annotations, the description covers all parameters and mentions return info. However, it omits context like the need for an active model or coordinate system, which would aid completeness.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates. It explains every parameter: position as center [x,y,z], radius with default 0.5, geometry_name, component_name, feature_name, model_name. This adds meaning that the schema titles alone lack.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add a sphere to the geometry,' which is a specific verb-resource pair. It distinguishes from sibling tools like geometry_add_block or geometry_add_circle that add other shapes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for adding a sphere shape but offers no explicit guidance on when to use this tool versus alternatives like geometry_add_block. No when-not or prerequisites are mentioned.

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

geometry_boolean_differenceB

Create a boolean difference (subtract objects from another).

Args: input_object: Object to subtract from (e.g., 'blk1') objects_to_subtract: Objects to remove (e.g., ['cyl1']) geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model)

Returns: Created difference operation info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
feature_nameNo
input_objectYes
geometry_nameNo
component_nameNocomp1
objects_to_subtractYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must fully describe behavior. It only says 'create a boolean difference' and returns 'operation info', but does not disclose whether the operation is destructive, modifies existing objects, or creates new ones. No side effects or permissions are mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: one purpose line followed by a structured Args list and a return line. It is front-loaded with the main operation. Minor waste: the 'Returns' line is vague but acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 provide more detail about the return value. 'Created difference operation info' is too generic. Covers parameter definitions but lacks usage context, error handling, or examples. Adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 0%, so description must compensate. The description provides brief role explanations for parameters (e.g., 'Object to subtract from'), and default values for some. This adds meaning beyond the schema's title-only fields, but explanations are still high-level and lack details like allowed formats or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Create a boolean difference (subtract objects from another)' with a specific verb and resource. It clearly distinguishes from the sibling tool geometry_boolean_union by naming the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool or when to prefer alternatives. Does not mention that geometry_boolean_union exists for union operations or provide any context about prerequisites or common use cases.

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

geometry_boolean_unionB

Create a boolean union of geometry objects.

Args: input_objects: Names of objects to unite geometry_name: Geometry sequence name model_name: Model name (default: current model)

Returns: Created union operation info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
geometry_nameNo
input_objectsYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only says 'Creates' and 'Returns info', but does not disclose if it modifies existing geometry, how overlaps are handled, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and includes Args/Returns in a structured format. No wasted words, but could be more informative without extra length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a boolean union tool with no output schema and no annotations, the description is incomplete. It lacks details on required state, error conditions, and behavior of the union operation.

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

Parameters3/5

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

Schema has 0% description coverage, so the description must add meaning. It adds brief explanations for each parameter (e.g., 'Names of objects to unite'), which is helpful but still vague for geometry_name and model_name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a boolean union of geometry objects' which is a specific verb-resource pair. It distinguishes from sibling geometry_boolean_difference by name and description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use union versus alternatives like difference or add operations. No context about prerequisites or typical use cases.

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

geometry_buildA

Build the geometry sequence to generate the actual geometry.

This must be called after adding/modifying geometry features.

Args: geometry_name: Geometry sequence name (default: build all) component_name: Component name (default: 'comp1') model_name: Model name (default: current model)

Returns: Build status

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
geometry_nameNo
component_nameNocomp1

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided; description mentions it is a build operation (likely mutable) and requires prior modifications. However, it does not detail destructiveness, permission needs, or reversible nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, efficient sentences. The first clearly states purpose and prerequisite, the second lists parameters. No wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; returns are only 'Build status' without detail. No mention of possible failures or side effects. Adequate for a simple tool but lacks completeness for a production setting.

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

Parameters4/5

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

Schema has 0% coverage (no descriptions), but the description adds meaning for each parameter: defaults for geometry_name (build all), component_name ('comp1'), model_name (current model).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool builds the geometry sequence to generate the actual geometry, and distinguishes from sibling tools that add/modify features (e.g., geometry_add_block).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'must be called after adding/modifying geometry features', providing clear context. Does not mention alternatives, but the sister list of geometry modification tools implies when to use others.

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

geometry_createA

Create a new geometry sequence in the model's component.

IMPORTANT: A component must exist first. Use model_create_component if needed.

Args: geometry_name: Name for the geometry sequence (default: 'geom1') space_dimension: Space dimension - 2 for 2D, 3 for 3D (default: 3) component_name: Component name (default: 'comp1') model_name: Model name (default: current model)

Returns: Created geometry info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
geometry_nameNo
component_nameNocomp1
space_dimensionNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It lists parameter defaults and returns 'Created geometry info,' but does not disclose side effects, error conditions, or whether the operation is destructive. This is acceptable but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: a clear purpose statement, an important note, and a bulleted parameter list. Every sentence serves a purpose, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the sibling tools, the description adequately identifies this as the step to create a geometry container before adding primitives. It includes a prerequisite note and parameter defaults, but lacks details on how to set the current model or what 'geometry sequence' entails.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains each parameter with defaults and special notes (e.g., space_dimension: '2 for 2D, 3 for 3D'). This adds useful meaning beyond the schema, though more detail on allowed values or constraints would improve it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new geometry sequence in the model's component,' using a specific verb and resource. This distinguishes it from sibling tools like geometry_add_block which add primitives to an existing geometry sequence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns that a component must exist first and suggests model_create_component if needed. This provides a clear prerequisite, though it does not explicitly contrast with alternatives like geometry_add_*.

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

geometry_create_box_selectionA

Create a named Box selection for geometry entities by position.

For a 2D model, use entity_dimension=1 to select boundaries. For a 3D model, use entity_dimension=2 to select boundary faces.

Args: selection_name: Stable selection tag x_min: Minimum x-coordinate expression x_max: Maximum x-coordinate expression y_min: Minimum y-coordinate expression y_max: Maximum y-coordinate expression z_min: Optional minimum z-coordinate expression z_max: Optional maximum z-coordinate expression entity_dimension: Entity dimension (default: 1) condition: Box condition, usually "intersects" or "inside" geometry_name: Geometry sequence tag (default: first geometry) component_name: Component name (default: "comp1") model_name: Model name (default: current model)

Returns: Created named selection and matched entity numbers when available

ParametersJSON Schema
NameRequiredDescriptionDefault
x_maxYes
x_minYes
y_maxYes
y_minYes
z_maxNo
z_minNo
conditionNointersects
model_nameNo
geometry_nameNo
component_nameNocomp1
selection_nameYes
entity_dimensionNo

TDQS

A3.8/5.0
Behavior3/5

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 discloses defaults for optional parameters and notes the return ('Created named selection and matched entity numbers when available'), which helps. It still omits whether the selection persists, permission/model-state prerequisites, or failure behavior for a mutation tool, keeping it at a modest 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, followed by a well-organized Args list and a Returns note. Each line contributes, though listing parameters as a separate block is somewhat verbose for what the schema could have carried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter tool with 0% schema coverage and no output schema, the description covers parameter meaning and the return value adequately. The gaps are tool-selection guidance and mutation/error semantics rather than missing parameter documentation.

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

Parameters5/5

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

Schema description coverage is 0% - only bare titles exist - so the description must compensate, and it does: the Args block documents all 12 parameters, including coordinate-expression semantics, 'Box condition, usually "intersects" or "inside"', and defaults for geometry_name, component_name, and model_name. This adds substantial meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a named Box selection for geometry entities by position.' This is clear and distinguishable from siblings like geometry_create_side_selections. It stops short of explicitly contrasting itself with those alternatives, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies conditional guidance for entity_dimension (use 1 for 2D boundaries, 2 for 3D boundary faces), which is genuinely useful usage context. However, it never says when to choose this tool over alternatives such as geometry_create_side_selections or geometry_boundary_selection, so guidance is only implied at the tool-selection level.

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

geometry_create_side_selectionsB

Create named left, right, bottom, and top Box selections.

This is intended for rectangular 2D domains such as waveguides and water-wave tanks. The resulting tags are _left,

_right, _bottom, and _top.

ParametersJSON Schema
NameRequiredDescriptionDefault
x_maxYes
x_minYes
y_maxYes
y_minYes
prefixNoside
toleranceNo1e-9[m]
model_nameNo
geometry_nameNo
component_nameNocomp1
entity_dimensionNo

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It discloses a useful behavior beyond the schema: the four generated tags and their <prefix>_... naming convention. It does not say whether existing selections are overwritten, what permissions or model state are required, or that this mutates geometry state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs, front-loaded with the action and followed by the domain and tag naming. No filler sentences. Slightly under-specified rather than bloated, but structurally sound.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter geometry-mutation tool with no annotations, no output schema, and zero param documentation, the description covers only the output tag naming. Semantics of tolerance, entity_dimension, and model/geometry/component scoping are absent, so the agent cannot call it confidently.

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

Parameters2/5

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

Schema description coverage is 0% and all 10 parameters are undocumented in the schema. The description only illuminates the 'prefix' parameter (through the tag naming) and indirectly the bounding-box coordinates; tolerance, entity_dimension, model_name, geometry_name, and component_name get no explanation anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create named left, right, bottom, and top Box selections') and even enumerates the resulting tag names, which is unusually concrete. However, it never differentiates itself from the near-identical sibling geometry_create_box_selection, so the agent can't tell the two apart 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the intended domain ('rectangular 2D domains such as waveguides and water-wave tanks'), which is real usage context. But there is no when-not guidance and no mention of the alternative box-selection tool, leaving the agent to infer which sibling to pick.

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

geometry_get_boundariesA

Get all boundaries from a geometry with their properties.

Use this to identify which boundary numbers correspond to which faces before setting boundary conditions.

Args: geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') model_name: Model name (default: current model)

Returns: List of boundaries with their numbers and areas

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
geometry_nameNo
component_nameNocomp1

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It discloses the return content ('boundaries with their numbers and areas') and frames the operation as a preparatory read, but says nothing about permissions, side effects, or whether it requires a built geometry. Adequate but incomplete for an un-annotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then adds usage, then Args/Returns sections. Efficient and well-organized, though the docstring-style Args/Returns blocks are slightly formulaic for a 3-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only geometry inspection tool with no output schema, the description covers purpose, usage context, parameter defaults, and the shape of the returned data. Nothing critical an agent needs to call it correctly is missing.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining all three parameters, including the non-obvious default semantics: geometry_name defaults to the first geometry and model_name defaults to the current model. This adds meaning the bare schema titles do not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Get all boundaries from a geometry with their properties.' An agent can distinguish this from siblings like geometry_list or geometry_list_features without opening the schema. It stops short of explicitly contrasting those siblings, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete when-to-use: 'Use this to identify which boundary numbers correspond to which faces before setting boundary conditions.' That is a clear sequencing/context hint that ties it to the physics boundary-condition setup tools. No when-not-to-use or named alternative is offered, so not a 5.

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

geometry_importA

Import geometry from a CAD file.

Supported formats: STEP, IGES, STL, NASTRAN, etc.

Args: file_path: Path to the CAD file geometry_name: Geometry sequence name import_type: Import type (CAD, mesh, etc.) model_name: Model name (default: current model)

Returns: Import operation info

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
model_nameNo
import_typeNoCAD
geometry_nameNo

TDQS

A3.5/5.0
Behavior2/5

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

Without annotations, the description must fully disclose behavior. It only states the basic import action and supported formats, but fails to mention whether the tool overwrites existing geometry, requires a current model, or how it handles errors (e.g., invalid file path). The return value is vaguely described as 'Import operation info', offering 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 lines excluding header) and front-loaded with the main action. The parameter list is readable but uses plain text without bullet formatting, which could be improved for clarity. Every sentence adds value, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 4 parameters with 0% schema coverage, the description is incomplete. It lacks details on prerequisites (e.g., must a model exist?), error handling, and return value structure. The tool interacts with files and likely has side effects (e.g., modifying the current model), but these are not mentioned.

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

Parameters3/5

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

With 0% schema description coverage, the description adds some value by labeling each parameter: file_path, geometry_name, import_type, model_name, and noting defaults (e.g., model_name defaults to 'current model'). However, it does not provide valid value examples for import_type (e.g., 'CAD', 'mesh') or clarify geometry_name's format, leaving gaps for the agent to infer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Import geometry from a CAD file' and lists supported formats, distinguishing it from sibling tools that create primitives (e.g., geometry_add_block) or manipulate geometry. The verb 'import' and resource 'geometry from a CAD file' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when a CAD file is available and lists supported formats (STEP, IGES, STL, NASTRAN, etc.), providing usage context. However, it lacks explicit exclusions or comparisons to alternative geometry creation tools, such as geometry_create or geometry_add_*. This leaves the agent to infer when to import versus build from scratch.

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

geometry_listA

List all geometry sequences in a model.

Args: model_name: Model name (default: current model)

Returns: List of geometry sequence names

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It specifies the return type (list of names) and implies a read operation, but does not disclose safety, side effects, or permissions. Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences plus an Args/Returns block. Every sentence adds value, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains the return value. It covers the single parameter well. For a simple list tool, this is sufficient, though it could mention if the list is empty or behavior with invalid model names.

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

Parameters4/5

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

The description adds meaning to the single parameter 'model_name' by stating it defaults to the current model (schema only shows anyOf string/null with default null). This clarifies the default behavior, compensating for 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all geometry sequences in a model,' using a specific verb and resource. It distinguishes from sibling tools like geometry_list_features (lists features within a sequence) and geometry_add_* (adds geometry).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (listing geometry sequences) but does not explicitly state when to use it versus alternatives or provide conditions for use. No guidance on when not to use or prerequisites.

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

geometry_list_featuresB

List all features in a geometry sequence.

Args: geometry_name: Geometry sequence name (default: first geometry) model_name: Model name (default: current model)

Returns: List of geometry features with their types

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
geometry_nameNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'list', implying read-only but not explicitly. It lacks details about side effects or any behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a clear purpose, Args, and Returns sections. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool, the description is fairly complete, specifying the return type (list of geometry features with types). Given no output schema, this is adequate, though it could elaborate on what constitutes a 'feature'.

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

Parameters4/5

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

Schema coverage is 0%, but the description adds meaningful parameter explanations: geometry_name defaults to first geometry, model_name defaults to current model. This goes beyond the schema's titles and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all features in a geometry sequence. It distinguishes from siblings like geometry_list (lists geometries) and geometry_add_feature (adds features).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites or when not to use it.

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

mesh_createB

Run one or all mesh sequences, creating a default sequence when needed.

Args: mesh_name: Mesh sequence tag (default: all, or "mesh1" when created) geometry_name: Geometry tag used when creating a mesh sequence component_name: Component name (default: first component) auto_create: Create a missing mesh sequence (default: True) model_name: Model name (default: current model)

Returns: Mesh generation status

ParametersJSON Schema
NameRequiredDescriptionDefault
mesh_nameNo
model_nameNo
auto_createNo
geometry_nameNo
component_nameNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden, and it does disclose one non-obvious side effect: a mesh sequence may be auto-created (auto_create defaults to True), plus it returns a generation status. It omits whether the operation is safe/idempotent, whether meshing is long-running or blocking, and what happens to existing sequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line summary followed by a compact Args block and a return note; nothing is padded. The Args list largely restates schema keys, but each line adds a default or behavioral nuance, so it earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Five parameters with zero schema coverage are all explained, and the return is at least named, so an agent can call this. Gaps remain: 'Mesh generation status' is never defined despite there being no output schema, blocking/latency behavior is unstated, and the relationship to mesh_create_sequence is unclear.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it documents all five parameters with their default semantics (mesh_name defaults to all or 'mesh1' on creation, component_name defaults to the first component, model_name defaults to the current model). This meaningfully exceeds the schema, which supplies only titles and null defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb and resource: 'Run one or all mesh sequences, creating a default sequence when needed.' That is clearer than the bare name mesh_create and conveys the both-broad-and-narrow scope. It does not, however, distinguish itself from the sibling mesh_create_sequence, leaving the agent to 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named even though mesh_create_sequence and mesh_info sit right next to it. The defaults imply casual usage but the agent gets no routing signal for choosing this over its siblings.

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

mesh_create_sequenceC

Create a mesh sequence bound to a geometry.

Args: mesh_name: Mesh sequence tag (default: "mesh1") geometry_name: Geometry sequence tag (default: first geometry) component_name: Component name (default: first component) model_name: Model name (default: current model)

Returns: Created mesh sequence info

ParametersJSON Schema
NameRequiredDescriptionDefault
mesh_nameNomesh1
model_nameNo
geometry_nameNo
component_nameNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It does not say whether this mutates the model, requires an existing built geometry, what happens if the geometry doesn't exist, or whether creation is idempotent. Only the defaults are noted, which the schema already contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line summary followed by a compact Args/Returns block. Every line is functional, though 'Returns: Created mesh sequence info' is vague boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param, no-annotation, no-output-schema creation tool, the description covers parameters and defaults but omits the crucial behavioral context: preconditions (geometry must exist), model-mutation effect, and what the return value actually contains. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains each parameter's role and defaults, which is genuinely useful since the schema has no descriptions. However, it merely restates the schema's own defaults and does not clarify name-resolution behavior for the optional, nullable parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verb (create) and resource (mesh sequence) bound to a geometry. Does not name siblings like mesh_create to distinguish when to use this over that tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus mesh_create or mesh_list, nor prerequisites (does a geometry need to be built first?). The 'bound to a geometry' phrase implies a precondition but does not state it.

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

mesh_infoA

Get mesh information using a stable Java tag.

Args: mesh_name: Mesh sequence tag (default: first mesh) component_name: Component name (default: first component) model_name: Model name (default: current model)

Returns: Mesh tag, component, geometry, and feature information

ParametersJSON Schema
NameRequiredDescriptionDefault
mesh_nameNo
model_nameNo
component_nameNo

TDQS

A3.5/5.0
Behavior3/5

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-only operation and the description discloses default fallback behavior for omitted arguments and the kinds of information returned, but it does not state permissions, side effects, or whether it can alter the current model/selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose, then cleanly separated into Args and Returns sections. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with no annotations and no output schema, the description covers parameter meanings, defaults, and return categories. It leaves some context implicit, such as how to obtain valid mesh/component/model names and how it relates to mesh_list, but remains adequate for correct invocation.

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

Parameters4/5

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

Schema description coverage is 0%, so the prose Args block is the only source of parameter meaning. It documents all three parameters with their roles and defaults, though it does not specify the expected tag format or how to discover valid names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('mesh information'), and mentions the stable Java tag, so the basic operation is understandable. It does not distinguish itself from sibling mesh_list or clarify what specific mesh information is returned beyond the general phrase, so it is not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides only parameter defaults and no guidance on when to use this tool versus mesh_list or other mesh-related siblings. It does not state prerequisites, alternatives, or conditions under which this tool should be preferred.

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

mesh_listC

List mesh sequences by stable COMSOL Java tag.

Args: component_name: Component name (default: all components) model_name: Model name (default: current model)

Returns: Mesh sequence tags, components, and usable labels

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
component_nameNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses the return content (tags, components, usable labels), but says nothing about permissions, pagination, scope limits, or what happens when no mesh exists. For a list tool this is minimal but under-specified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very tight and front-loaded: a one-line purpose followed by clean Args/Returns blocks. No wasted sentences, though the Returns block is arguably redundant given its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema or annotations exist, so the description must stand alone; it names the return fields but does not describe their structure. Adequate for a simple two-parameter read tool, but leaves behavioral and format gaps unaddressed.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate, and it does explain both parameters plus defaults ('default: all components', 'default: current model'). This adds meaning the bare schema lacks, though the default values slightly differ in spirit from the schema's null defaults and no format details are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List mesh sequences') with the added scoping detail 'by stable COMSOL Java tag', which signals the identifier style. It is reasonably distinct from siblings like mesh_create_sequence and mesh_info, though it does not explicitly contrast with mesh_info, the other mesh read tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies listing use but gives no explicit when-to-use guidance and no indication of when to prefer it over mesh_info or mesh_create_sequence. No prerequisites, context, or exclusions are provided.

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

model_cloneA

Clone a model to create a copy for comparison or modification.

Args: model_name: Name of the model to clone (default: current model) new_name: Name for the cloned model (auto-generated if not provided) set_current: Whether to set the clone as current model (default: False)

Returns: Info about the cloned model, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameNo
model_nameNo
set_currentNo

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose side effects, prerequisites (e.g., model must exist), or whether the operation is safe. It only states the basic cloning action without behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear structure: purpose sentence, then Args list, then Returns. Every sentence provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple clone tool, the description covers parameters and return type. However, it lacks prerequisites (e.g., model must exist) and potential side effects (e.g., does it save to disk?), so completeness is adequate but not full.

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

Parameters4/5

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

Schema description coverage is 0%, but the description adds meaning for all three parameters, explaining their purpose, defaults, and behavior (e.g., 'auto-generated if not provided'). This compensates well for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Clone a model to create a copy for comparison or modification.' It uses a specific verb ('clone') and resource ('model'), and distinguishes from sibling tools like model_create or model_save_version by indicating a copy operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating a copy for comparison or modification, but does not explicitly state when not to use or mention alternatives. Some guidance is present, but lacks exclusions or context vs. other model tools.

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

model_createA

Create a new empty COMSOL model.

Args: name: Optional name for the model (auto-generated if not provided) set_current: Whether to set this as the current active model (default: True)

Returns: Model info including name, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
set_currentNo

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must bear the full burden of behavioral disclosure. However, it only states the action and arguments without detailing side effects, prerequisites, or resource impacts. For a tool that likely requires an active COMSOL connection, this omission is significant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely efficient: one main sentence then a compact list for arguments. Every element serves a purpose with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the creation action and arguments, it omits prerequisite context (e.g., need for an active connection). The return value is vaguely described as 'Model info' without structure details, but that is acceptable for a simple create tool.

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

Parameters4/5

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

The Args section adds meaningful context beyond the schema, explaining the auto-generation of name and the default of set_current. Despite the schema having 0% property descriptions, the description compensates well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it creates a new empty COMSOL model, which is a specific verb+resource combination. This clearly distinguishes it from sibling tools like model_clone or model_load.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like model_clone or model_load. Usage is only implied by the name and description, lacking when-not-to-use context.

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

model_create_componentA

Create a component in the model (required before adding geometry/physics).

Components are containers for geometry, physics, materials, and mesh. Must be created before adding geometry or physics.

Args: component_name: Name for the component (default: 'comp1') space_dimension: Space dimension - 0=0D, 1=1D, 2=2D, 3=3D, 20=2D axisymmetric, 30=3D axisymmetric (default: 3) model_name: Model name (default: current model)

Returns: Created component info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
component_nameNocomp1
space_dimensionNo

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden; it discloses that components are containers for geometry/physics/materials/mesh and that creation is a prerequisite, which is useful semantic context. It is silent on failure modes (duplicate component name), whether the new component becomes current/active, and persistence, leaving meaningful gaps 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The Args/Returns layout is easy to scan and front-loaded, but the ordering constraint is stated twice — '(required before adding geometry/physics)' and then 'Must be created before adding geometry or physics' — so one sentence does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter creation tool with no output schema, the description covers purpose, precondition, and every parameter, and summarizes the return ('Created component info'). It is only mildly short of complete given the absence of any statement about duplicate-name behavior or error responses.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does: it documents all three parameters with defaults and, critically, decodes the non-obvious space_dimension integer codes (0/1/2/3/20/30 = 0D..3D axisymmetric) that the bare integer schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create a component in the model') and immediately scopes it with the precondition that it must precede geometry/physics. This distinguishes it from siblings like model_create, geometry_create, and model_list_components without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit ordering rule ('Must be created before adding geometry or physics'), which is genuine when-to-use guidance for an agent sequencing a modeling workflow. It does not name an alternative tool or state when-not to use it, but the precondition covers the primary decision point.

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

modeling_best_practicesB

Get best practices for different modeling categories.

Categories:

  • "geometry": Geometry creation and import

  • "mesh": Mesh generation strategies

  • "physics": Physics interface configuration

  • "solver": Solver configuration and optimization

  • "results": Results evaluation and visualization

Args: category: Category to get best practices for

Returns: Best practices for the specified category

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description does not disclose any behavioral traits such as read-only nature, prerequisites, or side effects. Minimal disclosure beyond the obvious knowledge retrieval purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with a title, bullet list, and Args/Returns sections. It is concise and front-loaded, though the Args/Returns section is somewhat redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing output schema and description of return format (e.g., string, structure). Does not mention prerequisites like COMSOL connection or error cases. Adequate for a simple lookup but incomplete for a production tool.

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

Parameters4/5

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

Schema has 0% description coverage, but description explicitly lists allowed category values (geometry, mesh, physics, solver, results), compensating for the lack of enum. This adds significant meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it gets best practices for different modeling categories, with a specific verb and resource. Lists five concrete categories, distinguishing it from sibling operational tools like geometry_add_block or physics_add.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 docs_get or troubleshoot. The description only lists categories but does not provide context for decision-making.

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

model_inspectA

Get detailed information about a model's structure and contents.

Args: model_name: Name of the model to inspect (default: current model)

Returns: Detailed model structure including parameters, physics, studies, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose all behavioral traits. It mentions what is returned (parameters, physics, studies) but does not state that the tool is read-only or safe to call without side effects. This omission is a gap for a tool that likely does not modify state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, uses a standard docstring format with Args and Returns, and front-loads the core purpose. Every sentence contributes value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 optional parameter) and no output schema, the description provides sufficient context about input and return values. It covers the essential behavioral aspects, though it could explicitly state the read-only nature.

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

Parameters4/5

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

Schema coverage is 0%, but the description adds meaning by stating the default value ('current model') and explaining the parameter's role ('Name of the model to inspect'). This compensates well for the lack of schema detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('detailed information about a model's structure and contents'), which distinguishes it from sibling tools like model_create, model_list, or model_load.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for inspection tasks but lacks explicit guidance on when to use this tool versus alternatives (e.g., model_list for listing models, physics_list for physics info). No 'when not to use' or alternative names are provided.

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

model_listA

List all models currently loaded in the COMSOL session.

Returns: List of models with their names, file paths, and status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral aspects. It mentions the return type (list of models with names, file paths, status), which is helpful, but does not disclose any side effects, authorization needs, or limitations. For a simple read-only list, this is acceptable but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a single sentence stating the purpose followed by a clear list of return fields. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless listing tool with no output schema, the description adequately covers the behavior and return values. It is fully sufficient for an agent to understand and invoke the tool correctly.

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

Parameters3/5

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

The tool has zero parameters, and the input schema covers 100% with no additional information needed. The description adds no parameter details, which is appropriate. Baseline is 3 per rubric due to high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all models currently loaded in the COMSOL session,' specifying a concrete action and resource. This distinguishes it from siblings like model_create or model_load, which perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., model_inspect for details, model_list_components for components). It lacks context on prerequisites or scenarios where it's appropriate.

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

model_list_componentsA

List all components in a model.

Args: model_name: Model name (default: current model)

Returns: List of component names

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description fully discloses the tool's behavior: it lists components and returns their names. No side effects or hidden behaviors are relevant for a read-only list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences for purpose and one line each for args and returns, containing no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description adequately covers what it does and what it returns. It lacks error handling or format details, but for a straightforward list operation this is sufficient.

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

Parameters4/5

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

The description adds value to the schema by explaining that model_name refers to the model to query and defaults to the current model. This clarifies usage beyond the schema's type information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all components in a model' with specific verb and resource, and it is distinct from sibling tools which focus on other aspects like creating, cloning, or inspecting models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not mention when to use this tool versus alternatives, nor does it provide context for selection. Usage is implied but not explicitly guided.

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

model_loadA

Load a COMSOL model from a .mph file.

Args: file_path: Absolute or relative path to the .mph model file set_current: Whether to set this as the current active model (default: True)

Returns: Model info including name, file path, and version, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
set_currentNo

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description provides basic behavioral info: it loads a file and returns model info including name, path, version, or error. However, it does not disclose failure modes (e.g., file not found, invalid format) or side effects (e.g., overriding current model).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with 4 lines total. The key purpose comes first ('Load a COMSOL model from a .mph file'), followed by structured argument details and return info. No redundant or irrelevant sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool (2 parameters, no output schema), the description covers the main operation, arguments, and return format. Minor gaps include error handling and dependencies (e.g., requires COMSOL connection), but overall it is sufficient for selection and invocation.

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

Parameters4/5

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

Schema coverage is 0%, so the description compensates by explaining file_path as 'Absolute or relative path to the .mph model file' and set_current as 'Whether to set this as the current active model (default: True)'. This adds meaningful context beyond the schema's type and title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Load a COMSOL model from a .mph file' with a specific verb and resource. It distinguishes from sibling tools like model_create (new) and model_clone (clone existing) by focusing on loading an existing file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites like needing a running COMSOL session or connected instance, nor does it advise against use in certain scenarios.

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

model_removeC

Remove a model from memory.

Args: model_name: Name of the model to remove

Returns: Confirmation or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description should disclose behavioral traits. It only says 'remove from memory' but does not specify side effects, whether unsaved data is lost, or if removal 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short and front-loaded with purpose. However, the Args/Returns section is boilerplate and could be more informative. It earns its place but lacks depth.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is too minimal. It does not explain return values, error conditions, or prerequisites for successful removal.

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

Parameters2/5

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

Schema coverage is 0%, so description must compensate. It adds a single line for model_name ('Name of the model to remove'), which adds little beyond the schema title. No details on format, lookup, or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action: remove a model from memory. It distinguishes from sibling tools like model_create, model_load, etc., which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 or prerequisites. The description does not mention when removal is appropriate, e.g., after saving or when model is no longer needed.

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

model_saveA

Save a COMSOL model to file.

Args: model_name: Name of the model to save (default: current model) file_path: Path to save to (default: original file path) format: Save format - 'Comsol', 'Java', 'Matlab', or 'VBA' (default: Comsol/.mph)

Returns: Save confirmation with file path, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
file_pathNo
model_nameNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description must carry the full burden. It does not disclose potential side effects such as overwriting existing files, state changes, or permission requirements. The return value is vaguely described as 'Save confirmation with file path, or error message'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with a clear header, bullet-pointed parameters, and a returns section. Every sentence provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers basic usage and return format but misses context such as prerequisites (e.g., model must be loaded), error conditions in detail, and behavior when file_path is omitted. Given the simple tool, it is minimally adequate.

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

Parameters4/5

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

With 0% schema description coverage, the description adds significant value by explaining each parameter's purpose and default value. It enumerates valid format options, which the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Save') and the resource ('a COMSOL model to file'), distinguishing it from sibling tools like model_load or model_save_version effectively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., model_save_version). The description does not specify prerequisites 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.

model_save_versionA

Save a model with a timestamp version suffix.

Creates a new file with structured path: ./comsol_models/{model_name}/{model_name}_{timestamp}.mph

Also saves a 'latest' copy: ./comsol_models/{model_name}/{model_name}_latest.mph

Useful for version control and design iterations.

Args: model_name: Name of the model to save (default: current model) description: Optional description for this version (stored in metadata)

Returns: Save confirmation with versioned file path, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
descriptionNo

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description fully discloses behavior: creates timestamped file and a 'latest' copy, stores optional description in metadata. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured: summary, path details, usage, arguments, returns. No fluff, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Comprehensive for a versioned save tool: explains what it does, its parameters, and return value. No missing details.

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

Parameters4/5

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

With 0% schema coverage, description adds meaning: explains 'model_name' defaults to current model, 'description' is optional and stored in metadata. Could mention acceptable formats but suffices.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Save a model with a timestamp version suffix', indicating a specific verb and resource. Distinguishes from sibling 'model_save' by emphasizing versioning and file path structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for version control and design iterations, and contrasts with 'model_save' (sibling) which likely does simple saving without versioning. However, lacks explicit when-not-to-use guidance.

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

model_set_currentB

Set the current active model for subsequent operations.

Args: model_name: Name of the model to set as current

Returns: Confirmation or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It states it sets the current active model but does not disclose side effects, whether the operation is destructive, error handling for non-existent models, or state changes. The Returns section mentions 'confirmation or error message' but lacks detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a main sentence and structured Args/Returns sections. It avoids unnecessary words, though it could be more informative without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description is minimally adequate for a simple setter. However, it omits key contextual details like when to use it, prerequisites, and error handling, making it incomplete for an agent to reliably invoke without additional context.

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

Parameters3/5

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

With 0% schema description coverage, the description adds meaning by stating 'Name of the model to set as current' for the model_name parameter. However, it does not specify if it's a name, ID, or any constraints like case sensitivity or existence. The baseline is higher due to low coverage, but the description only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Set' and the resource 'current active model', and explains the purpose 'for subsequent operations'. It distinguishes this tool from sibling tools like model_list, model_create, etc., which have different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., model must exist) or when not to use it. No comparison to sibling tools is given.

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

multiphysics_addA

Add a multiphysics coupling between physics interfaces.

Common coupling types:

  • "ThermalStress": Couples Heat Transfer and Solid Mechanics

  • "FluidStructureInteraction": Couples Fluid Flow and Solid Mechanics

  • "ElectromechanicalForces": Couples Electrostatics and Solid Mechanics

  • "JouleHeating": Couples Electric Currents and Heat Transfer

Args: coupling_type: Type of multiphysics coupling physics_list: Names of physics interfaces to couple model_name: Model name (default: current model)

Returns: Created coupling info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_listYes
coupling_typeYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description has full burden. It discloses the action (adds coupling) and return type but omits side effects, error behavior, or what happens if coupling already exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short, front-loaded with purpose, and well-structured with Args/Returns sections. No redundant sentences; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers parameters and purpose but is incomplete on return value details ('Created coupling info' is vague) and parameter relationships (e.g., coupling_type implies required physics). Given no output schema, more detail is expected.

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

Parameters4/5

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

Schema description coverage is 0%, but the description lists all three parameters with examples for coupling_type, adding significant meaning beyond the schema. However, it lacks constraints on physics_list (e.g., required number of interfaces) and model_name format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Add a multiphysics coupling between physics interfaces,' identifies the resource (multiphysics coupling), and lists common coupling types, distinguishing it from sibling tools that add single physics interfaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides examples of coupling types and their combinations, hinting at usage context, but does not explicitly state when to use this tool versus alternatives like physics_add_* or any prerequisites.

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

param_descriptionA

Get or set the description of a parameter.

Args: name: Parameter name text: New description text (if None, returns current description) model_name: Model name (default: current model)

Returns: Parameter description, or confirmation of update

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
textNo
model_nameNo

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool can get or set based on the 'text' parameter and returns either description or confirmation, but lacks detail on side effects (e.g., overwriting) or confirmation format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear top-level statement, structured Args, and Returns. Every sentence adds value, and there is no unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get/set tool, the description covers the main purpose and parameters. The return value is stated ('Parameter description, or confirmation of update'), though more specific format details could improve completeness. Given no output schema, this is adequate.

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

Parameters4/5

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

Schema description coverage is 0%, but the description clearly explains each parameter: 'name' (parameter name), 'text' (new description, returns current if None), and 'model_name' (model name, default current). This adds meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get or set the description of a parameter,' specifying the action (get/set) and the resource (parameter description). It distinguishes from sibling tools like param_get and param_set, which deal with parameter values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for getting or setting parameter descriptions but lacks explicit guidance on when to use this tool versus alternatives like param_get or param_set. No exclusions or alternative references are provided.

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

param_getA

Get the value of a model parameter.

Args: name: Parameter name model_name: Model name (default: current model) evaluate: If True, return evaluated numerical value; if False, return expression string

Returns: Parameter value and description, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
evaluateNo
model_nameNo

TDQS

A4/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It transparently states it returns a value/description or error, and explains the evaluate parameter's effect. No side effects are mentioned, but for a getter this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loads the purpose, and uses clear docstring format. No redundant sentences, but could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so description should detail return format. It states 'Parameter value and description, or error message' but lacks specifics on structure. Prerequisites (model exist) not mentioned, but adequate for a simple getter.

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

Parameters4/5

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

The description adds meaning beyond the schema by explaining each parameter's purpose (name, model_name with default, evaluate toggle between numeric and string). Schema coverage is low (0%) but description compensates well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Get the value of a model parameter' and distinguishes it from siblings like param_list (list all) and param_description (description only) by focusing on value retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use via parameter explanations but does not explicitly state when to use param_get versus alternatives like param_list or param_description. No when-not or alternative guidance is provided.

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

param_listB

List all parameters in a model.

Args: model_name: Model name (default: current model) evaluate: If True, return numerical values; if False, return expressions

Returns: Dictionary of all parameters with values and descriptions

ParametersJSON Schema
NameRequiredDescriptionDefault
evaluateNo
model_nameNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided. Description declares return type but lacks disclosure on side effects, permissions, or safety. 'List' implies read-only but is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: one-line summary, Args/Returns section. No redundant information. Well-structured for quick parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains parameters and return value sufficiently for a simple list tool. Lacks context on usage relative to siblings, but overall adequate.

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

Parameters4/5

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

Description adds meaning beyond the schema, explaining 'model_name' default and 'evaluate' behavior. Schema coverage 0% so description carries full parameter explanation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'List all parameters in a model' with specific verb and resource. Distinguishes from parameter-specific tools (param_get, param_set) but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 param_get or param_description. Does not provide context or exclusions.

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

param_setA

Set the value of a model parameter.

Args: name: Parameter name value: Parameter value (can include units, e.g., "5[V]", "1.5[mm]") model_name: Model name (default: current model) description: Optional description for the parameter

Returns: Confirmation with new value, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
valueYes
model_nameNo
descriptionNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions return value (confirmation or error) and the ability to include units in the value. However, it does not specify whether the parameter is created if it doesn't exist, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise, using a single introductory sentence followed by structured parameter and returns sections. Every sentence adds value, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple set operation with 4 parameters and no output schema, the description covers the basics but lacks details on error handling, behavior for non-existent parameters, and any prerequisites. It is adequate but not exhaustive.

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

Parameters4/5

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

With 0% schema description coverage, the description adds significant meaning: it explains each parameter's purpose, including the units format for value and the default for model_name. This compensates for the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Set' and the resource 'model parameter', making the tool's function unambiguous. It distinguishes from sibling tools like param_get or param_list by its action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. While the context implies it's for setting parameters, it lacks any 'when to use' or 'when not to use' direction.

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

param_sweep_setupC

Set up a parametric sweep for a parameter.

Args: parameter_name: Name of the parameter to sweep values: List of parameter values to sweep through model_name: Model name (default: current model) study_name: Study to attach sweep to (default: first study)

Returns: Sweep configuration confirmation, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
model_nameNo
study_nameNo
parameter_nameYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It mentions return values (configuration or error) but does not disclose side effects, required permissions, or whether it modifies existing state. Critical details about behavior are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise but includes unnecessary sections like 'Args:' and 'Returns:' that add no value. The core information is dense but could be more streamlined without the docstring format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and the complexity of a parametric sweep, the description fails to explain prerequisites, error conditions, or the overall process. It lacks crucial context for correct usage.

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

Parameters3/5

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

Schema coverage is 0%, so the description adds some meaning beyond the schema by noting defaults (e.g., 'model_name: Model name (default: current model)'). However, explanations for 'values' and 'study_name' are minimal, not fully compensating for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sets up a parametric sweep for a parameter, using a specific verb and resource. However, it does not explicitly distinguish from sibling tools like param_set or param_list, which could cause ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description lacks context for prerequisites (e.g., model/study must exist) or when not to use it.

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

pdf_list_modulesA

List all available COMSOL documentation modules.

Returns: List of module names with file counts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided. Description notes it returns a list of module names with file counts, implying a read-only operation, but does not mention any other behavioral traits such as permissions, side effects, or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear sentences with no unnecessary words. Front-loaded with verb and resource, then details return value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description adequately explains the return value (list of module names with file counts). It is minimally complete for a simple listing tool.

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

Parameters4/5

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

Tool has no parameters; schema coverage is 100% (vacuous). Baseline score of 4 applies as description adds no parameter information beyond what is already captured.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'list' and resource 'COMSOL documentation modules'. It is specific but does not distinguish from sibling tools like 'docs_list' which might serve a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Sibling tools include 'docs_list', 'docs_get', and 'pdf_search' which could be used for related purposes, but no comparison is provided.

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

pdf_search_statusA

Get the status of the PDF documentation search system.

Returns: Status information including whether the knowledge base is built, number of indexed documents, and available modules.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Discloses return values including status info, indexed documents, and available modules. No annotations provided, so description carries the burden, which it does adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. Efficiently communicates purpose and return information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description covers the key return elements. Adequate for a simple status tool, though could mention response format.

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

Parameters4/5

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

No parameters; baseline score of 4. Description adds context about return values that complements the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the status of the PDF documentation search system, distinguishing it from sibling tools like pdf_search and pdf_list_modules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like pdf_search or pdf_list_modules. The usage context is implied but not explicit.

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

physics_addA

Add a physics interface to the model.

Common physics types:

  • "Electrostatics" or "es": Electrostatic field analysis

  • "ElectricCurrents" or "ec": Electric current conduction

  • "SolidMechanics" or "solid": Structural stress analysis

  • "HeatTransfer" or "ht": Heat transfer in solids

  • "LaminarFlow" or "spf": Fluid dynamics

Args: physics_type: Type identifier (e.g., "Electrostatics", "es") component_name: Component to add physics to (default: first component) model_name: Model name (default: current model)

Returns: Created physics interface info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_typeYes
component_nameNo

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose that adding physics modifies the model, whether a model must be loaded, or any side effects. For a mutation tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-organized with header, common types list, and parameter descriptions. The list of types is helpful but slightly verbose; otherwise efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers the main purpose and parameters, but lacks context about model prerequisites, return value details, and mutability. For a tool with no output schema and no annotations, more context is needed.

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

Parameters4/5

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

With 0% schema coverage, the description adds meaning beyond the schema: explains physics_type with examples and defaults for component_name and model_name. However, it could be more detailed (e.g., valid values for component_name).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Add a physics interface to the model' and lists common physics types with examples, distinguishing it from sibling tools that add specific physics types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides common physics types and aliases but does not explicitly guide when to use this generic version versus specific sibling tools like physics_add_electrostatics. No when-not-to-use or alternatives mentioned.

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

physics_add_acousticsA

Add a geometry-based Acoustics Module physics interface.

Use the exact COMSOL physics type for the installed version. Confirmed COMSOL 6.3 examples include PressureAcoustics and ThermoacousticsSinglePhysics. This tool also supports other acoustic interface types without maintaining a hard-coded allowlist.

Args: physics_type: Exact COMSOL acoustic physics type physics_tag: Physics interface tag (default: generated from type) domain_selection: Domain numbers (default: all domains) component_name: Component to add physics to (default: first component) geometry_name: Geometry sequence tag (default: first geometry) model_name: Model name (default: current model)

Returns: Created physics info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_tagNo
physics_typeYes
geometry_nameNo
component_nameNo
domain_selectionNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses default behavior for every argument (tag generated from type, all domains, first component/geometry/current model), which is genuinely useful. It does not describe side effects on the model, error behavior for unrecognized physics types, or what the returned 'Created physics info' contains beyond a generic phrase.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action in one sentence with no waste, then adds the version-specific hint and a clean Args/Returns block. Given zero schema coverage, the enumerated parameters are earning their place rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation tool with no annotations and no output schema, the description covers the callable inputs and defaults thoroughly and notes a return value exists. The main gap is that the 'Created physics info' return and the consequences on the model are not elaborated, but nothing essential to correct invocation is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and the Args block documents all six parameters including defaults and the meaning of domain_selection ('Domain numbers'). It adds real meaning beyond bare property names, though it doesn't specify formats expected for tags or names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add a geometry-based Acoustics Module physics interface') and clarifies its distinguishing scope: it accepts any COMSSOL acoustic physics type rather than a fixed list, unlike the narrower sibling physics_add_pressure_acoustics. It is clear what the tool does, though it doesn't explicitly contrast itself 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives context on how to pick a value ('Use the exact COMSOL physics type for the installed version', with confirmed 6.3 examples), which implies usage. However it never states when to prefer this generic tool over physics_add_pressure_acoustics or physics_add_laminar_flow, nor any prerequisites or when-not-to-use conditions.

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

physics_add_coefficient_form_pdeC

Add a Coefficient Form PDE interface.

Common equation properties include c, a, f, da, ea, al, be, and ga. Values can be scalar, vector, or matrix expressions. Rejected properties are returned explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_tagNoc
component_nameNo
domain_selectionNo
dependent_variablesNo
equation_propertiesNo

TDQS

C2.7/5.0
Behavior2/5

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 mentions that properties can be scalar/vector/matrix and that rejected properties are returned, which is some useful detail, but it does not disclose permission requirements, side effects, or what happens on invalid input beyond the rejection notice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action. The second and third sentences add relevant detail without excessive verbosity, though they could be more tightly integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no annotations and no output schema, the description is incomplete. It does not explain parameter semantics, usage context, or return behavior, 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.

Parameters2/5

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

Schema description coverage is 0%, so the description should explain the 6 parameters. It only lists equation property names (c, a, f, da, ea, al, be, ga) without mapping them to the 'equation_properties' parameter or explaining model_name, physics_tag, component_name, domain_selection, or dependent_variables. This leaves most parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 Coefficient Form PDE interface'), which is clear and matches the tool name. It is distinguishable from siblings like physics_add_general_form_pde and physics_add_weak_form_pde by its focus on the coefficient form, though it doesn't explicitly call out that distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., general form PDE, weak form PDE, or other physics_add_* tools). No prerequisites or context about when a coefficient form PDE is appropriate are provided.

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

physics_add_electrostaticsB

Add Electrostatics physics interface for electric field analysis.

Args: domain_selection: Selection name for domains (default: all domains) model_name: Model name (default: current model)

Returns: Created physics info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
domain_selectionNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description bears full burden. It implies state modification ('Add') but does not explicitly state that it modifies the model or requires an existing model. No mention of side effects, required permissions, or performance implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is very concise: one-sentence purpose followed by standard Args/Returns. Every sentence serves a clear purpose. No redundancy or wordiness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters and no output schema, the description is moderately complete. It covers purpose and parameter defaults, but lacks information about prerequisites (e.g., model must exist), return value details beyond 'Created physics info', and error conditions. Considering no annotations, more context would be beneficial.

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

Parameters3/5

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

Schema coverage is 0%, so description must compensate. It provides default values ('all domains', 'current model') and brief meaning for both parameters. This adds value beyond schema, but lacks detailed explanations such as valid format for selection names or model names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Verb 'Add' with specific resource 'Electrostatics physics interface' clearly states the action. The phrase 'for electric field analysis' provides additional context. Among sibling physics_add tools, this one is distinct due to 'electrostatics', meeting the high bar for specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other physics_add tools like physics_add_heat_transfer or the generic physics_add. No prerequisites or exclusions are mentioned. The description is purely declarative.

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

physics_add_general_form_pdeC

Add a General Form PDE interface.

Common equation properties include Ga, f, da, and ea. Values can be scalar, vector, or matrix expressions. Rejected properties are returned explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_tagNog
component_nameNo
domain_selectionNo
dependent_variablesNo
equation_propertiesNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full behavioral burden, but it only mentions that rejected properties are returned explicitly. It does not disclose whether the tool mutates the active model, requires a loaded model, persists changes, or what other side effects occur—critical context for a creation/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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the purpose is stated first, followed by useful domain context and a note on rejected properties. No wasted sentences, though the brevity leaves important gaps that could have been filled without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter creation tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It omits parameter explanations, prerequisites, model-state assumptions, and the typical PDE configuration workflow that an agent would need to call it correctly.

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

Parameters2/5

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

Schema description coverage is 0% for 6 parameters. The description mentions equation properties (Ga, f, da, ea), which adds some meaning for the equation_properties parameter, but says nothing about model_name, physics_tag, component_name, domain_selection, or dependent_variables, nor their defaults ('g', ['u']). It only partially compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Add a General Form PDE interface.' This clearly identifies the operation. However, it does not differentiate from close siblings such as physics_add_coefficient_form_pde or physics_add_weak_form_pde, so an agent must rely on the name alone to choose among PDE interface types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use a General Form PDE versus a Coefficient Form PDE, Weak Form PDE, or other physics interfaces. No prerequisites, model state requirements, or workflow context are provided, leaving the agent to infer selection 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.

physics_add_heat_transferB

Add Heat Transfer physics for thermal analysis.

Args: domain_selection: Selection name for domains (default: all domains) model_name: Model name (default: current model)

Returns: Created physics info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
domain_selectionNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided. The description lacks details on side effects, prerequisites (e.g., model existence), or whether the operation is destructive. It only states the action and return value without behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear structure (description, args, returns) in numpy docstring style. No extraneous content, but the args and returns sections are minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of adding physics (likely modifying a model), the description is incomplete. It does not mention required model state, potential errors, or the nature of the return value. Without annotations or output schema, more context is needed.

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

Parameters3/5

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

The input schema has 0% description coverage. The description compensates by naming parameters and stating defaults ('all domains', 'current model'), but does not explain what 'Selection name for domains' means or specify valid formats. Adds moderate value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add Heat Transfer physics for thermal analysis,' with a specific verb and resource. The tool's name and description distinguish it from sibling tools like physics_add (generic) and other specific physics adders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as physics_add or other physics_add_* tools. The description does not include context for selection or exclusion criteria.

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

physics_add_laminar_flowB

Add Laminar Flow physics for fluid dynamics.

Args: domain_selection: Selection name for domains (default: all domains) model_name: Model name (default: current model)

Returns: Created physics info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
domain_selectionNo

TDQS

B3.1/5.0
Behavior2/5

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

The description only states that it adds physics and returns info. It does not disclose behavioral traits like modification of the existing model, prerequisites (e.g., open model), or side effects. With no annotations, the burden falls on the description, which it insufficiently addresses.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and uses a clear Args/Returns structure. It contains no redundant information. However, it could be slightly more efficient by integrating the parameter descriptions into a fluent sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional params, no output schema), the description covers the basic purpose and parameters. It lacks context about prerequisites (e.g., need an active model) and does not mention the return structure beyond 'Created physics info'. Adequate but with clear gaps.

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

Parameters4/5

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

Although the input schema has 0% description coverage, the description provides brief explanations for both parameters (domain_selection and model_name) with defaults. This adds meaningful context beyond the schema, though it could be more detailed (e.g., expected format of selection names).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool adds Laminar Flow physics for fluid dynamics, using a specific verb and resource. However, it does not differentiate itself from sibling tools like physics_add_electrostatics or the generic physics_add, missing an opportunity to clarify when this specific physics is appropriate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Given many sibling physics_add_* tools and a generic physics_add, the description should include context such as 'use for incompressible fluid flow' or link to related physics.

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

physics_add_pressure_acousticsC

Add Pressure Acoustics physics for frequency-domain acoustic analysis.

Args: domain_selection: Domain numbers (default: all domains) component_name: Component to add physics to (default: first component) geometry_name: Geometry sequence tag (default: first geometry) physics_tag: Physics interface tag (default: "acpr") model_name: Model name (default: current model)

Returns: Created physics info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_tagNoacpr
geometry_nameNo
component_nameNo
domain_selectionNo

TDQS

C2.9/5.0
Behavior2/5

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 says it adds physics, but doesn't disclose whether the operation is idempotent, what happens if physics already exists, whether it requires an active model connection, or what permissions are needed. The 'Returns' line is minimal and no output schema exists, so the description should say more about 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then structured as Args and Returns. It's concise with no wasted sentences, though the Returns section is very terse and could be integrated more tightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 0% schema description coverage, the description is incomplete. It lacks behavioral context (side effects, required state, error conditions) and doesn't clarify how it differs from sibling acoustics tools. An agent would need external guidance to use it safely.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It documents all five parameters with defaults and brief meanings, which is helpful, but the schema already contains titles and defaults for each. The description adds marginal value by explaining 'domain numbers' and 'first component' semantics, but doesn't explain format expectations like domain numbering or tag conventions beyond defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Add Pressure Acoustics physics for frequency-domain acoustic analysis.' It clearly indicates the COMSOL physics interface being created. However, it doesn't distinguish itself from the sibling 'physics_add_acoustics' or 'physics_get_acoustic_boundary_conditions', leaving ambiguity about which add-physics tool to use for acoustics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 physics_add_acoustics or the generic physics_add. No prerequisites, no notes about required model state, and no exclusions. 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.

physics_add_solid_mechanicsB

Add Solid Mechanics physics for structural analysis.

Args: domain_selection: Selection name for domains (default: all domains) model_name: Model name (default: current model)

Returns: Created physics info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
domain_selectionNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but lacks disclosure of important traits such as idempotency, error handling, or effects if already added. Only basic parameter defaults and return type are mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with no wasted words. Two sentences cover purpose and parameters, front-loaded with the primary action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema and only 2 parameters, the description is too brief. It does not describe the return format ('Created physics info' is vague) or any side effects, leaving crucial gaps for an agent.

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

Parameters2/5

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

Schema coverage is 0%, so description must compensate. While it lists parameters with defaults, it does not explain what 'domain_selection' or 'model_name' mean in the COMSOL context (e.g., selection syntax, valid values). Insufficient detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it adds Solid Mechanics physics for structural analysis. The verb 'Add' and resource 'Solid Mechanics physics' are specific, distinguishing it from other physics_add_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like physics_add_electrostatics or the generic physics_add. The description only states the purpose 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.

physics_add_weak_form_pdeC

Add a Weak Form PDE interface.

Set the weak expression with equation_properties={"weak": "..."}. Rejected properties are returned explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_tagNow
component_nameNo
domain_selectionNo
dependent_variablesNo
equation_propertiesNo

TDQS

C2.9/5.0
Behavior3/5

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 a non-obvious trait: 'Rejected properties are returned explicitly,' which tells the agent how invalid input surfaces. But it omits mutation semantics, permissions, and required prior state, leaving significant gaps for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no filler, and the primary action leads. The brevity is efficient, though it is arguably too terse to cover the tool's surface rather than trimmed of redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, zero-coverage, unannotated mutation tool with no output schema, the description is incomplete. Five of six parameters are undocumented and no return-value or error behavior is described beyond the passing note about rejected properties.

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

Parameters2/5

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

Schema coverage is 0% across 6 parameters, so the description must compensate. It only addresses one parameter (equation_properties, via the 'weak' key) and says nothing about model_name, physics_tag, component_name, domain_selection, or dependent_variables, leaving most inputs unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Add a Weak Form PDE interface.' An agent can tell it creates a PDE physics interface. However, it does not distinguish itself from the closely related siblings physics_add_coefficient_form_pde and physics_add_general_form_pde, which would require an explicit contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no preconditions (e.g., a model/component must already exist), and no mention of when to prefer this over general_form_pde or coefficient_form_pde. The only actionable instruction is how to set the weak expression, not when to call the tool.

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

physics_boundary_selectionB

Generic boundary condition setup with boundary selection.

Use this tool to configure any boundary condition by specifying:

  1. The physics interface name

  2. The boundary condition type

  3. The boundary numbers to apply the condition to

  4. Properties specific to the boundary condition

Common boundary condition types by physics:

Heat Transfer (ht):

  • Temperature: Set T0 (temperature)

  • HeatFlux: Set q0 (heat flux)

  • ConvectiveHeatFlux: Set h (coefficient), Text (ambient temp)

Laminar Flow (spf):

  • InletBoundary: Set U0 (velocity)

  • OutletBoundary: Set p0 (pressure)

  • Wall: No-slip wall

Solid Mechanics (solid):

  • Fixed: Fixed constraint

  • BoundaryLoad: Set Fx, Fy, Fz or FAx, FAy, FAz

Args: physics_name: Name or label of the physics interface boundary_condition_type: Type of boundary condition boundary_numbers: List of boundary numbers properties: Dictionary of property names and values model_name: Model name (default: current model)

Returns: Configuration confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
propertiesNo
physics_nameYes
boundary_numbersYes
boundary_condition_typeYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations at all, the description carries the full behavioral burden and largely fails to. It does not say whether applying a condition overwrites existing boundary settings, whether a model must be loaded/current first, whether it is destructive or idempotent, or how errors are surfaced; 'Returns: Configuration confirmation' is the only behavioral statement and 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded with the purpose sentence, then numbered usage and grouped examples. It is somewhat long, but the per-physics property tables earn their space because those keys are otherwise undiscoverable. Minimal filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generic, unannotated mutation tool with no output schema and five parameters, the parameter and property-key coverage is good, but the description omits the two things an agent most needs: how this generic tool relates to the specific boundary siblings, and its side effects on existing boundary selections.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it does: it documents all five parameters (physics_name, boundary_condition_type, boundary_numbers, properties, model_name) and, critically, names the concrete property keys per boundary type (T0, q0, h/Text, U0, p0, Fx/Fy/Fz), which the bare 'additionalProperties: true' schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('configure any boundary condition') and frames itself as the generic boundary-setup tool, which is a meaningful claim of scope. However, it never distinguishes itself from the many similar siblings (physics_configure_boundary, physics_setup_flow_boundaries, physics_setup_heat_boundaries, physics_setup_pde_boundaries, physics_configure_acoustic_boundary), so an agent cannot tell from the text alone which of these to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete 'use this tool by specifying 1-4' recipe and enumerates BC types per physics module, which is implied guidance on how to use it. But there is no when-to-use-this-vs-alternative guidance and no exclusions, despite a crowded sibling set of boundary-configuration tools.

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

physics_configure_acoustic_boundaryC

Configure one Pressure Acoustics boundary condition.

Common types are SoundHard, SoundSoft, Pressure, Impedance, NormalAcceleration, NormalVelocity, PlaneWaveRadiation, and SphericalWaveRadiation. Unknown types are passed through for other acoustic interfaces and versions. Property-setting errors are returned instead of being ignored.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
propertiesNo
physics_nameYes
selection_nameNo
boundary_conditionYes
boundary_dimensionNo
boundary_selectionNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose two genuinely useful behavioral traits: unknown types pass through to other interfaces/versions, and property-setting errors are surfaced rather than swallowed. However, it says nothing about whether the operation is destructive, whether it requires a loaded/active model, or how it interacts with existing boundaries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the opening sentence, and the type list and pass-through/error notes follow compactly. There is minimal waste, though the list could have been tied explicitly to the boundary_condition argument.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 thin. It covers only the condition-type vocabulary and error behavior, leaving the required physics_name, the selection parameters, and the properties payload undocumented, which is insufficient for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0% across 7 parameters, so the description must compensate. It only effectively documents the boundary_condition parameter via the enumerated common types; physics_name, model_name, selection_name, boundary_dimension, boundary_selection, and the properties object are left entirely unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb and resource ('Configure one Pressure Acoustics boundary condition'), which is more precise than the generic sibling physics_configure_boundary. It does not explicitly distinguish itself from physics_setup_acoustic_boundaries or physics_configure_boundary, but the resource scoping is clear enough to route an agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named despite several close siblings (physics_configure_boundary, physics_setup_acoustic_boundaries, physics_get_acoustic_boundary_conditions). Usage is only implied by the resource name.

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

physics_configure_boundaryA

Configure a boundary condition for a physics interface.

Common boundary conditions for Heat Transfer:

  • "Temperature": Fixed temperature

  • "HeatFlux": Heat flux boundary

  • "ConvectiveHeatFlux": Convection cooling

  • "ThermalInsulation": Thermal insulation (adiabatic)

Common for Solid Mechanics:

  • "Fixed": Fixed constraint

  • "Roller": Roller constraint

  • "Symmetry": Symmetry plane

  • "BoundaryLoad": Applied force/pressure

Common for Electrostatics:

  • "Ground": Zero potential boundary

  • "ElectricPotential": Specified voltage

  • "SurfaceChargeDensity": Surface charge

  • "ZeroCharge": Zero normal displacement field

Args: physics_name: Name or label of the physics interface boundary_condition: Type of boundary condition (e.g. "Temperature", "HeatFlux") boundary_selection: Boundary/edge numbers to apply condition to properties: Dictionary of property names and values (e.g. {"T0": "293.15[K]"}) model_name: Model name (default: current model)

Returns: Created boundary condition info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
propertiesNo
physics_nameYes
boundary_conditionYes
boundary_selectionYes

TDQS

A3.5/5.0
Behavior2/5

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 mostly does not. It never says whether calling this overwrites an existing condition on the same selection, what permissions/state are required, whether the change is reversible, or what errors occur on an invalid boundary_condition string; the return value is only the vague 'Created boundary condition info'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose, then structured lists that earn their space by supplying the exact boundary_condition strings an agent must pass. The bullet catalogs are longer than strictly necessary but are high-utility reference content, not padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an unannotated, output-schema-less mutation tool, the description is adequate but incomplete: it covers arguments and the accepted condition names for three physics only, leaving flow/acoustics/PDE interfaces and the relationship between boundary_selection integers and geometry (see geometry_get_boundaries) unexplained, and gives no detail on the returned object.

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

Parameters5/5

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

With schema coverage at 0%, the description is the only parameter documentation and it does the job well: every arg is described, boundary_condition is effectively enumerated with valid strings per physics, properties includes a concrete unit-bearing example ({"T0": "293.15[K]"}), and boundary_selection is explained as boundary/edge numbers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Configure a boundary condition for a physics interface') and enumerates the concrete condition types it accepts for Heat Transfer, Solid Mechanics and Electrostatics. It does not, however, differentiate itself from siblings such as physics_configure_acoustic_boundary, physics_configure_pde_boundary, or physics_setup_heat_boundaries, so an agent must infer which one is the generic path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the reader deduces this is the generic boundary-condition setter and that the physics_name argument selects the interface. There is no explicit when-to-use/when-not guidance and no routing to specialized siblings like physics_setup_heat_boundaries or physics_configure_acoustic_boundary.

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

physics_configure_pde_boundaryA

Configure one Coefficient, General, or Weak Form PDE boundary condition.

Common types are DirichletBoundary, FluxBoundary, ZeroFluxBoundary, WeakContribution, and PeriodicCondition. Unknown types are passed through for version-specific PDE features. Use selection_name to bind the condition to a named geometric selection instead of entity numbers. Property-setting errors are returned instead of being ignored.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
propertiesNo
physics_nameYes
selection_nameNo
boundary_conditionYes
boundary_dimensionNo
boundary_selectionNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose real behavior: unknown condition types are passed through, and property-setting errors are surfaced rather than swallowed. It does not say whether this overwrites existing conditions, whether the physics interface must already exist, or what permissions/state are required 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then each following sentence adds a distinct fact (types, passthrough, selection binding, error behavior) with no filler. Slightly dense as a single paragraph where a short list of the parameter-bearing sentences would read better.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, zero-schema-coverage, zero-annotation mutation tool with no output schema, the description is helpful but incomplete. It omits the roles of most parameters and the preconditions/overwrite semantics 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.

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate, and it does add real meaning for two key parameters: boundary_condition (common types plus passthrough) and selection_name (binds to a named geometric selection instead of entity numbers). But it leaves physics_name, model_name, properties, boundary_dimension, and boundary_selection completely unexplained, so compensation is only partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Configure) and resource (a PDE boundary condition) with a scoping qualifier ('one') that separates it from batch siblings like physics_setup_pde_boundaries. It also names the PDE forms (Coefficient, General, Weak Form) and common condition types, letting an agent distinguish it from physics_configure_acoustic_boundary without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied rather than stated: 'one' boundary condition and the enumerated types suggest single-condition configuration, and it advises using selection_name over entity numbers. However, it never says when to prefer this over physics_setup_pde_boundaries, physics_configure_boundary, or physics_get_pde_boundary_conditions, nor any prerequisite (e.g. an existing PDE physics node).

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

physics_get_acoustic_boundary_conditionsA

Get common Pressure Acoustics boundary feature types and properties.

Returns: Acoustic boundary condition reference

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden, but for a zero-parameter static reference lookup the risk surface is small. It confirms the tool returns a reference of boundary condition types and properties, but does not say whether a model must be loaded, whether results are interface-dependent, or how the reference is structured.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines, front-loaded with the core action. The trailing 'Returns: Acoustic boundary condition reference' largely restates the first sentence and could be folded in, but the description is far from bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-param lookup tool with no output schema, the description is adequate but thin: it never clarifies what the 'reference' actually contains (type names? property schemas? enum values?) or whether it applies only to Pressure Acoustics interfaces. An agent can invoke it correctly, but the payoff of the call is only vaguely predicted.

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

Parameters4/5

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

The tool takes no parameters, so there is nothing for the description to disambiguate. The zero-parameter baseline of 4 applies; the description adds no parameter detail because none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get common Pressure Acoustics boundary feature types and properties,' which tells the agent this is a reference/lookup tool rather than a mutation tool. It distinguishes itself from siblings like physics_configure_acoustic_boundary or physics_setup_acoustic_boundaries by being the read-only reference lookup, though it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied but not stated: an agent can infer this is a reference lookup to consult before configuring acoustic boundaries in a Pressure Acoustics interface. There is no explicit when-to-use, when-not-to-use, or comparison against the parallel physics_get_pde_boundary_conditions sibling.

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

physics_get_availableA

Get a list of available physics interfaces organized by category.

Returns: Dictionary of physics categories and their interfaces

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It explains the return format (dictionary of categories and interfaces) but lacks information on side effects (none expected), performance, or required state (e.g., need a connection). The description implies a read operation but does not explicitly state it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loaded with the main action. No unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters and no output schema, but the description explains the return type (dictionary of categories and interfaces). However, it lacks context about how the returned data integrates with other tools (e.g., using the interface names in physics_add). Given the complexity, it is minimally viable but could be more helpful.

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

Parameters4/5

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

There are zero parameters, so the schema coverage is effectively 100%. The description adds no parameter information, which is acceptable given no parameters exist. According to the rule, 0 parameters yields a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves available physics interfaces organized by category. The verb 'Get' and resource 'available physics interfaces' are specific, and it distinguishes from sibling tools like physics_list (which likely lists interfaces in a model) and physics_add (which adds a physics interface).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention context, prerequisites, or exclusions. For example, it could suggest using physics_get_available before physics_add to see available options.

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

physics_get_guideB

Get a quick guide for a specific physics type.

Available physics types:

  • "electrostatics": Electric field and capacitance

  • "heat_transfer": Thermal analysis

  • "solid_mechanics": Stress and deformation

  • "fluid_flow": CFD analysis

  • "pressure_acoustics": Frequency-domain pressure acoustics

  • "coefficient_form_pde": Coefficient Form PDE

  • "general_form_pde": General Form PDE

  • "weak_form_pde": Weak Form PDE

Args: physics_type: Type of physics to get guide for

Returns: Quick reference guide for the physics type

ParametersJSON Schema
NameRequiredDescriptionDefault
physics_typeYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the return shape ('quick reference guide for the physics type'), which helps, but says nothing about whether this is read-only, whether it consumes a model/session, or any prerequisites. Adequate but incomplete for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line purpose followed by a scannable bulleted list of valid values. Mostly tight, though the 'Args:/Returns:' docstring boilerplate is redundant given the schema already names the parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter lookup tool with no output schema, the definition supplies the purpose, the valid inputs, and a rough sense of the return value. Only the absence of usage context against sibling reference tools keeps it out of the top band.

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

Parameters4/5

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

Schema coverage is 0% and the single physics_type property has no enum or description. The description compensates strongly by enumerating all eight valid string values with a short gloss for each, which an agent could not obtain from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (quick guide for a physics type), and the enumerated type list makes the scope concrete. It is reasonably distinguishable from sibling physics_get_available, though it never contrasts itself with docs_get or physics_get_available explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The agent cannot tell from the description whether to reach for this guide versus docs_get, physics_get_available, or modeling_best_practices. Usage is only implied by the type list.

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

physics_get_pde_boundary_conditionsB

Get common PDE boundary feature types and properties.

Returns: PDE boundary condition reference

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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 operation but does not state read-only behavior, side effects, authentication needs, rate limits, or error handling. The return note adds little 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short lines, front-loaded with the purpose and containing no filler. It is appropriately sized for a simple no-parameter retrieval tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter getter with no output schema or annotations, the description states the purpose and return type but omits what the returned reference contains and when to use it over related tools. It is minimally adequate but leaves gaps.

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

Parameters4/5

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

The tool has zero parameters, so the baseline score is 4. There are no parameters to document, and the description appropriately does not attempt to describe non-existent inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('PDE boundary feature types and properties'), making the tool's basic purpose clear. It distinguishes from sibling setup/configure tools by focusing on retrieval, but 'common' is vague and it does not name any sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 physics_get_available or physics_get_acoustic_boundary_conditions. No prerequisites, context, or exclusions are provided.

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

physics_interactive_setup_flowB

Interactive setup wizard for Laminar Flow boundary conditions.

This tool helps identify and configure flow boundary conditions:

  1. Lists all available boundaries

  2. Prompts user to select inlet, outlet, and wall boundaries

  3. Configures appropriate boundary conditions

Args: physics_name: Name of the Laminar Flow physics interface model_name: Model name (default: current model)

Returns: Boundary information and setup instructions

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_nameNoLaminar Flow

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description adds behavioral context by indicating it is interactive and prompts user for boundary selection and configuration. However, it omits details like whether it modifies the model, required permissions, or state changes after completion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise with clear bulleted steps and Args/Returns sections. However, it includes some redundancy (e.g., 'Interactive setup wizard') and could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters and no output schema, the description covers the main workflow and return value. But missing context such as whether it works on the current model, effect on existing boundaries, and guidance on when to use the interactive vs non-interactive sibling.

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

Parameters3/5

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

Schema coverage is 0%, but the description provides additional meaning: physics_name is 'Name of Laminar Flow physics interface' and model_name is 'Model name (default: current model)'. This partly compensates but lacks detail on valid values or format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is an interactive setup wizard for Laminar Flow boundary conditions. It lists specific steps and distinguishes from sibling tools like physics_setup_flow_boundaries (non-interactive) and physics_interactive_setup_heat (different physics).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide when-to-use vs alternatives, such as when to prefer physics_setup_flow_boundaries or physics_interactive_setup_heat. It implies interactive use but offers no explicit guidance on context or preconditions.

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

physics_interactive_setup_heatC

Interactive setup wizard for Heat Transfer boundary conditions.

This tool helps identify and configure thermal boundary conditions:

  1. Lists all available boundaries

  2. Shows typical boundary condition types for thermal analysis

  3. Provides setup instructions

Args: physics_name: Name of the Heat Transfer physics interface model_name: Model name (default: current model)

Returns: Boundary information and setup instructions

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_nameNoHeat Transfer in Solids

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavioral traits. It states the tool is 'interactive' and 'provides setup instructions,' suggesting it does not modify the model directly, but it does not confirm whether it has side effects, requires user interaction during execution, or any constraints. The lack of transparency about potential state changes or prerequisites is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively short and includes a clear intro, numbered steps, and an args section. However, the args section merely restates the schema, wasting space without adding value. It is not overly verbose, but could be more efficient by omitting redundant parameter listings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and only 2 parameters, the description should provide a complete picture of what the tool returns and how it behaves. It mentions returning 'Boundary information and setup instructions' but gives no specifics on the structure or content of the output. The steps are vague (e.g., 'Shows typical boundary condition types' – does it show a list or a form?). Missing details on interaction flow reduce completeness.

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

Parameters1/5

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

Schema coverage is 0%: the description lists the parameter names (physics_name, model_name) with their defaults, but does not explain their purpose, format, or constraints beyond what the schema already indicates. For example, what values are valid for 'physics_name'? This adds no semantic value, and for a low-coverage situation, the description should compensate but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as an 'Interactive setup wizard for Heat Transfer boundary conditions.' It specifies the domain (Heat Transfer) and the action (setup wizard), distinguishing it from general physics tools or other interactive setups like physics_interactive_setup_flow. However, it does not explicitly differentiate from the sibling tool physics_setup_heat_boundaries, which may overlap in functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists steps that the tool performs (list boundaries, show types, provide instructions) but does not include any guidance on when to use this tool versus alternatives, such as physics_setup_heat_boundaries. No 'when-to-use' or 'when-not-to-use' information is provided, leaving the agent without decision support.

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

physics_listA

List all physics interfaces defined in a model.

Args: model_name: Model name (default: current model)

Returns: List of physics interface names

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the tool lists interfaces, implying a read-only operation, but does not describe side effects, authorization needs, error handling for missing models, or other important behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using two sentences to state the purpose and one sentence per parameter and return. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description covers the core functionality. It explains the parameter and return value. Minor gaps like error handling or behavior with invalid model names are acceptable at this complexity level.

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

Parameters4/5

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

The input schema has 0% description coverage, leaving the description to explain the parameter. It clarifies that model_name defaults to the current model, which adds meaning beyond the schema. However, it could elaborate on format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all physics interfaces in a model, using a specific verb and resource. It distinguishes itself from siblings like physics_list_features (which lists features of a physics interface) and physics_add (which adds a new physics interface).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention contexts where listing interfaces is appropriate or mention any prerequisites (e.g., model must exist).

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

physics_list_featuresC

List all features (boundary conditions, domain settings) in a physics interface.

Args: physics_name: Name of the physics interface model_name: Model name (default: current model)

Returns: List of physics features

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_nameYes

TDQS

C2.8/5.0
Behavior2/5

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 behavioral traits such as what happens if the physics_name is invalid, whether the tool can be called multiple times safely, or any side effects. The description is minimal and does not add transparency beyond the basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose. The Args and Returns sections are somewhat redundant given the schema, but do not harm. However, there is no wasted text; each part serves to clarify the tool's interface.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description only says 'List of physics features' without detailing the structure or content of the list. For a domain-specific tool (COMSOL), this is insufficient. The tool has two parameters and likely returns structured data, but the description does not specify what a 'feature' is or the format of the list.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the schema provides no descriptions for parameters. While the Args section in the description mentions physics_name and model_name, it does not explain their purpose, expected format, or constraints. For example, it does not clarify that model_name defaults to the current model. The description adds negligible value over parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'List all features (boundary conditions, domain settings) in a physics interface.' It specifies the resource (features in a physics interface) and distinguishes from siblings like physics_list (which lists interfaces) and geometry_list_features (which lists geometry features).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, it does not mention prerequisites (e.g., need an existing physics interface) or contexts where this tool is preferred over others like physics_get_available. The description simply states what it does without usage context.

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

physics_removeB

Remove a physics interface from the model.

Args: physics_name: Name of the physics interface to remove model_name: Model name (default: current model)

Returns: Removal confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_nameYes

TDQS

B3.4/5.0
Behavior2/5

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

The description does not disclose the destructive nature of removal or any side effects. It merely states 'Removal confirmation' without explaining what that entails. No annotations are present to offset this gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear sentence and an Args block. It is front-loaded with the key action. Minor improvement would be to remove the 'Args' prefix and integrate into prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic purpose and parameters but lacks details on return value format, error handling, or prerequisites like the physics interface needing to exist. For a simple tool with no output schema or annotations, it is adequate but not thorough.

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

Parameters4/5

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

The Args section adds meaning beyond the input schema by explaining each parameter: 'physics_name' is described as the name of the physics interface, and 'model_name' includes its default value. Schema coverage is low (0%), so the description compensates effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and the resource ('a physics interface from the model'). It distinguishes from sibling tools like physics_add and model_remove, which operate on different resources or actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, error conditions, or scenarios where removal is inappropriate.

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

physics_set_materialB

Assign a material to physics domains.

This tool tries to add the material from COMSOL's built-in library if it's not already in the model.

Args: physics_name: Name of the physics interface material_name: Name of the material (e.g. "Silicon", "Steel AISI 4340", "Copper") domain_selection: Domain numbers (default: all domains for this physics) model_name: Model name (default: current model)

Returns: Assignment confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_nameYes
material_nameYes
domain_selectionNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose one useful non-obvious trait: the tool attempts to add the material from the built-in library if it is not already in the model. However, it does not say whether existing material assignments are overwritten, what happens if the material name is not found, what permissions/auth are needed, or any failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a one-line purpose followed by the library-fallback behavior, then structured Args/Returns. Docstring framing ('Args:', 'Returns:') is mildly verbose but every parameter line earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 covers the action, auto-fetch behavior, all four parameters, and a terse return note. It still omits failure modes, overwrite semantics, and any preconditions, so it is adequate but not complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate and largely does: it explains material_name with concrete examples ('Silicon', 'Steel AISI 4340', 'Copper'), and clarifies that domain_selection defaults to all domains for the physics and model_name defaults to the current model. The physics_name parameter is only restated, but overall this adds meaning well beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Assign a material to physics domains') plus a distinctive behavioral note that the material is pulled from COMSOL's built-in library when absent. It is clear what the tool does, though it does not name any sibling to differentiate from (no sibling handles materials, so little differentiation is needed).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives, no prerequisites (e.g. physics must already exist, model must be loaded/open), and no exclusions. Only implied usage is conveyed through the Args defaults. An agent gets no routing guidance.

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

physics_setup_acoustic_boundariesB

Configure multiple acoustic boundary conditions in one call.

Each item accepts:

  • type: COMSOL boundary feature type

  • boundaries: List of boundary numbers

  • selection_name: Optional named COMSOL selection instead of numbers

  • properties: Optional COMSOL property dictionary

  • dimension: Optional geometric entity dimension override

  • tag: Optional explicit feature tag

  • label: Optional display label

Example: [ {"type": "SoundHard", "boundaries": [1, 2]}, { "type": "Impedance", "boundaries": [3], "properties": {"Zn": "rho0*c0"} } ]

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_nameYes
boundary_dimensionNo
boundary_conditionsYes

TDQS

B3.3/5.0
Behavior2/5

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 says nothing about whether existing boundary conditions are overwritten or appended, what happens with an unknown 'type', or error behavior. For a mutating batch configuration tool 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one sentence, followed by a scannable field list and a concrete example. The example is somewhat long but justified for a free-form nested array schema; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and 0% schema coverage, the description adequately covers the nested item structure and gives a usable example. It omits top-level parameter meaning, whether the call replaces or adds conditions, and how physics_name is obtained, leaving real gaps for a mutating setup tool.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does so for the critical free-form 'boundary_conditions' items by documenting all seven accepted keys plus an example. Top-level parameters (model_name, physics_name, boundary_dimension, and the relationship between 'dimension' and 'boundary_dimension') remain unexplained, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Configure multiple acoustic boundary conditions') and the batch scope ('in one call') implicitly distinguishes it from the singular sibling physics_configure_acoustic_boundary. No sibling is named explicitly, so it is one notch below fully differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'in one call' implies the batch use case versus the single-condition sibling, but there is no explicit when-to-use guidance, no prerequisites (e.g. that physics_name must come from a prior physics_add_acoustics), and no when-not conditions. 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.

physics_setup_flow_boundariesA

Setup Laminar Flow boundary conditions with specified boundaries.

This tool configures inlet velocity and outlet pressure boundary conditions for a fluid flow simulation.

Args: physics_name: Name of the Laminar Flow physics interface inlet_boundaries: List of boundary numbers for inlets outlet_boundaries: List of boundary numbers for outlets inlet_velocity: Inlet velocity expression (default: "1[mm/s]") outlet_pressure: Outlet pressure expression (default: "0") model_name: Model name (default: current model)

Returns: Configuration confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_nameYes
inlet_velocityNo1[mm/s]
outlet_pressureNo0
inlet_boundariesYes
outlet_boundariesYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits beyond the action itself, such as whether it modifies existing settings, side effects, or validation behavior. For a configuration 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear purpose sentence, a brief explanation, and a structured parameter list. No redundant information; every sentence adds value. Front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers parameter semantics and indicates a return value ('Configuration confirmation'), but lacks details on error cases, return format, or interactions with other physics setup tools. Given no output schema, some completeness gaps remain.

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

Parameters4/5

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

The input schema has 0% description coverage, but the description provides a detailed 'Args' section explaining each parameter's purpose and defaults (e.g., inlet_velocity default '1[mm/s]'). This adds meaning beyond the schema titles, though it lacks constraints or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Setup Laminar Flow boundary conditions with specified boundaries.' It specifies the verb 'setup' and the resource 'Laminar Flow boundary conditions', and the context distinguishes it from sibling tools like physics_interactive_setup_flow and physics_setup_heat_boundaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. No mention of prerequisites (e.g., physics must be added first) or when not to use it. The description lacks any usage context or exclusions.

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

physics_setup_heat_boundariesA

Setup Heat Transfer boundary conditions with specified boundaries.

This tool configures thermal boundary conditions for heat transfer simulation:

  • Heat flux boundaries (heat sources)

  • Temperature boundaries (heat sinks)

  • Convective cooling/heating boundaries

Args: physics_name: Name of the Heat Transfer physics interface heat_flux_boundaries: List of boundary numbers for heat flux temperature_boundaries: List of boundary numbers for fixed temperature convection_boundaries: List of boundary numbers for convection heat_flux_value: Heat flux value (default: "1e6[W/m^2]") temperature_value: Temperature value (default: "293.15[K]" = 20°C) convection_coeff: Convection coefficient (default: "10[W/(m^2*K)]") ambient_temp: Ambient temperature for convection (default: "293.15[K]") model_name: Model name (default: current model)

Returns: Configuration confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
ambient_tempNo293.15[K]
physics_nameYes
heat_flux_valueNo1e6[W/m^2]
convection_coeffNo10[W/(m^2*K)]
temperature_valueNo293.15[K]
heat_flux_boundariesNo
convection_boundariesNo
temperature_boundariesNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It usefully discloses the mapping of boundary categories to physical roles and all default values, but omits mutation semantics: whether existing boundary conditions are overwritten, whether the heat-transfer physics interface must already exist, and whether the operation is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then a scannable bulleted taxonomy and a per-argument list. The trailing 'Returns: Configuration confirmation' adds little, but overall there is minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no annotations and no output schema, the description covers parameters well but leaves preconditions, overwrite behavior, and failure modes unaddressed. It is adequate but short of complete.

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

Parameters4/5

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

Schema description coverage is 0%, yet the description documents all nine parameters, including units and physical interpretation (heat flux = sources, temperature = sinks) and defaults. It stops short of explaining how boundary numbers are obtained, but it compensates well for the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Setup Heat Transfer boundary conditions') and enumerates the three condition families it configures (flux, temperature, convection). It is clearly distinguishable from the acoustic, flow, and PDE boundary siblings, which configure different physics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by naming the physics interface and boundary categories, but never says when to use this vs. siblings like physics_configure_boundary, physics_setup_pde_boundaries, or physics_boundary_selection, nor any precondition such as needing boundaries from geometry_get_boundaries first.

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

physics_setup_pde_boundariesC

Configure multiple PDE boundary conditions in one call.

Each item accepts:

  • type: COMSOL boundary feature type

  • boundaries: List of boundary numbers

  • selection_name: Optional named COMSOL selection instead of numbers

  • properties: Optional scalar, vector, or matrix property dictionary

  • dimension: Optional geometric entity dimension override

  • tag: Optional explicit feature tag

  • label: Optional display label

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
physics_nameYes
boundary_dimensionNo
boundary_conditionsYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, but it only enumerates item fields. For a multi-item mutation it never says whether existing conditions are replaced or appended, whether the operation is atomic or can partially fail, or what permissions/model state are required. The field glossary is useful but not behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line purpose followed by a scannable item glossary; nothing is bloated. The list slightly over-documents optional fields (tag, label) relative to how little the top-level parameters get, but overall it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a batch mutation tool with zero annotations, no output schema, and undocumented top-level parameters, the description omits prerequisites, mutation semantics, and error behavior. It is adequate only for someone who already understands the COMSOL PDE boundary model.

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

Parameters3/5

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

Schema description coverage is 0% and boundary_conditions is an open additionalProperties object, so the item-level glossary (type, boundaries, selection_name, properties, dimension, tag, label) genuinely compensates for a real schema gap. But three of the four top-level parameters (model_name, physics_name, boundary_dimension) receive no explanation at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Configure multiple PDE boundary conditions'), and the phrase 'in one call' signals the batch nature that distinguishes it from the singular sibling physics_configure_pde_boundary. However, it never names that sibling or explicitly contrasts batch vs. single, so the differentiation is only implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no statement of prerequisites (e.g., that a physics interface must already exist or how it relates to physics_get_pde_boundary_conditions), and no mention of when to prefer the singular configure tool. The agent must infer everything about invocation context.

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

results_evaluateC

Evaluate an expression on a solution dataset.

Args: expression: Expression(s) to evaluate, e.g., "es.normE" or ["x", "y", "es.normE"] unit: Desired unit for result, e.g., "V/m", "pF" dataset: Dataset name (default: uses default dataset) inner: For time-dependent solutions: index, 'first', 'last', or list of indices outer: For parametric sweeps: index or list of indices model_name: Model name (default: current model)

Returns: Evaluated values as lists, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNo
innerNo
outerNo
datasetNo
expressionYes
model_nameNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. However, it does not disclose behavioral traits like side effects, permissions, error handling, or whether it supports multiple evaluations. It only states 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description follows a clean Arg/Returns structure and is relatively concise. Every sentence serves a purpose. However, the Returns section could be more specific (e.g., format of lists).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description provides a baseline explanation of parameters and return values. It is not fully comprehensive; for instance, it does not clarify how errors are returned or the structure of the output lists.

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

Parameters3/5

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

With 0% schema description coverage, the description's Args section adds meaning by explaining each parameter (e.g., examples for expression, unit, dataset, etc.). However, some parameters like 'inner' and 'outer' lack detailed context beyond what is in the schema titles. The compensation is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool evaluates an expression on a solution dataset. The verb 'evaluate' and resource 'expression on solution dataset' are specific. It does not explicitly distinguish from siblings like results_global_evaluate, but the mention of 'solution dataset' hints at a difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 results_global_evaluate, results_inner_values, or results_outer_values. There are no exclusions or context cues for selection.

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

results_export_dataA

Export data from an export node.

Args: node_name: Export node name (default: run all exports) file_path: Output file path (overrides node setting) model_name: Model name (default: current model)

Returns: Export confirmation with file path

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNo
node_nameNo
model_nameNo

TDQS

A3.6/5.0
Behavior2/5

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

The description indicates it exports data and returns a confirmation with file path, but it lacks details on side effects such as file overwriting or required permissions. Since no annotations are provided, the description carries the full burden but 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, uses a clear Args/Returns structure, and each sentence adds value. However, the Returns section is somewhat redundant given the simple output, but it is acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core functionality and parameters, but it lacks information about prerequisites (e.g., an existing export node), potential errors, or the format of the confirmation. Given the moderate complexity and no output schema, it could be more complete.

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

Parameters4/5

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

The input schema has 0% description coverage, but the description adds meaning to all three parameters by explaining defaults (e.g., node_name defaults to 'run all exports', file_path overrides node setting). This significantly aids parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Export data from an export node', which is a specific verb-resource combination. It distinguishes from siblings like results_export_image and results_evaluate by focusing on export nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for exporting data from export nodes and mentions parameter defaults, but it does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria.

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

results_export_imageB

Export a plot as an image.

Args: node_name: Plot export node name file_path: Output image path (e.g., "results.png", "field.png") model_name: Model name (default: current model)

Returns: Export confirmation with file path

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNo
node_nameNo
model_nameNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description should detail behavioral traits. It only states it exports an image and returns confirmation, lacking info on file overwrite, error handling, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a front-loaded purpose statement. Every sentence adds value, though it could include more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't specify return value format, error conditions, or constraints like image format.

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

Parameters3/5

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

Schema coverage is 0%, so description carries the burden. It adds meaning by naming parameters and providing examples (e.g., file_path: 'results.png'), but lacks details like supported formats or node_name requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Export a plot as an image' with a specific verb and resource. It distinguishes from siblings like results_export_data (exports data) and results_plots_list (lists plots).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Does not mention prerequisites like needing a plot node, or suggest alternatives for data export.

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

results_exports_listA

List all export nodes defined in a model.

Args: model_name: Model name (default: current model)

Returns: List of export node names

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description only states that it lists export nodes and returns names. It does not disclose whether the operation is read-only, has side effects, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, consisting of two lines for the action and one for the parameter. It is front-loaded and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description is minimally adequate. It could be improved by mentioning that the model must be loaded or that exports are defined via other results tools.

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

Parameters4/5

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

The schema description coverage is 0%, but the description adds the parameter 'model_name' with explanation 'Model name (default: current model)', providing meaningful context that the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all export nodes defined in a model.' It uses a specific verb (list) and resource (export nodes), and the purpose is distinct from sibling tools like results_export_data or results_plots_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as results_plots_list or results_export_data. There is no mention of prerequisites, context, or when not to use it.

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

results_global_evaluateB

Evaluate a global expression (returns a single scalar value).

Common global expressions include:

  • Integration: "intop1(T)" where intop1 is an integration operator

  • Maximum: "maxop1(T)"

  • Derived values: "2*es.intWe/U^2" for capacitance

Args: expression: Global expression to evaluate unit: Desired unit for result dataset: Dataset name model_name: Model name (default: current model)

Returns: Single numerical value

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNo
datasetNo
expressionYes
model_nameNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states basic operation (evaluate and return scalar) without mentioning side effects, permissions, rate limits, or prerequisites like solving the model first.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: purpose, examples, args list, returns. It is concise with no redundant phrases, though the args list could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, examples, and parameter meanings. However, it lacks details on error scenarios, prerequisites (e.g., model solved), or whether the tool is read-only, which are important for complete understanding.

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

Parameters4/5

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

Schema coverage is 0%, so description must add meaning. It provides brief but informative descriptions for each parameter (unit, dataset, model_name with default) beyond the schema, though could offer more detail like unit formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool evaluates a global expression returning a scalar value, with examples. It specifies 'global' to distinguish from similar tools like results_evaluate, though not explicitly contrasting with siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for computing global expressions but does not provide explicit when-to-use or when-not-to-use guidance, nor mentions alternatives like results_evaluate for non-global evaluations.

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

results_inner_valuesA

Get inner solution indices and values (time steps in time-dependent study).

Args: dataset: Dataset name (default: default dataset) model_name: Model name (default: current model)

Returns: Arrays of indices and corresponding values (e.g., time values)

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetNo
model_nameNo

TDQS

A3.8/5.0
Behavior2/5

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 states the tool returns arrays but does not disclose any behavioral traits such as mutability, permissions, or side effects. For a read operation, this is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short paragraphs with front-loaded purpose, then Args and Returns. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description adequately explains the tool's purpose, parameters, and return type. It could benefit from a brief example or more detail on the return format, but is largely complete.

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

Parameters4/5

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

The description adds meaning to both parameters (dataset and model_name) by indicating their defaults and roles, which the input schema alone does not provide. Schema coverage is 0%, so the description fully compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Get' and the resource 'inner solution indices and values', with context 'time steps in time-dependent study'. This clearly distinguishes it from sibling tools like results_outer_values and results_global_evaluate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for time-dependent studies by mentioning 'time steps', but it provides no explicit when-to-use or when-not-to-use guidance, nor does it compare to alternatives.

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

results_outer_valuesC

Get outer solution indices and values (parameter values in parametric sweep).

Args: dataset: Dataset name (default: default dataset) model_name: Model name (default: current model)

Returns: Arrays of indices and corresponding parameter values

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetNo
model_nameNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It only states a read-like operation without mentioning side effects, authorization, or whether it modifies state. The tool could be read-only, but this is not confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. The docstring format is clean and includes parameters and returns without unnecessary detail. However, it could be more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides the essential purpose and parameter defaults, but lacks context on what 'outer' means in parametric sweeps, examples, or return format details. For a simple getter with no output schema, it is adequate but not comprehensive.

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

Parameters3/5

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

The input schema has 0% description coverage, but the description includes brief parameter explanations ('Dataset name (default: default dataset)' and 'Model name (default: current model)'). This adds some meaning, though it remains minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get outer solution indices and values (parameter values in parametric sweep).' This provides a specific verb and resource, and the mention of 'outer' distinguishes it from siblings like results_inner_values, though not explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions. Users 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.

results_plots_listA

List all plot nodes defined in a model.

Args: model_name: Model name (default: current model)

Returns: List of plot node names

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as side effects, error handling, or that it is a read-only operation. The description is too minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with no wasted words. The Args and Returns section is clearly formatted and provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with one optional parameter and no output schema, the description is adequate. It could be improved by noting what happens when model_name is invalid, but it covers the essentials.

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

Parameters4/5

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

The description adds value to the schema by explaining the default behavior ('default: current model') and the meaning of the optional model_name parameter, which is not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list), the resource (plot nodes), and the scope (in a model). It distinguishes well from sibling tools like results_exports_list and datasets_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need to retrieve plot nodes, but there is no explicit guidance on when to use this vs alternatives or any preconditions.

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

solutions_listB

List all solutions in a model.

Args: model_name: Model name (default: current model)

Returns: List of solution configurations

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided. Description only states basic operation and return type, omitting behavioral traits like read-only nature, required permissions, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short and front-loaded with the core action. The docstring format is efficient, though the 'Args/Returns' boilerplate could be omitted for even tighter prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers the simple tool (1 parameter, no output schema), but provides no details on the structure of returned solution configurations, limiting agent's ability to use the result.

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

Parameters4/5

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

Adds meaningful context for the only parameter: explains 'model_name' defaults to current model when null, which is not evident from schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'List' and resource 'solutions in a model'. Distinguishes from sibling list tools which target different entities like datasets, docs, geometry, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., other list tools) or any context about prerequisites or limitations.

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

study_cancelA

Cancel the current solving operation.

Note: The solver may take a moment to respond to cancellation.

Returns: Cancellation status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavior. It mentions a delay in cancellation response, but omits side effects like impact on results, state changes, or idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences and a return line. Front-loaded with purpose, no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple cancellation tool, but lacks detail on handling when no operation is running or whether it is idempotent. Output schema absent, but return is simple.

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

Parameters4/5

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

No parameters; schema coverage is 100%. Baseline 4 is appropriate as description adds no param info but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Cancel' and resource 'current solving operation' are specific and unambiguous. It clearly distinguishes from siblings like study_solve and study_wait.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance. It implies use during an active solving operation, but does not mention alternatives or prerequisites.

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

study_createB

Create a new study in the model.

Common study types:

  • "Stationary": Stationary study (most common for electrostatics, structural)

  • "TimeDependent": Time-dependent study

  • "Eigenfrequency": Eigenfrequency analysis

  • "Frequency": Frequency domain study

  • "Perturbation": Perturbation study

Args: study_type: Type of study to create study_name: Optional name/tag for the study model_name: Model name (default: current model)

Returns: Created study info

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
study_nameNo
study_typeNoStationary

TDQS

B3.3/5.0
Behavior2/5

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 creates a study and returns created study info, but does not mention side effects, required state, name collision behavior, or whether it modifies the current model. This is a significant gap for a mutation tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action, then provides a structured Args and Returns section. The study-type list is a bit lengthy but earns its place by clarifying the most important parameter. No redundant sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter creation tool with no annotations and no output schema, the description covers what the tool does and the parameter semantics, but omits behavioral context such as prerequisites (e.g., needing an active model or connection), what happens on name conflicts, and whether the study is immediately available. It is minimally adequate but leaves gaps an agent would need to infer.

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

Parameters5/5

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

Schema description coverage is 0%, so the description is the only source of parameter meaning. It documents all three parameters: study_type with common type values and their contexts, study_name as optional name/tag, and model_name defaulting to the current model. This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Create a new study in the model.' It distinguishes from siblings implicitly by naming the created entity, but does not explicitly contrast with study_list, study_solve, or others. The added study-type list reinforces the purpose but is not sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like study_list or study_solve, nor does it state prerequisites such as requiring an active model or connection. Usage is only implied by the verb 'Create'.

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

study_get_progressA

Get the progress of the current solving operation.

Returns: Progress information including status, percentage, and elapsed time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations exist, so the description carries full burden. It discloses that the tool returns progress info including status, percentage, and elapsed time, which is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with 3 sentences, each providing essential information without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no input parameters and a clear return value description, the description is complete for this simple tool.

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

Parameters4/5

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

No parameters are defined, so the description does not need to add param info. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns progress of the current solving operation, distinguishing it from sibling tools like study_solve, study_cancel, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage after solving is initiated but provides no explicit guidance on when to use it vs alternatives like study_status or study_wait.

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

study_listA

List all studies in a model.

Args: model_name: Model name (default: current model)

Returns: List of study names with their types

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo

TDQS

A4.1/5.0
Behavior4/5

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 default behavior (current model if model_name omitted) and the return format (list of names with types). This is adequate for a simple list operation, though it could mention error handling or model existence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the purpose, followed by parameter and return details. It is efficient, though it partly repeats the schema's default value. No wordiness, but could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description covers the key aspects: what it lists, how to specify the model, and what the response contains. It is complete for its complexity level.

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

Parameters4/5

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

The input schema has 0% description coverage for the parameter. The description adds value by stating 'Model name (default: current model)', which clarifies the parameter's meaning and default behavior beyond the schema's type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all studies in a model' using a specific verb (list) and resource (studies) in context. This distinguishes it from sibling tools like study_solve or study_cancel, which perform different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives like study_solve or study_get_progress. While it is clear what it does, it offers no context for selection or exclusion of sibling tools.

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

study_solveA

Solve a study (synchronous by default).

Args: study_name: Study to solve (None for all studies) model_name: Model name (default: current model) wait: If True, wait for completion; if False, return immediately timeout: Maximum wait time in seconds (only used if wait=True)

Returns: Solution status, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNo
timeoutNo
model_nameNo
study_nameNo

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the behavior is partially disclosed: it solves a study, can wait or return immediately, and returns a solution status or error. However, it does not detail side effects, resource locking, or whether the study is modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description uses a compact docstring format with Args and Returns sections. Every sentence is necessary and no word is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with four optional parameters and no output schema. The description covers inputs and return value adequately, but does not specify the format of the solution status or potential error conditions.

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

Parameters5/5

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

Since schema description coverage is 0%, the description fully explains each parameter: study_name (None for all studies), model_name (default current), wait (blocking toggle), timeout (only when wait=True). This adds essential meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool solves a study synchronously by default. 'Solve a study' is a specific verb-resource pair, and 'synchronous by default' distinguishes it from the sibling study_solve_async.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the wait parameter, indicating that by default the tool waits for completion but can return immediately. This gives context for synchronous vs asynchronous usage, but does not explicitly name alternatives like study_solve_async or study_wait.

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

study_solve_asyncA

Start solving a study in the background (asynchronous).

Use study_get_progress to monitor progress and study_cancel to stop.

Args: study_name: Study to solve (None for all studies) model_name: Model name (default: current model)

Returns: Confirmation that solving started, or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNo
study_nameNo

TDQS

A4.5/5.0
Behavior4/5

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 explains the async nature and that it returns a confirmation or error, but does not detail potential side effects, permissions, or state changes. Still, it covers the key behavioral traits adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three sentences plus an Args section. It front-loads the core purpose and immediately provides usage guidance. No unnecessary words, well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (2 optional parameters, no output schema), the description is complete. It explains the async workflow and references sibling tools (study_get_progress, study_cancel) to complete the lifecycle. No gaps remain.

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

Parameters4/5

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

Schema description coverage is 0%, but the description includes an Args section that explains both parameters: study_name (study to solve, None for all) and model_name (default current model). This adds meaningful context, though model_name could elaborate on valid values or format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Start solving' and the resource 'study', and specifies the asynchronous mode. It distinguishes from sibling 'study_solve' by explicitly mentioning 'asynchronous', and references related tools for monitoring and cancellation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides immediate next steps: use study_get_progress for monitoring and study_cancel to stop. However, it does not explicitly state when to use this async version versus the synchronous study_solve, which would be helpful for decision-making.

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

study_waitA

Wait for the current solving operation to complete.

Args: timeout: Maximum time to wait in seconds (None for indefinite)

Returns: Final progress status

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNo

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses blocking behavior and optional timeout, but lacks details on side effects, timeout expiry behavior, or safety when no operation is in progress.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence plus args/returns, front-loaded and concise. However, a more structured format (e.g., bullet points) could improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers purpose and parameter. Missing info on return format, error behavior, and blocking duration limits, but is mostly adequate.

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

Parameters4/5

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

Schema coverage is 0%, but the description explains the only parameter timeout: 'Maximum time to wait in seconds (None for indefinite).' This adds meaningful context beyond the schema's type/null/default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Wait for the current solving operation to complete.' It uses a specific verb (wait) and resource (current solving operation), and distinguishes from related tools like study_solve_async and study_get_progress.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after starting an async solve, but does not explicitly state when to use versus alternatives like study_get_progress or how to handle multiple calls. No when-not guidance is provided.

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

troubleshootB

Get troubleshooting suggestions for common issues.

Common error types:

  • "geometry_build_failed": Geometry sequence failed to build

  • "mesh_failed": Mesh generation failed

  • "solver_no_convergence": Solver did not converge

  • "memory_error": Out of memory

  • "license_error": COMSOL license issues

Args: error_type: Type of error encountered context: Additional context about the error

Returns: Troubleshooting suggestions

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNo
error_typeYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. The description lacks details about side effects, prerequisites, or limitations. It only mentions returning suggestions, but no behavioral context beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a list of error types and Args/Returns sections. The first sentence conveys the core purpose. Slightly redundant with schema but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description only says 'Returns: Troubleshooting suggestions' without specifying format, examples, or how suggestions are provided. Incomplete for a diagnostic tool.

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

Parameters3/5

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

The schema has 0% description coverage, but the description lists common values for error_type, adding some meaning. However, context remains vague ('Additional context') and no format constraints are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides troubleshooting suggestions for common issues, with a list of error types. It is unique among sibling tools, which focus on other COMSOL operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool over alternatives, or when not to use it. Usage is implied only when encountering errors.

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.

  1. 93 tool updatesv0.1.0
    • First observedcomsol_connect
    • First observedcomsol_disconnect
    • First observedcomsol_start
    • First observedcomsol_status
    • First observeddatasets_list
    • First observeddocs_get
    • First observeddocs_list
    • First observedgeometry_add_block
    • First observedgeometry_add_circle
    • First observedgeometry_add_cylinder
    • First observedgeometry_add_feature
    • First observedgeometry_add_rectangle
    • First observedgeometry_add_sphere
    • First observedgeometry_boolean_difference
    • First observedgeometry_boolean_union
    • First observedgeometry_build
    • First observedgeometry_create
    • First observedgeometry_create_box_selection
    • First observedgeometry_create_side_selections
    • First observedgeometry_get_boundaries
    • First observedgeometry_import
    • First observedgeometry_list
    • First observedgeometry_list_features
    • First observedmesh_create
    • First observedmesh_create_sequence
    • First observedmesh_info
    • First observedmesh_list
    • First observedmodel_clone
    • First observedmodel_create
    • First observedmodel_create_component
    • First observedmodel_inspect
    • First observedmodel_list
    • First observedmodel_list_components
    • First observedmodel_load
    • First observedmodel_remove
    • First observedmodel_save
    • First observedmodel_save_version
    • First observedmodel_set_current
    • First observedmodeling_best_practices
    • First observedmultiphysics_add
    • First observedparam_description
    • First observedparam_get
    • First observedparam_list
    • First observedparam_set
    • First observedparam_sweep_setup
    • First observedpdf_list_modules
    • First observedpdf_search
    • First observedpdf_search_status
    • First observedphysics_add
    • First observedphysics_add_acoustics
    • First observedphysics_add_coefficient_form_pde
    • First observedphysics_add_electrostatics
    • First observedphysics_add_general_form_pde
    • First observedphysics_add_heat_transfer
    • First observedphysics_add_laminar_flow
    • First observedphysics_add_pressure_acoustics
    • First observedphysics_add_solid_mechanics
    • First observedphysics_add_weak_form_pde
    • First observedphysics_boundary_selection
    • First observedphysics_configure_acoustic_boundary
    • First observedphysics_configure_boundary
    • First observedphysics_configure_pde_boundary
    • First observedphysics_get_acoustic_boundary_conditions
    • First observedphysics_get_available
    • First observedphysics_get_guide
    • First observedphysics_get_pde_boundary_conditions
    • First observedphysics_interactive_setup_flow
    • First observedphysics_interactive_setup_heat
    • First observedphysics_list
    • First observedphysics_list_features
    • First observedphysics_remove
    • First observedphysics_set_material
    • First observedphysics_setup_acoustic_boundaries
    • First observedphysics_setup_flow_boundaries
    • First observedphysics_setup_heat_boundaries
    • First observedphysics_setup_pde_boundaries
    • First observedresults_evaluate
    • First observedresults_export_data
    • First observedresults_export_image
    • First observedresults_exports_list
    • First observedresults_global_evaluate
    • First observedresults_inner_values
    • First observedresults_outer_values
    • First observedresults_plots_list
    • First observedsolutions_list
    • First observedstudy_cancel
    • First observedstudy_create
    • First observedstudy_get_progress
    • First observedstudy_list
    • First observedstudy_solve
    • First observedstudy_solve_async
    • First observedstudy_wait
    • First observedtroubleshoot

TDQS

B3.1/5.0

Scored across 93 tools

Disambiguation3/5

The server has clear high-level groups, but many tools overlap heavily: generic physics_add coexists with specific adders for laminar flow, heat transfer, acoustics, etc., and generic boundary tools coexist with multiple specialized boundary setup tools. Descriptions help distinguish some cases, but an agent can still easily misselect between generic and specialized tools for the same task.

Naming Consistency4/5

Most tools follow a predictable domain_action or domain_object_action pattern, such as model_save, geometry_add_block, physics_configure_boundary, and study_solve_async. A few names like troubleshoot and modeling_best_practices break the convention, but the overall pattern is readable and mostly consistent.

Tool Count1/5

With 93 tools, this is far beyond a well-scoped MCP surface and includes many redundant generic/specialized wrappers. The count is extreme even for a complex domain, making the toolset unwieldy for an agent to navigate.

Completeness4/5

Coverage is broad: session management, model lifecycle, parameters, geometry, physics, multiphysics, mesh, studies, solutions, datasets, results, exports, docs, and troubleshooting are all represented. Minor gaps remain, such as richer mesh feature customization and results plot creation/management, but core workflows are covered.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers