Skip to main content
Glama

Craft Quantities: construction material calculators

Stair layout: straight, turned, concrete or steel

stair_flight
Read-onlyIdempotent

Lays out a flight as built: risers, goings, pitch, 2R+G, the floor opening for a headroom, the stringer as cut, timber and fixings (straight, landing or winders), or concrete and bars, or steel mass; both systems, limits read against a named code, a canvas link. Not sized.

Input Schema

NameRequiredDescriptionDefault
kindYesstraight: one timber flight; turned: an L or U on a landing or winders; concrete: a cast flight; steel: steel stringers with treads.
detailNofull (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.full
inputsNoThe stair page's inputs by id (totalRise, targetRiser, going, buildingCode …), each length with its unit; any left out opens at the page's own figure.
marketNoOptional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.
systemNoThe unit system inputs left out open in, and the one the page link opens in. The answer comes in both.metric
inputUnitsNoSend "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add behavior, and it does: results are checked against a named code's limits, the answer is returned in both unit systems, and a canvas link comes back. It does not address what happens when inputs are invalid or out of code, but the extra behavioral facts exceed what the annotations provide.

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?

It is short and front-loads the verb, but it is compressed into a single semicolon-chained run of noun phrases rather than structured sentences, so the deliverable list blurs together. Nothing is wasted in length, but the density costs readability and the final "Not sized" is easy to miss.

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

Completeness3/5

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 spelled out, and the nested `inputs` object is fully documented in the schema. What is missing is the relationship to adjacent tools (`calculate`, `solve_backwards`, `make_canvas_link`) and any note on which code names `buildingCode` accepts. Adequate but with clear gaps for a six-parameter, nested-input tool.

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% and every enum already explains itself (kind, detail, market, system, inputUnits, inputs), so the schema carries the parameter burden. The description echoes a few of those ideas ("both systems", code limits) but adds no syntax or format detail beyond the schema. Baseline 3 applies.

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?

The verb+resource are specific ("Lays out a flight as built") and the description enumerates the concrete outputs: risers, goings, pitch, 2R+G, floor opening, stringer, timber/fixings or concrete/bars or steel. "Not sized" draws a boundary against a sizing tool, which helps distinguish it from `calculate`-style siblings. It loses a point because the phrasing is telegraphic ("steel mass", "2R+G", "as cut") and no sibling is named directly.

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?

The only routing signal is the trailing "Not sized", which implies you should look elsewhere if you want a stair sized rather than laid out. There is no explicit when-to-use statement, no mention of prerequisites (e.g. must have totalRise), and no named alternative such as `calculate` or `solve_backwards`. Usage is inferable from the domain but not stated.

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