Skip to main content
Glama

Create terrain

create_terrain

Creates a terrain in an IfcSite from surface points; no target, created names the new elements, dry_run previews. moddl builds the rim walls, the flat bottom at base_z and one closed body per layer (2 or more layers: a TERRAIN container, one part per layer). Without triangles moddl triangulates by Delaunay, the rim is the convex hull, and the surface between the points is an assumption; for break lines or a concave rim name the triangles. New revision, effect report. A call that succeeds is not a job that's done. The report's terrain_created: the volume per layer, measured on the mesh, its source no stronger than the surface, checked against thickness x plan area; surface.support_m: the farthest plan distance to a point the height there is interpolated from. Default colour: top layer green, the layers below earth brown, darker with depth; set_properties SurfaceColour changes it. Change it later with edit_terrain (heights, pits, remove), never by creating it again. With boreholes (IFC4X3): an IfcGeomodel, one IfcGeotechnicalStratum per layer from the logs, interpolated linearly between the boreholes (an assumption; the report names support_m, the distance to the nearest borehole), ending at their hull unless beyond_boreholes; rest groundwater gives a WATER body; boreholes given inline are written as IfcBorehole.

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": {
      "base_z": "<base_z>"
    },
    "name": "create_terrain"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoName of the container or the single element
noteNoYour note, stored with the new revision
base_zYesBottom of the terrain body, world z in m; never assumed
layersNoTop to bottom; the last reaches down to base_z. None or one: one terrain element. With boreholes: the binding stratigraphic sequence
pointsNoSurface heights [x,y,z] in world m; with boreholes optional (the collars are the surface)
sourceNoWhere the values you write come from: assumption (default, your own estimate, stamped in the file) or user (only what the person named word for word; it then reads as the file does)
dry_runNoPreview: the planned effect and its checks, nothing written
boreholesNoVertical boreholes, each guid or at + log
trianglesNo[i,j,k] point indices from 0, any orientation
request_idNoYour id for this call: a repeat answers the first result and writes nothing
surface_fromNoWith boreholes, instead of points: a terrain in the model whose top is the surface; read only, never changed
beyond_boreholesNoExtend the strata to the points rim with the nearest hull values
ContainedInStructureNoThe IfcSite by GlobalId or Name; needed where the file has several

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Far beyond the annotations: it discloses what geometry is built (rim walls, flat bottom at base_z, one closed body per layer, TERRAIN container), the default Delaunay/convex-hull assumption, that a new revision and effect report are produced, the report fields (terrain_created volume cross-checked against thickness x plan area, surface.support_m), default colours, and the request_id idempotency guard. It stops short of stating permission requirements or failure modes, which keeps it off 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.

Conciseness3/5

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

The first sentence is a clean front-loaded summary, but the rest is a dense semicolon-chained wall of text mixing geometry, reporting, colour, and borehole semantics. Nearly every clause carries information, yet the run-on structure makes it 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.

Completeness5/5

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

For a 13-parameter, no-output-schema mutation tool, the description supplies what would otherwise be missing: the shape of the effect report and its key fields, the assumption model for interpolated surfaces and borehole strata, and the default colouring. Nothing an agent needs to call this correctly appears absent.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description still adds real meaning the schema does not: triangles vs automatic Delaunay and convex-hull rim, 'the last layer reaches down to base_z', the source enum's stamping behaviour, and support_m as the farthest interpolated plan distance. It does not systematically map each of the 13 parameters, hence 4 rather than 5.

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?

Opens with a specific verb and resource: 'Creates a terrain in an IfcSite from surface points.' It then explicitly distinguishes itself from the sibling edit_terrain ('Change it later with edit_terrain (heights, pits, remove), never by creating it again'), so an agent can route correctly 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?

Multiple concrete when-to-use and when-not-to-use rules: use create for new terrain and edit_terrain for later changes; name triangles when break lines or a concave rim are needed; use dry_run to preview; switch to the borehole path for IFC4X3 geotechnical data. No guidance is left implicit.

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