Skip to main content
Glama

A2UI Atomic Catalog

wall_calc

Read-onlyIdempotent

Compute a coursed block/brick wall specification — course and unit counts, weight, cost, mortar bags, a build-time curve across 1-6 builders, and load-bearing/height advisories. Pure arithmetic, no model call: a native-catalogue rebuild of the Gemini Enterprise "Wall Builder" demo, kept byte-for-byte correct against that original's formulas (see mcp-worker/test/test_wall_calc_parity.py). country is not an input — it is derived from block_id and returned in the result.

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": {
      "block_id": "<block_id>",
      "height_m": "<height_m>",
      "width_m": "<width_m>",
      "pattern": "<pattern>"
    },
    "name": "wall_calc"
  }
}

Input Schema

NameRequiredDescriptionDefault
patternYesrunning = half-unit stagger on alternate courses; stack = none.
width_mYes0.2-20m, snapped to 0.2m steps.
block_idYesparpaing200/150 and brique are French standards; uk_brick/uk_block are UK standards. Determines unit dimensions, weight, and colour.
buildersNo1-6, snapped/clamped. Selects which point on the returned build_days_curve is build_days_selected.
height_mYes0.2-20m, snapped to 0.2m steps.
include_dpcNoAdds a damp-proof-course length to the result.
load_bearingNoTriggers an advisory (not a block swap) if the chosen block is under the load-bearing weight threshold.

Output Schema

NameRequiredDescriptionDefault
countryNoCountry the block spec is for.
coursesYesCourses of blocks.
patternNoBond pattern.
width_mNoSnapped wall width in metres.
block_idNoBlock id.
buildersYesBuilders, snapped to range.
height_mNoSnapped wall height in metres.
width_mmNoWidth in mm.
availableYesAlways true.
height_mmNoHeight in mm.
height_pctNoHeight as a percentage of the maximum.
per_courseYesBlocks per course.
total_costYesTotal block cost.
actual_h_mmNoBuilt height in mm.
actual_w_mmNoBuilt width in mm.
include_dpcNoWhether a damp-proof course is included.
mortar_bagsNoMortar bags.
total_unitsYesTotal blocks.
dpc_length_mNoDPC length in metres.
load_bearingNoWhether load-bearing was requested.
height_advisoryNoTrue when the wall is tall.
total_weight_kgYesTotal weight in kg.
build_days_curveNoBuild days per builder count.
build_days_selectedNoBuild days at the chosen builder count.
load_bearing_advisoryNoTrue when the block is too light for load-bearing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered; the description adds real context on top by stating it is pure arithmetic, deterministic, and pinned byte-for-byte to the original formulas. It also explains that load-bearing triggers an advisory rather than a block swap, which prevents the agent from expecting a mutation. It stops short of stating cost currency or weight units, which are meaningful gaps for an arithmetic tool.

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

Conciseness4/5

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

The capability list is front-loaded in the first sentence, followed by the determinism claim and the country caveat, so the most decision-relevant content comes first. The reference to the parity test file and the 'Gemini Enterprise demo' provenance is supporting colour that a calling agent gains little from, costing a point on strict economy.

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 seven parameters, four required, an output schema present, and full schema descriptions, the definition covers what is needed to call it correctly: enums, ranges and snapping are in the schema, and the description supplies the arithmetic/determinism framing and the derived-country note. The one residue is that cost and weight units/currency are never stated anywhere in the description, which matters for interpreting results.

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 schema already explains all seven parameters and the baseline would be 3. The description earns an extra point by explicitly ruling out a `country` input and explaining it is derived from block_id and returned — a clarification that directly prevents the agent from inventing a parameter that does not exist.

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

Purpose5/5

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

The description opens with a specific verb+resource ('Compute a coursed block/brick wall specification') and then enumerates the concrete outputs: course and unit counts, weight, cost, mortar bags, a build-time curve, and advisories. That is far more specific than any sibling (deck_build, diagram_studio) and lets an agent recognise the tool 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 Guidelines3/5

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

Usage is implied rather than stated: an agent can infer this is the tool for material/quantity take-offs on a masonry wall, and 'Pure arithmetic, no model call' usefully signals it is a deterministic calculator rather than a generative sibling. However, there is no explicit when-to-use vs when-not guidance and no named alternative for adjacent tasks such as deck or surface building.

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.