Kratos MCP Server
An MCP server that lets AI assistants drive Kratos Multiphysics finite-element simulations end to end.
Introspect the installation: check/install Kratos (pip or
KRATOS_ROOT), list applications, elements, conditions, constitutive laws, variables, solvers, processes and their parsed default settings.Scaffold cases from templates: structural, thermal, fluid, potential flow, multi-stage orchestrated, CoSimulation and partitioned FSI — generating ProjectParameters.json, Materials.json and demo meshes.
Build and edit meshes: create structured/demo meshes, add/move/delete nodes, elements, conditions and geometries, sub-model parts, transforms, extrusion, simplex conversion, quality checks, meshio/Gmsh import-export.
Remesh adaptively with MMG around regions, level sets, analytic or solved VTK fields, preserving named boundaries.
Author materials and solvers from curated presets or explicit laws/variables, and edit ProjectParameters generically (processes, boundaries, loads, outputs).
Validate ProjectParameters, MDPA meshes and whole case directories (syntax, references, deep solver-default checks).
Run simulations as managed background jobs with status, live logs, progress, cancel, isolated snapshots, reruns, checkpoints/resume, and local MPI launch with per-rank logs.
Study sweeps and convergence: parameter/mesh studies with bounded queues, probe responses and mesh differences.
Drive interactively: live sessions holding a Kratos
Model+AnalysisStage, stepping, inspecting fields/nodes, pinning DOFs (optional raw Python behindKRATOS_MCP_ALLOW_EXEC=1).Post-process results: list artifacts, VTK summaries, point probes, convergence analysis, time histories, CSV export, reference comparisons.
Preview results without ParaView: PNG screenshots and GIF animations via pyvista (
vizextra).Interoperate: explain existing ProjectParameters.json and round-trip cases to/from the Kratos FlowGraph visual editor.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kratos MCP ServerScaffold and run a static structural simulation of a cantilever plate"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Kratos MCP Server
An MCP server that lets AI assistants drive Kratos Multiphysics finite element simulations end to end:
Introspect the installation: applications, elements, conditions, constitutive laws, variables, solvers and processes and their default parameters (process defaults are parsed from the Kratos source, no build needed).
Scaffold simulation cases from templates: structural (static/dynamic/modal), thermal (transient/stationary), fluid (monolithic or fractional-step incompressible) and potential flow — plus multi-stage orchestrated cases that chain analyses, CoSimulation cases where several solvers exchange interface data inside each step (weak/strong Gauss–Seidel or Jacobi coupling) and partitioned FSI cases (fluid + structure + ALE mesh motion across a mapped interface, Dirichlet–Neumann iteration). Curated material and linear-solver presets included. ProjectParameters.json, Materials.json and structured MDPA meshes with named boundary regions.
Build and edit meshes and cases: add, move and delete nodes, elements, conditions and geometries; create sub model parts from geometric selectors; transform, merge, extrude, convert quads/hexes to simplices, extract boundary conditions on free faces and check mesh quality; parametric shapes (annulus, disc, cylinder, sphere, polygon with holes and graded sizes), meshio import/export (linear, quadratic, cubic triangle/quad and pyramid cells) and, with the optional
gmshextra, arbitrary geometry. Edit ProjectParameters and Materials generically: get/set any setting, add/update/remove any process, stage-aware (mesh, geometry, project).Remesh adaptively with MMG (MeshingApplication):
mesh_remeshrefines or coarsens an.mdpaaround a region, a level set, an analytic field or a solved VTK result field (hessian metric, transferred field written asNodalData), keeps the named boundaries and reports the field transfer error;add_remeshing_processadds a setup-timemmg_processto a case (tools, tutorial).Study parameter sweeps and structured mesh convergence with isolated variants, a bounded background queue, and physical-location probe responses (tools, tutorial).
Run simulations (single- or multi-stage) as managed background jobs (status, live logs, progress, cancel) that survive server restarts, with optional immutable input snapshots, reproducible reruns, checkpoint resume for isolated serial single-stage jobs, and local MPI launch (
mpi_ranks,omp_threads) with per-rank logs and whole-group cancellation.Drive interactively: open a live session (a Kratos
Model+AnalysisStagekept in memory), advance it a few steps at a time, inspect fields, nodes and elements between steps, pin or change nodal values, and continue — the direct, stateful route into Kratos' Python layer next to the batch-job route. Optional raw Python access behindKRATOS_MCP_ALLOW_EXEC=1(tools, tutorial).Post-process VTK results: summaries, point probes, convergence analysis, physical-time histories, CSV export, and reference comparisons.
Preview results without ParaView: PNG screenshots and GIF animations (deformed shapes, field contours) rendered with pyvista and shown inline in the conversation — optional
vizextra.Interoperate: explain an existing ProjectParameters.json, and convert cases to/from the Kratos FlowGraph visual node editor (lossless round-trip).
110 tools, 21 resources (15 worked examples) and 8 guided prompts. See the full documentation in
docs/ (VitePress).
Quick start
A local Kratos build is not required — the server can pip-install Kratos itself on first use.
Once published to PyPI, no clone needed — uvx fetches and runs it:
claude mcp add kratos -- uvx kratos-mcp-serverFrom a local checkout (current state, before the first PyPI release):
git clone https://github.com/loumalouomega/Kratos-MCP-Server
cd Kratos-MCP-Server
uv sync
claude mcp add kratos -- uv --directory "$PWD" run kratos-mcpThen ask your assistant something like:
Check the Kratos installation — install it if it's missing — then set up a cantilever plate 1 m × 0.2 m fixed on the left with a 1 MN/m downward load on the right edge, run it, and report the tip deflection.
The assistant calls kratos_install the first time and reuses it afterwards.
If you already have a compiled Kratos checkout, skip that and point
KRATOS_ROOT at it instead (-e KRATOS_ROOT=/path/to/Kratos on the claude mcp add line) — see Installation.
Related MCP server: abaqus-mcp
Notebooks
Seven notebooks drive the server interactively as an MCP client — no AI
assistant involved — each touching most of the relevant tools, resources
and prompts in one sitting. Run any with uv sync --extra viz --group dev (adds ipykernel + pyvista) and open it in Jupyter/VS Code against
that .venv.
notebooks/cantilever.ipynb: the structural cantilever case — installation introspection, mesh generation, scaffolding, a background job you poll while it runs, VTK post-processing, a rendered PNG and an animated GIF, and cancelling a job in flight.notebooks/naca_airfoil.ipynb: a NACA0012 airfoil in incompressible laminar flow — reuses a real ~21k-node airfoil mesh from Kratos's own examples repo (simplified physics; see the notebook/tutorial for what and why), computes lift/drag by summingREACTIONover the airfoil surface, and renders/animates the pressure field cropped to the airfoil with the newercrop_boundsoption.notebooks/fluid_cavity.ipynb: the lid-driven cavity CFD benchmark — introspect the fluid solver, run the shipped example, probe the velocity field, and render an inline PNG and GIF of the recirculating vortex.notebooks/materials.ipynb: the materials surface — material & linear-solver presets, process-defaults introspection, and a single-element von Mises plasticity run showing the elastic→plastic transition.notebooks/multistage.ipynb: multi-stage orchestration —create_multistage_projectchaining two load steps,explain_project_parameters, and a lossless round-trip to/from a Kratos FlowGraph node graph.notebooks/interactive_session.ipynb: interactive sessions — step a load-ramped cantilever two steps at a time, inspect fields and nodes between steps, pin a DOF mid-run, peek into the live Kratos objects, and verify the stepped result equals a batch run.notebooks/interactive_fluid.ipynb: stepping the lid-driven cavity in chunks and watching the flow approach steady state through live field summaries.docs/tutorials/potential-flow.md: a runnable NACA0012 perturbation potential-flow benchmark with upstream reference values.
Requirements
Python ≥ 3.10, uv
Kratos Multiphysics, either pip-installed via
kratos_install(Linux/Windows x86_64 only — no macOS wheels) or a compiled build (tested with 10.4, StructuralMechanics / ConvectionDiffusion / FluidDynamics / LinearSolvers applications)Optional, for
results_render/results_animate: thevizextra (uv sync --extra vizorpip install 'kratos-mcp-server[viz]') and a working OpenGL context (on headless machines: Xvfb or OSMesa VTK wheels — see docs/tools/visualization.md)
Architecture in one paragraph
Kratos is never imported in the server process — it prints a banner on import
(which would corrupt the stdio JSON-RPC stream) and can abort the process on
solver errors. Short operations run in a worker subprocess that returns
JSON through a result file; simulations run detached with per-job
directories under ~/.kratos-mcp/jobs/; interactive sessions keep a live
AnalysisStage in a long-lived worker driven over JSON lines. See
docs/guide/architecture.md.
Development
See the roadmap for planned work and the changelog for release history.
uv run pytest -m "not kratos" # unit tests (no Kratos needed)
uv run pytest -m kratos # integration tests against the real build
npm install && npm run docs:dev # documentation siteLicense
Available Tools
110 toolsadd_boundary_conditionA
Insert a boundary condition / load process block into an existing ProjectParameters.json. kind is one of: fix_displacement, prescribed_displacement, fix_velocity, inlet_velocity, outlet_pressure, fix_temperature, point_load, line_load, surface_load, pressure_load, surface_heat_flux, volume_heat_source, self_weight, or the generic fix_scalar / assign_scalar / fix_vector / assign_vector (which need 'variable', e.g. DISTANCE). fix_* constrain the DOFs, assign_* only set the values. Loads with modulus+direction (point/line/surface_load, self_weight) apply along a direction vector; the others take 'value' (vector or scalar). 'variable' overrides the kind's default variable. For multi-stage (orchestrator) files pass 'stage'. Use project_add_process for any other Kratos process.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| stage | No | ||
| value | No | ||
| modulus | No | ||
| interval | No | ||
| variable | No | ||
| direction | No | ||
| model_part | Yes | ||
| process_list | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it delivers real behavioral context: fix_* constrains DOFs while assign_* only sets values, loads with modulus+direction apply along a vector, and 'variable' overrides the kind default. It does not say whether existing blocks are overwritten, whether the file is written in place, or what validation is required, leaving some mutation-behavior ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is dense and front-loads the core action and the enumeration of kinds before the routing note. Every sentence carries semantic weight, though the kind list is long and slightly linear rather than grouped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need not be described, and the mutation semantics, kind taxonomy, and sibling routing are covered. The gaps on interval/process_list and overwrite/validation behavior keep it short of fully complete for a 10-param mutation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it explains kind, stage, value, modulus, direction, and variable in meaningful terms. However, interval, process_list, model_part, and parameters_file receive no explanation anywhere, so a quarter of the parameters remain opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (insert) and resource (boundary condition / load process block into an existing ProjectParameters.json), and names the sibling it does not cover. An agent can distinguish it from project_add_process without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Use project_add_process for any other Kratos process.' It also gives selection criteria between kinds (fix_* vs assign_*, loads with modulus+direction vs value-based, when to pass 'stage'). Both the when and the when-not are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_output_processA
Add an output process to a ProjectParameters.json. format: 'vtk' (ParaView files, needs output_path), 'json' (time series of variables to a JSON file, needs output_file), or 'point' (probe variables at a coordinate, needs position and output_file). variables defaults to the ones already used elsewhere in the file or ["DISPLACEMENT"].
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | vtk | |
| position | No | ||
| variables | No | ||
| model_part | No | ||
| output_file | No | ||
| output_path | No | vtk_output | |
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses important behaviors, such as which parameters are required per format (e.g., 'vtk' needs output_path, 'point' needs position and output_file) and the default for variables. However, it does not describe return values, side effects on the file, or error conditions, so transparency is only partially addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. It efficiently packs format-specific requirements and defaults into a single, readable passage. The only minor issue is the slightly run-on phrasing, but it remains clear and unscattered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and an output schema, the description is reasonably complete: it covers the core formats and required inputs, and notes the default for variables. Yet it leaves 'model_part' unexplained and does not address how the output schema might influence expected return values, so the overall context falls short of fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the meaning of several parameters (format, output_path, output_file, position, variables) and ties them to specific formats. However, it omits any explanation for 'model_part' and does not explicitly state that 'parameters_file' is the target file path, leaving some parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Add an output process to a ProjectParameters.json.' It uses a specific verb ('add') and resource ('output process'), and enumerates supported formats with their distinct characteristics. This effectively distinguishes it from sibling tools like 'add_boundary_condition' by focusing on output configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use the tool (to add an output process to a ProjectParameters.json) and explains format-specific requirements. However, it does not mention any alternatives or explicitly state when not to use this tool, leaving the user to infer distinctions from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_remeshing_processA
Add an MMG remeshing process (MeshingApplication's mmg_process) to a ProjectParameters.json so the mesh is adapted while the case runs. strategy 'hessian' adapts to the second derivatives of the nodal scalar solution variable 'variable' (e.g. TEMPERATURE); 'levelset' refines around the zero of the signed-distance variable 'variable' (its GRADIENT variable must exist in the model part, e.g. via the solver's auxiliary_variables_list). Without min_size/max_size the sizes are derived from the current mesh. The mesh is remeshed ONCE at setup, before the solver initializes (initial_remeshing); the field driving the metric must already be on the nodes then (an mdpa NodalData block): processes that assign values run later. Remeshing inside the solution loop crashes standard Kratos solvers and is not offered. Remeshing renumbers nodes and elements, so such cases are refused by studies, checkpoints/resume, MPI launch and interactive sessions. Use mesh_remesh to refine an .mdpa offline instead - same result, inspectable mesh.
| Name | Required | Description | Default |
|---|---|---|---|
| max_size | No | ||
| min_size | No | ||
| strategy | No | hessian | |
| variable | No | ||
| model_part | No | ||
| parameters_file | Yes | ||
| freeze_sub_model_parts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does so richly: remeshing happens ONCE at setup before the solver initializes, the driving field must already be on nodes via mdpa NodalData, node/element renumbering consequences, and incompatibility with checkpoints and MPI. This is behavioral context far beyond a bare signature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what the tool does before the strategy details and constraints, and every sentence carries information. It is dense with multi-clause sentences and runs fairly long, so it could be tightened, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, high-stakes mutation of a config file, the description covers timing, prerequisites, failure modes, exclusions, and the offline alternative. An output schema exists, so return values need no explanation; nothing essential for calling this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well for the important parameters: it explains both strategy values (hessian=second derivatives, levelset=zero of signed-distance variable), the meaning of 'variable' and the required GRADIENT counterpart, and that min_size/max_size default to values derived from the current mesh. It does not explain model_part, freeze_sub_model_parts, or parameters_file, leaving those gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add an MMG remeshing process (MeshingApplication's mmg_process) to a ProjectParameters.json') plus the effect (mesh adapted while the case runs). It explicitly distinguishes itself from the sibling mesh_remesh, which is the alternative for offline refinement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (adapt mesh during run, hessian vs levelset strategies) and when-not (remeshing inside the solution loop crashes solvers and 'is not offered'; cases with renumbering are refused by studies, checkpoints/resume, MPI launch, interactive sessions). It names the alternative mesh_remesh with the tradeoff.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_checkpointsB
Configure serial single-stage checkpoint output before starting an isolated job.
| Name | Required | Description | Default |
|---|---|---|---|
| case_dir | Yes | ||
| frequency | Yes | ||
| control_type | No | time | |
| parameters_file | No | ProjectParameters.json | |
| max_files_to_keep | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Configure' and 'before starting an isolated job,' giving no information about side effects, persistence, overwrite behavior, ordering constraints, or what 'serial single-stage' actually entails. This is inadequate for a tool that modifies checkpoint configuration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single economical sentence with the action front-loaded and no filler words. Some terminology like 'serial single-stage' is ambiguous, but the structure itself is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five undocumented parameters, no annotations, and many siblings, the description is far too thin. The only useful contextual cue is the 'before starting an isolated job' timing, and the output schema does not compensate for missing parameter semantics and workflow prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are five parameters and schema description coverage is 0%, so the description must compensate for missing parameter documentation. It does not mention case_dir, frequency, control_type, parameters_file, or max_files_to_keep at all, leaving an agent unable to infer required formats, units, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and object ('Configure serial single-stage checkpoint output') and a clear temporal context ('before starting an isolated job'). It is distinct enough from sibling tools like job_checkpoints to make the primary purpose understandable, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage condition: this tool should be used before starting an isolated job. It does not mention exclusions or compare against alternatives like job_checkpoints, but the timing guidance is explicit and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cosim_projectA
Scaffold a CoSimulation (coupled-solver) case: several solvers exchanging interface data inside every time step, run with run_simulation like any case (the runner drives it through CoSimulationAnalysis). Needs KratosCoSimulationApplication.
'solvers' is a list of {"name", "type", "data", "parameters"?, "input_file"?}. 'type' is a CoSimulation wrapper module ('solver_wrappers.kratos.structural_mechanics_wrapper', ...) or the shorthands 'sdof' / 'sdof_static' (Python-only single-degree-of-freedom solvers: no mesh, ideal for learning/testing couplings). 'data' maps an interface-data name to {"model_part_name", "variable_name", "location"?} ('sdof' data gets "location": "model_part" automatically). Give 'parameters' to have the solver's own parameter file written to .json, or 'input_file' to reference one already in the directory.
'couplings' is a list of {"from_solver", "from_data", "to_solver", "to_data", "operator"='copy', "options"=[]} (options e.g. 'swap_sign'). 'order' is the coupling sequence (default: solver order); a coupling whose producer comes first is exchanged right after the producer solves, otherwise right before the consumer solves (previous iteration's value). 'coupled_solver' is 'gauss_seidel_weak' (one pass per step) or a strong variant ('gauss_seidel_strong', 'jacobi_strong') that iterates until every entry of 'convergence_criteria' (e.g. {"type": "relative_norm_initial_residual", "solver": s, "data_name": d, "abs_tolerance": 1e-10, "rel_tolerance": 1e-8}) holds, optionally accelerated by 'convergence_accelerators' (e.g. {"type": "aitken", "solver": s, "data_name": d}). The result is statically validated.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | ||
| solvers | Yes | ||
| end_time | No | ||
| couplings | Yes | ||
| directory | Yes | ||
| start_time | No | ||
| coupled_solver | No | gauss_seidel_weak | |
| convergence_criteria | No | ||
| data_transfer_operators | No | ||
| num_coupling_iterations | No | ||
| convergence_accelerators | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full behavioral burden. It does disclose real traits: static validation of the result, that 'parameters' causes a <name>.json file to be written, that 'sdof' data gets "location": "model_part" injected automatically, and default fallbacks for order/coupled_solver. It omits destructive/overwrite behavior on 'directory', prerequisites beyond the application, and failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose sentence, then dense per-key explanations. It is long, but for an 11-parameter nested-argument tool nearly every clause earns its place; the only mild drag is the unbroken paragraph layout.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers the hard nested structures and their interaction rules (ordering semantics, weak vs strong coupled_solver). Gaps remain on the scalar timing params and 'data_transfer_operators', which are the main incompleteness for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it substantially does: it documents the shapes of 'solvers', 'couplings', 'order', 'coupled_solver', 'convergence_criteria' and 'convergence_accelerators' with concrete examples. It leaves 'directory', 'start_time', 'end_time', 'num_coupling_iterations' and 'data_transfer_operators' undocumented, so it is strong but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: scaffolding a CoSimulation (coupled-solver) case where several solvers exchange interface data per time step. It even clarifies it runs via run_simulation like any case. However it never names or contrasts with the obvious siblings (create_fsi_project, create_multistage_project), so the agent must infer which case-builder to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives context (run with run_simulation, needs KratosCoSimulationApplication) but no explicit when-to-use vs when-not-to-use, and no routing away from sibling project creators. Usage is implied through the coupling/solver structure rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_fsi_projectA
Scaffold a partitioned fluid-structure interaction (FSI) case with Kratos' FSIApplication: a 2D channel [0,length]x[0,fluid_height] whose floor is an elastic block [0,length]x[-wall_thickness,0]. The fluid (monolithic Navier-Stokes, inlet velocity ramped over 'ramp_time', outlet pressure 0) loads the wall through the shared 'Interface'; the deformed wall moves the fluid mesh (ALE, mesh_solver_structural_similarity). Fluid and wall meshes are generated with DIFFERENT interface discretizations ('fluid_divisions' [nx, ny] triangles, 'wall_divisions' [nx, ny] quads), so the interface mapper does real work. Dirichlet- Neumann coupling is iterated each step until 'coupling_tolerance' using the convergence 'accelerator' (MVQN_recursive, MVQN, Relaxation = Aitken, constant_relaxation, ...). Writes ProjectParameters.json, fluid.mdpa, structure.mdpa, MaterialsFluid.json, MaterialsStructure.json and runs with run_simulation like any case. Needs FSIApplication, FluidDynamicsApplication, StructuralMechanicsApplication, MeshMovingApplication and MappingApplication. The defaults are a verified Stokes-like regime; the wall must be stiff enough relative to the fluid's added damping (roughly wall_thicknessviscositylength^2/(Efluid_height^3time_step) << 1) or the Dirichlet-Neumann iteration diverges. The result is statically validated.
| Name | Required | Description | Default |
|---|---|---|---|
| length | No | ||
| end_time | No | ||
| directory | Yes | ||
| ramp_time | No | ||
| time_step | No | ||
| accelerator | No | MVQN_recursive | |
| fluid_height | No | ||
| wall_density | No | ||
| fluid_density | No | ||
| poisson_ratio | No | ||
| young_modulus | No | ||
| inlet_velocity | No | ||
| wall_divisions | No | ||
| wall_thickness | No | ||
| fluid_divisions | No | ||
| fluid_viscosity | No | ||
| output_interval | No | ||
| dynamic_structure | No | ||
| coupling_tolerance | No | ||
| max_coupling_iterations | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it names every file written (ProjectParameters.json, fluid.mdpa, etc.), the five required Kratos applications, the ALE/Dirichlet-Neumann coupling behavior, and a concrete divergence condition. It falls short of 5 only because it is silent on overwrite/existing-directory behavior and return semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but information-rich, front-loaded with the core purpose before elaborating geometry, meshing, coupling, side effects, and dependencies. Length is largely justified by the tool's complexity, though the single unbroken paragraph lacks visual structure for such a long definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A rich output schema exists, so return values need not be explained, and the description supplies the dependency list, generated artifacts, and physical validity caveats an agent needs to call it correctly. The remaining gaps are the undocumented parameters and the absence of explicit sibling-selection guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does substantially: it gives meaning to ramp_time, the [nx, ny] shape of fluid_divisions/wall_divisions, the accelerator option list, and couples wall_thickness/viscosity/length/E/fluid_height/time_step into a scaling relation. It leaves end_time, output_interval, dynamic_structure, poisson_ratio, wall_density, fluid_density, and max_coupling_iterations completely undocumented, so compensation is partial rather than complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Scaffold') and a precisely defined resource: a partitioned FSI case with explicit 2D channel and elastic-wall geometry. It is unmistakably distinct from siblings like create_project, create_multistage_project, and create_cosim_project, which an agent can identify without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and the 'runs with run_simulation like any case' workflow pointer, and the stability caveat implicitly warns when NOT to expect success. However, it never explicitly says when to pick this over the sibling creators (create_project / create_multistage_project / create_cosim_project), leaving the selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_materialsA
Write a Kratos Materials.json. Each entry needs 'model_part_name' (e.g. 'Structure.domain'). Provide either a 'preset' (a name from list_material_presets, which fills constitutive_law + default variables) or an explicit 'constitutive_law' (e.g. 'LinearElasticPlaneStrain2DLaw') plus 'variables' (e.g. {"YOUNG_MODULUS": 2.1e11}). With a preset, any 'variables' you pass override the preset's defaults; 'constitutive_law' is optional (thermal problems have none).
| Name | Required | Description | Default |
|---|---|---|---|
| materials | Yes | ||
| output_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries a higher burden. It goes beyond simple file-writing by explaining how presets fill constitutive_law and default variables, how user-supplied variables override preset defaults, and the optionality of constitutive_law. This adds meaningful behavioral context, though it does not mention file existence/overwrite behavior or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, starting with the action. The sentences are concise and each adds necessary detail: entry requirements, options, override behavior, and exception for thermal problems. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity of the nested materials structure and the presence of an output schema (so return values are covered), the description is largely complete for the tool's inputs. It does lack explicit statement about whether it overwrites existing files, but this is a minor gap for a write tool. Overall it provides sufficient context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so effectively by thoroughly specifying the structure of each entry in the materials array, including required model_part_name, the choice of preset or constitutive_law, and the variables object with an example. It also implies the output_file parameter via the phrase 'Write a Kratos Materials.json'. This is far more informative than the generic schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Write a Kratos Materials.json', which is a specific verb+resource pair. It clearly distinguishes this tool from siblings like create_project_parameters, which writes a different file type. The additional detail about entries and presets further clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on how to choose between a preset and an explicit constitutive_law, referencing the sibling tool list_material_presets for preset names. It also explains when constitutive_law is optional (thermal problems). However, it does not explicitly exclude use cases or mention scenarios where using an alternative tool would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_multistage_projectA
Scaffold a Kratos multi-stage (orchestrated) case that chains several analyses in sequence, e.g. a continuation run or a coupled workflow where a later physics reads fields the earlier one wrote on the same mesh. Each element of 'stages' is {"name": "<stage_id>", "template": "", "overrides": {...}} (overrides optional). Stages are composed via Kratos' SequentialOrchestrator (orchestrator + stages + execution_list) and run with run_simulation like any case.
Mesh sharing: the first stage imports its mesh (mdpa); a later stage whose solver model_part_name matches an earlier stage's REUSES that already-populated model part (input_type 'use_input_model_part'), which is how state flows between stages. A later stage with a distinct model_part_name imports its own mesh instead.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | case | |
| stages | Yes | ||
| directory | Yes | ||
| create_demo_mesh | No | ||
| stage_checkpoints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does well by disclosing the orchestration mechanism (SequentialOrchestrator) and the nuanced mesh-sharing behavior: first stage imports mesh, later stages either reuse via matching model_part_name or import separately. It doesn't cover side effects like directory overwrites, but the key behavioral trait is well documented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: it opens with the core purpose, then gives the stage format, then the orchestration context, and finally the mesh-sharing rule. Every sentence adds necessary information without redundancy. It is compact yet covers the essential details for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with 5 parameters and an output schema, but the description explains the most critical input semantics (stage structure and mesh sharing) in sufficient detail. It doesn't describe return values, but the presence of an output schema reduces that burden. Some parameter details are underexplained, but overall it is adequate for a knowledgeable user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions (0% coverage), so the description adds critical meaning by defining the 'stages' element structure: {"name": "<stage_id>", "template": "<template>", "overrides": {...}}. It also clarifies the role of model_part_name in mesh sharing. However, it doesn't explain 'create_demo_mesh' or 'stage_checkpoints', leaving some parameters unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Scaffold a Kratos multi-stage (orchestrated) case that chains several analyses in sequence.' It also gives concrete examples (continuation run, coupled workflow) and implicitly distinguishes from the sibling 'create_project' by focusing on multi-stage orchestration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context by describing when to use the tool (for chained analyses) and how stages are structured. It also explains the mesh-sharing rule for selecting model_part_name, which guides correct setup. However, it doesn't explicitly state alternatives or exclude single-stage cases, so it falls just short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectA
Scaffold a complete Kratos case directory from a template: ProjectParameters.json + Materials.json (+ optionally a small demo rectangle mesh wired to the template defaults, so the case runs out of the box). Returns the created file paths and next steps.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | case | |
| template | Yes | ||
| directory | Yes | ||
| overrides | No | ||
| create_demo_mesh | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the demo mesh is wired to template defaults so the case runs out of the box, and that it returns created file paths and next steps. However, it does not mention potential side effects such as overwriting an existing directory or whether the operation is limited to an empty directory, leaving a transparency gap for a file-creating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and no filler. Every clause adds value: the file types created, the optional demo mesh behavior, and the return value. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex (5 params, no annotations, output schema present). The description covers the main artifacts, the demo mesh option, and the return format, but omits guidance on how 'overrides' works or how to choose a template (e.g., referencing list_templates). It is adequate but not fully complete for a scaffolding tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only clarifies two parameters: 'template' implicitly (from a template) and 'create_demo_mesh' explicitly (optional demo mesh). It does not explain 'overrides' (a complex customization parameter), 'directory', or 'name', leaving three of five parameters largely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Scaffold') and a specific resource ('complete Kratos case directory'), and explicitly names the files created (ProjectParameters.json + Materials.json). This clearly distinguishes it from sibling tools like create_project_parameters or create_materials, which focus on individual files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this when you want a complete, runnable case from a template. It implies a higher-level alternative to the more granular sibling tools, though it does not explicitly name alternatives or say when NOT to use it. The optional demo mesh detail also signals the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_project_parametersA
Generate a ProjectParameters.json from a template (see list_templates). overrides replaces placeholder defaults, e.g. {"end_time": 2.0, "fix_model_part": "Structure.left"}. When output_file is given the JSON is written there; the content is always returned.
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | ||
| overrides | No | ||
| output_file | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses key behaviors: generation from a template, overrides replacing defaults, conditional file writing, and that content is always returned. It does not mention overwrite behavior or error conditions, but it covers the main side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with purpose, each providing actionable information without unnecessary words. The description is efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the presence of an output schema, and lack of annotations, the description covers the core workflow: template selection, overrides, writing to file, and return value. It could mention prerequisites or edge cases in more detail, but overall it is complete enough for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains template sourcing, the overrides format with a concrete example, and the output_file conditional. This adds meaningful semantics beyond the raw schema property types and titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate a ProjectParameters.json from a template', identifying the specific verb and resource. It distinguishes itself from sibling tools like create_project and create_materials by focusing on parameter file generation, and references list_templates for sourcing templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: use list_templates to find templates, use overrides to customize defaults, and use output_file to write to disk. It does not explicitly name alternatives or exclusions, but the workflow is well implied and the tool's role is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_project_parametersA
Parse an existing ProjectParameters.json and return a structured summary of what it configures: analysis type, solver + linear solver, mesh and material import, and the flattened boundary-condition / load / output process lists (with the model parts each targets). Multi-stage (orchestrator/stages) cases are summarized per stage. Use this to understand a case you did not scaffold before editing or running it.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explains the tool reads an existing file and returns a structured summary with specific contents, also noting multi-stage cases are summarized per stage. It does not explicitly state it is read-only, but 'Parse' implies non-mutating behavior. Missing error handling or side-effect details, but overall transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with action, and every phrase adds value. The first sentence organizes the exposed information clearly, and the second provides a concise usage directive with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (parsing JSON, multi-stage support) and the existence of an output schema, the description covers the key aspects: what it parses, what it returns, and when to use it. It does not explain the output schema details, but that is covered by the schema itself. The description is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter `parameters_file` with no description (0% coverage). The description partially compensates by identifying it as an existing ProjectParameters.json, but does not specify path format, file vs. content, or other nuances. This is adequate but not rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Parse... and return a structured summary') and a detailed resource (ProjectParameters.json). It enumerates the config aspects covered (analysis type, solver, etc.) and distinguishes itself from sibling tools like validate_project_parameters or create_project_parameters by focusing on understanding existing files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use this to understand a case you did not scaffold before editing or running it.' It implies the tool is for analysis before modifications, but does not explicitly name alternatives or state when not to use it, leaving some room for interpretation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_case_to_flowgraphA
Convert a ProjectParameters.json into a Flowgraph (litegraph) graph.json that can be opened in the Kratos FlowGraph visual node editor. Returns the graph; when output_file is given it is also written there. Round-trips with import_flowgraph_to_case.
| Name | Required | Description | Default |
|---|---|---|---|
| output_file | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns the graph and optionally writes it to output_file, and describes the round-trip behavior. It does not mention error cases or side effects beyond the explicit file write, but for this simple conversion it is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, each providing distinct value: the conversion action, the return/write behavior, and the round-trip relationship. It is front-loaded with the primary purpose and contains no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters, and the description covers the input, output, optional file writing, and the inverse operation. Given the presence of an output schema, the return value is adequately addressed, and no significant context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains that parameters_file is the ProjectParameters.json input, and that output_file is an optional destination for writing the graph. This adds meaning beyond the raw schema, though it does not specify that these are file paths.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts a ProjectParameters.json into a Flowgraph graph.json for the Kratos FlowGraph editor. It names the specific action, input, output format, and differentiates from the sibling import_flowgraph_to_case by mentioning round-trip compatibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: this exports a case to a visual node editor graph. It mentions the round-trip with import_flowgraph_to_case, which serves as an alternative, but does not explicitly state when to use one over the other or list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_flowgraph_to_caseA
Convert a Flowgraph (litegraph) graph.json -- as saved by the Kratos FlowGraph editor -- back into a ProjectParameters.json. Returns the parameters; when output_file is given it is also written there. Round-trips with export_case_to_flowgraph.
| Name | Required | Description | Default |
|---|---|---|---|
| graph_file | Yes | ||
| output_file | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns the parameters and writes to output_file when provided, which covers the main behavioral traits. It does not mention error handling or overwrite semantics, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant words. Each sentence adds distinct information: the conversion purpose and the return/write plus round-trip behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and two simple parameters, the description covers the core purpose, both parameters, and the return/write behavior. It lacks details on error cases or specific format requirements, but for a conversion tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must clarify parameter meaning. It identifies graph_file as the Flowgraph graph.json source and output_file as the destination when writing. This adds value beyond the bare titles, but it could explicitly name both parameters in one place for extra clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Convert') and identifies both input (Flowgraph graph.json) and output (ProjectParameters.json), clearly distinguishing this from sibling tools. The round-trip note with export_case_to_flowgraph further differentiates it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The round-trip mention implies this is the inverse of export_case_to_flowgraph, giving clear context on when to use it. However, it stops short of explicitly stating when not to use it or naming alternative tools beyond that sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_cancelA
Cancel a running simulation job (SIGTERM, escalating to SIGKILL after a grace period). Signals the whole process group, so every MPI rank is stopped.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and delivers unusually strong detail: SIGTERM escalating to SIGKILL after a grace period, and signalling of the entire process group so all MPI ranks stop. It does not cover permissions/auth or what happens if the job is already finished, but the termination mechanism and blast radius are clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and followed by the operational details. No redundant restatement of the name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with an output schema present, the description covers the essential behavioral facts an agent needs. It could add whether cancellation is idempotent or what happens on an already-terminal job, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single job_id parameter, so the description technically must compensate; however, job_id is self-explanatory as an identifier and the description adds no format, source, or origin details for it. Minimum-viable semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Cancel a running simulation job') and implicitly distinguishes itself from sibling cancel tools such as study_cancel by scoping to simulation jobs. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and purpose, but there is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as job_resume or study_cancel. The reader must infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_checkpointsB
List completed managed checkpoints, including retained/deleted availability.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that the tool lists completed checkpoints and includes retained/deleted availability, which is useful behavioral context. However, it does not explain whether the operation is read-only, whether it requires specific permissions, or what the output structure looks like beyond the existence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action ('List completed managed checkpoints') and adds a useful qualifier. It is appropriately sized for a simple list operation with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple input schema (one required parameter) and an output schema, so the description does not need to explain return values. However, with no annotations and no usage guidance, the description leaves some gaps: it does not clarify whether 'managed checkpoints' are job-specific, how to interpret retained/deleted availability, or how this relates to sibling tools like configure_checkpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented job_id parameter. The description does not explain what job_id refers to or how to obtain it, but the parameter name is self-explanatory in context. The description adds no semantic detail beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('completed managed checkpoints'), and adds a scope qualifier ('retained/deleted availability') that distinguishes it from generic checkpoint tools. It does not explicitly name a sibling alternative, but the verb+resource combination is clear enough to identify the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it lists completed managed checkpoints and includes availability status, so an agent can infer it is for inspecting checkpoint history. However, it does not explicitly state when to use this tool versus alternatives like configure_checkpoints or job_status, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_listA
List all known simulation jobs, optionally filtered by state (queued, running, succeeded, failed, cancelled).
| Name | Required | Description | Default |
|---|---|---|---|
| state | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' implies a read-only operation, and the state filter is disclosed. However, it does not detail the response format, ordering, scope of 'known' jobs, or any other behavioral traits, limiting transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the verb and resource, and every word contributes meaning. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple tool with one optional parameter, and the description covers its purpose and filtering capability. An output schema exists, so return values do not need to be described. The description is complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), but the description compensates fully by explaining the 'state' parameter and enumerating its allowed values (queued, running, succeeded, failed, cancelled). This adds essential meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('list') and resource ('simulation jobs'), clearly stating the tool's scope ('all known') and an optional state filter. This distinguishes it from sibling tools like job_status, job_logs, and job_cancel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to list jobs, optionally filtered by state). However, it does not explicitly mention alternatives or when not to use it, though sibling tool names imply such cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_logsA
Return the last 'tail' lines of a job's simulation log, optionally only lines containing the 'grep' substring (case-insensitive). For MPI jobs, 'rank' selects another rank's log (job_status lists rank_logs); rank 0 / unset is the main log.
| Name | Required | Description | Default |
|---|---|---|---|
| grep | No | ||
| rank | No | ||
| tail | No | ||
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It discloses tail/grep/rank behavior and the case-insensitive matching, but is silent on read-only nature, permission requirements, behavior for a still-running or missing job, and log truncation/rotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the core action, then the optional filters and the rank nuance. No filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the parameter semantics are covered. The remaining gap is edge-case behavior (missing/finished jobs, permissions) for a no-annotation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates well: it defines tail as line count, grep as a case-insensitive substring filter, and rank as MPI rank selection with rank 0/unset meaning the main log. Only the obvious job_id is left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return the last tail lines of a job's simulation log') plus the filtering modifiers. It also distinguishes itself from job_status by noting where rank_logs is enumerated, though it never explicitly frames itself against a sibling log-retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives implied context (view a simulation log, use rank for MPI jobs, consult job_status for rank_logs) but offers no explicit when-to-use/when-not guidance or named alternatives for retrieving logs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_rerunC
Rerun a job from its preserved isolated input snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are not provided, so the description must fully carry the burden of behavioral disclosure. The description says 'rerun from its preserved isolated input snapshot,' which clarifies the input source, but it does not disclose side effects (e.g., whether it overwrites output, requires permissions, or is idempotent) or the return behavior. The optional 'wait_seconds' parameter suggests a blocking behavior, but that is not explained. No contradiction with annotations, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant wording. It front-loads the primary action and resource. It earns a high score for efficiency, though it could be improved with additional context without violating conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (which could explain return values), the description leaves critical operational details unaddressed: the meaning of 'wait_seconds,' the relation to job state, and how this differs from 'job_resume.' Given the moderate complexity of a rerun operation and the presence of siblings, the description is insufficient for an agent to use the tool correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the schema only provides type and default for parameters. The description only mentions the 'preserved isolated input snapshot' concept, which relates to 'job_id' but does not explain how 'job_id' is used or what values are acceptable. 'wait_seconds' is entirely ignored in the description, despite being an optional parameter that likely controls blocking behavior. The description fails to compensate for the lack of schema documentation, so this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('rerun') and resource ('job') and mentions the key concept of an 'isolated input snapshot,' which indicates the tool operates on a preserved snapshot. However, it does not distinguish this from the sibling tools 'job_resume' and 'job_cancel,' so an agent might confuse it with 'job_resume' which also relates to continuing a job. The purpose is clear but lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'job_resume' or 'job_status.' It does not mention prerequisites, such as the job being in a certain state or that the snapshot must exist. No exclusions or alternatives are named, leaving the agent to infer usage context, which is insufficient given the presence of related job-management siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_resumeC
Resume a terminal isolated job from an explicit job_checkpoints path into a new job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| end_time | No | ||
| checkpoint | Yes | ||
| wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of disclosing behavior. It only states that a new job is created; it does not say whether the original job remains, what side effects occur, whether this starts execution, or what wait_seconds/end_time affect. For a job-resuming mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is compact and readable, though 'terminal isolated job' is somewhat jargon-heavy and could be expressed more plainly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters, no annotations, and no parameter descriptions, so the short sentence is not enough for an agent to call it correctly. Since an output schema exists, return values are less of a concern, but the behavior and parameter semantics remain underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives meaning only to checkpoint ('explicit job_checkpoints path'); job_id, end_time, and wait_seconds are left undefined in both the schema and description. An agent cannot determine how to set these parameters from the given text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('resume') and identifies the resource ('a terminal isolated job') plus the input mechanism ('explicit job_checkpoints path'). It is clear enough to tell this from generic job tools, though it does not explicitly contrast with the sibling job_rerun or job_checkpoints tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for terminal isolated jobs and on an explicit checkpoint path, which gives some context. However, it never states when to prefer this over sibling tools such as job_rerun or how it relates to configure_checkpoints/job_checkpoints, leaving the when-to-use decision partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_statusA
Get the state of a simulation job (queued/running/succeeded/ failed/cancelled), elapsed time, and current step/time parsed from its log.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the status is 'parsed from its log', a useful behavioral detail, and enumerates the possible states. It doesn't mention error handling or side effects, but the operation is clearly read-only and safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately conveys the tool's purpose and return values. There is no redundancy or filler, making it highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter status tool with an output schema present, the description is complete: it specifies what to pass, what the tool returns, and even hints at the underlying mechanism (log parsing). No additional context is necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the only parameter (job_id), so the description must compensate. It adds context by referring to 'a simulation job' and 'its log', but does not explain the value's origin, format, or how to obtain it. This is minimal compensation, though the parameter name is self-descriptive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Get' and the resource 'state of a simulation job', listing the exact statuses and additional fields (elapsed time, current step/time). This distinguishes it from sibling tools like job_list and job_logs which handle different concerns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies clear usage: use this tool to obtain the status, elapsed time, and step/time of a simulation job. It does not explicitly mention when not to use it or name alternatives, but the scope is well-defined and distinct from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_check_installationA
Check that Kratos Multiphysics is available and report version, paths, thread count and the list of compiled applications.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It implies a read-only operation by using 'Check' and 'report', and specifies what information is returned. However, it does not explicitly address side effects, error behavior, or system requirements beyond the basic check. This is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the main purpose ('Check that Kratos Multiphysics is available') and lists the key outputs. No unnecessary words are included, and it is immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description provides sufficient context for an agent to understand its function. It covers what the tool checks and reports, and since there are no parameters or complex side effects, no additional detail is necessary. The presence of an output schema means return values need not be spelled out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description adds value by describing what the tool reports (version, paths, thread count, compiled applications), which clarifies the output semantics beyond the empty schema. It does not need to explain parameters because there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Check') and resource ('Kratos Multiphysics'), and clearly lists what it reports (version, paths, thread count, compiled applications). This distinguishes it from siblings like kratos_list_applications by focusing on installation availability rather than just listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There is no mention of prerequisites, follow-up actions, or why an agent would choose this over kratos_install or kratos_list_applications. The description only states what the tool does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_get_process_defaultsA
Return a Kratos process' default settings -- parameter names, default values, coarse types (bool/number/string/array/json/null) and which parameters are model-part references -- parsed from its Python source' ValidateAndAssignDefaults block. This is the schema you need to author a process block in a ProjectParameters process list. python_module is a value from kratos_list_processes (e.g. 'assign_scalar_variable_process', 'vtk_output_process'). Returns {"error": ...} when the Kratos source is unavailable, the module is not found, or its defaults use a non-standard declaration.
| Name | Required | Description | Default |
|---|---|---|---|
| python_module | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the parsing source (ValidateAndAssignDefaults block), the exact return contents, and error conditions (source unavailable, module not found, non-standard declaration). This is substantial behavioral context, though it doesn't mention performance or file-system dependencies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the action ('Return...'), uses a compact dash list for contents, and includes only essential context (purpose, parameter source, error cases). No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only one parameter and no annotations, the description covers purpose, usage, parameter derivation, return contents, and error behavior. The presence of an output schema means return values need not be repeated. It's complete for an introspection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only the parameter name 'python_module' with a title 'Python Module' and no description. The tool description compensates by explaining it takes a value from kratos_list_processes and provides concrete examples, giving the agent the needed semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Return a Kratos process' default settings') and details the contents (parameter names, default values, types, model-part references). It differentiates from sibling tools like kratos_get_solver_defaults by explicitly tying to process defaults and referencing kratos_list_processes as the source of python_module.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the tool provides the schema needed to author a process block in a ProjectParameters process list, which is a clear use case. It points users to kratos_list_processes to find valid python_module values, but does not explicitly state when not to use this tool in favor of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_get_solver_defaultsA
Return the complete default solver_settings parameters for a solver, as reported by its GetDefaultParameters(). analysis_type is one of structural/thermal/fluid/potential_flow; solver_type one of the values from kratos_list_solvers (e.g. 'Static', 'transient', 'Monolithic').
| Name | Required | Description | Default |
|---|---|---|---|
| solver_type | Yes | ||
| analysis_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Return' and 'as reported by GetDefaultParameters()' clearly imply a read-only query with no side effects. It doesn't discuss permissions or error handling, but for a getter this is acceptable and the output schema covers return details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action, and no redundant information. Every clause earns its place, making it efficient and easy to process.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the presence of an output schema, and the clear parameter guidance, the description is sufficiently complete. It could mention prerequisites like solver installation, but that is handled by sibling tools and is not critical for a getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds meaning by explaining analysis_type as one of structural/thermal/fluid/potential_flow and solver_type as a value from kratos_list_solvers with examples. This compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Return the complete default solver_settings parameters for a solver'. It clearly distinguishes from a sibling tool like kratos_get_process_defaults by focusing on solver defaults, not process defaults.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context by listing valid analysis_type values and directing to kratos_list_solvers for solver_type values. It implies when to use (to fetch solver defaults) but does not explicitly contrast with alternatives like kratos_get_process_defaults or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_get_variable_infoA
Look up specific Kratos variables by name in the live build: whether each exists and its type (double, array_1d_3, bool, int, vector, matrix, string, flags ...). Vector components such as DISPLACEMENT_X resolve to their array variable ('component_of'). Use it to check names before putting them in ProjectParameters (variable_name, output variables, nodal_solution_step_data_variables).
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and 'look up ... whether each exists and its type' plus the non-obvious 'component_of' resolution ('DISPLACEMENT_X resolves to its array variable') give real behavioral context beyond a restatement. It still omits what happens for unknown names and whether an active session/installation is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the essential lookup semantics and ends with a concrete usage directive; the enumerated type list adds useful vocabulary. Slightly dense but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup with an output schema already covering the return shape, the description supplies purpose, usage context and the component_of nuance. The only real gap is error/failure behavior for names that do not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that the parameter is a variable name and that lookup is by name, but never states that multiple names can be passed at once (the schema key is 'names'), leaving batching semantics to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Look up specific Kratos variables by name') plus scope ('in the live build'), and the type-resolution detail distinguishes it from kratos_list_variables, which only enumerates names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use: check names before putting them in ProjectParameters (variable_name, output variables, nodal_solution_step_data_variables). It names concrete downstream consumers, though it does not name the sibling alternative (kratos_list_variables) or state when-not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_installA
Install Kratos Multiphysics via pip into this server's own Python environment -- a local compiled build (KRATOS_ROOT) is not required. Installs the 'KratosMultiphysics' core plus any named applications (e.g. ["StructuralMechanicsApplication", "ConvectionDiffusionApplication", "LinearSolversApplication"]); pass all=true instead for the 'KratosMultiphysics-all' omnibus package covering essentially every application. Official wheels are only published for Linux and Windows x86_64 -- there is no Kratos wheel for macOS, where a local KRATOS_ROOT build is still required. This can take several minutes and download hundreds of MB (KratosMultiphysics-all is the largest); prefer naming only the applications you need. Once it returns ok, Kratos is importable immediately -- no server restart needed.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | ||
| upgrade | No | ||
| applications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses installation time, download size, immediate importability, and platform limitations. It does not mention what happens if an existing installation is present or overwritten, but it covers the key behavioral aspects beyond the bare action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is several sentences long but each sentence adds distinct value, from the core install action to platform caveats to post-install behavior. It is front-loaded with the main purpose and avoids unnecessary filler, though it could be trimmed slightly without losing essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (platform constraints, package options, time/resource implications) and the presence of an output schema, the description provides strong contextual coverage: it tells the user what to expect during install, which platforms are supported, and that no restart is needed. The only gap is the undocumented 'upgrade' param and a lack of explicit return-value details, but the output schema partially covers the latter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It thoroughly explains 'applications' with examples and 'all' as a switch to the omnibus package, but it does not explain the 'upgrade' parameter at all. This leaves one of three parameters ambiguous, so the description only partially compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Install Kratos Multiphysics via pip into this server's own Python environment'. It clearly distinguishes this from sibling tools like kratos_check_installation and kratos_list_applications by describing an installation action with a defined target environment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool, including platform constraints (macOS requires a local build) and a preference for naming only needed applications to avoid large downloads. It does not explicitly name alternatives, but the guidance about when not to use it (macOS) and when to use the 'all' option is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_list_applicationsA
List all Kratos applications found in the source tree, flagging which ones are compiled (importable) in the current build.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool inspects the source tree and reports compiled status, but it does not explicitly state that the operation is non-mutating or mention any prerequisites (e.g., a valid source tree). This is acceptable for a list operation but lacks explicit safety/behavioral notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the main action ('List all Kratos applications') and then adds a useful qualifier. Every word contributes meaning; there is no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters) and the presence of an output schema, the description is quite complete. It explains both the scope (source tree) and the distinguishing behavior (compiled flag). It could possibly add a note about typical invocation scenarios, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter-level detail, but none is needed since the schema is already complete with 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: listing all Kratos applications found in the source tree. It also adds a distinctive detail—flagging which ones are compiled/importable—which differentiates it from sibling tools that list elements, variables, or solvers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when you need to see available Kratos applications and their build status) but does not explicitly state when to prefer it over alternatives or provide any exclusion criteria. This is adequate but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_list_conditionsA
List condition type names registered in Kratos (surface/line/point conditions used for loads and boundary terms), with optional filters as in kratos_list_elements.
| Name | Required | Description | Default |
|---|---|---|---|
| application | No | ||
| name_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavioral traits. The verb 'List' strongly implies a read-only operation, but the description does not explicitly confirm safety, state side effects (if any), or mention output format/pagination. It adds the filter availability but lacks detail on edge cases or permissions. For a simple listing tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the main purpose, and includes only essential clarifying details. Every word earns its place; there is no fluff or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not detail return values. It provides the resource type, the category of conditions, and the presence of filters. Given the simple nature of a list operation and the reference to sibling behavior, the description is complete enough for an agent to decide whether to invoke and understand the gist of what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'optional filters' and references the sibling tool for filter semantics, which adds some meaning. The parameter names 'application' and 'name_filter' are self-explanatory in the schema, but the description does not explicitly explain their allowed values or how they interact. The reference to kratos_list_elements is a helpful pointer, but not a full explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists condition type names registered in Kratos, with a specific scope (surface/line/point conditions used for loads and boundary terms). The verb 'List' and resource 'condition type names' are specific, and the parenthetical adds useful context. It distinguishes from the sibling kratos_list_elements by the resource type, even though it references the sibling for filter behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need to enumerate condition types. The phrase 'optional filters as in kratos_list_elements' provides a pointer to sibling tool behavior, which is useful guidance. However, it does not explicitly state exclusions or alternative tools for other use cases, though the resource type itself makes the primary use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_list_constitutive_lawsA
List constitutive law names registered in Kratos (material models such as LinearElastic3DLaw or Newtonian2DLaw), with optional filters as in kratos_list_elements.
| Name | Required | Description | Default |
|---|---|---|---|
| application | No | ||
| name_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only operation by using 'List' and gives examples, but it does not explicitly mention absence of side effects, error behavior, or any special constraints. For a simple listing tool, the description adds some clarity but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that includes purpose, examples, and a filter reference. Every clause adds value and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The existence of an output schema covers return values, and the low complexity of a list tool reduces informational needs. However, the lack of parameter semantics leaves a notable gap in the overall context. The reference to kratos_list_elements partially mitigates this, but the description is not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining the parameters. It only says 'optional filters' without detailing what the 'application' and 'name_filter' parameters do or which filters are supported. The reference to kratos_list_elements is indirect and does not make up for the lack of explicit parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the specific resource ('constitutive law names registered in Kratos'), and provides concrete examples (LinearElastic3DLaw, Newtonian2DLaw). It distinguishes itself from sibling tools like kratos_list_elements by targeting constitutive laws specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'with optional filters as in kratos_list_elements' explicitly references a sibling tool to indicate how filters are used, providing clear contextual usage. It implies this tool is for constitutive laws and that filter behavior matches an existing pattern, though it doesn't formally contrast with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_list_elementsA
List element type names registered in Kratos (parsed from KRATOS_REGISTER_ELEMENT macros in the C++ sources). Optionally filter by application name (e.g. 'StructuralMechanicsApplication') or by a substring of the element name (e.g. 'SmallDisplacement').
| Name | Required | Description | Default |
|---|---|---|---|
| application | No | ||
| name_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose that the list is parsed from C++ macros, which adds source transparency. But it does not mention behavior like no results handling, whether it requires a local Kratos installation, or that it is a read-only operation (though 'list' implies read-only). The disclosure is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the main verb first, no redundant information. It efficiently explains the tool's purpose and both optional filters with examples, achieving high density of useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, two optional parameters, and the presence of an output schema (which handles return values), the description is nearly complete. It covers purpose and all parameters. The only gap is not explicitly linking to sibling list tools, but this is minor since the resource type is clearly named.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions for the two parameters (0% coverage). The description compensates fully by explaining 'application' as a filter by application name with an example, and 'name_filter' as a substring filter with a concrete example. This provides meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List element type names registered in Kratos', and clarifies the source ('parsed from KRATOS_REGISTER_ELEMENT macros in the C++ sources'). This clearly distinguishes it from siblings like kratos_list_conditions and kratos_list_variables by focusing on elements and the macro source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when you need a list of element types. It also explains the optional filters, giving concrete examples for application name and name substring. However, it does not explicitly exclude alternatives or direct users to sibling tools, but the purpose is unambiguous among the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_list_processesA
List Python process modules (boundary conditions, loads, output, utilities) discoverable in the Kratos source tree. These are the values usable as 'python_module' in ProjectParameters process lists. With with_defaults=true, each entry also carries the process' default_settings and param_types parsed from its source (best effort; modules whose defaults cannot be parsed are still listed without them). Use kratos_get_process_defaults for a single module's full schema.
| Name | Required | Description | Default |
|---|---|---|---|
| application | No | ||
| name_filter | No | ||
| with_defaults | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavioral nuances. It discloses the best-effort nature of parsing defaults, the effect of 'with_defaults=true', and that modules failing to parse are still listed without defaults. However, it does not explicitly state whether the operation is read-only (though implied by 'list') or mention any potential 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the primary purpose, and each sentence adds value: scope, usage context, default behavior, and an alternative tool reference. There is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose, the optional defaults behavior, and points to a related tool for deeper schema needs. Since an output schema is provided, the lack of explicit return format is acceptable. Minor gaps remain around the filter parameters and whether the list is sorted, but overall it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema provides only titles (Application, Name Filter, With Defaults) with no descriptions, and schema coverage is 0%. The description explains the behavior of 'with_defaults' in detail but says nothing about 'application' or 'name_filter', leaving meaning heavily reliant on parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'list' and the resource 'Python process modules', and adds context about their use as 'python_module' values. It also distinguishes itself from sibling tools like kratos_get_process_defaults by explicitly pointing to that tool for single-module schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use the tool: when you need processes usable in ProjectParameters process lists. It also provides an explicit alternative: 'Use kratos_get_process_defaults for a single module's full schema', which clarifies the boundary between the two tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_list_solversA
List the known solver_type values per analysis type (structural, thermal, fluid, potential_flow) together with the Python solver module implementing each, plus all *_solver.py modules found in the application source tree.
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It explains that the tool lists known solver_type values per analysis type and also scans for *_solver.py modules, which is informative. However, it does not disclose the effect of the optional analysis_type parameter (whether it filters results) or what happens when it is null, leaving a transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs a lot of information: it lists the analysis types, the pairing with Python modules, and the additional scan for all *_solver.py files. It is front-loaded with the core action and avoids unnecessary words, but the sentence is somewhat long and could be split for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, and the description conveys the main output: solver_type per analysis type and modules found. However, it fails to explain the role of the analysis_type parameter, which is a critical part of using the tool correctly. Given the output schema exists, return values are covered, but the missing parameter behavior leaves the description incomplete for a robust understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one optional parameter (analysis_type) with 0% description coverage. The tool description does not mention this parameter at all, nor does it clarify whether providing an analysis_type filters the listing or how the default null behaves. This leaves the parameter's semantics unexplained, requiring the agent to infer from the tool name and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and clearly identifies the resource: solver_type values per analysis type (structural, thermal, fluid, potential_flow), plus Python modules. This distinguishes it from sibling list tools like kratos_list_elements or kratos_list_variables, which target different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear that this tool is for enumerating known solver types and their implementing modules, giving the agent enough context to select it when needing solver information. However, it does not explicitly mention when not to use it or point to alternatives, so a small deduction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kratos_list_variablesA
List Kratos variables (DISPLACEMENT, TEMPERATURE, ...) grouped by type (double, array_1d_3, bool, ...), introspected from the live build. type_filter selects one group; name_filter is a substring.
| Name | Required | Description | Default |
|---|---|---|---|
| name_filter | No | ||
| type_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses that the list is 'introspected from the live build,' which is a key behavioral detail indicating the data reflects the current runtime state. It also explains grouping and filtering, providing useful context beyond a bare operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences and immediately conveys the resource, grouping, source, and filter semantics. It is front-loaded with the core verb and object, and every phrase provides value without repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to detail the return structure. It sufficiently covers the source (live build), the grouping, and both filtering parameters. For a straightforward introspection/list tool, this is complete enough for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description explicitly explains both parameters: type_filter selects a group and name_filter is a substring. This adds meaning beyond the bare schema. It does not mention edge cases like how the filters combine when both are provided, but the core semantics are clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('Kratos variables') with examples of what is listed (DISPLACEMENT, TEMPERATURE) and how it is organized (by type). It clearly distinguishes this tool from sibling tools like kratos_list_elements and kratos_list_applications, which list different Kratos entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever you need to inspect available Kratos variables and filter them by type or name. It provides clear context but does not explicitly name alternatives or state when not to use the tool, so it falls short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_linear_solver_presetsA
List curated linear_solver_settings presets (serial: sparse_lu, skyline_lu, amgcl, cg, bicgstab; MPI/Trilinos: amgcl_mpi, amesos, aztec, ml). Each 'settings' block is a drop-in for solver_settings.linear_solver_settings in a ProjectParameters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It clearly indicates a listing operation, enumerates available presets, and explains the output's applicability as drop-in settings blocks. This goes beyond a bare 'list' by revealing the structure and purpose of the returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one lists the presets, the second explains the drop-in usage. It is front-loaded, concise, and contains no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and an output schema, the description is complete. It identifies the tool's purpose, enumerates the presets, and explains how the outputs are intended to be used in ProjectParameters. No critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description need not add parameter details. The schema is already complete (100% coverage). A baseline score of 4 is appropriate; the description does not need to compensate for any missing parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'List curated linear_solver_settings presets' – a specific verb and resource. It enumerates the exact preset names for serial and MPI/Trilinos, distinguishing it from sibling tools like list_material_presets or list_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states that each settings block is a drop-in for solver_settings.linear_solver_settings in a ProjectParameters, providing clear context for when this tool is useful. It does not explicitly name alternatives or exclusions, but the intended usage is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_material_presetsA
List the curated material presets usable as 'preset' in create_materials. Each carries a constitutive_law name and default Variables for a physical material model (linear elastic, Von Mises plasticity, isotropic damage, Newtonian fluid). Cross-check law names with kratos_list_constitutive_laws for your compiled build.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses that each preset includes a constitutive_law name and default Variables, and warns that law names should be cross-checked with the compiled build via kratos_list_constitutive_laws. This is a meaningful behavioral detail. It does not mention return format or side effects, but for a list tool these are largely implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose. The second sentence adds valuable cross-check guidance. No filler or redundancy; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with an output schema present, the description is complete: it explains what the presets are, what they contain, and how they should be used in a larger workflow (create_materials) while pointing to a validation step. It covers the essential context without over-explaining.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the baseline is 4. The input schema is empty and schema coverage is trivially 100%. The description adds no parameter-specific semantics, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('List') and resource ('curated material presets'), with a clear usage context ('usable as preset in create_materials'). It also mentions that each preset carries a constitutive_law name and default Variables, distinguishing it from sibling list tools like list_linear_solver_presets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context: the presets are to be used as 'preset' in create_materials. It also instructs the agent to cross-check law names with kratos_list_constitutive_laws for the compiled build, which suggests a complementary tool. However, it does not explicitly contrast with all related list tools (e.g., list_linear_solver_presets), so it lacks explicit exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesA
List the available case templates (structural_static, thermal_transient, fluid_transient, ...) with their descriptions, required applications and placeholder defaults.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses what the output will include (descriptions, required applications, placeholder defaults), which is helpful. However, it does not explicitly state that the operation is read-only or free of side effects, though 'list' strongly implies it. More explicit safety disclosure would improve the score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the primary action and resource. It includes useful examples without unnecessary elaboration, and every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and an existing output schema, the description fully covers the purpose and the nature of the returned data. It mentions the types of templates and the information provided with each, making it complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameters, and it correctly adds context about what is listed. No deficiencies in parameter documentation are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's action ('List') and resource ('available case templates'), and provides concrete examples of template types (structural_static, thermal_transient, fluid_transient). This distinguishes it from sibling list tools that target different entities (applications, elements, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention typical use cases (e.g., before creating a project) or when not to use it, nor does it reference sibling tools. The usage context is only implied by the tool's name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
materials_checkA
Cross-check a case's Materials.json against its mesh: every entry's model_part_name must be the root model part or one of the mesh's sub model parts, every properties_id used by an element needs an entry, and (with a Kratos build) every constitutive law must exist -- pass the application names that register them (e.g. ["StructuralMechanicsApplication"]) so they are imported first. Single-stage cases only.
| Name | Required | Description | Default |
|---|---|---|---|
| applications | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description must carry the behavioral load, and it does well: it discloses the three concrete checks, the dependency on a Kratos build, the ordering side-effect of importing applications first, and the single-stage restriction. It is silent on failure/reporting behavior, but the output schema covers results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence, but the checks and the applications guidance are front-loaded with the exclusion at the end. The em-dashes and parenthetical add useful specifics rather than padding, though the clause stacking is heavier than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description fully covers the check semantics plus the single-stage caveat. The only gap is the undocumented parameters_file argument, which is minor given its self-describing name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the 'applications' parameter thoroughly, including format and a concrete example (["StructuralMechanicsApplication"]), but says nothing about 'parameters_file' beyond what its name implies. Half the parameters are clarified, so it is only partially compensatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (cross-check) and the two resources being reconciled (Materials.json against the mesh), then enumerates the exact invariants verified. This separates it cleanly from siblings like materials_get, materials_set_property, and mdpa_validate without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for invocation (pass application names so constitutive laws are imported first) and an explicit exclusion ('Single-stage cases only'). It does not name a specific alternative tool like validate_case or mdpa_validate, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
materials_getB
Read a Materials.json: one summary row per properties entry (model_part_name, properties_id, constitutive law, variable names) plus the raw document.
| Name | Required | Description | Default |
|---|---|---|---|
| materials_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the return content (one summary row per properties entry plus the raw document), which tells the agent the call is a non-mutating inspection and that output may be large because the raw document is included. It says nothing about permission requirements, missing-file/error behavior, or any size/pagination handling, so the disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence, front-loaded with the verb and resource, followed by the return-shape detail. Nothing is wasted and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained (though the description helpfully does so anyway). For a one-parameter read tool this is nearly sufficient; the remaining gap is the unspecified parameter format and how a missing or malformed file is reported.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single parameter 'materials_file', so the schema offers no semantics. The description only implies it is a Materials.json file, but does not specify whether the parameter is a full path, a bare filename, or resolved relative to the project, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Read') and resource ('a Materials.json') and even enumerates the columns returned per properties entry, so the agent knows exactly what comes back. It does not name a sibling or the boundary against materials_check/materials_set_property, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus the sibling materials tools (materials_set_property, materials_remove_property, materials_check, create_materials). Usage is only implied by the verb 'Read'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
materials_remove_propertyC
Remove entries from a Materials.json matching model_part_name and/or properties_id (all given criteria must match).
| Name | Required | Description | Default |
|---|---|---|---|
| properties_id | No | ||
| materials_file | Yes | ||
| model_part_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a destructive edit via 'Remove entries', but says nothing about persistence, whether the file is rewritten in place, reversibility, or what happens when no entry matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action front-loaded and no padding. It could be slightly clearer by separating the file argument from the filters, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but for a mutation tool with zero annotation coverage and 0% parameter documentation, the description should say more about failure modes (no match, missing file) and side effects on the resulting Materials.json.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it partly does: it clarifies that model_part_name and properties_id are optional filters combined with AND semantics ('all given criteria must match'). However it says nothing about the required materials_file parameter's format or path expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (remove), resource (entries in Materials.json) and the matching criteria, so an agent immediately understands it edits a materials file. It is distinguishable from siblings like materials_set_property and materials_get, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the matching rule but gives no when-to-use context, no alternative tool to prefer for related edits, and no prerequisites (e.g., file must already exist, whether a validation pass like materials_check should precede it).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
materials_set_propertyA
Add or update ONE entry of a Materials.json (created if the file does not exist), keyed by model_part_name (e.g. 'Structure.domain'). New entries get the next free properties_id unless given. 'preset' (see list_material_presets) fills the constitutive law and default variables; 'constitutive_law' and 'variables' then override. On an existing entry, variables/tables are merged into the current ones; replace=true rebuilds the entry from scratch. This is the incremental counterpart of create_materials, which rewrites the whole file.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | No | ||
| tables | No | ||
| replace | No | ||
| variables | No | ||
| properties_id | No | ||
| materials_file | Yes | ||
| model_part_name | Yes | ||
| constitutive_law | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses that the file is created if missing, how properties_id is auto-assigned, that preset fills the law/defaults then gets overridden, that existing entries are merged, and that replace=true rebuilds from scratch. It does not cover error/permission conditions or id-collision behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and primary key in sentence one, then layers behavioral detail with no filler. The prose is dense and slightly clause-heavy, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description thoroughly covers the mutation/merge semantics an agent needs. It omits failure modes and validation expectations (e.g., the role of materials_check), which for a write tool with no annotations would have been valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and largely does: it explains preset, constitutive_law, variables, tables, replace, properties_id, and model_part_name semantics. It does not describe the internal structure of the free-form variables/tables objects or the materials_file path handling, leaving a gap for a nested-object-heavy signature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Add or update ONE entry of a Materials.json'), the key field ('keyed by model_part_name'), and explicitly contrasts with the sibling create_materials. An agent can distinguish this incremental upsert from any of the ~90 siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative and the condition that selects it: 'the incremental counterpart of create_materials, which rewrites the whole file.' It also routes the agent to list_material_presets for the preset argument, giving clear when-to-use context for both major choices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_add_entitiesA
Add elements, conditions or geometries of one type. kind: 'element', 'condition' or 'geometry'. entity_type is the Kratos name (e.g. 'SmallDisplacementElement2D4N', 'LineLoadCondition2D2N', 'Line2D2'); its 2D3N/3D8N-style suffix fixes the node count. Each item of 'entities' is {"nodes": [ids...], "id": optional, "property_id": optional (default 1, not for geometries)}. With sub_model_part the new entities and their nodes join that part (and its ancestors).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| path | Yes | ||
| output | No | ||
| entities | Yes | ||
| overwrite | No | ||
| entity_type | Yes | ||
| sub_model_part | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It does disclose two genuinely non-obvious behaviors: property_id defaults to 1 and is invalid for geometries, and using sub_model_part silently adds the new entities and their nodes to that part plus all ancestors. It omits write-side behavior the agent needs: what happens to an existing file, what 'overwrite' toggles, and what errors occur on bad node ids.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with no filler; the kind enumeration is front-loaded and each subsequent sentence adds distinct information (entity_type naming, entity item shape, sub_model_part semantics). Slightly cramped, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers the core modeling semantics needed to construct a call. The gap is the required 'path' and the 'output'/'overwrite' file-handling parameters, which an agent must infer from bare schema property names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does: it defines the kind vocabulary, explains the entity_type naming convention and its node-count suffix, and spells out the exact per-item shape of 'entities' ([{nodes, id?, property_id?}]) plus the sub_model_part effect. It leaves three parameters undocumented – notably the required 'path' plus 'output' and 'overwrite'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Add elements, conditions or geometries of one type,' immediately enumerating the three modeling object classes and clarifying the union-per-call constraint. This cleanly separates it from siblings like mdpa_add_nodes (nodes only) and mdpa_get_entities (read side) without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is strong on mechanics – it tells you the meaning of 'kind', how the entity_type suffix fixes node counts, and what sub_model_part does – but never states when to pick this over alternatives such as mdpa_set_entity_properties, mdpa_merge, or mdpa_get_entities, nor does it name any prerequisite (a valid path, existing node ids) or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_add_nodesA
Add nodes ([x, y] or [x, y, z] each) to a .mdpa. Ids default to the next free ids; pass 'ids' to choose them. Optionally add them to an existing sub_model_part (dotted path). Edits in place unless 'output' is given.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| path | Yes | ||
| output | No | ||
| overwrite | No | ||
| coordinates | Yes | ||
| sub_model_part | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose real behavior: ids auto-default to the next free id, edits happen in place unless 'output' is given, and sub_model_part is optional. However, the 'overwrite' parameter is never mentioned, leaving a meaningful mutation-behavior gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and format, then defaults and edit semantics. Every sentence carries information, though the flow could be marginally tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be described, and the description covers most call semantics. But for a mutation tool with no annotations and 0% schema coverage, the unexplained 'overwrite' parameter leaves the definition incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains coordinates format, id defaults, and the dotted sub_model_part path, but says nothing about 'overwrite' or 'path', so it only partially covers the six parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add nodes to a .mdpa') with concrete format detail ([x, y] or [x, y, z]). This clearly distinguishes it from siblings like mdpa_move_nodes, mdpa_delete_nodes, and mdpa_get_nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it (adding nodes to an existing mesh), but there is no explicit guidance on when to prefer a sibling such as mdpa_create_geometry_mesh or mdpa_create_structured_mesh, nor any stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_convert_cellsA
Convert cell kinds. mode 'quad_to_tri' splits every quadrilateral element into 2 triangles (e.g. SmallDisplacementElement2D4N -> ...2D3N); 'hex_to_tet' splits hexahedra into 6 tetrahedra (Kuhn split, conforming for structured meshes with consistent node ordering) and the boundary quads into triangles matching the tet faces; 'quadratic_to_linear' drops the mid-edge/face nodes of quadratic cells (tri6->tri, quad8/9->quad, tet10->tet, hex20/27->hex, wedge15->prism, line3->line; ids and sub model parts unchanged, mid nodes kept as unused nodes). Sub model parts follow. element_name / condition_name override the derived new type names. Other cell kinds are left alone. Needed e.g. for the convection-diffusion solver, which requires simplices.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| path | Yes | ||
| output | No | ||
| overwrite | No | ||
| element_name | No | ||
| condition_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses split ratios, node handling ('mid nodes kept as unused nodes'), id preservation, sub-model-part propagation, name overrides, and that non-target cell kinds are untouched. It does not address auth, file-write side effects, or overwrite behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that is front-loaded with the core purpose and mode enumeration; each clause carries technical payload, though the packing of exception cases makes it somewhat heavy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mesh-conversion operation the description is thorough, and an output schema exists so return values need not be explained. The main gap is the unaddressed output/overwrite parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It covers mode exhaustively and explains element_name/condition_name overrides, but says nothing about path, output, or overwrite semantics, leaving half the parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Convert cell kinds') and enumerates each mode's exact transformation (quad_to_tri, hex_to_tet, quadratic_to_linear), so an agent can distinguish it from siblings like mdpa_transform or mdpa_extract without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear motivating context ('Needed e.g. for the convection-diffusion solver, which requires simplices') and states that other cell kinds are left alone, but it names no explicit alternatives 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.
mdpa_create_geometry_meshA
Generate a mesh of a parametric shape and write it as .mdpa (no gmsh needed). Every mesh gets a 'domain' part plus named boundary parts with conditions of condition_name (default LineLoadCondition2D2N in 2D, SurfaceLoadCondition3D4N in 3D). kind and its params: 'annulus' {r_inner, r_outer, n_radial, n_theta, angle=360, triangles=false} quads (or triangles); parts inner, outer (+ start, end for angle<360) 'disc' {radius, n_radial, n_theta} triangles; part boundary 'cylinder' {radius, height, n_radial, n_theta, n_z, inner_radius=None} prisms (solid) or hexahedra (hollow); parts lateral, zmin, zmax 'sphere' {radius, divisions} hexahedra, radially mapped cube; part surface 'polygon' {vertices: [[x, y], ...], refinements=0, holes=None, target_size=None} triangles by ear clipping + midpoint subdivision; parts side_0, side_1, ... plus hole_ per hole loop; holes is a list of vertex loops strictly inside the polygon; target_size adds subdivision rounds until no edge is longer than it (at most 6 rounds total, best effort). Graded sizes without gmsh: size_field is an expression of x, y (e.g. "0.1 + 0.3sqrt(xx + y*y)") and/or size_sources a list of {"point": [x, y]} or {"segment": [[x0, y0], [x1, y1]]} with "size" (edge length at the source) and "growth" (default 0.3, length gained per unit distance); the minimum of all wins. The mesh is refined by conforming longest-edge bisection until every triangle's longest edge fits the local size (max_elements=200000 guards runaway sizes), smooth_iterations=0..100 then Laplacian-smooths interior nodes. element_name overrides the element type (default: SmallDisplacement elements of matching node count). For CAD input or quality-driven meshes use mesh_generate_gmsh.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| path | Yes | ||
| params | Yes | ||
| overwrite | No | ||
| element_name | No | ||
| condition_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does substantial work: it discloses that a 'domain' part plus named boundary parts with conditions are created, the default condition/element types per dimensionality, the refinement/Laplacian-smoothing behavior, and the max_elements=200000 guard against runaway sizes. It does not explain what the overwrite flag does or what happens when the target path already exists, which is the main remaining gap for a file-writing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, but the body is an extremely dense run-on block of kind/param text that is hard to scan. Much of the length is justified by 0% schema coverage, yet tighter formatting (per-kind lines, shorter clauses) would preserve the content with less parsing effort.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description is thorough about mesh generation semantics for a 6-param nested tool. It is nearly complete; only the overwrite behavior and path expectations are left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does for most parameters: kind's five values are enumerated with their full params (r_inner, n_theta, vertices, holes, size_field, size_sources, etc.), and element_name/condition_name defaults are stated. 'overwrite' and 'path' are never explained, so the coverage is strong but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource: generates a mesh for a parametric shape and writes it as a .mdpa file, with the parenthetical '(no gmsh needed)' clarifying the mechanism. It explicitly distinguishes itself from the sibling mesh_generate_gmsh, so an agent can route between them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear alternative and selection condition: 'For CAD input or quality-driven meshes use mesh_generate_gmsh,' and the '(no gmsh needed)' clause implies when this tool is preferred. It stops short of naming when-not conditions against other siblings (e.g. mdpa_create_structured_mesh) or stating prerequisites like a valid workspace path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_create_structured_meshA
Generate a structured mesh and write it as .mdpa. kind: 'line' (size=[L], divisions=[n], submodelparts start/end), 'rectangle' (size=[W,H], divisions=[nx,ny], edge parts left/right/bottom/top, quads or triangles), or 'box' (size=[Lx,Ly,Lz], divisions=[nx,ny,nz], hexahedra, face parts xmin/xmax/ymin/ymax/zmin/zmax). All variants include a 'domain' submodelpart with every node and element; boundary parts carry conditions of condition_name for applying surface loads. Defaults: rectangle SmallDisplacementElement2D4N + LineLoadCondition2D2N, box SmallDisplacementElement3D8N + SurfaceLoadCondition3D4N.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| path | Yes | ||
| size | Yes | ||
| divisions | Yes | ||
| triangles | No | ||
| element_name | No | ||
| condition_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explains that the tool writes a .mdpa file, includes a 'domain' submodelpart, attaches boundary conditions to boundary parts, and provides default element/condition types. It does not cover error scenarios or file-overwrite behavior, but the key side effects and structural output are well described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat dense but well-organized: it front-loads the primary purpose, then breaks down variants and defaults. Every sentence contributes useful information, but the use of parentheses and list-like structures makes it slightly harder to parse quickly. It is appropriately sized for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, multiple mesh variants), the description is complete: it covers all required parameters for each kind, optional parameters, defaults, submodelpart structure, and the fact that an output file is written. The presence of an output schema means return values need not be described. The agent has enough information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It thoroughly explains the meaning of 'size' and 'divisions' for each variant (e.g., size=[W,H], divisions=[nx,ny] for rectangle), the optional 'triangles' flag, and the defaults for 'element_name' and 'condition_name'. Path, while not explicitly described, is self-evident from the verb 'write it as .mdpa'. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Generate a structured mesh and write it as .mdpa.' It further specifies three distinct geometric variants (line, rectangle, box), which distinguishes it from sibling tools like mdpa_inspect or mdpa_validate. The verb 'generate' and resource '.mdpa' file make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: when a structured mesh is needed, and it details the supported kinds (line, rectangle, box) and their configurations. It does not explicitly contrast with alternatives or state when not to use it, but there are no direct sibling tools for mesh creation, and the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_create_sub_model_partA
Create a sub model part (dotted name such as 'Structure_left' or 'domain.fixed' for a child; the parent must exist) from node ids or a selector (see mdpa_select_nodes) plus optional explicit element / condition / geometry ids. include lists entity kinds ('element', 'condition', 'geometry') whose members lying entirely on the part's nodes are added automatically -- use ['condition'] for a load surface. Nodes of added entities join too, and ancestors receive everything. exist_ok=true extends an existing part instead of failing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| path | Yes | ||
| output | No | ||
| include | No | ||
| exist_ok | No | ||
| node_ids | No | ||
| selector | No | ||
| overwrite | No | ||
| element_ids | No | ||
| geometry_ids | No | ||
| condition_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it discloses meaningful behavior: the parent must already exist, entities wholly on the part's nodes are pulled in automatically, added entities drag their nodes in, and ancestors 'receive everything'. It leaves the interacting 'overwrite' parameter and failure modes unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph, front-loaded with the core action and free of filler. It leans on nested parentheses and em-dashes that make it slightly run-on, but nearly every clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but for an 11-parameter, zero-coverage schema the description omits 'path', 'output', and 'overwrite', the last of which interacts with the documented exist_ok. Adequate on semantics, incomplete on the full parameter surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 11 parameters, so the description must compensate; it directly explains selector, node_ids, include (with allowed values), exist_ok, and the element/condition/geometry id trio. The required 'path' and the 'output'/'overwrite' parameters are left entirely undefined, which is a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a sub model part') and pins down the ambiguous part with concrete naming examples ('Structure_left', 'domain.fixed' for a child). It also implicitly distinguishes itself from mdpa_edit_sub_model_part by noting exist_ok 'extends an existing part instead of failing', so an agent can tell creation from editing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives actionable usage context: it points to mdpa_select_nodes for selector semantics and explicitly recommends include=['condition'] 'for a load surface'. It does not, however, state when an agent should prefer this over mdpa_edit_sub_model_part or what conditions make creation inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_delete_entitiesB
Delete elements, conditions or geometries by id (kind: 'element', 'condition', 'geometry'), or every one that belongs to sub_model_part. They are removed from all sub model parts; nodes are kept.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| kind | Yes | ||
| path | Yes | ||
| output | No | ||
| overwrite | No | ||
| sub_model_part | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose a meaningful side effect: entities are removed from all sub model parts while nodes survive. It does not explain the overwrite/output behavior (in-place vs. new file) or whether the deletion is reversible, which matters for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the action and target front-loaded, then the side effect. No filler, though the parenthetical kind enumeration could be folded more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But for a six-parameter destructive operation with no annotations and no schema documentation, the missing semantics of path/output/overwrite leave the agent without enough to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies the 'kind' values ('element', 'condition', 'geometry'), the role of 'ids', and 'sub_model_part', but leaves 'path', 'output', and 'overwrite' entirely unexplained despite 'overwrite' being defaulted in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Delete elements, conditions or geometries by id', and it names the two targeting modes (by id or by sub_model_part). The clause 'nodes are kept' implicitly distinguishes it from mdpa_delete_nodes, though that sibling is never named, so differentiation is only partially explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys the two operating modes (delete by explicit ids, or delete everything belonging to a sub_model_part), which is genuine usage context. However, it never states when to prefer this over mdpa_delete_nodes or other edit tools, and offers no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_delete_nodesA
Delete nodes (by id list or selector). Nodes still used by elements, conditions or geometries are refused unless cascade=true, which deletes those entities too. They are removed from every sub model part and from nodal data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| output | No | ||
| cascade | No | ||
| node_ids | No | ||
| selector | No | ||
| overwrite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries full behavioral burden and does so well: it discloses the refusal precondition, what cascade additionally destroys (dependent entities), and the side effects (removal from every sub model part and from nodal data). It stops short of stating reversibility or whether the file is modified in place versus written via output/overwrite.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, none wasted, with the core operation front-loaded before the conditional behavior. The only minor friction is the referent of 'They' in the final sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. For a destructive mutation tool with zero annotation coverage, the description covers refusal and cascade well but omits what the output/overwrite parameters do and whether the deletion is reversible — gaps an agent would want before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully explains node_ids, selector, and especially cascade, but leaves path, output, and overwrite completely unexplained, so half the parameters remain opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete nodes') plus the two accepted targeting mechanisms (id list or selector). The operation is unambiguous, but the description never differentiates itself from close siblings like mdpa_delete_entities or mdpa_get_nodes, so the agent must infer the boundaries from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the key conditional path — nodes in use by elements/conditions/geometries are refused unless cascade=true — which is genuine usage guidance for choosing the cascade flag. However, it offers no explicit when-to-use-this-vs-an-alternative routing (e.g. versus mdpa_delete_entities), leaving the agent to infer the selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_delete_tableB
Delete a top-level 'Begin Table' block. Refused while a SubModelPart references the table.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| output | No | ||
| table_id | Yes | ||
| overwrite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose one important trait: the referential-integrity refusal condition. It says nothing about the mutation's permanence, whether it rewrites the input file or requires an 'output' path, or how 'overwrite' interacts with an existing target, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action front-loaded and the refusal constraint immediately after. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be narrated. Still, for a destructive file-mutating tool with no annotations and 0% parameter coverage, the description is thin: it leaves the meaning of 'output' and 'overwrite' unresolved that the agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, so the description must compensate and largely does not. Only 'table' is inferable from the text; 'output' (a destination path?) and 'overwrite' (silently replace an existing file?) are never explained, and 'path' versus 'output' semantics are ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and a precisely scoped resource ('a top-level Begin Table block'), which is enough for an agent to distinguish it from mdpa_set_table or mdpa_get_data_blocks. It stops short of naming a sibling or alternative explicitly, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'Refused while a SubModelPart references the table' is a useful precondition that tells the agent when the call will fail, which is real usage guidance. However, there is no statement of when to prefer this over alternatives (e.g. mdpa_set_table, mdpa_delete_entities) or what to do about the referencing SubModelPart first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_edit_sub_model_partA
Edit an existing sub model part (dotted path). action: 'add' members (nodes via node_ids/selector, elements, conditions, geometries; ancestors receive them too), 'remove' members (also from descendants), 'rename' (needs new_name, a single word) or 'delete' (the whole part, its children included; the entities themselves stay in the mesh).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| path | Yes | ||
| action | Yes | ||
| output | No | ||
| new_name | No | ||
| node_ids | No | ||
| selector | No | ||
| overwrite | No | ||
| element_ids | No | ||
| geometry_ids | No | ||
| condition_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose key destructive semantics: 'delete' removes the whole part including children while entities stay in the mesh, and 'remove' also affects descendants. Ancestor propagation for 'add' is also noted. It does not mention permissions, rate limits, or whether edits are reversible/transactional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence organized around the action verbs keeps it front-loaded and mostly waste-free. It is information-rich but readable, with only minor reliance on parenthetical cramming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the destructive semantics of delete/remove are covered. But with 11 parameters at 0% schema coverage, the definition leaves several parameters (overwrite, output, the various id lists) undocumented for an agent that must supply them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it partially does by linking node_ids/selector to 'add', new_name to 'rename' (single word), and noting ancestors/descendants. However, most of the 11 parameters (output, overwrite, element_ids, condition_ids, geometry_ids) get no semantic explanation, leaving a substantial gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (edit) and resource (existing sub model part) and enumerates exactly what edit means via four actions (add/remove/rename/delete). Clearly distinguishes itself from sibling mdpa_create_sub_model_part, which creates rather than edits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action list implies when each mode applies, but there is no explicit when-to-use vs. siblings such as mdpa_create_sub_model_part or mdpa_add_entities. The agent must infer that this operates on existing parts from the word 'existing' and from the delete semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_extractB
Write the contents of one sub model part (dotted path) as a new .mdpa: its entities, the nodes they use, its children, and the part itself as the root part. The input is untouched.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| output | Yes | ||
| overwrite | No | ||
| sub_model_part | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the output is a new .mdpa file, what gets included, and that 'the input is untouched' (non-destructive). It omits any mention of the overwrite parameter's behavior, error conditions, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the core action front-loaded and zero filler. It is efficient, though the enumerated list of included content is doing parameter/behavior work that could be structured more helpfully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, the return value need not be described, which the description correctly omits. However, for a file-producing mutation tool with zero annotation coverage and 0% schema description coverage, the description leaves overwrite semantics and the path/output distinction unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does not. The '(dotted path)' hints at the sub_model_part format and 'new .mdpa' hints at output, but path (the source file), output, and overwrite are never explained. Most of the four parameters remain undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Write ... as a new .mdpa') and enumerates exactly what is extracted: entities, their nodes, children, and the root part. An agent can tell it produces a new standalone mesh file rather than inspecting or mutating one. It stops short of naming any sibling (e.g. mdpa_extract_boundary) to disambiguate from the other extraction/merge tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to use this versus alternatives. The 'sub model part (dotted path)' phrasing implies the input domain and 'the input is untouched' implies a non-mutating extract, but with many siblings (mdpa_extract_boundary, mdpa_merge, mdpa_inspect) the description never says which condition selects this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_extract_boundaryA
Create conditions on the free (unshared) faces of the elements -- the way to get load/flux surfaces on a mesh that has none -- and put them in sub_model_part (created if needed). condition_name is a Kratos type (e.g. 'LineLoadCondition2D2N', 'SurfaceLoadCondition3D4N') or a map {"2": ..., "3": ..., "4": ...} by face node count (needed for prisms, mixed meshes and quadratic cells: quadratic edges have 3 nodes, tet10 / wedge tri faces 6, hex20 / wedge quad faces 8, hex27 faces 9). element_part restricts to one part's elements; selector (see mdpa_select_nodes, e.g. a plane) keeps only faces whose nodes are all selected, giving e.g. just the x=0 face. Faces are oriented outward for positively oriented elements (domain on the left of 2D edges). NOTE: with that orientation a positive POSITIVE_FACE_PRESSURE load acts along the outward normal (a tension); use a negative value for a compressive pressure. Supports linear and quadratic line, triangle, quad, tet, prism and hex cells (measures use the corners).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| output | No | ||
| selector | No | ||
| overwrite | No | ||
| property_id | No | ||
| element_part | No | ||
| condition_name | Yes | ||
| sub_model_part | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: outward orientation for positively oriented elements, the critical NOTE that a positive POSITIVE_FACE_PRESSURE acts along the outward normal (tension) requiring a negative value for compression, and that sub_model_part is created if needed. It omits overwrite semantics and any permission/error behavior, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core purpose is front-loaded, followed by parameter guidance and then the important sign-convention NOTE. It is a dense single paragraph, which is justified by the complexity, though a small amount of parenthetical detail (node-count enumerations) could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers the substantive parameters and behavioral quirks for an 8-param, annotation-free tool. The unaddressed path/output/overwrite/property_id are relatively conventional, leaving only minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for 8 params, so the description must compensate. It explains condition_name thoroughly (Kratos type or a map keyed by face node count, with detailed node-count guidance for quadratic cells), plus element_part and selector. It leaves path, output, overwrite, and property_id undocumented, so it compensates for about half the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a very specific verb+resource: creating conditions on free (unshared) faces and placing them in sub_model_part. The parenthetical 'the way to get load/flux surfaces on a mesh that has none' clarifies intent, and it is readily distinguishable from siblings like mdpa_extract and mdpa_create_sub_model_part.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains when this is the right tool ('a mesh that has none' load/flux surfaces) and describes narrowing behaviors via element_part and selector (with a concrete x=0 plane example). It does not explicitly name a competing sibling and defer to it, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_extrudeA
Extrude a planar (xy) mesh along z into a 3D mesh written to 'output'. heights are the layer thicknesses, e.g. [0.1] * 10 (z0 is the starting level). Triangles become prisms (3D6N), quads hexahedra (3D8N) and 2-node conditions surface quads (3D4N). Type names map '2DnN' -> '3DmN' unless overridden: element_names / condition_names map old -> new name (e.g. {"LineLoadCondition2D2N": "SurfaceLoadCondition3D4N"}). cap_condition_names maps the cap face node count ("3" or "4") to a condition type to create conditions on the new 'zmin' / 'zmax' sub model parts (which always hold the cap nodes). Existing parts are carried over with all layers.
| Name | Required | Description | Default |
|---|---|---|---|
| z0 | No | ||
| path | Yes | ||
| output | Yes | ||
| heights | Yes | ||
| overwrite | No | ||
| element_names | No | ||
| condition_names | No | ||
| cap_condition_names | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden well: it discloses that triangles become 3D6N prisms, quads become 3D8N hexahedra, 2-node conditions become 3D4N surface quads, and that cap conditions land on new zmin/zmax sub model parts. It omits permission/overwrite side effects, but the transformation semantics are unusually well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the core purpose, then proceeds through type mapping, cap conditions, and part carry-over in a logical order. Given the richness of behavior covered, nearly every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the description adequately covers the complex transformation semantics. The main gap is the unmentioned overwrite behavior, which matters for a tool that writes to an output path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 params, so the description must compensate. It meaningfully explains heights (layer thicknesses), z0 (starting level), and the element_names/condition_names/cap_condition_names mapping semantics, but leaves path, output details, and especially overwrite undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource+scope: 'Extrude a planar (xy) mesh along z into a 3D mesh written to output.' The dimensional transformation (2D->3D along z) clearly differentiates it from siblings like mdpa_transform or mdpa_create_geometry_mesh.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the operation itself (extruding a planar xy mesh), but there is no explicit when-to-use/when-not guidance and no named alternative among the many mdpa_* mesh tools. The agent must infer applicability from the verb rather than from stated conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_get_data_blocksA
List the data carried by a .mdpa besides the mesh itself: top-level Tables (id, variables, row count), 'Begin ElementalData' / 'Begin ConditionalData' variables with row counts, vector and flag 'Begin NodalData' blocks, and per-SubModelPart data/table/property references. All of these round-trip through every editing tool.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden; "List" implies a read-only operation but this is never stated outright. It does add one genuinely useful behavioral fact beyond the name — that these data blocks survive round-trips through every editing tool — which is real context an agent needs when deciding whether to edit before or after inspecting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the scope statement, followed by an information-dense enumeration of the block types that maps directly onto the return content. Slightly list-heavy, but each enumerated item earns its place rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description usefully enumerates the categories the agent will see (Tables, ElementalData, ConditionalData, NodalData, SubModelPart references). The main gap is the missing routing guidance against mdpa_inspect and the undefined path parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the sole `path` parameter is undocumented in both schema and description. The name is self-evident enough to keep this at minimum-viable, but there is no hint about whether it is a relative or absolute path, or a .mdpa file vs project path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("List") and resource (data blocks in a .mdpa), and immediately scopes it as "besides the mesh itself," which distinguishes it from mesh-focused siblings like mdpa_get_nodes or mdpa_get_entities. It does not name an alternative explicitly, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use instruction, and the closely related mdpa_inspect is never mentioned. The closing sentence ("All of these round-trip through every editing tool") implies this is the read counterpart to the mdpa_set_* tools, which is only implied usage rather than stated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_get_entitiesA
List elements, conditions or geometries of a .mdpa with their type, property id and node connectivity. kind: 'element' (default), 'condition' or 'geometry'. Filter by explicit ids, by entity_type (e.g. 'LineLoadCondition2D2N') and/or by sub_model_part (dotted path). At most 'limit' rows are returned, with the total count and a truncation flag.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| kind | No | element | |
| path | Yes | ||
| limit | No | ||
| entity_type | No | ||
| sub_model_part | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It usefully discloses that at most 'limit' rows are returned along with a total count and truncation flag, which is critical beyond the schema. It still does not explicitly state that the operation is read-only or describe error behavior, leaving 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences are front-loaded with the core purpose, then parameter guidance, then output truncation behavior. Every sentence adds necessary information with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a read-only list tool with an output schema already covering return values, the description supplies enough context about filtering and pagination. It does not mention permissions or error handling, but for this tool type those are relatively minor omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does well by explaining the semantics of ids (explicit filtering), kind (enum values and default), entity_type (with an example), sub_model_part (dotted path), and limit (row cap). The required 'path' parameter is only implied by context ('a .mdpa') rather than explicitly described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and precise resource ('elements, conditions or geometries of a .mdpa') along with the returned attributes (type, property id, node connectivity). This distinguishes it from sibling tools like mdpa_get_nodes, which handles nodes rather than entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the filter parameters (ids, entity_type, sub_model_part) and the default kind, which implies how to use the tool. However, it gives no explicit guidance on when to choose this tool over alternatives such as mdpa_get_nodes or mdpa_inspect, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_get_nodesA
Return node ids and coordinates from a .mdpa file, optionally restricted to one submodelpart (dotted path like 'domain' or 'outer.inner') or an explicit id list. At most 'limit' nodes are returned (with a truncation flag).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| node_ids | No | ||
| sub_model_part | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the truncation behavior and the limit mechanism, which is useful. However, it does not mention side effects (e.g., read-only nature), error handling, or behavior when both sub_model_part and node_ids are provided, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the primary action and then lists key options. Every phrase adds value and there is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, return values are covered externally. The description explains input parameters and optional filters, which is adequate for a read tool. It could note the interaction between sub_model_part and node_ids, but this is a minor gap. Overall, it is sufficiently complete for an AI agent to invoke the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clearly explains sub_model_part (dotted path examples), node_ids (explicit id list), and limit, but does not elaborate on 'path' (though it's inherently understood from context). This provides meaningful meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: returning node ids and coordinates from a .mdpa file. It further specifies optional filtering by submodelpart or explicit id list and a limit with truncation flag, making it distinct from sibling tools like mdpa_inspect or mdpa_validate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear use case (extracting nodes from an mdpa file) but provides no explicit guidance on when to prefer this tool over alternatives like mdpa_inspect, nor does it state exclusions or prerequisites. The context is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_inspectA
Inspect a Kratos .mdpa mesh file: node/element/condition counts by type, bounding box, property ids and the SubModelPart tree with entity counts.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the read-only nature implicitly with 'Inspect' and lists the output details, but does not explicitly state that no modifications are made, nor does it mention potential side effects, prerequisites, or error behavior. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the action and resource, then lists the delivered information compactly. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, read-only) and the description lists all key outputs. An output schema exists, so return values need not be detailed further. It is complete for practical use, though it could mention error handling or file access requirements, but those are not essential given the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only one parameter 'path' with 0% description coverage. The description compensates by stating it inspects a '.mdpa mesh file', making clear that 'path' refers to the mesh file location. This adds meaning beyond the bare schema and is sufficient for a single, self-explanatory parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with the specific verb 'Inspect' and clearly identifies the resource as a 'Kratos .mdpa mesh file'. It enumerates exactly what information is provided (node/element/condition counts, bounding box, property ids, SubModelPart tree), which distinguishes it from sibling tools like mdpa_validate or mdpa_get_nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the verb 'Inspect' and the listed outputs, but does not explicitly state when to use this tool versus alternatives such as mdpa_validate or mdpa_get_nodes. There are no exclusion criteria or alternative guidance, so it relies on the user inferring the tool's role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_mergeA
Append the mesh in 'other' to the one in 'path' and write 'output' (the inputs are untouched). Ids of 'other' are shifted past the first mesh's; sub model parts with the same name are united (their data, table and property references too). Tables, elemental/conditional data and all nodal data are carried over (colliding table ids are shifted). With merge_tolerance, coincident nodes (e.g. along a shared interface) are merged afterwards, so two blocks transformed into place become one conforming mesh. Inputs with blocks the editor cannot represent (Constraints, ...) are still refused: inspect skipped_blocks first.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| other | Yes | ||
| output | Yes | ||
| overwrite | No | ||
| merge_tolerance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so richly: it discloses that inputs are left untouched, that ids of the appended mesh are shifted past the first, that sub model parts and their data/table/property references are united, that colliding table ids are shifted, and that inputs with unrepresentable blocks are refused with a skipped_blocks signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action ('Append the mesh in other to path and write output') before the detail sentences. It is dense and somewhat run-on, but each sentence carries distinct, non-redundant behavior detail rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mesh-merge operation the description covers id shifting, data carry-over, node merging, and refusal conditions, and an output schema exists so return values need no explanation. The only real gap is the unexplained 'overwrite' flag, which is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% so the description must compensate; it thoroughly explains merge_tolerance (coincident-node merging) and gives clear roles for path, other, and output. The 'overwrite' parameter, however, is never addressed in the text, leaving one of five parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (append/merge two MDPA meshes) and names the exact inputs and output ('the mesh in other' appended to 'path', written to 'output'). This clearly distinguishes it from siblings like mdpa_extract, mdpa_transform, and mdpa_extrude without needing to open those schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete conditions for use: apply merge_tolerance when merging coincident nodes along a shared interface to obtain a conforming mesh, and inspect skipped_blocks first when inputs contain unrepresentable blocks. It does not explicitly name alternative sibling tools to route against, but the when-to-use conditions are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_move_nodesA
Move nodes: either set absolute 'coordinates' (one [x, y, z] per node, in the order of node_ids) or shift every chosen node by 'offset'. Choose the nodes with node_ids or a selector (see mdpa_select_nodes). Elements keep their connectivity, so check the result with mdpa_quality.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| offset | No | ||
| output | No | ||
| node_ids | No | ||
| selector | No | ||
| overwrite | No | ||
| coordinates | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: coordinates must be one-per-node in node_ids order, and elements retain connectivity. However it is silent on whether the operation mutates the file in place vs. writes via 'output', what 'overwrite' does, and whether errors occur on partial node matches — significant 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the verb and the mode fork, with no redundant restatement of the tool name. Every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need not be explained, but with 7 parameters, zero schema descriptions, and no annotations, the description should say more about path/output/overwrite. It adequately covers the geometric semantics but leaves the I/O and overwrite contract ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds real semantics for 'coordinates' (shape and ordering), 'offset', 'node_ids', and 'selector' (pointing to mdpa_select_nodes), but leaves 'path', 'output', and 'overwrite' entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Move nodes') and immediately disambiguates the two distinct behaviors (absolute 'coordinates' vs relative 'offset'). It names sibling tools (mdpa_select_nodes for selection, mdpa_quality for validation) but does not explicitly contrast itself with other mutation siblings like mdpa_transform or mdpa_add_nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly explains the when-to-use fork between setting absolute coordinates and applying an offset, and directs the agent to mdpa_select_nodes for building a selector. There is no explicit 'when not to use' or guidance on overwrite semantics, but the core decision context is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_qualityB
Mesh quality report, per element/condition type: count, measure (length/area/volume, from the corner nodes for quadratic cells) min/mean/max/total, aspect ratio (longest/shortest edge) with the ids of the worst cells, corner-angle extremes in degrees (angle_degrees: min, max and the ids with the smallest angle) for triangles and quads, and the ids of inverted or degenerate cells (non-positive signed measure -- these crash or poison a Kratos run). Linear, quadratic and cubic line, triangle, quad, tet, prism, pyramid and hex cells.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| worst | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does useful work by defining what counts as inverted (non-positive signed measure) and how measures are computed for quadratic cells, but it never states that the operation is read-only, nor does it note behavior on large meshes or any cost/auth considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded and the dense enumeration of reported metrics is appropriate for a quality-report tool. It reads as a single run-on block with stacked parentheses, but almost every clause carries technical information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so detailing return contents is largely redundant, while the description omits the two things the schema does not cover: what 'path' points to and how to interpret 'worst'. It is complete on the 'what it computes' axis but gaps remain on usage and parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters. The mention of 'the ids of the worst cells' and 'the ids with the smallest angle' loosely implies what the 'worst' parameter controls (count of worst items reported), but 'path' is entirely unexplained and the default/meaning of 'worst' is left to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (report) and resource (mesh quality) and enumerates exactly what the report contains: counts, measure stats, aspect ratios, angle extremes, and degenerate cells. This differentiates it implicitly from mdpa_validate and mdpa_inspect, though it never names those siblings to make the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when to prefer mdpa_validate or mdpa_inspect, and no prerequisites. The aside that inverted cells 'crash or poison a Kratos run' hints at motivation but does not tell the agent when this tool is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_renumberA
Renumber nodes, elements, conditions and geometries consecutively from 'start' (references in sub model parts and nodal data follow). Useful after deleting entities or merging meshes.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| start | No | ||
| output | No | ||
| overwrite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does note the important behavioral trait that references in sub model parts and nodal data are also updated, which is valuable. However, it doesn't state whether the operation is in-place vs. written to 'output', how overwrite interacts with existing files, or whether the original file is preserved or destroyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the operation and its scope. The parenthetical clarification of reference-following is well placed. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core operation is described clearly, and an output schema exists so return values needn't be explained. But for a mutation tool with no annotations and 0% parameter coverage, the description should disclose in-place vs. output-writing behavior and overwrite semantics; those gaps leave the agent guessing how to invoke it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — all four parameters (path, start, output, overwrite) are undocumented in the schema. The description only partially compensates: it clarifies 'start' (numbering starts from it, default 1) but says nothing about 'path', 'output' (write destination vs. in-place), or 'overwrite'. Three of four parameters remain semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (renumber) and enumerates exactly which entity types (nodes, elements, conditions, geometries) are affected, and the numbering scheme (consecutively from 'start'). This distinguishes it from mesh-editing siblings like mdpa_merge and mdpa_transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context — 'Useful after deleting entities or merging meshes' — which ties it to concrete workflows (mdpa_delete_entities, mdpa_merge). It stops short of naming explicit alternatives 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.
mdpa_select_nodesA
Find nodes by geometry without changing anything. selector keys (combined as an intersection): ids, part (dotted SubModelPart), box {min:[x,y,z], max:[x,y,z]}, sphere {center, radius}, plane {point, normal} (nodes within 'tolerance' of the plane), expression (nodes where an expression in x, y, z is <= 0, e.g. 'xx + yy - 1.0' for a unit disc), tolerance (default 1e-9 x bounding-box diagonal), all=true. Returns the count, the first 'limit' ids and the bounding box of the selection. Pair with mdpa_create_sub_model_part to name the selection.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| selector | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It does disclose read-only intent ('without changing anything'), the tolerance default (1e-9 x bounding-box diagonal), the combined-as-intersection semantics of selectors, and the return shape. But it omits permission requirements, whether the selection persists, and performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, but the selector enumeration is a dense run-on that packs many concepts into one block. Information density is high and structure is only lightly signaled with parentheticals.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (so return values needn't be re-explained), the description still usefully previews the return (count, first 'limit' ids, bounding box). Combined with the selector documentation, it covers what an agent needs to invoke this correctly, though 'path' semantics and persistence of the selection are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the selector is an unconstrained object, so the description must do heavy lifting. It documents every selector key (ids, part, box, sphere, plane, expression, tolerance, all), their shapes, intersection semantics, and the expression sign convention – far more than the empty nested schema provides. Only 'path' and 'limit' lack explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (find) and resource (nodes) plus the key qualifier 'by geometry without changing anything'. It distinguishes itself from mdpa_get_nodes and mdpa_inspect through the selector-based geometric selection, though it doesn't explicitly name those siblings for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the follow-up tool (mdpa_create_sub_model_part) for naming the selection, giving a clear workflow context. However it doesn't state when to prefer this over mdpa_get_nodes or mdpa_inspect, and there are no exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_set_elemental_dataA
Upsert 'Begin ElementalData ' (kind 'elemental') or 'Begin ConditionalData ' (kind 'conditional') rows: values maps element/condition ids to numbers, lists (written space separated) or raw strings such as "[3](0.0, 1.0, 0.0)" for vectors (kept verbatim). remove_ids deletes rows. Ids must exist; rows follow renumber/merge/delete automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| path | Yes | ||
| output | No | ||
| values | No | ||
| variable | Yes | ||
| overwrite | No | ||
| remove_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the upsert semantics, the exact value encoding (numbers, space-separated lists, raw strings like "[3](0.0, 1.0, 0.0)" kept verbatim), that remove_ids deletes rows, referential integrity ('ids must exist'), and cascading behavior (rows follow renumber/merge/delete automatically). It omits what 'overwrite' changes and whether a session/path must already be open.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler, front-loaded with the core upsert action and block names. Encoding rules and the renumber/merge/delete note each earn their place by adding semantics the schema lacks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no annotations, the description covers the data-encoding and referential aspects well, and the output schema handles return values. However, it is silent on the overwrite flag and the path/output parameters, which an agent needs to call this safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'kind', 'variable' (via the block name), 'values' (multiple accepted forms), and 'remove_ids'. It leaves 'path', 'output', and critically 'overwrite' (default false) unexplained, so coverage of the 7 parameters is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it upserts 'Begin ElementalData <variable>' or 'Begin ConditionalData <variable>' rows, and maps the 'kind' values (elemental/conditional) to those blocks. An agent can tell exactly what gets written. It stops short of naming sibling alternatives such as mdpa_set_nodal_data or mdpa_set_sub_model_part_data to distinguish scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the elemental-vs-conditional branch is explained, and 'Ids must exist' and 'remove_ids deletes rows' hint at preconditions. There is no explicit when-to-use/when-not framing and no pointer to the analogous nodal/sub-model-part setter tools, so the agent must infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_set_entity_propertiesB
Change the property id (which Materials.json entry applies) and/or the Kratos type name of elements or conditions (kind 'element'/'condition'; the new type must have the same node count). Choose entities by ids or by sub_model_part membership.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| kind | Yes | ||
| path | Yes | ||
| output | No | ||
| new_type | No | ||
| overwrite | No | ||
| property_id | No | ||
| sub_model_part | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose a meaningful behavioral constraint (new type must match node count), but it is silent on whether the edit is applied in place, how the 'overwrite'/'output' flags change behavior, and what the mutation destroys. The node-count rule is useful added context, but the mutation/overwrite semantics are left opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action ('Change the property id... and/or the Kratos type name') followed by the constraints and selection method. Dense but efficient, with no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description covers the core operation well. However, for an 8-parameter mutation tool with no annotations, the silent path/output/overwrite parameters and the unspecified write/overwrite behavior leave the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the whole load. It meaningfully explains property_id, new_type, kind, ids, and sub_model_part (including that property_id maps to a Materials.json entry), but path, output, and overwrite are undocumented in both description and schema, leaving gaps it does not compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: change the property id (Materials.json mapping) and/or the Kratos type name of elements/conditions. This is concrete and far from tautological. It does not, however, name or distinguish itself from near-siblings like mdpa_set_properties or mdpa_set_elemental_data, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real operational guidance – kind must be 'element'/'condition', the new type must have the same node count, and entities are selected by ids or sub_model_part membership. But it offers no explicit when-to-use versus the sibling tools that also set properties/materials, so selection remains inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_set_nodal_dataB
Write a 'Begin NodalData ' block value (an initial condition stored in the mesh, e.g. TEMPERATURE) on the chosen nodes (node_ids or selector). A float writes a scalar row, a string such as "[3](1.0, 0.0, 0.0)" a vector row (kept verbatim); fixed=true marks the rows fixed (constrained).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| fixed | No | ||
| value | Yes | ||
| output | No | ||
| node_ids | No | ||
| selector | No | ||
| variable | Yes | ||
| overwrite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose meaningful traits: float vs string value handling, that string vectors are kept verbatim, and that fixed=true constrains the rows. But it omits the overwrite behavior, what 'path' refers to, and the response/output behavior for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the write action and the target resource, kept to a compact multi-clause sentence with no filler. The nested parentheticals are mildly dense but each clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But for an 8-parameter mutation tool with zero annotations and 0% schema coverage, leaving path, variable, overwrite, and output unexplained is a real gap; the description is only partially complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for all 8 parameters. It usefully explains value (scalar vs verbatim vector), fixed (constrained rows), and the node_ids/selector selection path, but leaves path, variable, overwrite, and output undocumented in either the schema or the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (write) and resource ('Begin NodalData <variable>' block value as an initial condition on mesh nodes), which distinctively separates it from siblings like mdpa_set_elemental_data and session_set_nodal_values. The example (TEMPERATURE) grounds the purpose concretely. It does not explicitly name a sibling, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining it writes initial conditions to chosen nodes and how to select them (node_ids or selector), so an agent can infer when to reach for it. However, it never states when to use this over mdpa_set_elemental_data or session_set_nodal_values, and gives no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_set_propertiesA
Edit the mesh-embedded 'Begin Properties' block of one property id (values {"DENSITY": 7850.0} are added/replaced, 'remove' deletes names; lists are written space separated) and/or the 'ModelPartData' header. Most cases keep material data in Materials.json instead -- see materials_set_property.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| output | No | ||
| remove | No | ||
| values | No | ||
| overwrite | No | ||
| property_id | No | ||
| model_part_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden. It usefully discloses that values are added/replaced, 'remove' deletes names, and lists are written space separated, but it does not explain the 'overwrite' flag, the 'output' parameter, or what happens when property_id is null — all material for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, action front-loaded and the alternative-pointer placed last. The dense parenthetical packing value format and remove semantics is a little hard to parse but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return values are covered by the output schema, so they need not be explained. However, for a 7-parameter mutation tool with no annotations and 0% schema coverage, leaving overwrite/output semantics undocumented is a real gap given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, so the description must compensate. It explains the value format, remove semantics, and implicitly ties property_id/model_part_data to the two blocks, but leaves 'overwrite', 'output', and 'path' unaddressed, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb ('Edit') and resource (the mesh-embedded 'Begin Properties' block of one property id and/or the 'ModelPartData' header), so the agent knows exactly which block is touched. It also distinguishes itself from the sibling materials_set_property, though it does not differentiate from other mdpa_set_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent away from this tool in the common case: 'Most cases keep material data in Materials.json instead -- see materials_set_property.' That is a clear when-not plus a named alternative, but no guidance is given for choosing among the other mdpa_set_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_set_sub_model_part_dataB
Replace a SubModelPart's data references wholesale (each None leaves that reference unchanged): data is the 'Begin SubModelPartData' key-value pairs, tables the 'Begin SubModelPartTables' table ids (must exist as top-level Tables), properties the 'Begin SubModelPartProperties' property ids.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| name | Yes | ||
| path | Yes | ||
| output | No | ||
| tables | No | ||
| overwrite | No | ||
| properties | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does add real behavioral context: None leaves a reference unchanged, and table ids 'must exist as top-level Tables' (a validation constraint). But it never mentions the overwrite flag, whether the file is written in place, or what happens to existing data not named.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the verb and replacement semantics front-loaded, then the parameter mapping. No filler, though the run-on construction with parentheticals makes it slightly harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool on a file with zero annotations, four of seven parameters undocumented, and an unexplained overwrite=false default that sits awkwardly against the word 'wholesale,' the description is incomplete. The existing output schema means return values need not be described, but the write/overwrite semantics are a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter help. The description compensates for three of seven parameters (data, tables, properties) with genuine MDPA-block semantics and a validity constraint on tables, but leaves path, name, output, and overwrite completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Replace a SubModelPart's data references wholesale,' and enumerates the three MDPA blocks affected (data, tables, properties). An agent can tell this targets SubModelPart data references, but nothing distinguishes it from the close siblings mdpa_edit_sub_model_part, mdpa_set_properties, or mdpa_set_table.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no routing to alternatives. The word 'wholesale' implies a replace-all semantic rather than a merge, but the description never says when this is preferable to mdpa_edit_sub_model_part or mdpa_create_sub_model_part.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_set_tableB
Create or replace a top-level 'Begin Table <x_variable> <y_variable>' block (piecewise-linear time series, e.g. TIME vs VELOCITY); rows are [x, y] pairs.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| rows | Yes | ||
| output | No | ||
| table_id | Yes | ||
| overwrite | No | ||
| x_variable | Yes | ||
| y_variable | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the upsert nature ('Create or replace') and that the block is top-level, but says nothing about permissions, what happens to file contents, or the interaction with the separate 'overwrite' parameter (default false), which arguably conflicts with the 'replace' wording.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence, front-loaded with the action verb, with no filler. Slightly dense given the nested quoted block syntax, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But for a 7-parameter mutation tool with no annotations and 0% schema coverage, the description leaves overwrite semantics, the meaning of path/output, and error behavior on an existing table unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains rows as '[x, y] pairs' and clarifies x_variable/y_variable through the block syntax, adding real value beyond the bare schema. However, path, output, and overwrite are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create or replace a top-level Begin Table block') and defines what the resource is (piecewise-linear time series, e.g. TIME vs VELOCITY), so an agent can tell this is a table-writing tool. It does not explicitly differentiate itself from siblings like mdpa_delete_table or mdpa_set_nodal_data, keeping it at a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description defines the artifact but gives no when-to-use guidance, no prerequisites, and does not name alternatives such as mdpa_delete_table or mdpa_get_data_blocks. An agent must infer the usage context entirely from the resource definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_transformA
Transform node coordinates (all nodes unless node_ids/selector is given). operation: 'translate' (vector), 'rotate' (angle in degrees about axis, default z, through origin), 'scale' (factors: one number or per axis, about origin) or 'mirror' (across the plane through point with normal). Mirror and negative scaling re-order the connectivity (including quadratic mid-edge and face nodes) so cells keep a positive measure.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | ||
| path | Yes | ||
| angle | No | ||
| point | No | ||
| normal | No | ||
| origin | No | ||
| output | No | ||
| vector | No | ||
| factors | No | ||
| node_ids | No | ||
| selector | No | ||
| operation | Yes | ||
| overwrite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose important non-obvious behavior: defaults ('axis ... default z, through origin') and the re-ordering of connectivity including quadratic mid-edge and face nodes so cells keep a positive measure. It still omits whether the transform is applied in place or written to `output`, and what `overwrite` does, so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The per-operation enumeration is front-loaded and information-dense; nearly every clause adds semantics an agent needs. Minor cost is that it reads as one long sentence rather than a structured list, but there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But for a 13-parameter mutation tool with zero annotations, the description should also cover overwrite/output semantics and the selector format; those omissions leave the agent unsure of the write behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 13 parameters, so the description must compensate, and it does map the operation-specific parameters: translate→vector, rotate→angle/axis, scale→factors, mirror→point/normal, plus the default origin/axis. However path, output, overwrite, node_ids and the shape of selector remain unexplained, leaving a substantial gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Transform node coordinates') and defines the scope ('all nodes unless node_ids/selector is given'), so the agent knows exactly what is affected. It does not, however, differentiate itself from the close sibling mdpa_move_nodes, leaving overlap to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the applicability condition for node selection and enumerates the four valid operations with their required inputs, which implicitly guides usage. But it never says when to prefer this tool over alternatives such as mdpa_move_nodes, and gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdpa_validateA
Validate a .mdpa file: dangling node/element/condition references and empty submodelparts (pure-Python lint). With deep=true the file is additionally round-tripped through the real Kratos ModelPartIO.
| Name | Required | Description | Default |
|---|---|---|---|
| deep | No | ||
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and it does well: it discloses the specific validation checks and the deep=true behavior of round-tripping through Kratos ModelPartIO. It does not state side effects, but validation implies read-only, and the output schema covers return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, followed by a clear mode distinction. Every word earns its place, with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main functionality and the deep-mode option, and the presence of an output schema handles return values. It could mention prerequisites for deep mode (Kratos installation), but the 'real Kratos ModelPartIO' phrase implies this. Overall, it's complete for a validation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the deep parameter clearly (round-trip through real Kratos), while path is self-explanatory as the .mdpa file path. It adds meaning beyond the raw schema but could be more explicit about path format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates .mdpa files and lists specific checks (dangling references, empty submodelparts). This distinguishes it from siblings like validate_project_parameters and mdpa_inspect by focusing on MDPA file integrity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (validating .mdpa files, optionally in deep mode) and hints at a lightweight use case with 'pure-Python lint'. However, it does not explicitly state when to choose this over alternatives or mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_exportA
Export a .mdpa to another mesh format chosen by the output extension (.vtk, .vtu, .msh, .med, .inp, .xdmf, ...) or file_format. Elements come first, then conditions; cell data carries kratos:id, kratos:property_id and kratos:entity (0 element / 1 condition), sub model parts become cell sets (format permitting) and scalar nodal data point data. Cubic triangle10 / quad16 / line4 cells only export to formats that have them (gmsh .msh, not VTK). meshio has no 15-node wedge or 13-node pyramid: they are refused unless linearize_unsupported=true, which writes their corner nodes only (the result carries a warnings entry).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| output | Yes | ||
| overwrite | No | ||
| file_format | No | ||
| linearize_unsupported | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and delivers unusually well: cell/condition ordering, the cell-data fields emitted, sub-model-part-to-cell-set mapping, format-specific element support, and refusal/warning behavior for wedge/pyramid cells. The gap is that it never states what happens when the target file already exists without overwrite=true, nor any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and then organized around behavioral traits; nearly every sentence carries new information. It is a dense run-on paragraph rather than cleanly segmented, but there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be described, and the description covers element ordering, data mapping and format limits thoroughly. It falls short only on the overwrite parameter's semantics and the source/target path roles, which an agent still needs before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must define all five parameters. It meaningfully explains file_format ('chosen by the output extension or file_format') and linearize_unsupported ('writes their corner nodes only, the result carries a warnings entry'), but path, output and especially overwrite are left completely undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (export) and resource (.mdpa mesh), and immediately defines the scope: converting to the format dictated by the output extension or file_format. An agent can distinguish this from mesh_import, mdpa_extract and mdpa_merge without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the format-selection mechanism ('chosen by the output extension ... or file_format') and the format-compatibility caveats, but there is no explicit when-to-use/when-not guidance and no named alternative (e.g. mesh_import for the reverse direction). The agent must infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_generate_gmshA
Mesh arbitrary geometry with gmsh (optional extra: uv sync --extra gmsh) and write it as .mdpa. kind: 'polygon' -- vertices [[x, y], ...] (counter-clockwise) with optional holes (list of vertex loops); physical groups become sub model parts: domain, side_ (outer edge i), hole_; quads=true recombines into quadrilaterals. 'shape' -- 3D tetrahedra of shape 'box' (shape_params {size_xyz: [lx, ly, lz], origin}), 'cylinder' ({radius, height}) or 'sphere' ({radius}); parts domain, boundary. 'file' -- mesh a CAD/geometry file (cad_file: .step, .brep, .geo, .iges...) in dimension dim; its physical groups are kept, else domain/boundary are created. size is the target element size (size_min the lower bound, default size/10). element_name / condition_name set the Kratos types (defaults Element2D3N / LineCondition2D2N / Element3D4N / SurfaceCondition3D3N). gmsh runs in a subprocess, never inside the server. Returns the mesh summary and the gmsh physical groups.
| Name | Required | Description | Default |
|---|---|---|---|
| dim | No | ||
| kind | Yes | ||
| size | No | ||
| holes | No | ||
| quads | No | ||
| shape | No | ||
| output | Yes | ||
| timeout | No | ||
| cad_file | No | ||
| size_min | No | ||
| vertices | No | ||
| overwrite | No | ||
| property_id | No | ||
| element_name | No | ||
| shape_params | No | ||
| condition_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully states that gmsh runs in a subprocess (never in the server) and that it returns the mesh summary and physical groups, which is real behavioral context. However, it says nothing about how the existing output file is handled (the overwrite parameter), timeouts, or failure modes for a tool that writes files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main action is front-loaded, then kind-based blocks organize the per-mode parameters compactly; little is wasted. Density is high by necessity given 16 parameters, though the wrapped indentation is slightly awkward to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 16-parameter generator with no annotations, the description covers mode selection, geometry inputs, sizing, naming defaults, and the subprocess behavior. An output schema exists so return values needn't be restated. It is close to complete, missing only the semantics of timeout, property_id, and overwrite.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 16 parameters, so the description must compensate, and it does for most: vertices, holes, quads, shape, shape_params (with per-shape keys), cad_file, dim, size, size_min, kind, element_name, condition_name, and output are all given meaning. Only timeout, property_id, and overwrite are left undefined, a minor residue.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb+resource+output ('Mesh arbitrary geometry with gmsh ... write it as .mdpa'), then enumerates the three distinct operating modes (polygon/shape/file). This is far clearer than a tautology, but it never names or contrasts against siblings like mdpa_create_geometry_mesh, mdpa_create_structured_mesh, or mesh_remesh, so the agent must infer its niche.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to pick each kind — 'polygon' for vertex loops with optional holes, 'shape' for 3D box/cylinder/sphere, 'file' for CAD/geometry files — which is genuine conditional guidance. It also flags the prerequisite installation (uv sync --extra gmsh). It stops short of stating when to prefer this tool over sibling meshers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_importA
Convert a mesh file of another format (gmsh .msh, VTK .vtk/.vtu, MED, Abaqus .inp, Nastran, XDMF, ... anything meshio reads) into a Kratos .mdpa. The highest-dimension cells become elements, the next lower dimension conditions; named physical groups / cell sets become sub model parts (a 'domain' part with everything is added). Linear and quadratic line, triangle, quad, tetra, hexahedron, wedge and pyramid cells are converted, plus the cubic line4 / triangle10 / quad16 (other cubic and higher Lagrange cells are rejected). 15-node wedges and 13-node pyramids cannot be represented by meshio itself and are refused on export (see mesh_export linearize_unsupported). element_name / condition_name set the Kratos types (defaults are generic Element2D3N ... SurfaceCondition3D4N, fine for thermal or fluid solvers that replace elements; give e.g. SmallDisplacementElement2D3N for structural cases). file_format forces meshio's reader when the extension is ambiguous.
| Name | Required | Description | Default |
|---|---|---|---|
| output | Yes | ||
| source | Yes | ||
| overwrite | No | ||
| file_format | No | ||
| property_id | No | ||
| element_name | No | ||
| condition_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it explains the dimension-to-entity mapping (highest dim → elements, next lower → conditions), that a 'domain' sub model part is always added, which cell types are accepted, that cubic and higher-Lagrange cells are rejected, and that 15-node wedges/13-node pyramids are refused on export. It omits what happens on output collisions (overwrite defaulting to false) and whether the output file is otherwise modified, leaving a small gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the remainder is dense, non-repetitive technical detail rather than padding. It is on the long side and mixes conversion rules, supported-cell enumeration and parameter guidance into one block, which slightly dilutes scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter format-conversion tool with an output schema (so return values need no explanation), the description gives enough to call it correctly: source/output roles, format override, and Kratos type selection. The undocumented property_id and overwrite behavior are the remaining omissions keeping it from complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does explain element_name, condition_name and file_format (including their defaults and intent). However property_id (default 1) and overwrite are never mentioned, so two of seven parameters remain semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource+scope: converting a foreign mesh format (gmsh, VTK, MED, Abaqus, Nastran, XDMF, anything meshio reads) into a Kratos .mdpa. It also names the reverse sibling (mesh_export linearize_unsupported), so an agent can distinguish it from mesh_export and mesh_generate_gmsh without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening sentence establishes when to reach for this tool (importing an existing mesh from another solver/format) and the closing notes when file_format is needed (ambiguous extensions), plus the element_name guidance for structural vs thermal/fluid cases. There is no explicit statement of when NOT to use it or a fuller contrast against mesh_generate_gmsh, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_remeshA
Adaptively remesh a .mdpa with MMG (MeshingApplication) and write a new .mdpa; returns before/after mesh summaries, a boundary preservation check and the field transfer error. Needs KratosMeshingApplication built with MMG (see kratos_install). Strategies: 'levelset' refines around a signed distance given as 'region' ({"type": "sphere", "center": [x, y], "radius": r} or {"type": "box", "min": [...], "max": [...]}; "mode": "inside" (default, the whole region gets min_size) or "surface") or as 'distance_expression' in x, y, z; 'hessian' adapts to the second derivatives of the analytic nodal field field_expression stored in the Kratos scalar variable field_variable; 'uniform' remeshes to the single element size min_size. Sizes default to max_size = mean input element size, min_size = max_size/4; the size grows from min_size to max_size over transition_distance (default 3max_size). preserve_sub_model_parts (default: every part with conditions) are checked to keep their conditions and node bounding box; freeze_sub_model_parts additionally forbids MMG from touching their nodes. check_fields ([{"variable": "TEMPERATURE", "expression": "x + 2y"}]) assigns analytic nodal values before remeshing and reports how well the interpolation reproduces them on the new nodes. Elements must be linear simplices (triangles or tetrahedra, not mixed; quads, hexes and quadratic cells are refused up front - convert with mdpa_convert_cells first). The result reports mesh_kind: planar2d (the verified path), volume3d (tetrahedra) or surface3d (triangles spanning z); the 3D kinds are wired to MmgProcess3D / MmgProcess3DSurfaces but not verified against reference numbers, which a warnings entry says. For 'hessian', interpolation_error (default 0.04) is the target P1 interpolation error - smaller means finer. A metric computed on a coarse mesh under-resolves a sharp feature: passes=3 repeats remeshing on the previous result (the analytic field is re-evaluated on every new mesh), which on the worked example halves the interpolation error at the same element count. Instead of field_expression, 'hessian' can adapt to a SOLVED field: field_results is a result-index.json (a job's results index; pick the record with field_time or field_step, default the last one) or a single ASCII .vtk/.vtu file whose point data holds field_variable on exactly this mesh's nodes (matched by coordinates). The transferred field is written to the output .mdpa as a 'Begin NodalData' block and carried between passes. Existing output is only replaced with overwrite=true.
| Name | Required | Description | Default |
|---|---|---|---|
| passes | No | ||
| region | No | ||
| timeout | No | ||
| max_size | No | ||
| min_size | No | ||
| strategy | No | levelset | |
| overwrite | No | ||
| field_step | No | ||
| field_time | No | ||
| input_mdpa | Yes | ||
| output_mdpa | Yes | ||
| applications | No | ||
| check_fields | No | ||
| field_series | No | ||
| field_results | No | ||
| field_variable | No | ||
| field_expression | No | ||
| distance_expression | No | ||
| interpolation_error | No | ||
| transition_distance | No | ||
| freeze_sub_model_parts | No | ||
| preserve_sub_model_parts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and does so thoroughly: it states the external dependency (KratosMeshingApplication built with MMG, see kratos_install), the overwrite semantics ('existing output is only replaced with overwrite=true'), the write-back behavior (NodalData block carried between passes), element-type refusals, and an explicit warning that 3D paths are wired but not verified against reference numbers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action is front-loaded and virtually every sentence carries functional information rather than filler, which justifies the length for a 22-parameter tool. However it is delivered as one undifferentiated block with no grouping or bullets, making the dense strategy/size/field material harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, absent annotations, and 0% schema coverage, the description covers the safety profile, prerequisites, strategy selection, result content, and warning surface. An output schema exists, yet the description still usefully flags the reported fields and warnings, so an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must supply all parameter meaning, and it defines most of them richly (region object shape with mode, distance_expression, field_expression/field_variable, size defaults and transition_distance, preserve/freeze sub-model parts, check_fields, passes, interpolation_error, field_results selection). It leaves a few parameters unaddressed, notably timeout, applications, and field_series, which remain opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb+resource ('Adaptively remesh a .mdpa with MMG') and states the output ('write a new .mdpa') plus what is returned (before/after summaries, boundary check, transfer error). This is clearly distinguishable from siblings like mesh_generate_gmsh (creation) or mdpa_convert_cells (conversion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives strong in-context guidance: element-type prerequisites with an explicit alternative ('convert with mdpa_convert_cells first'), and the conditions under which each strategy applies (levelset for signed distance, hessian for field curvature, uniform for a single size). It does not directly contrast itself with other mesh-producing siblings such as mesh_generate_gmsh or add_remeshing_process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_add_processA
Add ANY Kratos process to a ProjectParameters.json -- the generic counterpart of add_boundary_condition / add_output_process. python_module is a module name from kratos_list_processes (e.g. 'assign_scalar_variable_process', 'apply_constraint_vector_process', 'compute_...'); 'parameters' are its Parameters (see kratos_get_process_defaults for the schema). With merge_defaults (default) the process' real default settings fill every key you omit (needs the Kratos source tree). kratos_module is inferred ('KratosMultiphysics' for core, 'KratosMultiphysics.' for application processes; pass it explicitly if a warning says it was guessed). The block goes into process_list of 'section' ('processes' by default, 'output_processes' for vtk/gid output modules), created if missing, at 'position' (default: end). Warnings flag model parts missing from the mesh and, with a Kratos build, unknown variable names.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | ||
| section | No | ||
| position | No | ||
| parameters | No | ||
| process_list | No | ||
| process_name | No | ||
| kratos_module | No | ||
| python_module | Yes | ||
| merge_defaults | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that merge_defaults fills omitted keys from the Kratos source tree, that kratos_module is inferred and may need to be passed explicitly after a warning, that the target section is created if missing, and that warnings are emitted for model parts absent from the mesh and unknown variable names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: purpose and sibling relationship come first, then mechanics. For a 10-parameter tool with a default-filling side effect, the length is largely earned, though the section/process_list sentence is slightly tangled.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the mutation mechanics and warning behavior are covered. The only real omissions are the undocumented 'stage' and 'process_name' parameters in an otherwise complex 10-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it explains the key parameters well: python_module's expected values and source, parameters' schema origin, merge_defaults behavior, kratos_module inference, section/process_list placement and position default. Gaps remain for 'stage' and 'process_name', which are never mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Add ANY Kratos process to a ProjectParameters.json') and immediately positions itself as the generic counterpart of add_boundary_condition/add_output_process, so an agent can distinguish it from siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to kratos_list_processes for module names and kratos_get_process_defaults for the parameters schema, and contrasts itself with the specialized sibling tools. It stops short of stating precisely when to prefer the specific tools over this generic one, so it is clear context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_delete_settingB
Delete a key (or list item by index) from a ProjectParameters.json by JSON Pointer. Returns the removed value.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | ||
| pointer | Yes | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and gives partial coverage: it discloses the return value and that deletion targets either a key or a list element by index. It omits error behavior for a missing pointer, whether the file is mutated in place, and any permission/prerequisite context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, verb-led and front-loaded, with essentially no waste. The second sentence is mildly redundant given an output schema exists, which keeps it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with zero annotations and 0% schema coverage, the description leaves the 'stage' parameter unexplained and says nothing about failure modes. The output schema covers return details, so the missing piece is primarily parameter and error context rather than return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should compensate. It meaningfully clarifies the 'pointer' parameter (JSON Pointer), ties parameters_file to ProjectParameters.json, and explains key-vs-index targeting, but the 'stage' parameter is never mentioned and no format examples are given for the file path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) plus resource (a key or list item by index) with the target artifact (ProjectParameters.json) and mechanism (JSON Pointer). An agent can distinguish it from project_get_setting/project_set_setting. It stops short of explicitly naming a sibling to prefer for alternate operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. It never routes the agent between this and relatives like project_remove_process or project_set_setting, so the agent must infer the boundary. The 'or list item by index' hint is about mechanics, not selection between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_get_settingA
Read any part of a ProjectParameters.json by JSON Pointer, e.g. '/solver_settings/time_stepping/time_step' or '/processes/loads_process_list/0' ('' = the whole file or stage). For multi-stage (orchestrator) files pass stage; the pointer is then relative to that stage's stage_settings.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | ||
| pointer | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose non-obvious behavior: empty pointer returns the whole file/stage, and stage makes the pointer relative to stage_settings. But it says nothing about error handling for invalid pointers or missing paths, or whether the read is cached – gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed clauses with no filler: the action/scope, the pointer examples, and the stage rule. Everything is front-loaded and every sentence carries behavioral or parameter information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description supplies the essential call semantics (pointer format, empty-pointer case, stage relativity). What remains thin is failure behavior on bad pointers, but for a read tool with a return schema this is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fully explains 'pointer' with two concrete examples and '' semantics, and explains 'stage' behavior (pointer becomes relative to stage_settings in multi-stage files), covering two of three parameters meaningfully. 'parameters_file' is only implied by context but is self-evident from the tool's resource.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read any part of a ProjectParameters.json by JSON Pointer'. This immediately distinguishes it from the write siblings (project_set_setting, project_delete_setting, project_update_solver) by operation type, and the JSON Pointer specificity removes ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains how to target content (JSON Pointer syntax, '' for the whole file) and when stage applies (multi-stage/orchestrator files), which is implied usage guidance. However, it never names an alternative tool or states when to prefer this over e.g. explain_project_parameters, project_list_processes, or session_get_parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_list_processesA
List every process block of a ProjectParameters.json (all lists of 'processes' and 'output_processes') with its section, list name, index, python_module, model_part_name, variable_name and interval. The (list, index) pair addresses a block in project_update_process / project_remove_process.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. 'List' implies a safe read, and it discloses the returned content well, but it says nothing about required file validity, error behavior, or side effects. Adequate but with clear gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with no wasted words. The scoping statement comes first and the addressing guidance follows, so the agent gets the key information immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, return values needn't be explained, and the description nonetheless characterizes the output fields. It links to the update/remove siblings, but omits the meaning of the stage parameter and any error/edge-case behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 2 parameters, yet the description never explains parameters_file or stage. It explains the (list, index) addressing concept, but that is not an input parameter, so the input semantics are largely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (process blocks of ProjectParameters.json), and enumerates exactly which fields are returned. It is clearly distinguished from siblings like project_update_process and project_remove_process, which it explicitly references.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description frames the tool's role in the workflow: the (list, index) pair it returns addresses a block in project_update_process / project_remove_process, which implies when to use it. It does not state prerequisites or when-not to use it, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_remove_processB
Remove process blocks, addressed by process_list + index or by matching python_module / model_part_name / variable_name. More than one match is refused unless all_matches=true. Returns the removed blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | ||
| stage | No | ||
| section | No | ||
| all_matches | No | ||
| process_list | No | ||
| python_module | No | ||
| variable_name | No | ||
| model_part_name | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose two real behavioral traits: the multi-match refusal and that removed blocks are returned. It still omits whether deletion is permanent/reversible, any permission or file requirements, and the failure mode when nothing matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences that front-load the core action (remove blocks) before the addressing modes and the all_matches guardrail. No filler, though the final 'Returns the removed blocks' overlaps with the existing output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, the return value need not be re-explained, and the description handles the central matching/ambiguity logic well. For a 9-parameter mutation tool with 0% schema coverage and no annotations, though, leaving the required parameters_file and the stage/section parameters undocumented is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does explain process_list, index, python_module, model_part_name, variable_name and all_matches. But it leaves four parameters (stage, section, and notably the required parameters_file) completely unexplained, so it only partially covers the 9-param surface and does not clarify which addressing form is mutually exclusive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Remove) and resource (process blocks), and goes further by describing the two addressing modes (process_list + index vs. matching python_module / model_part_name / variable_name). It is clearly distinguishable from project_add_process, project_update_process, and project_list_processes by the verb and resource, but it never explicitly names or contrasts those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining how to address blocks and that ambiguous matches are refused unless all_matches=true, which is a useful selection rule. However, it never states when an agent should use this tool versus project_update_process or project_list_processes, nor any prerequisite (e.g. needing to resolve matches first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_set_settingA
Set (or add) any value in a ProjectParameters.json by JSON Pointer, e.g. pointer '/solver_settings/time_stepping/time_step' value 0.05, or '/processes/loads_process_list/-' to append a whole process block to a list. Missing intermediate objects are created when create=true. Returns the previous value. For multi-stage files pass stage (pointer relative to its stage_settings). The file is rewritten atomically.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | ||
| value | Yes | ||
| create | No | ||
| pointer | Yes | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that missing intermediate objects are created when create=true, that the file is rewritten atomically, and that the previous value is returned. It omits permission/auth requirements and failure behavior, keeping it just short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb+resource, then progressively details examples, flags, and return behavior. Dense but every sentence earns its place; the wording is slightly run-on but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations, the description covers mutation semantics, atomicity, and return value, and an output schema exists so returns need not be over-explained. Missing only parameters_file semantics and any auth/error context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does for most parameters: pointer (JSON Pointer syntax with examples), value, create (creates intermediates), and stage (pointer relative to its stage_settings). Only parameters_file is left without explicit meaning, a minor gap in an otherwise strong compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Set (or add) any value in a ProjectParameters.json by JSON Pointer') and gives two concrete pointer/value examples, including an append case. It is clearly distinct from siblings like project_get_setting and project_delete_setting without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through worked examples (single value, list append) and the create/stage flags, so an agent can infer the mechanics. However, it never states when to prefer this generic setter over specialized siblings such as project_add_process, project_update_solver, or project_update_process, nor 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.
project_update_processA
Change the Parameters of one existing process block. Address it by process_list + index (from project_list_processes) or by matching python_module / model_part_name / variable_name (must match exactly one block). 'parameters' is deep-merged into the block's Parameters (nested objects merge, everything else replaces); replace=true swaps the whole Parameters object instead.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | ||
| stage | No | ||
| replace | No | ||
| section | No | ||
| parameters | Yes | ||
| process_list | No | ||
| python_module | No | ||
| variable_name | No | ||
| model_part_name | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the deep-merge semantics ('nested objects merge, everything else replaces') and the replace flag's effect. It also implies an error condition by requiring the match to hit 'exactly one block'. It omits reversibility/permission notes, but the mutation semantics are unusually well documented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the operation and then the addressing and merge semantics. Every sentence earns its place, though the technical detail makes it slightly heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with 0% schema coverage and no annotations, the definition covers the core addressing and merge behavior but leaves stage, section, and parameters_file undefined despite parameters_file being required. An output schema exists, so return values needn't be explained, but the parameter gaps hold this below a full score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains index, process_list, python_module, model_part_name, variable_name, parameters, and replace, which is meaningful added value. However, three parameters — stage, section, and the required parameters_file — 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change the Parameters of one existing process block'), which cleanly distinguishes it from project_add_process, project_remove_process, and project_list_processes. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes the two addressing modes (process_list + index, or matching python_module/model_part_name/variable_name) and points to project_list_processes as the source of addresses. It doesn't state when to prefer this over project_add_process or project_update_solver, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_update_solverA
Update solver_settings / problem_data of a ProjectParameters.json. 'settings' is deep-merged into solver_settings (e.g. {"solver_type": "Dynamic", "analysis_type": "non_linear", "residual_relative_tolerance": 1e-6}). linear_solver_preset applies a block from list_linear_solver_presets (sparse_lu, amgcl, cg, ...), or pass an explicit linear_solver_settings. time_step sets solver_settings.time_stepping.time_step; start_time / end_time live in problem_data. domain_size sets solver_settings.domain_size. mesh_file points model_import_settings at an .mdpa (input_type 'mdpa', file name without extension, relative to the case directory) and materials_file sets material_import_settings.materials_filename. Returns what changed. Run validate_project_parameters(deep) afterwards to check the solver accepts it.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | ||
| end_time | No | ||
| settings | No | ||
| mesh_file | No | ||
| time_step | No | ||
| start_time | No | ||
| domain_size | No | ||
| materials_file | No | ||
| parameters_file | Yes | ||
| linear_solver_preset | No | ||
| linear_solver_settings | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the deep-merge semantics of 'settings' (critical, since plain merge vs deep-merge changes outcomes), the relative-to-case-directory resolution for mesh_file, and that the result 'returns what changed'. It lacks permission/reversibility notes, but the merge and return behavior are the key traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the file and sections being edited, then dense per-parameter mapping, ending with the recommended validation step. It is one heavy paragraph rather than scannable bullets, but nearly every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and an output schema (so return values need not be described), the description covers the main behaviors, the parameter-to-setting mappings, and a follow-up validation step. Gaps are minor: 'stage' and 'parameters_file' semantics and any permission constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 11 params, so the description must compensate and largely does: it explains settings deep-merge with an example, the linear_solver_preset vs linear_solver_settings choice, the time_step/start_time/end_time targets, domain_size, and the indirect mesh_file/materials_file mappings (input_type 'mdpa', extensionless name). Only 'stage' and 'parameters_file' are left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: updating solver_settings / problem_data of a ProjectParameters.json. It is clearly scoped against siblings like project_set_setting and project_update_process by naming the exact file sections it mutates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete usage context: which field each argument drives, that linear_solver_preset pulls a block from list_linear_solver_presets (or you can pass linear_solver_settings), and an explicit follow-up workflow 'Run validate_project_parameters(deep) afterwards'. It stops short of stating when NOT to use it, but the routing and post-step guidance are strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_animateA
Render a time series of VTK/VTU results into an animated GIF (requires the optional pyvista 'viz' extra). 'files' is a directory (e.g. the case's vtk_output/) or a glob; frames are ordered by the numbers in their names. Coloring/warping/crop_bounds options as in results_render, with one color range, crop and camera across all frames. Small GIFs are returned inline; the file path is always returned.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | ||
| files | Yes | ||
| camera | No | iso | |
| warp_by | No | ||
| gif_path | No | ||
| variable | No | ||
| component | No | ||
| max_frames | No | ||
| show_edges | No | ||
| crop_bounds | No | ||
| warp_factor | No | ||
| window_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that an optional extra is required, frames are ordered by numbers, one shared color/crop/camera is applied, small GIFs are returned inline, and the file path always returned. This goes beyond schema details and gives useful operational context, though it doesn't mention side effects like file creation explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main action, then clarifies the key input and output behavior. Every sentence earns its place, with no redundant filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, no output schema, and no annotations, the description covers the essential points: purpose, prerequisite, input semantics, shared configuration, and output format. It leverages the sibling results_render to avoid repeating option semantics. It doesn't explain every parameter but provides enough for an agent to select and invoke the tool correctly, especially with descriptive parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'files' in detail (directory or glob, numeric ordering) and references 'Coloring/warping/crop_bounds options as in results_render,' which helps for those parameters. However, many parameters like fps, max_frames, show_edges, warp_factor, window_size, and gif_path are not individually described. The names and defaults are somewhat self-explanatory but the description does not add substantial meaning beyond the schema for them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+output: 'Render a time series of VTK/VTU results into an animated GIF.' It clearly distinguishes from sibling results_render (static rendering) by focusing on time series animation, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the prerequisite (requires pyvista 'viz' extra) and explains what 'files' should be (directory or glob with numeric ordering). The reference to 'as in results_render' implies shared options, and the existence of results_render as a sibling provides clear context for when animation is intended versus a single-frame render. It doesn't explicitly say 'use this instead of results_render for animations,' but the distinction is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_compareC
Compare histories or matching-mesh fields at matching physical times without interpolation.
| Name | Required | Description | Default |
|---|---|---|---|
| atol | No | ||
| mode | No | field | |
| rtol | No | ||
| point | No | ||
| csv_file | No | ||
| variable | Yes | ||
| candidate | Yes | ||
| reference | Yes | ||
| time_atol | No | ||
| association | No | point | |
| entity_index | No | ||
| candidate_series | No | ||
| reference_series | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions one key trait—'without interpolation'—and implies that comparisons happen only at matching physical times. However, it does not disclose how mismatches are handled, what tolerances are used (atol, rtol, time_atol), whether the operation is read-only, or what the output looks like. For a tool with 13 parameters, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and is efficient in wording, but it is too brief for the tool's complexity. It conveys the core idea but omits crucial context. Conciseness is achieved, but at the cost of completeness. The sentence is front-loaded with the main action, but there is no elaboration on scope or edge cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 13 parameters, zero schema descriptions, and no annotations, the description is severely inadequate. It does not explain the return format (despite an output schema), the meaning of key parameters, how tolerances are applied, or any limitations. An agent cannot confidently invoke this tool correctly based on the current description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning the schema provides no parameter descriptions. The description adds nothing about any of the 13 parameters—it does not explain what 'reference', 'candidate', 'variable', or the various tolerances mean. Since the schema is silent, the description should compensate but does not, leaving the agent with no parameter-level guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb 'compare' and specifies the resources: histories or matching-mesh fields, and the condition 'at matching physical times without interpolation'. This distinguishes it from sibling tools like results_time_history or results_probe, though it does not explicitly name an alternative. The purpose is clear and specific, but it could better differentiate itself by naming a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not state typical use cases, prerequisites, or when not to use it. The only implied context is that it is for comparison, but there is no explicit direction for an agent choosing between this and other results-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_convergenceA
Extract convergence information from a simulation log (by job_id or explicit log file path): per-step nonlinear (or CoSimulation coupling) iteration counts, residual ratios, and which steps converged.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No | ||
| log_file | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the read/extract nature and the specific data returned, but says nothing about failure modes, mutual exclusivity of the two optional sources, required permissions, or log-format expectations — significant gaps for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the action and resource, then qualifies the source and the outputs. No filler and no repetition of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description stays appropriately scoped for a two-parameter read tool. The one unresolved ambiguity — both parameters are optional with no stated precedence or exclusivity — keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and neither parameter has a description, yet the text clarifies the role of both: one selects by job_id, the other by explicit log file path, framing them as alternative sources. That is real meaning added beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("extract") and resource ("convergence information from a simulation log") and enumerates the returned content (per-step iteration counts, residual ratios, converged steps). This clearly differentiates it from generic siblings like results_summary or results_probe, though it never names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by naming the two source modes (job_id vs explicit log file path), but there is no explicit when-to-use/when-not guidance and no routing against obvious siblings such as job_logs or results_list. An agent must infer the intended context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_listA
Discover result artifacts in a case directory (recursively): VTK/VTU files, GiD post files, HDF5, JSON results and point-output .dat/.csv files, sorted lexically by name (not physical time).
| Name | Required | Description | Default |
|---|---|---|---|
| case_dir | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses two key behaviors beyond a basic listing: recursive search and lexical sorting (explicitly noting not physical time). This adds useful context, though it does not explicitly state read-only status or error handling; the word 'discover' implies non-mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and resource, lists file types, and notes the sorting nuance. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format is likely covered. However, the description omits edge-case behavior (e.g., empty directories, non-existent paths) and does not clarify how this tool relates to other results_* siblings beyond the implicit list function. For a simple list tool it is mostly adequate, but some contextual guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, case_dir, has 0% schema description coverage. The description merely repeats the term 'case directory' without adding details on path format, required permissions, validation, or absolute vs relative paths. It fails to compensate for the schema gap, leaving the parameter semantics under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (discover result artifacts) and resource (case directory), and enumerates concrete file types (VTK/VTU, GiD post, HDF5, JSON, .dat/.csv) plus the sorting behavior. It clearly distinguishes from sibling results tools by focusing on file discovery rather than time history, probing, or rendering, but it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when a list of result files is needed) but provides no explicit guidance on when not to use it or which sibling tool to choose instead. There is no mention of alternatives like results_time_history or results_summary, leaving the agent to infer usage context from the name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_probeA
Read the value of a variable at one location of a VTK/VTU result: either the mesh point nearest to 'point' [x, y, z], or the point at 0-based index 'node_index'. Returns the value and the actual coordinates used.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ||
| point | No | ||
| variable | Yes | ||
| node_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the two selection modes and that actual coordinates are returned, acknowledging approximation. However, it omits behavior for conflicting or missing point/node_index inputs, and does not mention error handling or precedence, leaving behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core action and followed by the two selection modes and return value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers the primary functionality and return value. Minor gaps remain regarding parameter constraints and error cases, but the presence of an output schema reduces the need to detail return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clearly explains 'point' and 'node_index' by defining selection modes. However, 'file' and 'variable' are left implicit, and the expected interplay between optional parameters (whether exactly one must be provided) is not specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a variable's value at a specific location, distinguishing it from overview tools like results_summary and rendering tools like results_render. It specifies the exact mechanism (nearest point or node index), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'at one location' clearly implies this tool is for single-point probing, distinct from broader result exploration tools. However, it does not explicitly mention alternatives or when not to use it, leaving some room for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_renderA
Render a VTK/VTU result file to a PNG screenshot, returned inline (requires the optional pyvista 'viz' extra). Colors the mesh by 'variable' (point or cell data; vector fields default to magnitude, or pick component 'x'/'y'/'z'), optionally warps the geometry by a vector field such as DISPLACEMENT scaled by warp_factor. Camera presets: xy, xz, yz, iso. crop_bounds clips to a region of interest before framing the camera -- [xmin,xmax,ymin,ymax] or [xmin,xmax,ymin,ymax,zmin,zmax] -- essential for e.g. a small body in a huge far-field CFD domain, otherwise invisible at full-domain zoom. The PNG is saved next to the input file unless image_path is given.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ||
| camera | No | iso | |
| warp_by | No | ||
| variable | No | ||
| component | No | ||
| image_path | No | ||
| show_edges | No | ||
| crop_bounds | No | ||
| warp_factor | No | ||
| window_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure. It discloses that the image is returned inline, saved next to the input file unless image_path is given, that vector variables default to magnitude or can pick a component, that warping scales by warp_factor, and that crop_bounds clips before framing the camera. This is rich operational detail beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds value: output format, dependency, coloring, warping, camera, crop bounds rationale, and output file behavior. It is front-loaded with the core purpose and does not repeat schema information verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no annotations and no output schema, the description covers most behavior thoroughly, including the critical crop_bounds use case. However, it omits show_edges and window_size details and does not explicitly discuss return values or potential failure modes, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well for many parameters: file type, variable, component, warp_by (via DISPLACEMENT example), warp_factor, camera presets, crop_bounds format, and image_path. However, it does not explain show_edges or window_size behavior, leaving those parameters underdocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+output: 'Render a VTK/VTU result file to a PNG screenshot'. This clearly distinguishes results_render from sibling tools like results_list, results_probe, results_summary, and results_animate, all of which have different purposes (listing, probing, summarizing, animating).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful usage context: it warns about the optional 'pyvista' extra, explains variable coloring, warping, camera presets, and highlights crop_bounds as essential for small bodies in huge domains. However, it does not explicitly state when NOT to use this tool or name an alternative like results_animate for motion visualization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_summaryA
Summarise a VTK/VTU result file: number of points/cells, the variables present, and per-variable statistics (min/max/mean, or magnitude stats for vector fields). Optionally restrict to one variable.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ||
| variable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for disclosing behavior. It openly explains what is returned (counts, variables, per-variable statistics) and the optional variable restriction. It does not mention edge cases (e.g., invalid file, unsupported format), but for a summarization tool the core behavior is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that packs all key information: resource, what is summarized, and the optional restriction. No redundant or misleading words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to detail return values. It covers the essential inputs and behavior, and is sufficiently complete for a straightforward summarization tool. It could add caveats about file access or variable name syntax, but these are not critical for a summary function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful context to both parameters: 'VTK/VTU result file' clarifies the expected file type, and 'optionally restrict to one variable' explains the purpose of the variable parameter. This goes beyond the basic schema by giving usage context, though it does not specify exact path formats or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Summarise') and resource ('VTK/VTU result file'), and enumerates the exact summary contents (points/cells, variables, per-variable statistics). It clearly distinguishes itself from sibling tools like results_probe or results_list by focusing on aggregated statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its purpose but does not explicitly state when to choose this tool over siblings such as results_list or results_probe. There is no mention of alternatives or conditions like 'use for overview, use results_probe for point sampling.' This is a clear but implicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_time_historyB
Probe a physical-time series from an index path or explicit file/time records; optionally export CSV.
| Name | Required | Description | Default |
|---|---|---|---|
| point | No | ||
| series | No | ||
| source | Yes | ||
| csv_file | No | ||
| variable | Yes | ||
| association | No | point | |
| entity_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose the read-only probing intent and the optional CSV export side effect. However, it does not explain whether csv_file writes to disk vs returns content, whether source paths must be pre-existing, or any permission/limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The whole description is one front-loaded sentence with no filler: the action and resource come first, then source forms and optional export. It earns its place while staying minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no annotations and zero schema descriptions, this definition leaves a substantial gap: parameter roles like association and entity_index are unexplained, and usage tradeoffs against sibling results tools are absent. The output schema covers return shape, but that does not make up for missing invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only maps to two parameters: source (index path or file/time records) and csv_file (optional export). Seven parameters exist, so point, series, association, variable, and entity_index remain semantically unexplained beyond their titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Probe') and resource ('physical-time series') as well as two source forms ('index path or explicit file/time records') and optional CSV export. This is clear enough to show it deals with time-history extraction, though it does not explicitly distinguish it from the similarly named results_probe sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose this over siblings like results_probe, results_summary, or results_compare, and no exclusions or prerequisites are stated. The only contextual clue is the source wording, which implies existing index paths or file/time records but does not say how to decide between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_simulationA
Start a Kratos simulation as a background job and return its job_id. The analysis class is taken from the 'analysis_stage' key in the parameters, or inferred from solver_type; override with analysis_type (structural/fluid/thermal/potential_flow) or analysis_class ('module.path:ClassName'). If wait_seconds > 0, poll up to that long and return the final status if the job finishes in time. Track progress with job_status/job_logs.
mpi_ranks launches the case under an MPI launcher (mpiexec/mpirun, or KRATOS_MPI_LAUNCHER) with that many ranks; the case must set problem_data.parallel_type to "MPI" and the build must have MPI support, otherwise the call fails before any job is created. Rank 0 logs to the job log; other ranks to job_logs(rank=N). omp_threads sets OMP_NUM_THREADS/MKL_NUM_THREADS. Not supported for multi-stage or CoSimulation or FSI cases, checkpoints or studies.
Multi-stage (orchestrator + stages), CoSimulation (coupled solver in solver_settings, see create_cosim_project) and partitioned FSI (solver_type 'partitioned', see create_fsi_project) cases are detected automatically; CoSimulation needs KratosCoSimulationApplication and FSI needs KratosFSIApplication (plus fluid, structural, mesh-moving and mapping applications).
| Name | Required | Description | Default |
|---|---|---|---|
| isolate | No | ||
| case_dir | Yes | ||
| mpi_ranks | No | ||
| omp_threads | No | ||
| wait_seconds | No | ||
| analysis_type | No | ||
| analysis_class | No | ||
| external_inputs | No | ||
| parameters_file | No | ProjectParameters.json |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does so well: async job semantics, wait_seconds polling behavior, MPI preconditions that cause failure before job creation, per-rank log routing, env-var effects of omp_threads, and auto-detection of multi-stage/CoSim/FSI cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but organized into three topical paragraphs with the core action front-loaded; long, yet nearly every sentence carries operational detail an agent needs (MPI, threading, case-type detection).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a launch tool: output schema covers return values, and the description supplies the failure modes, prerequisites, and case-type detection logic an agent needs to call it correctly without annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across 9 params, the description compensates by explaining analysis_type/analysis_class resolution, wait_seconds, mpi_ranks, and omp_threads. However, isolate, external_inputs, and parameters_file (default 'ProjectParameters.json') are never mentioned, leaving three parameters unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Start a Kratos simulation as a background job') plus the primary return value ('return its job_id'), which immediately distinguishes it from sibling job-inspection tools like job_status and job_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: track progress with job_status/job_logs, see create_cosim_project and create_fsi_project for those case types, and states the when-not conditions for mpi_ranks (multi-stage, CoSimulation, FSI, checkpoints, studies).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_advanceA
Advance the simulation by steps solution steps (or until the
model time reaches until_time), running the same sequence as
AnalysisStage.RunSolutionLoop: AdvanceInTime, InitializeSolutionStep,
SolveSolutionStep, FinalizeSolutionStep and, if output=True, the
configured output processes. Stops early at the case's end_time.
Returns the new time, whether the run is finished, why it stopped
(steps_completed / until_time_reached / end_time_reached) and a
per-step history (step, time, converged, wall_seconds). If the call
exceeds timeout seconds it returns busy=True and the worker keeps
running; poll session_status until busy is false.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | ||
| output | No | ||
| timeout | No | ||
| session_id | Yes | ||
| until_time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does substantial work: it discloses early stopping at end_time, the asynchronous timeout/busy semantics where the worker keeps running, and the per-step history returned. It omits prerequisites (e.g. that a session must be started) and whether output processes write persistent files, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, and the remaining sentences earn their place by covering the solution loop, stop reasons, return payload, and the busy/poll path. It is dense but well ordered, with only mild redundancy against the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, state-mutating session tool with an output schema, the description supplies the execution sequence, stop reasons, and timeout semantics an agent needs. Missing details are prerequisites for invocation and the non-convergence/failure path, so it is strong but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it gives meaning to steps, until_time (model time target), timeout (seconds), and output (whether configured output processes run). It leaves session_id and the unit basis for until_time implicit, so it falls short of full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Advance the simulation by steps solution steps') and pins down exactly which routines run (AdvanceInTime, InitializeSolutionStep, SolveSolutionStep, FinalizeSolutionStep, output processes). This distinguishes it clearly from siblings like run_simulation and study_start, which start rather than advance an existing session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names a concrete alternative and the condition that selects it: when the call exceeds timeout, poll session_status until busy is false. It also says the run stops early at end_time. It does not, however, explain when to prefer session_advance over run_simulation or study_start, so there is clear context but no full when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_closeA
Close a session. With finalize=True (default) the AnalysisStage's Finalize() runs first so output processes flush (VTK/GiD files, restart files); then the worker process group is terminated. Safe to call on an already closed or dead session.
| Name | Required | Description | Default |
|---|---|---|---|
| finalize | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that Finalize() flushes output processes (VTK/GiD, restart files) before the worker process group is terminated, and that the call is idempotent on closed/dead sessions. It does not mention permissions, cost, or failure modes, leaving some gaps for a destructive lifecycle operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action, then the mechanism, then the safety note. No restated schema, no filler; every clause adds information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations are absent, meaning the description must cover the safety profile — which it largely does through the termination and idempotency disclosures. The remaining gap is relational context (how a session relates to jobs/studies in this tool set).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does for the only non-obvious parameter: finalize=True is explained in terms of the concrete flush behavior and its default. session_id is undocumented but its meaning is self-evident from the tool name and required-parameter status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Close a session') and immediately qualifies the operation by describing the finalize path and process termination. It never names or contrasts with close-adjacent siblings like job_cancel or study_cancel, so an agent must infer the scope, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: nothing says when to prefer session_close over job_cancel/study_cancel or what state a session must be in. The one explicit usage cue is the idempotency guarantee ('Safe to call on an already closed or dead session'), which is genuinely useful but is the only routing guidance present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_exec_pythonA
Run Python inside the session's Kratos process for anything the
typed tools do not cover. The namespace holds KM (KratosMultiphysics),
model, stage (the AnalysisStage), session, parameters; assign a
JSON-serialisable value to result to get it back, and print() output
is returned as stdout. Example: result = model['Structure'].GetNode(75).X.
DISABLED unless the MCP server was started with KRATOS_MCP_ALLOW_EXEC=1, because it executes arbitrary code as the server's user.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it does: it discloses the disabled-by-default gate, the security implication (arbitrary code as the server's user), the namespace bindings, the return contract (assign to `result`), and stdout capture. This is exactly the operational context annotations would otherwise supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then a dense but useful clause on namespace/return semantics, then the critical gating warning. Every sentence earns its place; the middle sentence is packed but justified for an exec tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter code-execution tool with an output schema, the description covers the escape-hatch role, the runtime contract, the return mechanism, and the activation requirement. Nothing an agent needs to invoke it safely is missing beyond the minor session_id gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the `code` parameter's contract well (namespace, `result` assignment, print/stdout) and gives a concrete example, but `session_id` is never mentioned despite being required — an agent must infer it selects the target process.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (run) and resource (Python in the session's Kratos process) and explicitly positions itself as the escape hatch for cases the typed tools do not cover, which distinguishes it from the many session_* and mdpa_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the exact condition for use ('anything the typed tools do not cover') and the hard precondition (DISABLED unless KRATOS_MCP_ALLOW_EXEC=1), including the reason. An agent knows both when to reach for it and when it will fail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_field_summaryB
Summarise a field at the CURRENT time: min/max/mean (vectors by magnitude, with component-wise min/max), and the node/element where the maximum and minimum occur (with coordinates for nodes).
location='nodes' reads nodal solution-step variables (DISPLACEMENT, REACTION, VELOCITY, PRESSURE, TEMPERATURE, ...). location='elements' evaluates an element result at the integration points and reports the worst Gauss point per element (e.g. VON_MISES_STRESS, TEMPERATURE gradients, CAUCHY_STRESS_VECTOR).
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | nodes | |
| variable | Yes | ||
| model_part | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full disclosure burden. It does add genuine behavioral detail — what each location evaluates and that elements report the 'worst Gauss point per element' — but never states that this is a read-only operation, nor anything about session state requirements or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core behavior, then a well-scoped sentence per location value. Dense with useful detail and essentially no filler, though the parenthetical variable lists are somewhat verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not owed, and the location semantics are covered. Still, with 0% schema coverage, model_part being undocumented in both schema and description leaves a real gap for a tool that can evidently be scoped to a sub-model-part.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It compensates well for location (explaining the nodes-vs-elements semantics and which variable families each accepts) and partially for variable (examples like DISPLACEMENT, VON_MISES_STRESS). But model_part and session_id are left completely unexplained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (summarise) and resource (a field at the CURRENT time), plus the exact statistics produced (min/max/mean, component-wise for vectors) and where they occur. However, it never distinguishes itself from the sibling results_summary, so an agent must guess which summary tool is correct without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than stated: 'at the CURRENT time' hints this operates on a live session rather than stored result files, which implicitly separates it from results_summary/results_probe, but no explicit when-to-use or alternative is named. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_get_parametersB
Read the live ProjectParameters of a session (after defaults were applied). path is an optional JSON Pointer such as '/solver_settings/time_stepping' or '/processes/loads_process_list/0'; empty returns everything.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it correctly signals a read operation and adds valuable context that the parameters are 'live' and 'after defaults were applied.' However, it does not mention error behavior for invalid paths, authorization needs, or any other operational trait beyond the basic read semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the first front-loads the purpose, and the second immediately covers parameter semantics with examples. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, return values need not be explained, and the description adequately covers the tool's purpose and path argument. However, for a two-parameter tool with no annotations and no schema descriptions, the absence of any session_id explanation and any usage guidance leaves it minimally sufficient rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It thoroughly explains the optional 'path' parameter with JSON Pointer syntax, two concrete examples, and the empty-string behavior, but it says nothing about the required 'session_id' parameter, leaving half the parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('live ProjectParameters of a session'), and adds the important qualifier 'after defaults were applied' that distinguishes it from static project settings reads. It does not explicitly name or contrast with siblings like project_get_setting or explain_project_parameters, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for inspecting the session's effective parameters but gives no explicit when-to-use instructions, no prerequisites, and no exclusions or alternatives. Sibling tools such as project_get_setting and explain_project_parameters could plausibly be chosen instead, yet nothing routes the agent between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_inspect_elementB
Inspect one element: its node ids, properties id, active flag, and
the integration-point values of variables (e.g. ['VON_MISES_STRESS',
'GREEN_LAGRANGE_STRAIN_VECTOR']).
| Name | Required | Description | Default |
|---|---|---|---|
| variables | No | ||
| element_id | Yes | ||
| model_part | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden; the word 'Inspect' implies a non-mutating read and the returned fields are listed. However, it says nothing about side effects, permission requirements, or failure behavior (e.g. unknown element_id), and the return-field list largely duplicates the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the action first and then the returned data, with no filler. The parenthetical example is compact and earns its place, though the enumerated return fields are somewhat redundant with the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since an output schema exists, the description needn't explain return values, and the read-only nature is inferable from 'Inspect'. The gaps that matter are the unexplained `model_part` parameter and the absence of any error/not-found guidance for a targeted lookup by element_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only clarifies one of four parameters: `variables`, illustrated with concrete names like 'VON_MISES_STRESS' and framed as integration-point values. `session_id`, `element_id`, and especially `model_part` remain entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb ('Inspect') and a precise resource ('one element') and enumerates what is returned (node ids, properties id, active flag, integration-point values). It is implicitly distinguished from session_inspect_node by the object being an element, but it never names the sibling explicitly, so a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus session_inspect_node, session_field_summary, or session_model_info, and no prerequisites such as requiring an active session. Usage can only be inferred from the verb 'Inspect'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_inspect_nodeB
Inspect one node: current and initial coordinates, the values of
variables (default: DISPLACEMENT/REACTION/VELOCITY/PRESSURE/
TEMPERATURE as available) and whether each DOF is fixed.
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | ||
| variables | No | ||
| model_part | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Inspect' implies a read-only operation and the described outputs suggest no mutation, but this is not stated explicitly and no data on pagination, cost, or error behavior is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence that front-loads the action and enumerates return fields with no filler; slightly run-on but efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, but with zero schema descriptions and two undocumented parameters (model_part, node_id), the definition leaves gaps in a 4-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, yet it only explains the 'variables' parameter (default list of variables) and never mentions 'model_part' or clarifies node_id/session_id semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Inspect) and resource (one node), and enumerates what is returned (coords, variables, DOF fixation). It is clearly distinguishable from siblings like session_inspect_element or session_set_nodal_values, though it doesn't explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says nothing about when to use this tool versus alternatives like session_field_summary or session_model_info, nor any preconditions beyond the required session_id/node_id shown in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_listA
List interactive sessions (newest first), optionally filtered by state: starting/ready/closed/dead/lost. 'lost' means the session belonged to a previous server process.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses newest-first ordering and explains 'lost', but omits whether the call is read-only, permission requirements, or how active sessions are treated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and ordering. Every clause adds value, and there is no repetition of structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity list tool with an output schema, so return values need not be described. The description covers filtering and ordering adequately, though it could clarify the relationship to session_status for complete routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the sole state parameter has no enum in the schema. The description compensates by enumerating valid states (starting/ready/closed/dead/lost) and explaining the non-obvious 'lost' value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (interactive sessions), plus ordering (newest first) and an optional filter. It does not name any sibling alternative, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides filter options but no explicit when-to-use versus session_status or session_start, and no exclusions. Usage is implied by 'List interactive sessions' rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_model_infoA
Live model structure: node/element/condition counts for a model part
(default: the solver's main model part) and its sub model parts down to
depth, plus ProcessInfo TIME/STEP/DELTA_TIME/DOMAIN_SIZE and the
buffer size. Use it to discover valid model_part names.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | ||
| model_part | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses useful behavior such as the default model_part being the solver's main model part, traversal down to `depth`, and included ProcessInfo fields. It does not explicitly state read-only semantics, side effects, or permission requirements, though the nature of an 'info' tool implies a safe read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, opening with the core purpose and then adding scope, returned fields, and usage guidance. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described in full, but the description still summarizes key outputs. It covers the important parameters and default behavior, leaving only minor gaps such as session_id semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that `depth` controls how far down sub model parts are traversed and that `model_part` defaults to the solver's main model part. It does not explain the `session_id` parameter or provide format details for model_part names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves live model structure information, including counts and ProcessInfo, and explicitly says it can be used to discover valid model_part names. It identifies a specific resource and scope, though it does not explicitly contrast itself with sibling tools such as session_get_parameters or session_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear use case: 'Use it to discover valid model_part names.' This gives the agent a concrete reason to select the tool. However, it does not state when not to use it or name alternative tools for related inspection tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_set_nodal_valuesA
Assign a nodal solution-step value (a number, or [x, y, z] for vector variables such as DISPLACEMENT or VELOCITY) to node_ids, or to every node of model_part when node_ids is omitted. fix=True/False fixes/frees the DOF (a list of 3 booleans sets each vector component); omit it to leave fixity unchanged. Takes effect from the next session_advance, so you can add a support, pin a temperature or perturb the state mid-run. Writes into the live model only: files on disk are unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| fix | No | ||
| value | Yes | ||
| node_ids | No | ||
| variable | Yes | ||
| model_part | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the deferred-effect timing (next session_advance), that writes go only into the live in-memory model with disk files unchanged, and that omitted fix leaves fixity untouched. It does not discuss permissions or error behavior, but the mutation model is clearly conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense, front-loaded prose with every clause carrying information: target selection, value typing, fixity semantics, effect timing, and persistence scope. No redundant restatement of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description covers targeting, value formats, fixity behavior, and when the change materializes. Nothing an agent needs to call this mutation correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does for the key parameters: value can be a scalar or [x, y, z] for vector variables like DISPLACEMENT/VELOCITY, fix accepts a boolean or a 3-boolean list with omission meaning unchanged, and node_ids/model_part define the target set. session_id is left unexplained, which keeps this from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource (assign a nodal solution-step value) and defines the two targeting modes: explicit node_ids, or all nodes of model_part when node_ids is omitted. It also names the live-model scope versus on-disk files, which helps distinguish it from the file-oriented mdpa_set_nodal_data sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says it takes effect from the next session_advance and gives concrete use cases (add a support, pin a temperature, perturb state mid-run), which tells the agent when to reach for it. It does not name alternative tools like mdpa_set_nodal_data, so sibling routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_startA
Open an interactive Kratos session: load the case, build the AnalysisStage and run Initialize(), then return a session_id and the initial state (time 0, node/element counts, model parts). Nothing is solved until session_advance. Unlike run_simulation this keeps the live model in memory so you can step, inspect and modify it.
Single-stage, serial/OpenMP cases only (multi-stage, CoSimulation, FSI and MPI cases are rejected: use run_simulation). isolate=True works on a private copy of the case so the original files and outputs stay untouched. Sessions do not survive a server restart; close them with session_close. At most KRATOS_MCP_MAX_SESSIONS (default 4) can be open at once.
| Name | Required | Description | Default |
|---|---|---|---|
| isolate | No | ||
| timeout | No | ||
| case_dir | Yes | ||
| analysis_type | No | ||
| analysis_class | No | ||
| parameters_file | No | ProjectParameters.json |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so richly: it discloses what gets initialized, that no solving occurs until session_advance, that the live model stays resident for step/inspect/modify, isolate semantics (private copy, original files and outputs untouched), non-persistence across server restart, and a concurrency cap (KRATOS_MCP_MAX_SESSIONS, default 4).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and return value, followed by constraints and lifecycle notes. Two dense paragraphs where every sentence adds routing, safety, or lifecycle information relevant to correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the description covers lifecycle, isolation, concurrency, and case-type constraints thoroughly. The only real gap is the undocumented non-isolate parameters, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description must compensate, yet it explains only isolate=True and the implicit case_load behavior. timeout, analysis_type, analysis_class, and parameters_file are entirely undocumented in both schema and prose, leaving most invocation semantics to guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (open an interactive Kratos session), then enumerates precisely what happens: load the case, build the AnalysisStage, run Initialize(), return a session_id and initial state. It explicitly contrasts itself with run_simulation, so an agent can distinguish it from siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the applicable cases (single-stage, serial/OpenMP only) and the exclusions (multi-stage, CoSimulation, FSI, MPI are rejected) with a named alternative (use run_simulation). It also clarifies that nothing is solved until session_advance, giving clear when-to-use boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_statusA
State of a session: ready/closed/dead/lost, whether the worker is busy with a request, recorded step count, and (for dead sessions) why it died with the log tail. Set log_tail > 0 to include the last N lines of the session's solver log. Use session_model_info for the live simulation time/step.
| Name | Required | Description | Default |
|---|---|---|---|
| log_tail | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful state semantics: the ready/closed/dead/lost states, worker busy status, and that death reason includes a log tail. It does not describe auth requirements or side effects, but for a read-only status query this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is returned, then parameter guidance, then sibling routing. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return-value detail is handled elsewhere. The description covers states, the log_tail parameter, and sibling routing. Minor gap: it doesn't clarify session_id sourcing, but overall it is complete for a status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains log_tail's semantics ('last N lines of the session's solver log') which the schema does not, though session_id remains undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (a session) and precisely enumerates what state is returned: ready/closed/dead/lost, worker busy status, step count, and death reason. This is concrete and distinguishable from siblings like session_log.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance for one parameter ('Set log_tail > 0 to include...') and routes to a sibling ('Use session_model_info for the live simulation time/step'). It lacks a when-not-to-use statement but the sibling routing is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
study_cancelC
Stop pending launches and cancel active process groups; preserve results.
| Name | Required | Description | Default |
|---|---|---|---|
| study_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does state meaningful behavior: pending launches are stopped, active process groups are canceled, and results are preserved. However, it omits details about irreversibility, partial failures, or how cancellation affects already-completed results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant information. Every word contributes to the core action and a key guarantee ('preserve results').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter cancel tool with an output schema, the core action is covered, but the description lacks usage guidance and parameter semantics. An agent could likely invoke it correctly, but it would have to infer when to choose this over job_cancel and what study_id refers to.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description never mentions study_id or explains how it identifies the target study. The schema only provides the title 'Study Id', so the agent receives no added semantic meaning about the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Stop', 'cancel') and identifies the resources ('pending launches', 'active process groups'), making the tool's core function clear. It does not explicitly differentiate from sibling tools like job_cancel, but the study context and 'process groups' phrasing provide enough distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as job_cancel, study_resume, or study_status. There are no stated conditions, exclusions, or references to sibling tools, leaving the agent to infer appropriate 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.
study_listC
List studies, optionally filtering by their study-level state.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states a listing operation with an optional filter, giving no information about pagination, ordering, return format, or side effects. The tool may be read-only, but that is not disclosed, and there is no mention of constraints or environmental dependencies beyond the cryptic 'study-level state'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, which is concise and front-loaded with the main action. It avoids verbosity and unnecessary detail, but the brevity sacrifices essential clarification. The structure is appropriate for a simple tool, though it could have been expanded with a few more useful details without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (only one optional parameter) and that an output schema exists, the description could be minimal, but it still omits critical context about the 'state' values and the distinction from related sibling tools. The description is too vague to allow an agent to call the tool confidently, as it lacks details on filter behavior and expected output content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions 'state' as a filter but does not explain its valid values, format, or semantics. The parameter schema is minimal (anyOf string/null), so an agent receives no help in constructing the filter. The description adds only the vague phrase 'study-level state', which is insufficient to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'List' and resource 'studies', and mentions an optional filter by 'study-level state', which gives a basic sense of purpose. However, it does not distinguish this tool from siblings like 'study_status' or 'study_results' that also relate to studies, and the phrase 'study-level state' is vague, lacking definitions of what states exist or how they are expressed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for listing studies, possibly with a state filter, but provides no explicit guidance on when to use this tool versus alternatives. There are no stated scenarios, prerequisites, or exclusions, and no mention of how 'state' filters affect results. An agent must infer its usage purely from the terse description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
study_resultsC
Get partial/complete probe histories, scalar responses and mesh differences.
Optional CSV uses exclusive creation and never overwrites an existing file.
| Name | Required | Description | Default |
|---|---|---|---|
| csv_file | No | ||
| study_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose that CSV export uses exclusive creation and never overwrites, which is valuable behavioral context. However, it omits any statement about read-only nature, permission requirements, or potential side effects, which is a notable gap for a retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, with no fluff. The primary action is front-loaded, and the CSV detail is secondary. However, it could be more structured by leading with the required parameter context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple output types) and the presence of an output schema, the description should explain how the study_id parameter selects results and how this tool differs from sibling results tools. It does neither, leaving the agent without enough context to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It only hints at csv_file (optional, exclusive creation) but provides no explanation for study_id, which is the required parameter. The agent cannot determine what study_id refers to or how it affects the result set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves probe histories, scalar responses, and mesh differences, which is a specific verb-resource pairing. It distinguishes from some siblings (e.g., results_compare) by mentioning mesh differences, but it doesn't explicitly contrast with results_probe or results_time_history, which likely overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like results_probe or results_time_history. No conditions, prerequisites, or exclusions are mentioned, leaving the agent to infer usage from the generic 'Get' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
study_resumeC
Verify and resume an interrupted coordinator, adopting existing child jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| study_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'verify' and 'adopting existing child jobs,' which hints at side effects, but does not explain what verification entails, whether the operation is idempotent, what happens on failure, or any permission requirements. For a resume operation that likely mutates state, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is appropriately concise, but the brevity sacrifices substance; the structure is clear, though the content is minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and an output schema, the description should explain the operational context, parameter meaning, and expected behavior. It does none of that. The output schema covers return values, but the description lacks usage guidance and parameter semantics, making it incomplete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, study_id, is completely undocumented in the description. Schema description coverage is 0%, so the description must compensate, but it does not mention the parameter at all. The agent receives no guidance on what study_id refers to or how to format it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pair: 'verify and resume an interrupted coordinator' and adds 'adopting existing child jobs,' which distinguishes it from study_start (starting fresh) and job_resume (resuming a job rather than a study). It is not a tautology and provides enough specificity to identify the tool's function, though the terminology is slightly technical.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The phrase 'interrupted coordinator' implies a use case, but the description never contrasts it with study_start, job_resume, or other siblings. It lacks any when-to-use or when-not-to-use information, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
study_startA
Prepare all isolated variants, then start a detached bounded study.
specification: {kind:'parameter', axes:[{file:'Materials.json', pointer:'/properties/0/Material/Variables/YOUNG_MODULUS', values:[1e11,2e11]}], combination:'product'|'zip'} or {kind:'mesh', mesh:{kind:'rectangle', size:[1,0.2]}, divisions:[[4,1],[8,2],[16,4]]}. Optional atol/rtol/time_atol control mesh-response comparisons. Responses: [{name:'tip', variable:'DISPLACEMENT', point:[1,0,0], component:1, reduction:'final'}]. Optional response association: point/cell, series, max_distance; component may be 'magnitude'; reduction may be final/min/max. Serial single-stage POSIX jobs only. Progress survives server exit.
| Name | Required | Description | Default |
|---|---|---|---|
| case_dir | Yes | ||
| responses | Yes | ||
| analysis_type | No | ||
| specification | Yes | ||
| analysis_class | No | ||
| external_inputs | No | ||
| max_concurrency | No | ||
| parameters_file | No | ProjectParameters.json |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the study is detached, bounded, serial single-stage, and that progress survives server exit, which is valuable operational context. It also notes preparation of isolated variants. It does not mention side effects on case files or resource cleanup, but the key behavioral traits are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but not wasteful; every clause contributes either purpose, syntax, or constraints. The specification and response examples are front-loaded after the one-sentence purpose. It could be slightly more readable, but it earns its length given the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly documents the two required complex parameters but leaves the required `case_dir` entirely unexplained, and optional parameters such as `analysis_type`, `analysis_class`, `external_inputs`, `max_concurrency`, and `parameters_file` receive no guidance. Although an output schema exists, the input schema still has gaps that the description could fill, so completeness is adequate but not strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides detailed structure for the complex `specification` and `responses` parameters, including examples and allowed values like `combination:'product'|'zip'`, `component may be 'magnitude'`, and `reduction may be final/min/max`. It does not cover simpler parameters such as `case_dir`, `analysis_type`, or `max_concurrency`, but the most intricate and error-prone parameters are well explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action: 'Prepare all isolated variants, then start a detached bounded study.' This clearly distinguishes it from sibling tools like study_status, study_cancel, study_resume, and study_results, which operate on existing studies. The purpose is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for parameter and mesh studies by detailing specification kinds, and it provides important constraints: 'Serial single-stage POSIX jobs only' and 'Progress survives server exit.' However, it does not explicitly call out sibling alternatives or state when not to use this tool, leaving the when-to-use vs. alternatives mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
study_statusB
Return durable study progress, child jobs, provenance, and response errors.
| Name | Required | Description | Default |
|---|---|---|---|
| study_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. 'Return' implies a read-only query, and the list of returned categories adds useful context. However, it does not disclose whether any call has side effects, requires special permissions, or how 'durable' progress differs from transient job progress.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 11-word sentence with no filler. The main action and output categories are front-loaded, making the core purpose immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists so return values need not be fully described, the description still lacks essential selection context for an enormous sibling list. It never clarifies when to prefer study_status over job_status or study_results, and it leaves the meaning of 'durable' unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter study_id has 0% schema description coverage, so the description must compensate. It never explains what study_id refers to, its expected format, or how the caller should obtain a valid value. The term 'study' in the tool name provides only minimal implicit context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Return') and specific output categories: durable study progress, child jobs, provenance, and response errors. This distinguishes it from generic status tools, though it does not explicitly contrast it with closely related siblings like job_status or study_results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as job_status, study_list, or study_results. The description only lists return contents and never states when this status endpoint is the right choice or when it is not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_caseA
Dry-run check of a case directory without running the time loop: JSON validity, required keys, mesh and materials files exist and parse, model part references match the mesh, and the solver settings validate against Kratos defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| case_dir | Yes | ||
| parameters_file | No | ProjectParameters.json |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explicitly states 'dry-run' and 'without running the time loop', conveying non-invasiveness. It also lists the exact checks performed, which is transparent about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's scope and specific checks. It is well-structured with a colon-led list, containing no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained. The description covers the dry-run scope and the validation items. It does not mention prerequisites or explicit side effects, but 'dry-run' implies none. Slightly more detail on when to use it could elevate completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention case_dir or parameters_file. While parameter names are somewhat self-explanatory, the description fails to compensate for the lack of schema descriptions, leaving potential ambiguity about parameters_file's role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'dry-run check of a case directory' and enumerates specific validation steps (JSON validity, required keys, file existence/parsing, model references, solver settings). This distinguishes it from siblings like run_simulation or validate_project_parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for pre-run validation without launching the time loop, which is clear context. However, it does not explicitly name alternatives or exclusions, though sibling tool names suggest such comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_project_parametersA
Validate a ProjectParameters.json: JSON syntax, required keys, referenced files (mesh, materials) exist, model part names match the mesh submodelparts, and (deep=true, needs Kratos) the solver_settings against the solver's GetDefaultParameters().
| Name | Required | Description | Default |
|---|---|---|---|
| deep | No | ||
| parameters_file | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It details the specific checks performed, including file existence verification and comparison against solver defaults, and the conditional deep behavior. It does not state whether the tool is read-only or what happens on failure, but the listed behaviors give a solid picture for a validation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently packs multiple validation aspects without unnecessary words. It is front-loaded with the core purpose, but the long enumeration of checks could be slightly better structured (e.g., using a list). Overall, it is concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 parameters and an output schema exists, the description provides a complete picture of the tool's scope and behavior. It covers the main validation steps, prerequisites for deep validation, and the target file. It does not need to explain return values due to the output schema. The only minor gap is the lack of explicit usage guidance, already captured in dimension 2.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It explains the 'deep' parameter explicitly ('(deep=true, needs Kratos)') and implies 'parameters_file' as the ProjectParameters.json to validate. This provides sufficient semantic meaning for both parameters, though the file parameter could be more explicitly linked.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb (Validate) and the resource (ProjectParameters.json), and enumerates specific validation checks (syntax, required keys, file existence, model part names, solver_settings). This distinguishes it from sibling tools like mdpa_validate and validate_case, which target different files or broader validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (validate a ProjectParameters.json before running a simulation) and mentions the prerequisite 'deep=true, needs Kratos', but it does not explicitly state alternatives or when not to use this tool. Since the tool is focused on a specific file type, the usage context is clear but not formally contrasted with sibling tools.
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.
59 tool updates
v0.9.0- Changed
add_boundary_condition2 fields changed- added
Input schema / properties / stageAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Stage" +} - added
Input schema / properties / variableAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Variable" +}
- Added
add_remeshing_process - Added
create_cosim_project - Added
create_fsi_project - Added
kratos_get_variable_info - Added
materials_check - Added
materials_get - Added
materials_remove_property - Added
materials_set_property - Added
mdpa_add_entities - Added
mdpa_add_nodes - Added
mdpa_convert_cells - Added
mdpa_create_geometry_mesh - Added
mdpa_create_sub_model_part - Added
mdpa_delete_entities - Added
mdpa_delete_nodes - Added
mdpa_delete_table - Added
mdpa_edit_sub_model_part - Added
mdpa_extract - Added
mdpa_extract_boundary - Added
mdpa_extrude - Added
mdpa_get_data_blocks - Added
mdpa_get_entities - Added
mdpa_merge - Added
mdpa_move_nodes - Added
mdpa_quality - Added
mdpa_renumber - Added
mdpa_select_nodes - Added
mdpa_set_elemental_data - Added
mdpa_set_entity_properties - Added
mdpa_set_nodal_data - Added
mdpa_set_properties - Added
mdpa_set_sub_model_part_data - Added
mdpa_set_table - Added
mdpa_transform - Added
mesh_export - Added
mesh_generate_gmsh - Added
mesh_import - Added
mesh_remesh - Added
project_add_process - Added
project_delete_setting - Added
project_get_setting - Added
project_list_processes - Added
project_remove_process - Added
project_set_setting - Added
project_update_process - Added
project_update_solver - Added
session_advance - Added
session_close - Added
session_exec_python - Added
session_field_summary - Added
session_get_parameters - Added
session_inspect_element - Added
session_inspect_node - Added
session_list - Added
session_model_info - Added
session_set_nodal_values - Added
session_start - Added
session_status
2 tool updates
v0.7.0- Changed
job_logs1 field changed- added
Input schema / properties / rankAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Rank" +}
- Changed
run_simulation2 fields changed- added
Input schema / properties / mpi_ranksAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Mpi Ranks" +} - added
Input schema / properties / omp_threadsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Omp Threads" +}
13 tool updates
v0.5.0- Added
configure_checkpoints - Added
job_checkpoints - Added
job_rerun - Added
job_resume - Added
results_compare - Added
results_time_history - Changed
run_simulation2 fields changed- added
Input schema / properties / external_inputsAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "title": "External Inputs" +} - added
Input schema / properties / isolateAdded value: +{ + "default": false, + "title": "Isolate", + "type": "boolean" +}
- Added
study_cancel - Added
study_list - Added
study_results - Added
study_resume - Added
study_start - Added
study_status
40 tool updates
v0.3.1- First observed
add_boundary_condition - First observed
add_output_process - First observed
create_materials - First observed
create_multistage_project - First observed
create_project - First observed
create_project_parameters - First observed
explain_project_parameters - First observed
export_case_to_flowgraph - First observed
import_flowgraph_to_case - First observed
job_cancel - First observed
job_list - First observed
job_logs - First observed
job_status - First observed
kratos_check_installation - First observed
kratos_get_process_defaults - First observed
kratos_get_solver_defaults - First observed
kratos_install - First observed
kratos_list_applications - First observed
kratos_list_conditions - First observed
kratos_list_constitutive_laws - First observed
kratos_list_elements - First observed
kratos_list_processes - First observed
kratos_list_solvers - First observed
kratos_list_variables - First observed
list_linear_solver_presets - First observed
list_material_presets - First observed
list_templates - First observed
mdpa_create_structured_mesh - First observed
mdpa_get_nodes - First observed
mdpa_inspect - First observed
mdpa_validate - First observed
results_animate - First observed
results_convergence - First observed
results_list - First observed
results_probe - First observed
results_render - First observed
results_summary - First observed
run_simulation - First observed
validate_case - First observed
validate_project_parameters
TDQS
Scored across 110 tools
The tool set is large but well-organized into clearly separated namespaces (mdpa_*, session_*, job_*, project_*, materials_*, results_*, kratos_*, study_*), and descriptions carefully delineate boundaries (e.g. mdpa_add_entities vs mdpa_create_sub_model_part). A few overlaps remain—mdpa_create_structured_mesh vs mdpa_create_geometry_mesh vs mesh_generate_gmsh all generate meshes—but param formats and descriptions make the intended use distinguishable.
The vast majority of tools follow a consistent prefix_verb_noun pattern (mdpa_inspect, session_advance, project_set_setting, results_probe, job_status). A handful deviate slightly (mdpa_quality, mdpa_transform, mdpa_renumber, kratos_install, validate_case), but never in a way that obscures meaning or mixes camelCase with snake_case.
110 tools is far beyond the typical 3–15 well-scoped range and beyond even the 25+ threshold for 'too many'. While each tool is individually non-trivial and the domain (Kratos Multiphysics simulation lifecycle) is genuinely broad, the surface is heavy enough that discovery and selection overhead is substantial.
Coverage is exceptionally thorough across the full simulation lifecycle: project scaffolding, parameter/material editing, mesh import/generation/manipulation, solver discovery, job/study execution, interactive sessions, results inspection/rendering, and Flowgraph round-tripping. Obvious gaps are hard to identify—even checkpoints, MPI, CoSimulation, and FSI are addressed.
Maintenance
Related MCP Connectors
Run FDS, OpenFOAM, CalculiX and other engineering simulations on cloudHPC from your AI assistant.
AI orchestration for computational chemistry and HPC workflows.
AI-callable calculators and engineering models with real formulas. No hallucinated math.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI agents to automate COMSOL Multiphysics simulations, including model management, geometry building, physics configuration, meshing, solving, and results visualization through the MCP protocol.78MIT
- FlicenseNot gradedqualityCmaintenanceEnables an AI assistant to drive Abaqus/CAE through file IPC—sending Python commands, querying model info, submiting jobs, and capturing viewport screenshots—so finite element models can be built and solved without manual GUI interaction.2-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to create parametric geometry, apply loads, run simulations, and read results in Ansys Discovery through natural-language commands over gRPC.1MIT
- AlicenseCqualityAmaintenanceEnables AI assistants to control and automate Abaqus/CAE simulations via MCP, including model query, job management, ODB inspection, KPI extraction, capsule tracking, physics contract validation, report generation, and viewport capture. It also supports noGUI batch mode, dual transport, and integration with Codex/Claude clients.1105MIT