Skip to main content
Glama

Build a form mesh

form_build

Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for that variant and each level of detail's vertex and triangle counts. lod is near, mid, far or horizon. Costs 1 unit.

Input Schema

NameRequiredDescriptionDefault
lodNoThe level of detail to build at: near, mid, far or horizon.
formYesA shipped form id (scots-pine, oak, boulder and the rest) or a whole form document written inline.
variantNoWhich variant of the form to build, 0 to 255; the same variant always builds the same shape.

Output Schema

NameRequiredDescriptionDefault
msNoMilliseconds the run took.
jobYesThe job id; the job tool reads it.
verbNoThe tool that made it.
filesNoFiles made, each with a name, type, size and a signed URL.
unitsNoUnits this call cost.
resultNoThe engine's own answer, a JSON document.
statusNoqueued when the job runs in the background.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / form / description
      Added value: +"A shipped form id (scots-pine, oak, boulder and the rest) or a whole form document written inline."
    • addedInput schema / properties / lod / description
      Added value: +"The level of detail to build at: near, mid, far or horizon."
    • addedInput schema / properties / variant / description
      Added value: +"Which variant of the form to build, 0 to 255; the same variant always builds the same shape."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "files": {
      +      "description": "Files made, each with a name, type, size and a signed URL.",
      +      "items": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "job": {
      +      "description": "The job id; the job tool reads it.",
      +      "type": "string"
      +    },
      +    "ms": {
      +      "description": "Milliseconds the run took.",
      +      "type": "number"
      +    },
      +    "result": {
      +      "description": "The engine's own answer, a JSON document."
      +    },
      +    "status": {
      +      "description": "queued when the job runs in the background.",
      +      "type": "string"
      +    },
      +    "units": {
      +      "description": "Units this call cost.",
      +      "type": "number"
      +    },
      +    "verb": {
      +      "description": "The tool that made it.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "job"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly=false, destructive=false, openWorld=false, idempotent=false), so the bar is lower. The description adds genuinely non-structured context: a per-call cost of 1 unit and the determinism guarantee that the same variant always builds the same shape, which reconciles with the non-idempotent hint by implying repeated calls re-spend units. It stops short of stating permissions 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.

Conciseness4/5

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

Dense and front-loaded: the verb, accepted form kinds, and reported output come first, with the lod vocabulary and cost tacked on as short clauses. No filler sentences, though the return-value sentence is somewhat heavy given an output schema exists.

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?

With an output schema present, the description need not explain return values, yet it does anyway; that redundancy is harmless. It covers cost, accepted form inputs and lod values, leaving only sibling differentiation and auth/prerequisite behavior unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents form, variant and lod. The description's additions (example ids 'scots-pine, oak, boulder', the lod enumeration, the determinism note) largely duplicate schema text already present, so this stays at the baseline 3.

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

Purpose4/5

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

States a specific verb and resource ('Builds a form ... at one variant') and describes the observable result (knob values, vertex/triangle counts per LOD). It does not, however, differentiate itself from nearby siblings such as form_apply, form_check or form_starter, so an agent must infer the boundary from names alone.

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

Usage Guidelines3/5

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

Usage is only implied: you call it to build/realize a form and inspect its geometry. There is no explicit when-to-use, when-not-to-use, or named alternative despite three form_* siblings existing. The 'Costs 1 unit' note is a useful decision input but not routing guidance.

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