Skip to main content
Glama

Gradient Dynamics: thermal and CFD simulation

Create mesh

create_mesh
Idempotent

Mesh a design with GD Structured or GD Unstructured. Standard CGNS export by default; explicit GD CGNS, .msh or OpenFOAM exports. Memory-limited compute: usually a few minutes and under 2 credits; estimate_cost gives the figure. Not needed when an owned mesh for the same geometry and settings already exists and the user accepts reuse. Create a new mesh job per request with a fresh idempotency key. Reuse old compute only when the user requests or accepts reuse. Re-meshing a surface within 24 hours is a retry; on retry_not_allowed ask the user. Same-job transport recovery keeps its key; a reviewed new attempt uses reviewed_job_id and a fresh key. Default retry_policy=review stops after one full attempt; do not silently retry a completed or failed mesh. A verified count miss returns awaiting_decision; report evidence and use review_job to accept/discard, or obtain explicit authority before new compute. Use this job's mesh_cgns for views. For a generic view use view_mesh or the default interactive 3D browser viewer (cell surfaces, quality metrics, true slices); PNGs or 2D sections alone are insufficient. Mesh an owned ready geometry artifact. Structured requests select engine=structured; generic unstructured requests prefer engine=octree_prism when configured; export_formats selects files independently of the engine. Default [cgns] delivers Standard CGNS NGON/NFACE. Preserve an explicit format choice. get_job.mesh_exports identifies the primary downloadable artifact; retain mesh_cgns for views and Fluxcore simulation. All engines default to ±30% cell-count tolerance; omit cell_count_tolerance unless the user asks for another. get_request_schema(mesh) has the full schema; inspect_mesh_geometry gives bounds and assessed component IDs when available. Before an octree mesh, check_geometry finds holes and other surface problems, and plan_mesh shows the sizes, predicted cells and any refusal, without compute. Solid-only uses structured.workflow=solid and flow_region={kind: solid, component_id: inspected ID}; no fluid box is required. Never switch solid/internal/external/CHT intent to bypass a failure. Ask about consequential preferences such as stair_step/cut_cell and boundary layers; otherwise use disclosed best judgment. For an external octree mesh, state intent in octree_prism.controls (flow, wake, layers) and leave sizes out unless the user gives them: the mesher resolves the rest from the geometry, and other octree fields override what it resolves. get_mesh_controls lists surface, volume/wake, layer, topology and boundary settings. Structured has no prism layers; octree controls.boundary_layer.layers=0 and openfoam.n_prism_layers=0 disable layers. For an already-enclosed fluid STL or STEP surface, use octree_prism.workflow=internal with explicit geometry bounds, minimum/maximum spacing and at least one prism layer; cht_ports are points near flat inlet/outlet faces. It meshes only the enclosed fluid and keeps its boundary; MRF zones are not supported. Optional internal_small_feature_size is an explicit meter-valued cutoff for removing tiny disconnected boundary shells, including solid islands; disclose this geometry simplification and keep it omitted unless requested or accepted. A disconnected fluid source is refused by default; internal_component_policy=largest_connected explicitly keeps its largest fluid volume and reports excluded pockets, while refusing nested cavity shells or ambiguous equal volumes. Octree CHT needs the STEP's actual material names and an explicit n_prism_layers: 0 for the octree CHT route, more for prism layers on the coolant walls (a fluid region named with fluid or coolant, and cht_ports near the inlet and outlet; sizes are absolute). Meshing admission is memory limited. Record assumptions in decision_context. At most 50 million cells. Use artifact summaries to inspect patches/zones before simulation. Each person runs one meshing job at a time; a further one waits, and its queue.message says why: tell the user rather than resubmitting. Returns a job ID; may incur compute charges.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "surface_artifact_id": "<surface_artifact_id>",
      "engine": "<engine>",
      "idempotency_key": "<idempotency_key>"
    },
    "name": "create_mesh"
  }
}

Input Schema

NameRequiredDescriptionDefault
engineYesstructured = Cartesian; octree_prism = native octree/polyhedral with prism layers; openfoam = legacy engine identifier. Prefer configured octree_prism for generic unstructured requests; preserve explicit methods. Choose delivered file formats separately with export_formats.
openfoamNo
notify_urlNoOptional public HTTPS URL that receives a signed notification when the job finishes, so you need not poll.
project_idNo
structuredNo
octree_prismNo
target_cellsNo
export_formatsNoDelivered mesh formats, in preference order. Default cgns is Standard CGNS (NGON/NFACE) for ParaView. gd_cgns is GD CGNS for Fluxcore/Studio; fluent is a Fluent-format polyhedral .msh; openfoam is a polyMesh archive. Select formats independently of the meshing engine. The first format is the primary download. GD CGNS is also retained internally for simulation and viewing. Preserve an explicit user choice; do not ask for a format when none was specified.
idempotency_keyYesUse a fresh unique key for each newly requested job, even with identical inputs or a matching completed job. Reuse unchanged only for retries/resuming that same intended job. Never replace it to retry an uncertain submission.
reviewed_job_idNoExplicitly requested new attempt after reviewing this completed mesh job, including quality or resource failures. Use a fresh idempotency key; this records lineage and never restarts the prior execution.
decision_contextNo
surface_artifact_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only cover read-only, open-world, idempotency and destructiveness. Beyond that the description discloses cost and duration ('a few minutes and under 2 credits'), the 50 million cell ceiling, memory-limited admission, one-job-per-person queueing with queue.message, retry_policy=review semantics, awaiting_decision on a count miss, and that compute charges may be incurred — substantially more than the annotations carry.

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

Conciseness2/5

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

The content is valuable but delivered as one unstructured paragraph of roughly 450 words, with retry/idempotency rules restated across several sentences (fresh key per request, transport recovery, reviewed_job_id, retry_policy=review). Front-loading is good, but there are no groupings or headings, so an agent must scan the whole block to find the branch relevant to its request.

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

Completeness4/5

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

For a 12-parameter, three-engine meshing tool with an output schema present, the description covers the decision-critical paths: structured/solid, external octree with controls, internal STL/STEP enclosure, and octree CHT with cht_ports and n_prism_layers. Only ancillary parameters such as notify_url and project_id go unmentioned, which is acceptable since the output schema and get_request_schema(mesh) fill the remainder.

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

Parameters4/5

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

With schema coverage at 42% the description must compensate, and it largely does: engine selection rules, export_formats default [cgns] versus gd_cgns/.msh/OpenFOAM and that format choice is independent of the engine, the fresh idempotency_key rule, reviewed_job_id lineage versus restart, internal_component_policy=largest_connected, cell_count_tolerance default ±30%, n_prism_layers=0 sentinel, and decision_context for assumptions. Gaps remain for notify_url, project_id and the default target_cells=1,000,000.

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

Purpose5/5

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

The opening sentence states a specific verb and resource plus the two supported methods: 'Mesh a design with GD Structured or GD Unstructured.' It immediately differentiates adjacent siblings by naming engine choices and export modes, so an agent can tell this apart from plan_mesh, estimate_cost or validate_mesh 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.

Usage Guidelines5/5

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

Explicit when-not-to-use rules are given ('Not needed when an owned mesh ... already exists and the user accepts reuse', 'Reuse old compute only when the user requests or accepts reuse') and alternatives are routed: estimate_cost for the figure, plan_mesh and check_geometry before an octree mesh, get_request_schema(mesh) for the full schema, review_job for awaiting_decision. Retry, reuse and authority conditions are all spelled out.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources