civilquants
Server Details
Parametric estimating engine: CESMM4/NRM2/SMM7/MMHW Bills of Quantities for civils assemblies.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 56 of 56 tools scored. Lowest: 3.4/5.
While each tool has a highly specific purpose and detailed description, the sheer number of 56 tools, many of which compute similar structures (e.g., various wall types like cantilever, counterfort, gravity, anchored, bored pile, gabion, reinforced soil), creates potential confusion for an agent trying to select the correct one. The descriptions are thorough but the overlap in domain and namespaces makes disambiguation challenging.
The vast majority of tools follow a consistent 'compute_<structure>' pattern (e.g., compute_anchored_wall, compute_manhole). A few management tools use 'get_', 'list_', 'recompute_', etc., which is a deviation but still predictable within their own sub-group. Overall, the pattern is clear and intuitive.
With 56 tools, the server vastly exceeds the typical well-scoped range of 3-15 tools. Even for a comprehensive civil engineering quantity surveying domain, this number is excessive and overwhelming for an agent, bordering on an extreme mismatch for the server's stated purpose.
The tool set appears highly comprehensive for its domain, covering retaining walls, drainage, pavements, road furniture, foundations, earthworks, utilities, and project management. Minor gaps might exist (e.g., bridges or tunnels not included), but for the intended scope of highway and drainage BoQ generation, it is well-covered.
Available Tools
56 toolscompute_anchored_wallCompute Anchored Retaining Wall BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. Anchored retaining wall — the only wall family member that pre-stresses the retained soil mass into the wall via post-tensioned ground anchors per BS EN 1537. Three structural variants: in-situ reinforced concrete (INSITU_RC, economic 5-10m); steel king-post-and-lagging (KING_POST, typical 4-8m, often temporary); driven sheet pile (SHEET_PILED, quays/cofferdams/deep basements). Eight VARIANT_PRESETS exercise the 'one parameter form, eight variants, four standards' moat #1 claim across all three structural variants. The in-situ RC body routes via wall_type='anchored' attribute discrimination: CESMM4 F.6.4, NRM2 11.3.4, MMHW 1700.4.3 (SHW Cl. 1709/1710), SMM7 E10.3.3. Ground anchors and stressing route to new specialist handlers (CESMM4 Class C; NRM2 Group 7; MMHW Series 1600; SMM7 D32). King-post sections to CESMM4 P.5 / NRM2 7.3 / MMHW 1600.3 / SMM7 D32; sheet piles to CESMM4 P.4 / NRM2 7.4 / MMHW 1600.4 / SMM7 D31; timber lagging to CESMM4 O.3 / NRM2 16.4 / MMHW 2500.7 / SMM7 G20.1. Example params: stem_height=6 m (2–15), stem_thickness=0.5 m (0–1.5), wall_length=25 m (5–200). Example call: {"params": {"stem_height": 6, "stem_thickness": 0.5, "wall_length": 25}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier). Pass freeboard (clearance below the wall top, m) instead of the retained-height field to set the retained fill by clearance — the engine back-calculates it as stem − freeboard. Supplying both is rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for an anchored retaining wall. A single dataclass that — through combinations of its fields and the ``wall_form`` discriminator — produces all eight VARIANT_PRESETS plus arbitrary user-specified geometries across all three structural variants (INSITU_RC, KING_POST, SHEET_PILED). Sensible defaults yield a 6m in-situ RC wall with a single row of permanent anchors. | |
| standard | No | MMHW | |
| freeboard | No | ||
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, implying a read-only operation, but the description clearly indicates a computation that returns output and requires paid authentication, which contradicts the read-only claim. The description adds details about tier requirements and deliverables, but the contradiction with annotations is severe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and includes extensive detail on standards and variants, which may be justified for a specialized tool. However, it is not concise; it contains redundancy (e.g., listing variants multiple times) and could be streamlined while preserving essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 top-level parameters, many nested, and an output schema), the description covers the tool's purpose, structural variants, tier restrictions, param examples, and deliverables. It is fairly complete, though it omits explanations for some nested parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at only 20%, the description compensates by explaining key parameters: wall_form variants with structural details, the freeboard field and its logic, and the deliverables option. It also provides example parameters and calls. However, many nested parameters under 'params' remain undocumented outside the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a BoQ for anchored retaining walls, distinguishes from the free-tier sibling compute_cantilever_wall, and specifies three structural variants. The verb 'Compute' and resource 'Anchored Wall BoQ' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states that this is a paid-tier tool and mentions the free alternative compute_cantilever_wall. It provides context on when to use this tool (anchored walls) but does not systematically exclude other wall types among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_attenuation_tankCompute Stormwater Attenuation Tank BoQARead-onlyInspect
Free tier. Renders the MMHW standard only — CESMM4, NRM2 and SMM7 require a paid tier. Anonymous callers welcome. Stormwater attenuation tank supporting two configurations: modular geocellular crates (high void ratio, compact footprint) or large-bore pipe arrays (1.5m+ ID concrete pipes in parallel runs). Excavation may be open-battered or vertical-sided with sheet pile support. Example params: tank_length=30 m (2–200), crate_width=6 m (1–20), crate_height=1.2 m (0.4–3.6). Example call: {"params": {"tank_length": 30, "crate_width": 6, "crate_height": 1.2}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description confirms it is a computation tool. It adds behavioral context like free-tier limitations, default parameter behavior, and one-shot download URLs for deliverables. It does not disclose rate limits or data retention, but given annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with key information (free tier, standards) and each sentence adds value. It is slightly lengthy but efficient given the tool's complexity. There is no redundancy or waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count and nested objects, the description covers core functionality, standard limitations, default behavior, and example calls. An output schema exists, so lack of return value explanation is acceptable. It could mention the output structure briefly, but overall complete for a compute tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It provides example parameter ranges (tank_length, crate_width, crate_height) and explains the tank_type via configurations. However, many parameters like bedding_thickness, cover_to_tank_top, etc., are not explained, leaving gaps. The note about sensible defaults helps but is vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a stormwater attenuation tank BoQ for two configurations (crates or pipes). It distinguishes itself from sibling compute_* tools by focusing on attenuation tanks, though it does not explicitly compare to similar tools like compute_soakaway.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context: free tier only supports MMHW standard, paid tier for others, anonymous callers. It also mentions optional deliverables. However, it does not give explicit when-to-use or when-not-to-use guidance relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_bored_pile_wallCompute Bored Pile Retaining Wall BoQBRead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. Cast-in-place bored concrete pile retaining wall, the SEVENTH member of the wall family and the FIFTH of the retaining_walls L1 leaf. The SIXTH structural system in the retaining / earth-structures domain (after mass concrete / RC / steel / mesh-and-stone / reinforced-soil-with-facing). Four structural forms via the bored_pile_form discriminator: CONTIGUOUS (clear-spaced piles, shotcrete face), SECANT_HARD_SOFT (alternating soft/hard overlapping piles, intermediate watertightness), SECANT_HARD_HARD (overlapping RC piles, maximum watertightness; deep basements), and KING_POST_AND_LAGGING_RC (widely-spaced RC king posts with lagging panels). 18th use of the classed-then-legacy attribute discrimination pattern, applied via the CONCRETE_REINFORCED handler's new wall_type='bored_pile' branch for the capping beam (when included). Routes via five new WorkCategory entries (BORED_PILE_CONCRETE, BORED_PILE_BORE, BORED_PILE_NR, BORED_PILE_HEAD_PREP, BORED_PILE_INTERLOCK) covering the CESMM4 Class P §P.8 three-line cast-in-place pile measurement convention plus the Class Q ancillaries head-prep line and the secant-specific interlock line. Codes: CESMM4 P.8.1-4 + Q.1.1, NRM2 7.6.1-4 + 7.5.1, MMHW 1600.5-6 (SHW Cl. 1602/1603), and SMM7 D30.1-5 — D30 (Cast in place piling) is OPENED at this session as the conventional UK QS named home. Capping beam routes via CONCRETE_REINFORCED with wall_type='bored_pile' to F.6.5 / 11.3.5 / 1700.4.4 / E10.3.4. Reinforcement billed itemised (separate audit line per BS 8666:2020 cage) on top of the pile rate by S31 decision. Eight variant presets exercise all four BoredPileForm values (2/2/2/2 split). Example params: wall_length_m=20 m (5–200), retained_height_m=6 m (2–20), embedment_below_formation_m=4 m (1–15). Example call: {"params": {"wall_length_m": 20, "retained_height_m": 6, "embedment_below_formation_m": 4}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a bored pile retaining wall. A single dataclass that — through combinations of its fields and the ``bored_pile_form`` discriminator — produces all eight VARIANT_PRESETS plus arbitrary user-specified geometries across all four BoredPileForm options. Sensible defaults yield a 6m basement-wall CONTIGUOUS bored pile wall. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the readOnlyHint annotation by disclosing the paid-tier requirement, authentication need, and deliverables option (Excel BoQ, DXF, PDF). However, it includes some internal implementation details (work categories, handler branches) that are not directly relevant to behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is excessively long and rambling, including verbose taxonomy (e.g., 'SEVENTH member of the wall family') and internal classification details that are not useful for an AI agent. While it front-loads the tier and authentication info, the rest is bloated and inefficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers structural forms, standards, and deliverables, and provides example parameters. However, it does not explain the output_mode parameter or the format of the computed BoQ, relying on the output schema. Given the tool's complexity, some information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 25%, the description compensates by providing example parameter values with ranges (e.g., wall_length_m=20 m (5–200)) and stating omitted parameters use sensible defaults. However, it does not explain most of the 30+ parameters, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a BoQ for a bored pile retaining wall, with verb 'compute' and resource 'BoQ'. However, it lacks clear differentiation from sibling wall tools like compute_counterfort_wall or compute_gravity_wall, despite mentioning compute_cantilever_wall as a free alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes it's paid-tier and suggests the free alternative compute_cantilever_wall, and warns about TIER_INSUFFICIENT error. But it provides no guidance on when to use this specific wall type vs other retaining wall tools, limiting its usefulness for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_box_culvertCompute Precast Concrete Box Culvert BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Precast concrete box culvert run (Marshalls / FP McCann / CPM ranges, BS EN 14844 / BS 5911-3) of one of eight catalogue sizes from BC_600 (600 × 600mm) to BC_3000x2000 (3000 × 2000mm). Composes the precast units (N per run), concrete blinding bedding, geotextile separator, selected granular surround per SHW Cl. 503, and foundation excavation with optional sheet pile support. Optional headwall_attenuation_outlet (2nd use of S21) at each termination with independently parameter-selectable scour protection (rock armour, gabion mattress, concrete apron, or none). Routes BOX_CULVERT_UNIT via CESMM4 H.7.3/.4/.5 (precast concrete, size banded), NRM2 33.8.1/.2/.3, MMHW 500.12.1/.2/.3 (with Series 2500 signpost for large units per Volume 4 NG 25), and SMM7 R12.4.5/.6/.7. Example params: total_length_m=12 m (1–200), invert_depth_m=2.5 m (0.5–15), invert_gradient=0.005 (0–0.08). Example call: {"params": {"total_length_m": 12, "invert_depth_m": 2.5, "invert_gradient": 0.005}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a precast concrete box culvert run. Catalogue-driven: pick a ``size`` and the section's nominal span / height / mass / wall thickness are read from ``_CATALOGUE``. Override individual fields if a specific manufacturer differs. The run is composed of ``ceil(total_length_m / unit_length_m)`` precast sections of the chosen size. Headwalls at each end are optional and each independently selectable, with the headwall_attenuation_outlet sub-assembly owning its size, bedding, outlet ironmongery, and scour protection. Per the S23 spec, the headwalls are emitted as fully separate sub-assemblies — their WorkItems carry their own ``source_assembly`` tag. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the readOnlyHint annotation: paid-tier restriction, authentication error code, deliverables (xlsx, dxf, pdf), and sensible engineering defaults. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but front-loaded with the most critical info (tier restriction, purpose). Each sentence adds value, including standards, example, and deliverables. Could be slightly more concise but is well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (30+ parameters, nested params, deliverables), the description covers core components, measurement rules, standards, and an example call. An output schema exists, so return values need not be detailed. Nearly complete, though more could be said about edge cases or parameter interactions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, but the description only elaborates on a few parameters (size, total_length_m, invert_depth_m, invert_gradient) in the example. Most parameters have detailed schema descriptions, reducing the burden, but the description does not guide on many important parameters like excavation_support or headwall options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a BoQ for a precast concrete box culvert run, listing specific catalogue sizes, components, and measurement standards. It distinguishes itself from sibling tools like compute_manhole by being the paid-tier alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly notes the paid-tier requirement and provides a free-tier alternative (compute_manhole). Includes example parameters and call structure, guiding when to use and how to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_cantilever_wallCompute Cantilever Retaining Wall BoQARead-onlyInspect
Free tier. Renders the MMHW standard only — CESMM4, NRM2 and SMM7 require a paid tier. Anonymous callers welcome. In-situ reinforced concrete cantilever retaining wall with toe, heel, and stem. Includes excavation, blinding, drainage, and backfill quantities. Example params: stem_height=4 m (2–8), stem_thickness_top=0.3 m (0.2–0.6), stem_thickness_bottom=0.45 m (0.25–0.9). Example call: {"params": {"stem_height": 4, "stem_thickness_top": 0.3, "stem_thickness_bottom": 0.45}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier). Pass freeboard (clearance below the wall top, m) instead of the retained-height field to set the retained fill by clearance — the engine back-calculates it as stem − freeboard. Supplying both is rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| freeboard | No | ||
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses free tier limitation, anonymous access, default behavior, deliverables download URLs, and that supplying both freeboard and retained-height is rejected. readOnlyHint annotation is consistent with compute operation; description adds value beyond annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured: starts with tier info, then wall type, parameter examples, example call, deliverables, and freeboard. Somewhat lengthy but every sentence adds relevant information; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main functionality, example usage, defaults, special behaviors (freeboard, deliverables). Given the tool's complexity (5 top-level parameters, nested params with 18 properties) and existence of an output schema, the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description carries full burden. Describes example parameters (stem_height, stem_thickness_top, stem_thickness_bottom) with ranges, explains freeboard and deliverables. However, most of the 18 parameters in 'params' object are not individually explained, relying on defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as computing a Bill of Quantities for a cantilever retaining wall, specifying wall components (toe, heel, stem) and included works (excavation, blinding, drainage, backfill). It distinguishes from sibling tools like compute_gravity_wall by focusing on cantilever type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: free tier renders only MMHW, paid tiers for others; anonymous calls welcome; omitted parameters use defaults; explains deliverables parameter and freeboard alternative. Lacks explicit when-not-to-use but covers key usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_carrier_pipe_runCompute Carrier Pipe Run (banded) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Linear carrier-pipe measurement assembly with full four-standard depth-banded rendering. CESMM4 Class I (I.{material}.{bore}.{depth}, 9 depth bands), NRM2 Group 33 (33.1.{bore}.{depth}, equivalent banding), MMHW Series 500 (500.1.{bore}.{depth}, 11 depth bands extending to 6 m for highway-scale carriers per SHW Cl. 501), SMM7 R12 (R12.1.{bore}.{depth}, 10 depth bands starting at 1 m for housing-scale carriers). Twelve variant presets exercise all 9 CESMM4 Class I depth bands and all 5 carrier materials (vitrified clay / concrete / HDPE / ductile iron / uPVC) — 12 × 4 = 48 distinguishable BoQ rows from a single parameter form. 19th use of the classed-then-legacy attribute discrimination pattern, FIRST applied to a Class I (Pipework) category — discriminator here is material itself, with the CESMM4 handler routing through the 5 Class I material sub-class digits while NRM2/MMHW/SMM7 stay within their respective groups but distinguish material in the description. Companion assembly: connection_to_existing (S32 sibling pair) — the enumerated extra-over connection line that ties a carrier run into an adopted asset. Example params: diameter_mm=225 mm (100–2400), invert_depth_m=1.8 m (0.5–10), run_length_m=30 m (1–2000). Example call: {"params": {"diameter_mm": 225, "invert_depth_m": 1.8, "run_length_m": 30}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a carrier pipe run. Geometric defaults yield a DN225 vitrified clay carrier at 1.8 m average invert depth over a 30 m run — the textbook small-civils foul carrier described in the QS measurement examples. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations have readOnlyHint=true, which is consistent with a computation tool. The description adds important context: paid tier restriction, error message TIER_INSUFFICIENT, and deliverables generation. However, it includes some internal jargon (e.g., '19th use of the classed-then-legacy attribute discrimination pattern') that may not aid an AI agent. Annotations already cover the safety profile well, so description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly long and packed with technical detail (e.g., standard classifications, variant counts, internal pattern names). While front-loaded with the tier restriction, the verbose elaboration on standards and patterns reduces conciseness. Each sentence does not earn its place; some could be omitted for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (four standards, multiple parameters, nested object, output schema), the description covers most necessary context: standards definitions, example call, default values, companion tool, and deliverable options. Minor gaps: no mention of how standards selection changes output format or what happens with invalid deliverables. Still, overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, but the description compensates by explaining the params object in detail, including defaults for use, jointing, material, and geometric parameters. It provides example values and clarifies the role of 'use' (only affects description text). This goes well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'Linear carrier-pipe measurement assembly' for computing BoQ across four standards, with specific details on materials, depth bands, and variants. It distinguishes itself from sibling tools by mentioning the free-tier alternative compute_manhole and companion assembly connection_to_existing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only' and provides a direct alternative (compute_manhole) for free tier, along with a sign-up URL. Also mentions companion tool and example usage, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_catchpitCompute Precast Concrete Catchpit / Silt Trap BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Precast concrete catchpit / silt trap to BS 5911-3 comprising factory-cast monolithic base with integral silt sump (600-900mm below outlet invert), stacked precast chamber rings, precast cover slab, ductile-iron frame and cover (BS EN 124 loading classes), optional step irons, granular or concrete bedding, granular surround, geotextile separator, and excavation. Catalogue-driven sizing from CP_900 (900mm ID) to CP_1800 (1800mm ID). Routes via chamber_type='catchpit' attribute discrimination through CESMM4 K.1.6.x, NRM2 33.7.14, MMHW 500.5.16 (SHW Cl. 511 silt traps), and SMM7 R12.3.13. Distinct from manholes by the silt-sump-below-channel geometry; typical position upstream of petrol/oil interceptor (S24) in a forecourt or service-area drainage train. Example params: invert_depth=2.5 m (0.5–10), bedding_thickness_mm=150 mm (100–300), bedding_overhang_m=0.15 m (0.1–0.3). Example call: {"params": {"invert_depth": 2.5, "bedding_thickness_mm": 150, "bedding_overhang_m": 0.15}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a precast concrete catchpit / silt trap. Catalogue-driven: pick a ``size`` and the chamber's nominal dimensions, masses, and silt-sump depth are read from ``_CATALOGUE``. Override individual fields if a specific manufacturer differs. The catchpit is treated as a **manhole-family chamber** (same WorkCategory.MANHOLE) discriminated on chamber_type='catchpit'. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses authentication requirements (paid tier, TIER_INSUFFICIENT error), deliverable formats (xlsx, dxf, pdf), and that omitted parameters use defaults. It also mentions catalogue-driven sizing. The readOnlyHint annotation is true, and the description does not contradict it (computing and returning files is read-only). The description adds behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured with critical info front-loaded (paid tier, alternative, purpose). It includes an example call and lists deliverable options. Every sentence adds necessary context for civil engineering users. Minor redundancy (e.g., repeating standards in different forms) but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters, multiple standards, output deliverables, tier system), the description is comprehensive. It covers authentication, tier choice, standard selection, catalogue sizing, defaults, and deliverable generation. The output schema exists, so return values are not fully detailed but referenced. Sibling comparisons are made (manhole).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has many parameters with some descriptions (25% coverage). The description adds value by explaining catalogue-driven sizing (size parameter picks from catalogue) and stating that omitted parameters use sensible defaults. It also provides example values for a few key parameters. However, detailed parameter meaning is mostly left to the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Computes Precast Concrete Catchpit / Silt Trap BoQ' with specific standards (CESMM4, NRM2, MMHW, SMM7) and distinguishes from manholes by 'silt-sump-below-channel geometry'. The verb 'compute' plus the specific resource 'catchpit/silt trap' makes the purpose unambiguous, and it explicitly differentiates from sibling tool 'compute_manhole'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it is a paid tier tool, with a free-tier alternative 'compute_manhole' mentioned. It explains typical positioning upstream of petrol/oil interceptor and gives example parameters and calls. However, it does not explicitly exclude other scenarios or provide a comprehensive 'when to use vs. not use' list beyond the manhole comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_combined_services_trenchCompute Combined Services Trench BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Shared utility trench carrying multiple services side by side, each at its own cover depth (water, gas, electricity, telecoms) per NJUG Volume 1. One excavation envelope sized from the services, one disposal, one backfill column, with per-service lane-width bedding, surround, pipe/duct, and warning tape. Renders through CESMM4 Class I, NRM2 Group 41, MMHW Series 1300 and SMM7 Group T for the services, with the shared envelope routing through the existing earthworks/drainage handlers. Example params: trench_length_m=50 m (1–2000), service_spacing_mm=100 mm (50–500), working_space_below_bed_mm=100 mm (0–500). Example call: {"params": {"trench_length_m": 50, "service_spacing_mm": 100, "working_space_below_bed_mm": 100}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the readOnlyHint annotation by detailing authentication requirements (returns TIER_INSUFFICIENT), default parameter behavior, and the generation of temporary download URLs. It does not contradict the annotation and provides a clear picture of what the tool does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: it front-loads the paid-tier warning, then describes the purpose, example parameters, an example call, and final notes on deliverables. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity with nested objects and multiple standards, the description covers authentication, defaults, deliverables, and example usage. The output schema exists, so return values are assumed to be documented elsewhere, making this description complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema_description_coverage, the description extensively explains key parameters (trench_length_m, service_spacing_mm, working_space_below_bed_mm) with examples and defaults. It covers complex nested parameters like services, providing semantics for all major inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a BoQ for a combined services trench, specifying it handles multiple utilities per NJUG Volume 1 and renders through multiple measurement standards. It distinguishes itself from siblings by mentioning the free-tier alternative compute_manhole and implying it is for shared trenches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions it is paid tier only and provides a free alternative. It includes an example call and explains deliverables, but does not explicitly state when to use this tool over other compute_ tools, though context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_connection_to_existingCompute Connection to Existing (drainage) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Enumerated extra-over connection of a new drainage carrier pipe into an existing asset: existing manhole / inspection chamber, existing sewer or drain (via saddle / wye / cut-in junction), or existing outfall / watercourse / surface system. Routes via CESMM4 I.7.1/2/3 (Class I §I.7 Pipework Ancillaries — Connections), NRM2 33.6.1/2/3, MMHW 500.5.1/2/3 (SHW Cl. 506 Connections to existing sewers, drains and service runs), SMM7 R12.4.1/2/3, with a bore-size digit suffix appended in all four. The connection_type attribute is the discriminator that routes to the right sub-code; the bore digit refines within. Six variant presets cover all three connection types × two characteristic bores. Unit: Nr. Opens the new drainage_ancillaries L2 leaf (reserved for ditch, hard-material extra-over, CCTV testing, etc. in future sessions). Sibling assembly: carrier_pipe_run — the S32 pair that delivers a complete tender drainage line. Example params: diameter_mm=225 mm (100–2400). Example call: {"params": {"diameter_mm": 225}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single connection-to-existing extra-over item. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses paid tier, error behavior, deliverables, and standards mapping. However, the description mentions 'Opens the new drainage_ancillaries L2 leaf', which contradicts the readOnlyHint=true annotation (suggesting side effects). This inconsistency reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative and well-structured, starting with critical usage warning, then function, standards, example, and deliverables. While slightly lengthy, all content earns its place; no waste. Could be slightly tighter but remains clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 params, nested objects, many siblings, output schema existence), the description covers purpose, usage, parameters, standards mapping, error conditions, and output formats. It is fully adequate for an AI agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%), but the description explains the discriminator logic (connection_type), bore digit suffix, and example parameters. It clarifies the role of 'method' vs 'connection_type' and notes defaults, adding significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool computes extra-over connections for drainage pipes into existing assets, listing types and standards. It distinguishes from siblings like compute_manhole and carrier_pipe_run, making purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns about paid tier and provides alternative free tier (compute_manhole). Mentions sibling assembly carrier_pipe_run for complete line. Gives example call and parameter defaults, offering clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_counterfort_wallCompute Counterfort Retaining Wall BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. In-situ reinforced concrete counterfort retaining wall. Discrete RC counterforts on the retained face enhance moment capacity, making the wall economic for 4-10m retained heights (above cantilever-economic range, below anchored-wall range). Includes base slab, thin curtain wall, counterforts at configurable centres, drainage, and backfill. Eight VARIANT_PRESETS exercise the 'one parameter form, eight variants, four standards' moat #1 claim. Routes via wall_type='counterfort' attribute discrimination: CESMM4 F.6.3, NRM2 11.3.3, MMHW 1700.4.2 (SHW Cl. 1704), SMM7 E10.3.2. Example params: stem_height=5 m (3–12), curtain_thickness=0.35 m (0.2–0.6), toe_length=0.6 m (0–3). Example call: {"params": {"stem_height": 5, "curtain_thickness": 0.35, "toe_length": 0.6}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier). Pass freeboard (clearance below the wall top, m) instead of the retained-height field to set the retained fill by clearance — the engine back-calculates it as stem − freeboard. Supplying both is rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for an in-situ RC counterfort retaining wall. A single dataclass that — through combinations of its fields — produces all eight VARIANT_PRESETS plus arbitrary user-specified geometries. Sensible defaults yield a 5 m high standard highway counterfort wall with counterforts at 4.0 m centres. | |
| standard | No | MMHW | |
| freeboard | No | ||
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes tier restriction, authentication requirement, default behaviors, output options (deliverables). Annotations declare readOnlyHint=true, which aligns with a compute tool. Adds value beyond annotations with tier and default details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured and comprehensive without excess. Each sentence contributes: tier info, purpose, standards, example, parameter descriptions. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (many parameters, variants, outputs), the description provides a good overview, including presets and standards. It misses some parameter details but overall equips an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has low description coverage (20%), but the description adds meaning for key parameters (stem_height, curtain_thickness, toe_length, freeboard) and explains enums like counterfort_shape. Not all 30+ parameters are covered, but examples and defaults help.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool computes a BoQ for an in-situ RC counterfort retaining wall, including variants and standards. It distinguishes from siblings like compute_cantilever_wall by specifying height ranges and tier differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance: paid tier only, alternative free tier compute_cantilever_wall, height range where counterfort wall is economic (4-10m). Also mentions example calls and parameter constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_ditchCompute Open Ditch (drainage channel) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Linear primary measurement of an open earthwork drainage channel — trapezoidal cross-section, four lining variants (unlined / geotextile / granular / concrete). Routes via CESMM4 Class E.4 (excavation for cuttings), NRM2 Group 34.10 (site works: open drains and ditches), MMHW Series 500.4 (SHW Cl. 514 Earthwork ditches and drains), SMM7 R13.4 (Land Drainage — ditches). Eight variant presets cover all four lining types x two characteristic size scenarios each. Unit: M. Second member of the drainage_ancillaries L2 leaf (opened at S32 with connection_to_existing). 20th use of the classed-then-legacy attribute discrimination pattern via the lining_type discriminator. The four standards genuinely diverge on which work-section heading owns ditches (Class E vs Group 34 vs Series 500 vs R13) — the platform renders all four honestly from one source WorkItem. Example params: run_length_m=100 m (1–1000), top_width_mm=1700 mm (200–10000), bottom_width_mm=500 mm (100–5000). Example call: {"params": {"run_length_m": 100, "top_width_mm": 1700, "bottom_width_mm": 500}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single open-ditch primary measurement. The geometry is a trapezoidal cross-section run linearly along the ditch alignment. side_slope_h_per_v is the side slope expressed as horizontal-per-vertical (1.0 = 45 deg, 1.5 = ~34 deg, 0.5 = ~63 deg). | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true. The description adds behavior context: authentication requirements and error response for free users. No contradiction with annotations. It does not fully disclose all behaviors (e.g., rate limits) but provides key additional info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is quite long and includes many specifics (standards, presets, discriminator pattern). While informative, it could be more concise. However, it is well-structured with logical flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple standards, lining types, deliverables, tier restrictions), the description covers all essential aspects. Output schema exists, and description mentions deliverables and output modes, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 25%, but the description significantly adds meaning: explains geometry, defaults, and provides example parameter values. It compensates for low schema coverage with detailed explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes BoQ for open ditches, specifying verb 'Compute' and resource 'Open Ditch BoQ'. It distinguishes from sibling tools like 'compute_manhole' and details cross-section, lining variants, and standards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states paid tier requirement and suggests free alternative 'compute_manhole'. Example parameters and call are provided. However, it does not explicitly list all scenarios where this tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_edge_drainCompute Highway Pavement Edge Drain (HD 33/16) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Highway pavement edge drain per HD 33/16. Perforated carrier in a granular-filled trench with filter geotextile wrap; optional top separator under the pavement build-up. Highway-specific defaults: Type B filter aggregate, 200 g/m² geotextile, supported excavation. Headline standard mapping: MMHW 500.7 (filter drain with perforated pipe). Renders cleanly across all four standards with HA 40/01 references. Example params: pipe_internal_diameter_mm=150 mm (80–300), pipe_wall_thickness_mm=25 mm (5–50), drain_length=100 m (1–1000). Example call: {"params": {"pipe_internal_diameter_mm": 150, "pipe_wall_thickness_mm": 25, "drain_length": 100}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the tool is read-only. The description adds that it requires authentication (paid tier) and returns TIER_INSUFFICIENT otherwise, and describes deliverables (xlsx, dxf, pdf) with watermarking on free tier. This context is valuable but does not significantly expand on behavioral traits beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single block of text that is moderately long. It front-loads the paid-tier warning and includes an example call, but the structure is dense and could be more scannable with bullet points or sections. Some details (e.g., 'Headline standard mapping') may be unnecessary for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters, output modes, deliverables), the description covers the main purpose and some behavioral details (paid tier, deliverables) but does not explain the output schema or fully describe parameter semantics. It provides domain references (HD 33/16, HA 40/01) but remains incomplete for an unfamiliar agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It provides example values and ranges for three parameters (pipe_internal_diameter_mm, pipe_wall_thickness_mm, drain_length) and mentions defaults for omitted parameters. However, it does not explain the meaning or purpose of the many other parameters, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a BoQ for highway pavement edge drain per HD 33/16, with specific components (perforated carrier, granular-filled trench, geotextile wrap). It uses a specific verb ('compute') and resource, and distinguishes from siblings like compute_french_drain and compute_highway_drainage_channel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly marks the tool as paid tier only and provides a free-tier alternative (compute_manhole). It also suggests 'Omitted parameters use sensible engineering defaults' and gives an example call, but does not elaborate on when to choose this tool over other drain or drainage tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_embankment_cross_sectionCompute Embankment Cross-Section BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Geometry-driven embankment per MMHW Series 600 — trapezoidal cross-section with crest width, asymmetric side slopes (h:v), and per-chainage height profile. Auto-generates the CrossSection series and delegates volume integration + mass-haul + standards routing to the end_area_earthworks engine, inheriting the four-standard rendering invariant. Auto-computes topsoil strip footprint from toe-to-toe envelope and supports an optional founding-strip excavation below ground level. Example params: crest_width_m=10 m (3–30), side_slope_h_per_v=2 (1–4), strip_envelope_offset_m=0.5 m (0–2). Example call: {"params": {"crest_width_m": 10, "side_slope_h_per_v": 2, "strip_envelope_offset_m": 0.5}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Inputs for a geometry-driven embankment cross-section assembly. The assembly generates a `CrossSection` list from the profile + geometry parameters, builds an `EndAreaEarthworksParameters` from the result + the material/method parameters carried here, and delegates compute to `EndAreaEarthworks.compute(...)`. Per Session 12 Q2 decision: left and right slopes are exposed separately, both defaulting to `side_slope_h_per_v` so the common symmetric case is a single-parameter call. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true. Description adds context about tier restrictions, computational delegation, and deliverable generation (watermarked free vs paid), which is useful beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is dense but front-loaded with critical info (tier requirement, alternative), followed by technical details and example; every sentence serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers inputs (geometry, materials), processing (delegation to end_area_earthworks), outputs (CrossSection, mass-haul, deliverables), and constraints (paid tier, standards); example call and parameter ranges make it self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 25% coverage; description compensates by providing realistic ranges and defaults for key parameters like crest_width_m, side_slope_h_per_v, strip_envelope_offset_m, and explains the height_profile purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes embankment cross-section BoQ using geometry inputs, and distinguishes it from the sibling tool compute_end_area_earthworks as a paid-tier alternative with explicit differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states paid-tier requirement, provides free-tier alternative, includes example parameters and call, and notes omitted parameters use sensible defaults, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_end_area_earthworksCompute End-Area Earthworks BoQARead-onlyInspect
Free tier. Renders the MMHW standard only — CESMM4, NRM2 and SMM7 require a paid tier. Anonymous callers welcome. Linear earthworks reach measured by the end-area method per MMHW Series 600 — Simpson's Rule with UK-QS even-ordinate trapezoidal-boundary fallback, with full SHW Series 600 Table 6/1 class tagging, mass-haul diagram (bulking + shrinkage per SHW Cl. 605), cut/fill balance, DISPOSAL vs FILL_GENERAL routing, capping and sub-base build-up, and topsoil strip + replacement. Renders identically across CESMM4 / NRM2 / MMHW / SMM7 with per-class line distinction. Example params: unacceptable_proportion=0 (0–1), topsoil_strip_depth_m=0.15 m (0–1), topsoil_replace_depth_mm=150 mm (0–500). Example call: {"params": {"unacceptable_proportion": 0, "topsoil_strip_depth_m": 0.15, "topsoil_replace_depth_mm": 150}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Inputs for a linear earthworks reach measured by the end-area method. The five area streams in each `CrossSection` are integrated independently along the chainage axis. `topsoil_strip_area` is the planar (m²) strip area at each section; the volume is computed as `trap-integrate(topsoil_strip_area) × topsoil_strip_depth_m / strip_area_mean` — i.e. we multiply the integrated planar strip area by the strip depth to get a volume in m³. Conventionally `topsoil_strip_area` per the designer is planar in m² per running metre (m² of plan area per metre of chainage = m of width), but to keep CrossSection symmetric with the other four area streams we treat it as a true area (m²) at that station and apply the depth multiplication here. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses computation methods (Simpson's Rule, trapezoidal fallback), SHW class tagging, mass-haul diagramming, and deliverable generation. The readOnlyHint annotation is not contradicted, and the description adds substantial behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and mixes pricing, technical details, and examples without clear structure. It is front-loaded with important tier info but overall could be more concise and better organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers tier constraints, supported standards, computation method, outputs, and deliverables. With an existing output schema and annotations, the description provides sufficient context for selecting and invoking the tool, though it could elaborate on parameters like output_mode and standard.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning for a few parameters via example values (unacceptable_proportion, topsoil_strip_depth_m, topsoil_replace_depth_mm), but given only 25% schema description coverage, more parameter details in the description would be beneficial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes end-area earthworks quantities following specific standards (MMHW etc.) and details features like mass-haul diagram and cut/fill balance. However, it is cluttered with pricing and tier information that muddy the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage guidance on free vs paid tiers and that anonymous callers are welcome, but does not explicitly state when to use this tool over sibling tools (which are clearly different structures) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_flexible_pavementCompute Flexible (Bituminous) Pavement Build-Up BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Flexible pavement build-up: optional capping (Class 6F) + Type 1 (Class 1A) granular sub-base + asphalt concrete base (AC) + binder course (AC/HRA) + optional tack coat + surface course (AC/HRA/SMA/TSCS). Routes the bound layers through PAVEMENT_BASE/BINDER/SURFACE handlers with pavement_family discrimination across all four standards. Sub-base and capping route through the v8 FILL_SUB_BASE/FILL_CAPPING SHW-class-aware handlers. Four traffic-category defaults (domestic/light/medium/heavy) per DMRB CD 226. All four standards render (CESMM4 R.1-R.4, NRM2 34.4-34.6, MMHW 700, SMM7 Q20+Q22). Example params: length=100 m (0.5–2000), width=6 m (0.5–30), sub_base_thickness_mm=150 mm (100–500). Example call: {"params": {"length": 100, "width": 6, "sub_base_thickness_mm": 150}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Input parameters for a flexible pavement assembly. Geometric defaults match a 100m × 6m urban access road (medium traffic) per DMRB CD 226 starting build-up: 150mm Type 1 sub-base, 150mm AC 32 base, 60mm AC 20 binder, 40mm SMA 10 surface. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description describes generating BoQ and deliverables (xlsx, dxf, pdf) with download URLs, implying side effects (file creation on server). This contradicts the annotation readOnlyHint: true, which marks the tool as read-only. The description does not reconcile this contradiction, leading to a score of 1 with annotation contradiction flagged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence adds value: paid-tier warning, build-up composition, routing details, traffic categories, standards, example params, deliverables. It is front-loaded with the tier info, and while dense, it avoids repetition. Could be slightly tighter but earns a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters, standards, traffic categories, deliverables), the description covers the main functionality and key constraints. It explains output modes and that omitted parameters use defaults. The output schema exists, so return values are covered. However, it lacks details on the exact response structure for different output modes, which slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description must compensate. It adds meaning by providing example parameters with ranges (length 0.5–2000, width 0.5–30, sub_base_thickness 100–500) and explaining the traffic_category defaults and mapping. However, many parameters (e.g., base_material, binder_material, capping_class) are not mentioned in the description, limiting compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes flexible pavement build-up BoQ, details the layers (capping, sub-base, base, binder, surface) and standards (CESMM4, NRM2, MMHW, SMM7). It differentiates from the free-tier alternative compute_end_area_earthworks and implies differentiation from sibling pavement tools like compute_rigid_pavement through the specific focus on bituminous pavement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the paid-tier requirement and suggests the free alternative compute_end_area_earthworks for users without an account. It also warns that for traffic >30 msa a full DMRB CD 226 design is needed, providing a 'when not to use' guideline. However, it could more directly contrast with other pavement tools like compute_rigid_pavement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_french_drainCompute French (Filter) Drain BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Perforated land drain in a granular-filled trench with non-woven filter geotextile wrap. Composes the bedding primitive at Class S geometry (full granular envelope) with three additions: perforated carrier, filter geotextile wrap, and optional top seal. Renders cleanly across CESMM4 / NRM2 / MMHW (Series 500 filter drain) and SMM7. Example params: pipe_internal_diameter_mm=150 mm (80–600), pipe_wall_thickness_mm=25 mm (5–80), drain_length=50 m (1–500). Example call: {"params": {"pipe_internal_diameter_mm": 150, "pipe_wall_thickness_mm": 25, "drain_length": 50}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits: paid tier restriction with specific error message, free-tier alternative, defaults for omitted parameters, and one-shot download URLs for deliverables. It also mentions the standards supported. Even though annotations set readOnlyHint=true, the description adds significant context about side effects (generating files) and authorization needs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: tier info, technical description, example, and deliverable options. It is somewhat lengthy but every sentence provides valuable context. The front-loading of the paid-tier warning and alternative is effective. Minor reduction possible but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (many parameters, nested objects, output schema exists), the description covers all essential aspects: purpose, tier restrictions, default behavior, example call, standards, and deliverable options. The output schema exists so return values are not needed in description. The tool's functionality is fully contextualized for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. However, the description only provides example values and ranges for three parameters (pipe_internal_diameter_mm, pipe_wall_thickness_mm, drain_length), ignoring the other 14+ parameters in the schema. While the schema itself contains some descriptions for pipe_type and bedding_context, the description fails to add semantic meaning for most parameters. This is insufficient for a complex tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: computing a French (filter) drain BoQ. It specifies the verb 'compute', the resource 'French drain BoQ', and distinguishes from the sibling 'compute_manhole' as a free-tier alternative. The description includes detailed technical context about the drain composition and supported standards, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states usage conditions: 'Paid tier only' and directs to sign up or use the free alternative 'compute_manhole'. It provides an example call with parameters and standard, and notes that omitted parameters use sensible defaults. It also explains optional deliverables like 'xlsx', 'dxf', 'pdf' and their tier restrictions. This gives clear guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_gabion_wallCompute Gabion Retaining Wall BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. Modular gabion retaining wall built from welded or hexagonal-mesh wire baskets filled with hard angular graded stone (SHW Cl. 622). The first non-concrete retaining structure in the platform and the FIRST member of the earth_structures L1 leaf — opening Phase E. Spans four structural forms via the gabion_form discriminator: STACKED_RECTANGULAR (standard highway boundary), STACKED_STEPPED (architectural / heritage), BATTERED (tall walls with back batter), and FACING_MATTRESS (Reno-type mattresses for slope facing / scour protection). Eight variant presets exercise the parameter form covering all four gabion_form values: highway boundary, landscape, stepped front, heritage stepped, battered, river training, scour apron, and tall battered. Routes via three new WorkCategory entries (GABION_BASKET, GABION_FACING_MATTRESS, STONE_FILL) — the first session where the classed-then-legacy discriminator pattern is applied to fundamentally new measurement vocabulary rather than to existing concrete categories. Codes: CESMM4 E.8.1-3 (Class E — Earthworks), NRM2 5.20-22 (Group 5 — Excavating and filling), MMHW 600.12-14 (Series 600 — Earthworks; SHW Cl. 622/623), and SMM7 D41.1/D41.2/D20.20 (D41 — Crib walls / gabions / reinforced earth — the only standard with a NAMED home). 16th use of the discriminator pattern, first applied to new WorkCategories rather than legacy ones. Example params: wall_height=3 m (0.1–8), wall_length=25 m (5–200), basket_length_m=2 m (1–3). Example call: {"params": {"wall_height": 3, "wall_length": 25, "basket_length_m": 2}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a gabion retaining wall. A single dataclass that — through combinations of its fields and the ``gabion_form`` discriminator — produces all eight VARIANT_PRESETS plus arbitrary user-specified geometries across all four GabionForm options. Sensible defaults yield a 3m highway-boundary STACKED_RECTANGULAR wall with 1m × 1m × 2m galvanised hexagonal baskets filled with 100-200mm graded stone. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool is a paid computation that returns deliverables (BoQ, DXF, PDF) and requires authentication. However, it does not explicitly contradict the readOnlyHint annotation; the description itself is transparent about behavior, but the annotation is misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is excessively long and contains verbose historical/technical details (e.g., discriminator pattern, work category entries, code references) that are not essential for invoking the tool. It could be significantly condensed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested params, variants, paid tier, multiple standards), the description is remarkably complete. It explains structural forms, code mappings, example calls, and deliverables. Output schema exists, so detailed return values are unnecessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%), but the description adds meaning through example calls, defaults, and the explanation of deliverables. It provides context for the params object structure but does not systematically describe each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a BoQ for a gabion retaining wall, using specific verbs like 'Compute' and 'generate'. It distinguishes from siblings by naming the free-tier alternative compute_cantilever_wall and positions itself as the first non-concrete earth structure tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (modular gabion walls) and when-not-to (paid tier only, free tier alternative). Also mentions required authentication, example calls, and sensible defaults for omitted parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_gravity_wallCompute Mass Concrete Gravity Retaining Wall BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. In-situ mass concrete gravity retaining wall (typical C20/25 to C25/30) with trapezoidal cross-section, retaining soil by self-weight rather than structural action. Eight variant presets exercise the parameter form — landscape, highway boundary, trapezoidal, stepped-front, toe-projection, keyed-base, stepped-foundation, and battered-back-vertical-front. Routes via wall_type='gravity' attribute discrimination through CESMM4 F.5.3, NRM2 11.2.3, MMHW 1700.5 (SHW Cl. 1704 structural concrete), and SMM7 E10.2.3. Reinforcement default zero (gravity walls are nominally unreinforced); optional nominal face mesh available via nominal_face_reinforcement_kg_per_m3 parameter. Includes excavation (battered or supported, level or stepped foundation), blinding, drainage system (subsoil drain + granular surround + geotextile separator), Class 6N backfill, disposal, and formwork to vertical and battered faces. 13th use of the classed-then-legacy attribute discrimination pattern, and first use in the retaining wall family — opening the wall moat for subsequent counterfort (S30), anchored (S31) and bored pile (S32) variants. Example params: stem_height=3 m (1.5–6), stem_thickness_top=0.4 m (0.2–1), stem_thickness_bottom=1.3 m (0.4–2.5). Example call: {"params": {"stem_height": 3, "stem_thickness_top": 0.4, "stem_thickness_bottom": 1.3}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a mass concrete gravity retaining wall. A single dataclass that — through combinations of its fields — produces all eight VARIANT_PRESETS plus arbitrary user-specified geometries. Sensible defaults yield a 3 m high standard highway boundary wall. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide readOnlyHint: true, confirming no side effects. The description adds behavioral context about tier limitations and authentication requirements, but doesn't elaborate on potential errors, performance, or other traits beyond 'TIER_INSUFFICIENT' and sensible defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and contains both essential and extraneous details (e.g., internal pattern tracking). While front-loaded with key tier and alternative info, the later technical details could be trimmed for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite high complexity (many parameters, nested object, output schema), the description covers purpose, tier, alternatives, example usage, and deliverables. The output schema exists, so return values need not be described. Minor gap: no explicit list of presets or additional usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description should compensate. It provides example parameter values with ranges (e.g., stem_height 1.5–6) and mentions sensible defaults, adding some meaning beyond the schema. However, most parameters are not explained in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool computes a Bill of Quantities for a mass concrete gravity retaining wall. It mentions specific wall types (landscape, highway boundary, etc.) and distinguishes from sibling tool compute_cantilever_wall by noting it as a free-tier alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says this is a paid-tier tool and provides the alternative compute_cantilever_wall for free-tier usage. It includes example parameters and a sample call, giving clear guidance on when and how to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_gullyCompute Highway / Curtilage Gully with Connection BoQARead-onlyInspect
Free tier. Renders the MMHW standard only — CESMM4, NRM2 and SMM7 require a paid tier. Anonymous callers welcome. Composite drainage inlet: precast gully pot with trap, ductile-iron grating, optional kerb outlet, and a short connection drain to the carrier sewer. The connection drain re-uses the bedding primitive. Four-standard rendering with component-aware sub-codes (CESMM4 K.6.x, NRM2 33.8.x, MMHW 500.7.x, SMM7 R12.3.6.x). Example params: pot_internal_diameter_mm=450 mm (300–750), pot_depth_m=0.9 m (0.45–2.5), pot_wall_thickness_mm=60 mm (50–100). Example call: {"params": {"pot_internal_diameter_mm": 450, "pot_depth_m": 0.9, "pot_wall_thickness_mm": 60}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which is consistent with a computation that does not mutate state. The description adds behavioral details: free tier limitations, default parameters, example values, and deliverable generation (watermarked free).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive yet well-organized: tier info, component details, example, and deliverables. It is front-loaded with key facts. Minor redundancy (e.g., repeating standard names) could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex nested parameters and presence of an output schema (not shown), the description covers main aspects: standards, component breakdown, example, and output options. It does not explain every parameter in depth but defaults are stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates with example parameters, ranges, and a sample call. It adds meaning beyond the schema by illustrating typical values and explaining defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a highway/curtilage gully with connection BoQ, mentions standards and components, and includes an example. It distinguishes from siblings by focusing on a specific drainage inlet type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies free vs paid tiers, which standards are available, and provides example calls. It implies when to use (e.g., for MMHW standard on free tier) but does not explicitly contrast with sibling tools or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_hard_material_in_trenchCompute Hard Material in Trench (extra-over) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Linear extra-over measurement of hard material encountered during drainage trench excavation. Discriminates between natural rock (CESMM4 E.6 / NRM2 5.6.1 / MMHW 500.6.1 / SMM7 R12.6.1) and artificial hard material — buried concrete / masonry / obstructions (CESMM4 E.7 / NRM2 5.6.2 / MMHW 500.6.2 / SMM7 R12.6.2). The platform's first dual-quantity WorkItem: carries both length_m and volume_m3 so CESMM4/NRM2 (m³) and MMHW/SMM7 (m) each render with their correct unit per the standards' rules. Eight variant presets cover both hard-material types × four depth bands. SMM7 R12 deems trench excavation (including hard material) included in the pipe-run rate — the SMM7 handler emits a zero-priceable annotated line for tender transparency (third use of the deemed-included extra-over annotation pattern). Closes the drainage_ancillaries L2 leaf at 4/4 members. Sibling assemblies: connection_to_existing (S32), ditch (S33), pipework_testing (S33). Example params: length_m=10 m (0.5–500), max_depth_m=1.5 m (0.3–10), trench_width_m=0.7 m (0.3–3). Example call: {"params": {"length_m": 10, "max_depth_m": 1.5, "trench_width_m": 0.7}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single hard-material extra-over scenario. Geometry interpretation: - `length_m` is the chainage extent of the hard-material zone (i.e. how many metres of pipe-run encounter hard material). This is the MMHW/SMM7 quantity directly. - `trench_width_m` is the trench plan width at the level of the hard material — used (with height_of_hard_material_m and length_m) to compute the volumetric quantity used by CESMM4/NRM2. - `height_of_hard_material_m` is the vertical extent of hard material within the trench section — the bottom of the trench wraps the pipe envelope, so the hard-material height is typically less than the full trench depth. This is the QS's judgment, informed by site investigation. - `max_depth_m` is the depth (from finished ground level) to the bottom of the hard-material zone — drives the depth banding in all four handlers. - `pipe_diameter_mm` is descriptive only — propagated to the WorkItem for cross-referencing the carrier pipe. Volume = length_m × trench_width_m × height_of_hard_material_m. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the readOnlyHint annotation by disclosing tier restriction, authentication requirement, error response, dual-quantity WorkItem behavior, eight variant presets, SMM7 handler's zero-priceable line, and one-shot download URLs for deliverables. Provides engineering context on geometry interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but somewhat lengthy (5 paragraphs). The most critical information (purpose, tier, alternative) is front-loaded, but the latter paragraphs contain detailed engineering notes that could be condensed without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (dual quantity, multiple standards, presets, deliverables) and the annotation coverage (only readOnlyHint), the description provides comprehensive context. It explains edge cases (SMM7 deemed-included annotation pattern), output modes, and validation ranges for parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds extensive meaning beyond the input schema: explains geometry interpretation, volume calculation, depth banding, and the role of each parameter. Provides example values and emphasizes sensible defaults. Despite low schema description coverage (25%), the tool description compensates fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it performs linear extra-over measurement of hard material in drainage trench excavation. It specifies the dual-quantity nature (length and volume) and lists the relevant standards. Distinguishes from siblings by naming sibling assemblies and noting it closes the drainage_ancillaries L2 leaf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions it is paid tier only and provides a free-tier alternative (compute_manhole). Includes example parameters and call. However, does not exhaustively compare to all sibling tools or give when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_headwallCompute Reinforced Concrete Outfall Headwall BoQARead-onlyInspect
Free tier. Renders the MMHW standard only — CESMM4, NRM2 and SMM7 require a paid tier. Anonymous callers welcome. Composite RC outfall headwall: back wall pierced by the outfall pipe, splayed wing walls flaring downstream, apron slab, and rock-armour scour protection. In-situ or precast construction; BS 8666:2020 bar schedule composed across back wall, apron and wing walls. Four-standard rendering across CESMM4 / NRM2 / MMHW / SMM7. Example params: pipe_internal_diameter_mm=300 mm (100–1800), pipe_wall_thickness_mm=50 mm (15–120), invert_below_apron_m=0 m (0–1.5). Example call: {"params": {"pipe_internal_diameter_mm": 300, "pipe_wall_thickness_mm": 50, "invert_below_apron_m": 0}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes rendering, tier restrictions, and download URLs, adding value beyond the readOnlyHint annotation. No contradiction, and details match the read-only behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with key info and well-structured, but slightly verbose with some redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main deliverables, tiers, and example call. Lack of output schema description is mitigated by description of return types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description provides example params and ranges but does not describe all 30+ parameters. Helpful but not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a reinforced concrete outfall headwall BoQ, specifying components and standards. However, it does not explicitly differentiate from sibling tools like compute_headwall_precast, which specializes in precast only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly indicates free tier renders MMHW only and paid tier required for other standards, and provides example call. But does not explicitly state when to use this over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_headwall_attenuation_outletCompute Headwall — Attenuation Outlet BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_headwall. Controlled attenuation outlet: precast concrete headwall plus outlet-control ironmongery (orifice plate, optional flap valve, weir overflow, penstock) and downstream scour protection. 2nd use of the bundle-with-shared-envelope pattern (template: combined_services_trench S14). Composes headwall_precast for the structural unit and bedding; emits ironmongery items as CONTRACTOR_INSTALL_PC_SUPPLY by default (3rd commercially significant PC-supply emitter after utility_chamber and utility_kiosk_base). Scour protection extended to three variants: rock armour, gabion mattress, concrete apron. Example params: orifice_diameter_mm=150 mm (20–600), orifice_target_discharge_ls=5 l/s (0.1–200), flap_valve_size_mm=0 mm (0–1200). Example call: {"params": {"orifice_diameter_mm": 150, "orifice_target_discharge_ls": 5, "flap_valve_size_mm": 0}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for an attenuation outlet headwall. Composes a precast headwall (size, bedding) with one always-present orifice plate and up to three optional outlet-control ironmongery items (flap valve, weir overflow, penstock), plus a scour protection variant. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behaviors beyond annotations: paid tier authentication (TIER_INSUFFICIENT), pattern usage, component composition, default supply route as PC emitter, and scour protection variants. No contradiction with 'readOnlyHint' annotation as the tool computes output without side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose with dense technical details (e.g., '2nd use of the bundle-with-shared-envelope pattern') that may not be essential for tool selection. While informative, it could be more streamlined for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters, nested objects, output schema), the description covers key aspects: deliverables, example call, defaults, and commercial context. It leverages the presence of an output schema to avoid detailing return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%), and the description adds meaning for some key parameters like orifice_diameter_mm and orifice_target_discharge_ls with examples and ranges. However, it does not explain all parameters comprehensively, relying partly on schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a headwall attenuation outlet BoQ, including precast concrete headwall, outlet-control ironmongery, and scour protection. It distinguishes from the sibling 'compute_headwall' by specifying paid tier and additional components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it's paid tier only, provides a free-tier alternative, gives example parameters and a sample call. However, it lacks explicit guidance on when to use this tool versus other headwall siblings like 'compute_headwall_precast'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_headwall_precastCompute Precast Concrete Outfall Headwall BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_headwall. Precast concrete outfall headwall, supplied as a whole unit from a UK manufacturer (Marshalls CPM, FP McCann, Stanton Bonna or equivalent). Catalogue-driven sizing from PHW_300 (300mm pipe ID) to PHW_1500 (1500mm). Includes excavation, concrete or granular bedding, and optional rock-armour scour protection. Routes precast unit through CESMM4 Class H, NRM2 33.9.1, MMHW 500.8.1 (SHW Cl. 511), and SMM7 R12.3.7 via headwall_type=precast attribute discrimination. Example params: bedding_thickness_mm=150 mm (75–300), bedding_overhang_m=0.15 m (0.075–0.3), working_space_each_side_m=0.45 m (0.3–1.5). Example call: {"params": {"bedding_thickness_mm": 150, "bedding_overhang_m": 0.15, "working_space_each_side_m": 0.45}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a precast headwall. Catalogue-driven: pick a `size` and the unit's nominal physical dimensions are read from `_CATALOGUE`. Override individual physical fields if a specific manufacturer differs. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details what the tool does (compute and return data) and the calculation standards used. Annotations provide readOnlyHint=true, and the description does not contradict; it adds context about tier restrictions and output formats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but somewhat verbose; it could be more concise. However, it is well-structured with front-loaded key information and examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested parameters, multiple output options) and the presence of an output schema, the description covers purpose, usage, examples, and output possibilities adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides example parameters with ranges, explains catalogue-driven sizing, and clarifies that omitted parameters use defaults. This adds value beyond the schema, which has 25% description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a BoQ for precast concrete outfall headwalls, and distinguishes from the sibling 'compute_headwall' by specifying it as a paid-tier alternative with additional capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only' and provides an alternative free-tier tool (compute_headwall), along with authentication requirements and a URL for sign-up.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_highway_drainage_channelCompute Highway Drainage Channel BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Highway / surface-water drainage channel installation per BS EN 1433 + SHW Cl. 511-514 + HD 33/16. Discriminates between five UK channel product classifications via the channel_type enum (linear_polymer_concrete — ACO-pattern; linear_concrete — Charcon-pattern precast; slot_drain — narrow-slot recessed; combined_kerb_drainage — Beany/Safeticurb integrated unit per SHW Cl. 514; steel_grated_channel — heavy-duty stainless/galvanised). Plus parallel discriminators on two further WorkCategory entries: outfall_type on CHANNEL_OUTFALL (end / branch / side), silt_box_type on CHANNEL_SILT_BOX (standard / heavy-duty / deep-sump). The MMHW Series 500 _highway_drainage_channel handler is the platform's FOURTH 2D-banded handler — code 500.8.{t}.{d} bands by channel_type (5 bands) AND depth_class (4 bands). 5×4 = 20-cell grid. SMM7 routes to R12 (Drainage below ground) — SECOND highway L1 family outside Section Q after S39 lighting → V41. Example params: channel_depth_mm=100 mm (50–1500), channel_length_m=50 m (1–500), outfall_count=1 nr (0–20). Example call: {"params": {"channel_depth_mm": 100, "channel_length_m": 50, "outfall_count": 1}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Inputs for the highway_drainage_channel assembly. Required: channel_type — ChannelType enum (or string equivalent) depth_class — DepthClass enum (or string) channel_depth_mm — actual channel depth in mm channel_length_m — channel run length in metres Optional: outfall_type — OutfallType enum (or string); defaults to END_OUTFALL when outfall_count > 0 outfall_count — number of primary outfalls (default 1) branch_outfall_count — number of additional branch outfalls (default 0) silt_box_type — SiltBoxType enum (or string); required when silt_box_count > 0 silt_box_count — number of silt boxes (default 0) | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims it computes a BoQ and requires a paid tier, which implies a write or computational action. However, the annotations include readOnlyHint: true, a direct contradiction. This undermines transparency about whether the tool mutates data or is read-only. The description does not acknowledge or resolve this inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very long and includes extensive technical detail, which is appropriate for a complex tool. However, it could be more concise by focusing on essential guidance and moving some background to references. It is front-loaded with tier and purpose information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters, nested objects, multiple standards), the description is thorough. It explains channel types, depth classifications, outfall and silt box variants, deliverables, and gives example calls. It covers all necessary aspects for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite only 25% schema description coverage, the tool description adds substantial meaning to parameters. It explains each channel_type enum with UK practice, outfall and silt box types with detailed context, and provides example values and ranges. This compensates well for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a highway drainage channel BoQ per specific UK standards (BS EN 1433, SHW Cl. 511-514, HD 33/16). It distinguishes from sibling tools by mentioning the free-tier alternative compute_end_area_earthworks. The verb 'compute' and resource 'highway drainage channel BoQ' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states it is paid tier only and provides a free alternative. It gives example calls and parameter hints. However, it does not explicitly exclude other use cases or provide detailed when-not-to-use guidance beyond the free tier mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_kerb_runCompute Precast Concrete Kerb Run BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. Linear precast concrete kerb run on concrete bed and haunch over Type 1 (Class 1A) granular sub-base. Emits excavation, sub-base (v8 SHW-class-aware), concrete bed, kerb units to BS EN 1340 / SHW Cl. 1101, concrete haunch to back face, optional channel block, and disposal. Supports HB2/HB1/SP/BN/EF/ER kerb profiles and CS1/CS2/dish channels. All four standards render with type designators (CESMM4 R.7, NRM2 34.10, MMHW 1100, SMM7 Q10). Example params: kerb_length=25 m (1–1000), bed_thickness_mm=150 mm (75–300), bed_extra_each_side_mm=100 mm (0–300). Example call: {"params": {"kerb_length": 25, "bed_thickness_mm": 150, "bed_extra_each_side_mm": 100}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Input parameters for a kerb run assembly. Geometric defaults match a standard UK HB2 road kerb on 150mm concrete bed over 150mm Type 1 sub-base, with triangular haunch rising to half the kerb height on the back face. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses paid-tier behavior, error conditions, default behaviors, and one-shot download URLs for deliverables. Annotations provide readOnlyHint=true, which is consistent with a computation returning results. No contradictions. Some additional details like rate limits or response size are missing, but overall transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured: starts with the paid-tier warning, then the core functionality, supported standards, example call, and deliverables. It's informative but could be trimmed by removing some redundant details (e.g., full list of profiles). Still, it's functional and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with nested parameters, multiple standards, and deliverables, the description covers the essential aspects: what it computes, input examples, paid-tier caveat, and output options. It doesn't explain every combination or edge case, but it provides enough context for an AI agent to use the tool effectively, especially given the existence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema description coverage, the description adds significant value by explaining kerb profiles (HB2, etc.) and channel types, providing example params with ranges (e.g., kerb_length: 1–1000, bed_thickness_mm: 75–300), and clarifying defaults. Not every parameter is covered, but the most important ones are, and the nested params object context is helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a linear precast concrete kerb run BoQ, listing all emitted items (excavation, sub-base, concrete bed, kerb units, etc.) and supported standards. It distinguishes itself from siblings by specifying it's a paid-tier alternative to compute_cantilever_wall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the paid-tier requirement and the error code return for unauthorized calls, provides a free-tier alternative, gives a concrete example with parameters, and notes that omitted parameters use sensible defaults. This gives clear guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_lighting_columnCompute Lighting Column BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Highway / street lighting column installation per BS EN 40 + BS 5489-1:2020 + TR 22. Discriminates between four UK column material classifications via the column_type enum (steel_galvanised, aluminium, composite_grp, decorative_cast_iron). Plus parallel discriminators on three further WorkCategory entries: foundation_type on COLUMN_FOUNDATION, luminaire_type on LUMINAIRE, bracket_type on COLUMN_BRACKET. The MMHW Series 1300 _lighting_column handler is the platform's THIRD 2D-banded handler — code 1300.4.1.{h}.{c} bands by column_height_class (6 bands per TR 22) AND column_loading_class (4 bands per BS EN 40-3). 6×4 = 24-cell grid (the LARGEST banded grid in the platform). Example params: mounting_height_m=6 m (4–16), luminaire_wattage_W=60 W (10–1000), bracket_count=0 Nr (0–4). Example call: {"params": {"mounting_height_m": 6, "luminaire_wattage_W": 60, "bracket_count": 0}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Inputs for the lighting_column assembly. Defaults anchored to URBAN_6M_LED — UK urban distributor: 6 m steel galvanised column on precast socket, BS EN 40-3 Class B, LED M-class luminaire (~60 W typical). Required-field defaults added per G.6.7.24 precedent — non-breaking API enrichment opens the slug to schema- driven workspace defaults. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that unpaid calls return TIER_INSUFFICIENT, free-tier watermarks Excel, and PDF/dxf are paid. Annotations declare readOnlyHint=true, consistent with description. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose with technical details like internal banded grid codes. It could be more concise for agent consumption. The example is helpful but the overall length reduces clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters, nested objects, output schema), the description covers purpose, constraints, and deliverables. Lacks some detail on return values but output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While schema coverage is low, the description adds context by summarizing discriminators and providing example parameters with ranges. The schema itself has extensive detail for each enum, so the description complements rather than repeats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a Bill of Quantities for lighting columns per standards. It distinguishes from siblings by mentioning it's the third 2D-banded handler with the largest grid and contrasts with the free-tier alternative compute_end_area_earthworks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Paid tier only' and directs to sign up or use free-tier alternative. Provides example call, mentions sensible defaults, and describes deliverables behavior. Clearly guides when and how to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_manholeCompute Precast Concrete Circular Manhole BoQARead-onlyInspect
Free tier. Renders the MMHW standard only — CESMM4, NRM2 and SMM7 require a paid tier. Anonymous callers welcome. Composite assembly: precast concrete circular manhole with base slab, chamber rings (optional reducing slab + shaft), cover slab, frame & cover (BS EN 124 loading classes), step irons or ladder, in-situ benching with pre-formed channel, granular surround, geotextile separator, and excavation. Supports both open-battered and sheet-piled excavations. Example params: internal_diameter=1.5 m (1–3), wall_thickness=0.15 m (0.1–0.25), invert_depth=3.5 m (0.5–12). Example call: {"params": {"internal_diameter": 1.5, "wall_thickness": 0.15, "invert_depth": 3.5}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides behavioral context beyond the readOnlyHint annotation, explaining the free tier watermarking, default engineering defaults, composite assembly details, and options for deliverables (xlsx, dxf, pdf). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with key information front-loaded (free tier, standard) and includes example params and call. It is somewhat lengthy but each sentence adds value, covering assembly, parameters, and optional outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex input schema (4 top-level params, many sub-params), existing output schema, and annotations, the description is complete: it explains the composite assembly, parameter defaults, supported standards, and deliverables. An agent can understand what the tool does and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds value by explaining key parameters (e.g., internal_diameter range 1–3 m, wall_thickness 0.1–0.25 m), the role of the standard, output_mode, and deliverables. It also gives an example call. However, not all parameters are explained, so the description partially compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Compute Precast Concrete Circular Manhole BoQ' and description clearly state the tool's purpose: computing the Bill of Quantities for a precast concrete circular manhole assembly. It distinguishes from siblings like compute_catchpit by specifying the exact composite assembly components (base slab, chamber rings, etc.) and supported excavation types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the free tier only renders the MMHW standard, while paid tiers support CESMM4, NRM2, SMM7. It welcomes anonymous callers and provides an example call. However, it does not explicitly compare to siblings or say when not to use this tool, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_manhole_precastCompute Precast Concrete Monolithic Manhole BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Fully monolithic precast concrete circular manhole comprising factory-cast base + bottom ring + integral benching + pre-formed channel as a single delivered unit (BS 5911-3), with stacked precast chamber rings, optional reducing slab and access shaft, precast cover slab, ductile-iron frame and cover (BS EN 124 loading classes), step irons cast into rings, granular or concrete bedding, granular surround, geotextile separator, and excavation. Catalogue-driven sizing from PMC_1200 (1200mm ID) to PMC_2400 (2400mm ID). Routes via manhole_type=precast_monolithic attribute discrimination through CESMM4 Class K.1.2.x, NRM2 33.7.5, MMHW 500.5.5-.8 (SHW Cl. 507), and SMM7 R12.3.1.x. Example params: invert_depth=3.5 m (0.5–12), bedding_thickness_mm=150 mm (100–300), bedding_overhang_m=0.15 m (0.1–0.3). Example call: {"params": {"invert_depth": 3.5, "bedding_thickness_mm": 150, "bedding_overhang_m": 0.15}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a fully monolithic precast concrete manhole. Catalogue-driven: pick a ``size`` and the chamber's nominal dimensions, masses, and ring heights are read from ``_CATALOGUE``. Override individual fields if a specific manufacturer differs. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds important behavioral context: paid tier returns TIER_INSUFFICIENT error without authentication, deliverables include Excel/DXF/PDF with tier-dependent access, and defaults for omitted parameters. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for tier info, construction details, standards, examples, and deliverables. It is compact for the amount of information but could be slightly more concise by trimming redundant standards enumeration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (many parameters, nested objects, output schema exists), the description covers tier constraints, example usage, standards references, and deliverables. It is fairly complete, though reliance on the schema for param details is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, but the description adds value by explaining catalogue-driven sizing (PMC_1200 to PMC_2400) and providing example parameters with ranges. However, it does not systematically describe all parameters, relying on the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a Bill of Quantities for a precast concrete monolithic manhole, specifying the exact construction type and standards. It distinguishes from the sibling tool 'compute_manhole' by noting the paid tier and free-tier alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only' and provides the free-tier alternative 'compute_manhole'. Includes example parameters and a full example call, guiding when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_multi_section_assemblyCompute multi-section assembly BoQARead-onlyInspect
Compute one sectioned/linear assembly across multiple sections in a single call and return a combined Bill of Quantities plus per-section results. Each section sets its own run_length and geometry; shared_params apply to all sections. Use for a wall, kerb run, drain or barrier that changes along its length. assembly_slug must be a sectioned assembly (e.g. cantilever_wall, kerb_run, edge_drain); non-linear items return INVALID_INPUT. Free tier: MMHW only, each section consumes one daily slot. Example: {"assembly_slug":"cantilever_wall","standard":"MMHW","sections":[{"label":"Bay 1","run_length":20,"stem_height":1.5},{"label":"Bay 2","run_length":15,"stem_height":2.4}]}.
| Name | Required | Description | Default |
|---|---|---|---|
| sections | Yes | ||
| standard | No | MMHW | |
| deliverables | No | ||
| aggregate_boq | No | ||
| assembly_slug | Yes | ||
| shared_params | No | ||
| include_backup | No | ||
| include_section_boq | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only (readOnlyHint=true). Description adds behavior: each section consumes a daily slot, free tier restriction, and error handling for non-linear items—going beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise paragraph with front-loaded purpose and an example. Every sentence adds value; no fluff. Could be broken into list for scanability but effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, return values are covered. Description covers purpose, usage, constraints (free tier, slot consumption), example, error case. Missing details on a few parameters but overall sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so description compensates partially. Explains sections (per-section lengths/geometry) and assembly_slug (must be sectioned assembly). Provides an example. But does not detail standard, deliverables, aggregate_boq, include_backup, etc.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a combined BoQ per section for linear assemblies, and distinguishes from sibling tools by specifying sectioned assemblies like wall, kerb, drain, and noting non-linear items return INVALID_INPUT.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases (wall, kerb, drain, barrier) and free tier limitation (MMHW only, each section consumes one daily slot). Does not explicitly name alternative tools but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_pad_foundationCompute Concrete Pad Foundation BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. Single isolated reinforced concrete pad foundation with optional pedestal. Demonstrates BS 8666:2020 reinforcement scheduling integrated with the four-standard rendering invariant. Example params: length=2 m (0.5–10), width=2 m (0.5–10), thickness=0.45 m (0.15–2). Example call: {"params": {"length": 2, "width": 2, "thickness": 0.45}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description adds important behavioral context: authentication requirements, error handling, and that deliverables trigger download URLs. No contradiction; description enhances transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single dense paragraph, but front-loads critical paid-tier warning. No wasted sentences; includes example call and deliverables explanation. Slightly long but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (many nested parameters, output schema exists), description covers authentication, defaults, example, and deliverables. Does not explain return values (output schema handles that) but adequately sets expectations for a parametric tool. Some param details missing but sufficient for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description provides example parameter values with ranges (length=2 m (0.5–10), width=2 m (0.5–10), thickness=0.45 m (0.15–2)), explains defaults, and mentions deliverables. Does not cover all 20+ parameters individually but adds meaningful guidance for key ones.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it computes a BoQ for a single isolated reinforced concrete pad foundation with optional pedestal, specifying verb (compute) and resource (pad foundation BoQ). It distinguishes from siblings like compute_cantilever_wall and compute_strip_foundation by name and free-tier alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states paid tier only, returns TIER_INSUFFICIENT without authenticated account, and recommends free-tier alternative compute_cantilever_wall. Provides clear when-to-use and alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_parapetCompute Parapet (Bridge / Structural Deck) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Bridge / structural-deck parapet installation per BS 6779-1 + BS EN 1317-2 + SHW Cl. 408. Discriminates between four UK parapet system classifications via the parapet_type enum (pedestrian_only per BS 7818; vehicle_p1_p2 — low-containment BS EN 1317-2; vehicle_h1_h2_h3 — higher-containment; combined_pedestrian_vehicle — composite design). Plus parallel discriminators on two further WorkCategory entries: same parapet_type on PARAPET_POST, transition_type on PARAPET_TRANSITION (to_vrs / to_abutment / expansion_joint). The MMHW Series 400 _parapet handler is the platform's SEVENTH 1D-banded handler — code 400.4.1.{c} bands by containment_level (4 bands per BS EN 1317-2). 1D choice is disciplined — second principled rejection of forced 2D banding (after S38 road_marking). LAUNCH-COMPLETING 45TH ASSEMBLY — opens highway_bridge_edge L2 leaf, closing the highway suite at 5/5 populated leaves and the platform at 45/45 launch target. SMM7 routes BACK to Q40 (sibling slot to VRS at Q40.5) — preserves UK trade reality. Example params: parapet_height_mm=1100 mm (900–1800), parapet_length_m=25 m (1–2000), post_count=0 Nr (0–200). Example call: {"params": {"parapet_height_mm": 1100, "parapet_length_m": 25, "post_count": 0}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Inputs for the parapet assembly. Required: parapet_type — ParapetType enum (or string equivalent) containment_level — ContainmentLevel enum (or string) parapet_height_mm — nominal parapet height above deck in mm parapet_length_m — parapet run length in metres Optional: post_count — number of enumerated posts (default 0 — posts deemed-included in parapet m-rate). Set > 0 only for contracts requiring specialist per-post pricing. transition_type — TransitionType enum (or string). Required if transition_count > 0. transition_count — number of transition pieces (default 0). | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides extensive behavioral context beyond annotations: tier restriction, required authentication, error code, standards, discriminators, output formats, and defaults. It does not contradict the readOnlyHint annotation (the tool computes and returns data without modifying state).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly verbose with internal platform details (e.g., 'SEVENTH 1D-banded handler', 'LAUNCH-COMPLETING 45TH ASSEMBLY') that are not essential for tool selection or invocation. It front-loads the critical tier and purpose info but wastes space on obscure references.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple enums, nested params, standards, output formats), the description covers all necessary aspects: tier, error handling, standards, param explanations, example call, and deliverables. It even explains return values (BoQ, DXF, PDF) despite an output schema existing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite low schema description coverage (25%), the description thoroughly explains the enum parameters (parapet_type, transition_type, containment_level) with full details and examples. It clarifies defaults and optional parameters, adding significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool computes a BoQ for bridge/structural-deck parapets per multiple UK standards. It distinguishes itself from sibling compute_ tools by specifying the resource (parapet) and context (bridge deck), and even mentions a free-tier alternative (compute_end_area_earthworks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this is a paid-tier tool with a free alternative, and it outlines the standards and classifications relevant. However, it lacks explicit when-use/when-not-use guidance beyond the tier restriction, and the internal platform context (e.g., '45th assembly') is not helpful for an agent deciding when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_permeable_pavementCompute Permeable Pavement (CIRIA C753 SuDS) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Permeable pavement build-up per CIRIA C753 — The SuDS Manual Chapter 20. Covers the three principal UK permeable surface types (Permeable Block Paving per BS 7533-13; Porous Asphalt per SHW Cl. 938; Porous no-fines Concrete per CIRIA C753) and the three CIRIA infiltration regimes (System A full infiltration; System B partial / sides-tanked; System C no infiltration / fully tanked). Emits excavation + formation prep + tanking liner (Systems B/C) + geotextile separator + Class 3 open-graded reservoir sub-base + laying course (PBP) + permeable surface + perforated outlet pipe (Systems B/C) + disposal. Routes the reservoir sub-base, the tanking liner, and the permeable surface through three parallel classed-then-legacy discriminators (is_reservoir_sub_base, is_pavement_tanking, pavement_family) across all four standards. SMM7 PBP routes to Q25 (block pavings — different trade) while PA/PC stay at Q22 (asphalt trade) — UK trade-boundary platform principle. First launch-class assembly built entirely on existing WorkCategory vocabulary. Example params: length=12 m (0.5–500), width=5 m (0.5–100), reservoir_thickness_mm=350 mm (150–1000). Example call: {"params": {"length": 12, "width": 5, "reservoir_thickness_mm": 350}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Input parameters for a permeable pavement assembly. Geometric defaults match a 12m × 5m residential drive with PBP surface and System A (full infiltration) — the dominant UK small-civils SuDS use case. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set readOnlyHint=true, and the description does not contradict that. It adds behavioral context: the compute tool emits outputs (excavation, layers, etc.), can return deliverables, and enforces tier authentication. No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy and dense, containing many details (trade-boundary principle, discriminators) that may not be essential for the agent. However, critical info (paid tier, example) is front-loaded. Could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters, nested objects, multiple standards), the description covers what it computes, the three surface types and infiltration systems, example call, and deliverables. The output schema exists, so return values are documented separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 25% (low), but the description compensates by explaining the meaning of surface_type (mapped to CIRIA types), infiltration_system (drives inclusion of membrane/pipe), reservoir_thickness_mm range, and sensible defaults. Example call further clarifies usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'computes permeable pavement BoQ per CIRIA C753', listing three UK surface types and three infiltration regimes. It differentiates from siblings by naming the free-tier alternative compute_end_area_earthworks and numerous compute_ tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only' and requires an authenticated account, with a clear alternative for free tier. Provides example parameters and a full example call, guiding when to use and what to expect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_petrol_oil_interceptorCompute Prefabricated Petrol/Oil Interceptor (Separator) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Prefabricated petrol/oil interceptor (separator) per BS EN 858-1:2002 / BS EN 858-2:2003 and SHW Cl. 519. Catalogue-driven on three axes: Class (1 with coalescer + auto-closure for ≤5 mg/l surface-water discharge, or 2 for ≤100 mg/l foul-sewer discharge), Type (full retention NSF for high-spill-risk forecourts, or bypass NSB for low-spill-risk car parks), and Nominal Size (NS3 to NS100 l/s flow rating — 7 catalogue entries). Composite of the procured interceptor unit (Nr, default supply route CONTRACTOR_INSTALL_PC_SUPPLY for engineer-specified prefab), concrete blinding bedding, granular surround per SHW Cl. 803, geotextile separator, and foundation excavation with optional sheet pile support. Oil storage capacity derived per BS EN 858-2 cl. 4.3.6 (V = NS×10 for full retention, NSB×15 for bypass). Opens drainage_treatment leaf; the canonical pre-treatment for hot-spot catchments draining to soakaway, watercourse, or foul sewer. Routes via CESMM4 K.5.x.n (size-banded), NRM2 33.9.x, MMHW 500.13.x (SHW Cl. 519), SMM7 R12.5.x. Example params: bedding_blinding_thickness_mm=150 mm (100–300), bedding_overhang_m=0.3 m (0.15–0.5), surround_thickness_each_side_m=0.3 m (0.15–0.5). Example call: {"params": {"bedding_blinding_thickness_mm": 150, "bedding_overhang_m": 0.3, "surround_thickness_each_side_m": 0.3}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a petrol/oil interceptor installation. Catalogue-driven on three axes: size (NS rating, catalogue lookup for dimensions/mass/silt), class (performance — CLASS_1/CLASS_2), and type (full retention vs bypass). | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses tier restrictions (TIER_INSUFFICIENT error) and output behavior (watermarked Excel for free tier, DXF/PDF for paid). It also explains engineering derivation (oil storage per BS EN 858-2 cl. 4.3.6). The readOnlyHint annotation is not contradicted as the tool computes and returns data without modifying state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-structured, starting with tier info, then standards, selection axes, engineering details, and examples. Each sentence adds value, though some technical details could be streamlined for brevity without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with many parameters, nested objects, and output schema, the description is thorough. It covers standards, selection logic, parameter details, deliverables, and usage examples. The output_mode parameter and mention of deliverables provide sufficient context, making the description complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite only 25% schema description coverage, the description provides extensive parameter details: examples with defaults, explanations of NS ratings and their catchment area mappings, descriptions of interceptor_type and performance_class options, and supply route enum. This compensates fully, adding significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool computes a BoQ for a prefabricated petrol/oil interceptor, referencing specific standards (BS EN 858-1, BS EN 858-2, SHW Cl. 519) and detailing the three selection axes (Class, Type, Nominal Size). It also distinguishes from sibling tool compute_manhole as a free-tier alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates it is paid tier only, provides a free-tier alternative (compute_manhole), and gives context for when to use (hot-spot catchments draining to soakaway, watercourse, or foul sewer). It includes example parameters and an example call, guiding proper usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_pipe_beddingCompute Pipe Bedding and Surround BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Linear pipe trench with class-driven bedding and surround. Strategy pattern on (BeddingContext × BeddingClass): Highway (HA 40/01 / MMHW Series 500) vs Building (BS EN 1610 / NRM2 §33), Class N/F/B/S/A/Z. Emits trench excavation, granular bed, surround or concrete cradle/encasement, selected backfill, disposal and pipework. All four standards render with class and clause references. Example params: pipe_internal_diameter_mm=300 mm (100–1800), pipe_wall_thickness_mm=50 mm (10–200), pipe_length=25 m (1–500). Example call: {"params": {"pipe_internal_diameter_mm": 300, "pipe_wall_thickness_mm": 50, "pipe_length": 25}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description reveals authentication requirements, tier restriction, and the calculation strategy (strategy pattern with standards). It also specifies deliverables (xlsx, dxf, pdf) and that emissions include trench excavation, bedding, surround, etc. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose, containing technical details that could be streamlined. It is front-loaded with the paid tier warning but includes a lengthy explanation of standards and strategy patterns that, while informative, may exceed optimal conciseness for quick agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple standards, parameters, output modes, deliverables), the description covers core concepts, usage, and outputs. The presence of an output schema reduces the need to describe return values, but the description adequately addresses what the tool computes and produces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides example parameters with ranges (e.g., pipe_internal_diameter_mm 100-1800) and an example call, adding value over the schema's descriptions. However, many parameters lack detailed explanation in the description, and the schema itself covers some but not all. With low schema coverage, the description partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes pipe bedding and surround BoQ for linear pipe trenches with class-driven bedding and surround, referencing specific standards (Highway, Building). It distinguishes itself from the free-tier sibling 'compute_manhole'. The verb 'Compute' and resource 'Pipe Bedding and Surround BoQ' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only' and that unauthenticated calls return TIER_INSUFFICIENT, with a link to pricing. Provides a free-tier alternative (compute_manhole). Includes an example call and notes that omitted parameters use sensible defaults, guiding proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_pipework_testingCompute Pipework Testing (drainage) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Linear measurement of testing on new drainage pipework — CCTV survey, air pressure test, water pressure test, or mandrel pull-through. Routes via CESMM4 Class I §I.8 (Tests on new pipework), NRM2 Group 33.18 (Testing of drainage) as priceable lines; via MMHW Series 500.7 (per SHW Cl. 507 deemed included in pipe-run rate) and SMM7 R12.7 (R12 coverage rules deemed included) as zero-priceable annotated lines for tender transparency. Introduces the platform's third named maturity pattern: deemed-included extra-over annotation (joining classed-then-legacy and declared-then-banded). Eight variant presets cover all four test methods x two bore scenarios each. Unit: M. Third member of the drainage_ancillaries L2 leaf. 21st use of the discriminator pattern via test_method. Example params: length_tested_m=100 m (1–2000), diameter_mm=225 mm (100–2400). Example call: {"params": {"length_tested_m": 100, "diameter_mm": 225}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single pipework testing measurement. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=true), the description discloses authentication requirements, tier constraints, one-shot download URL behavior for deliverables, and technical details like CESMM4/NRM2 routing. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but runs long. It front-loads critical tier info and provides structured details. Could be more concise, but complexity justifies length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 params, nested input, output schema exists), the description covers tier, alternatives, test methods, standards, units, example, and deliverables behavior. It is complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description elaborates on test_method (four methods with sub-codes), gives example ranges for length_tested_m and diameter_mm, explains deliverables parameter. However, pipe_material is not explained in description, and standard/output_mode are only implicitly in example call. Schemas coverage is 25%, so description adds significant value but misses some parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes linear measurement of testing on new drainage pipework, listing specific test methods and standards. It distinguishes from siblings by naming the free-tier alternative compute_manhole and positioning as third member of drainage_ancillaries leaf, with a unique discriminator pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only', warns about TIER_INSUFFICIENT, directs to free alternative, and provides example params and call. It also notes omitted parameters use defaults, giving clear when-to-use and how-to-call guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_reinforced_soil_wallCompute Reinforced Soil Wall (RSW) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. Reinforced soil retaining wall (RSW) using granular fill reinforced with horizontal layers of geogrid or steel tie strips, with one of four facing systems: precast concrete panels (Reinforced Earth™ / VSL Retained Earth style), segmental modular blocks (Allan Block / Keystone), wraparound soft face (vegetated or biodegradable mat), or Terramesh-style steel mesh face (re-using the S29 gabion vocabulary). The SECOND member of the earth_structures L1 leaf (after gabion_wall at S29), the SIXTH member of the wall family, the FIFTH structural system, and the FIRST wall family member with a face-area-primary measurement basis (m² of face + m² × layers of geogrid, both m²; every prior wall body was m³). 17th use of the classed-then-legacy attribute discrimination pattern. Routes via four new WorkCategory entries (RSW_FACING_PANEL, RSW_MODULAR_BLOCK, RSW_WRAPAROUND_FACE, RSW_TIE_STRIP) plus the GEOGRID category (whose handler is gap-filled in CESMM4/NRM2/MMHW this session) plus re-use of GABION_BASKET on the STEEL_MESH_FACE variant. Codes: CESMM4 E.8.4-8 (Class E Earthworks §E.8 stabilisation), NRM2 5.23-27 (Group 5 Excavating and filling), MMHW 600.15-19 (Series 600 Earthworks; SHW Cl. 624 reinforced earth retaining structures), and SMM7 D41.3/D41.4/D41.5/D20.21/D20.14.2 (D41 — Crib walls / gabions / REINFORCED EARTH — the NAMED home, now serving TWO wall families). Eight variant presets exercise all four RSWFacing values (2/2/2/2 split). Example params: wall_height=6 m (0.5–12), wall_length=40 m (5–200), depth_into_fill_m=4.5 m (0.35–15). Example call: {"params": {"wall_height": 6, "wall_length": 40, "depth_into_fill_m": 4.5}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a reinforced soil wall. A single dataclass that — through combinations of its fields and the ``rsw_facing`` discriminator — produces all eight VARIANT_PRESETS plus arbitrary user-specified geometries across all four RSWFacing options. Sensible defaults yield a 6m highway-approach PRECAST_PANEL wall. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, it discloses authentication requirements (TIER_INSUFFICIENT error), output formats (Excel, DXF, PDF), and that free tier watermarks the Excel. It also explains the measurement basis and coding scheme, providing full context for safe use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly verbose and includes esoteric technical history (e.g., '17th use of the classed-then-legacy attribute discrimination pattern') that is not helpful for an AI agent. It could be front-loaded with essential info and trimmed significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers tier restriction, facing variants, standards, example calls, deliverables, and defaults. However, lacks a formal description of the return value structure (though output schema exists). For a complex tool with many options, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite low schema coverage (25%), the description compensates by explaining the params object as a dataclass with sensible defaults, providing example values and ranges for key parameters, and detailing the discriminator rsw_facing. The nested schema inside params has rich enum descriptions, adding semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Compute Reinforced Soil Wall (RSW) BoQ' and lists four facing systems, measurement basis, and standards. It distinguishes from siblings by calling out the free-tier alternative compute_cantilever_wall and its position in the wall family hierarchy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it is paid tier and provides the free alternative. Gives example parameters and calls, plus the deliverable options. Tells when to use this tool vs compute_cantilever_wall.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_rigid_pavementCompute Rigid (Concrete) Pavement Build-Up BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Rigid pavement build-up: optional capping (Class 6F) + Type 1 (Class 1A) granular sub-base + optional separation membrane + PQC slab (URC, JRC, or CRCP variant) with joint formwork (transverse contraction, longitudinal construction, expansion) and reinforcement (dowel bars + tie bars + optional fabric mesh for JRC, continuous longitudinal for CRCP). Routes the slab and its joints/reinforcement through the v12 is_pavement_slab discrimination to pavement-specific codes across all four standards (CESMM4 Class R, NRM2 Group 34.7, MMHW Series 1000, SMM7 Q21). Sub-base and capping route through the v8 FILL_SUB_BASE/FILL_CAPPING SHW-class-aware handlers. Three pavement-type defaults (URC/JRC/CRCP) per DMRB CD 226. Reinforcement scheduled per BS 8666:2020 (shape 00 dowels and tie bars; mass-only mesh and CRCP continuous). Example params: length=50 m (0.5–2000), width=7 m (0.5–30), sub_base_thickness_mm=150 mm (100–500). Example call: {"params": {"length": 50, "width": 7, "sub_base_thickness_mm": 150}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Input parameters for a rigid pavement assembly. Defaults: 50m × 7m urban distributor — JRC with 25m bay length, 230mm slab on 150mm Type 1 sub-base, A393 mesh mid-depth. Tie bars at 3.5m lane boundary. No capping by default. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authentication requirement, paid tier, and free alternative. Explains computation process, standards, and deliverables. No contradiction with readOnlyHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but well-structured: starts with access requirement, then build-up, standards, defaults, example call, deliverables. Every sentence adds value; slight verbosity justified by complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (20+ parameters, nested input, output schema exists), description covers purpose, inputs, defaults, standards, example, and deliverables. Sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 25% but schema itself contains detailed parameter descriptions. The description adds value by explaining overall defaults, example parameters, and engineering context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it computes BoQ for rigid pavement build-up, listing components and standards. Distinguishes from compute_flexible_pavement and compute_end_area_earthworks, both siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions paid tier, provides free alternative (compute_end_area_earthworks), gives example call and parameters, and indicates when to omit defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_road_markingCompute Road Marking BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Road marking installation per SHW Cl. 1207-1215 and TSRGD 2016. Discriminates between five UK marking-line classifications via the marking_line_type enum: continuous, broken_short, broken_long, double_continuous, lane_line. Plus parallel discriminators on three further WorkCategory entries: area_marking_type on ROAD_MARKING_AREA, symbol_type on ROAD_MARKING_SYMBOL, and stud_type on ROAD_STUD. THIRD member of the highway L1 leaf (after S36 VRS, S37 traffic_sign) and SECOND member of the highway_signs_markings L2 leaf — 42nd assembly. The highway_signs_markings L2 leaf becomes the first L2 leaf in the highway L1 to reach 2 members. Five variant presets cover the principal UK commercial scenarios: urban continuous white line, rural broken centreline with hazard, motorway hatched chevron, junction give-way with triangle, and motorway lane line with studs. Routes via four new WorkCategory entries (ROAD_MARKING_LINE, ROAD_MARKING_AREA, ROAD_MARKING_SYMBOL, ROAD_STUD). Codes: CESMM4 X.5 (Class X §5 — road markings), NRM2 34.9 (Site works — markings), MMHW 1200.1.{w} (Series 1200 — Traffic Signs and Road Markings, with 1D banding by line_width_class), SMM7 Q40.7 (Section Q40 — Fencing/site furniture). 26th use of classed-then-legacy attribute discrimination pattern; 7th use of declared-then-banded (remains 1D — material rejected as a banding axis). Broadest unit-mix in any single CivilQuants assembly: m of line + m² of area + nr of symbol + nr of stud. Example params: actual_line_width_mm=100 mm (50–450), line_length_m=200 m (0–10000), secondary_line_length_m=0 m (0–10000). Example call: {"params": {"actual_line_width_mm": 100, "line_length_m": 200, "secondary_line_length_m": 0}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single road marking installation. Defaults anchored to URBAN_CONTINUOUS_WHITE_LINE — 200 m of continuous 100 mm thermoplastic edge/centre line. Required-field defaults added per G.6.7.24 precedent — non-breaking API enrichment opens the slug to schema-driven workspace defaults and defaults- based parity-fixture regen. Geometry interpretation: - ``line_length_m`` is the linear length of the primary marking line (continuous edge/centre line, broken pattern, etc.). UK practice measures along the line centreline. Set to 0 if no primary line is part of the installation. - ``secondary_line_length_m`` is for installations with two distinct line types (e.g. broken_short main centreline + broken_long hazard section). Set to 0 to omit. The secondary line shares the same width_class and material as the primary line. - ``area_m2`` is the m² of painted area marking (hatched chevron, ghost island, box junction, etc.). Set to 0 if no area is present. - ``symbol_count`` is the number of distinct painted symbol occurrences (arrows, words, give-way triangles). Set to 0 if no symbols are present. - ``stud_count`` is the number of reflective road studs. Set to 0 if no studs are present. Discrimination & banding: - ``marking_line_type`` discriminates the description text for the ROAD_MARKING_LINE WorkItem(s). Required if line_length_m > 0. - ``line_width_class`` discriminates the BANDED CODE in MMHW (1D-banding axis) and the description text in other standards. - ``area_marking_type`` discriminates description for the ROAD_MARKING_AREA WorkItem. Required if area_m2 > 0. - ``symbol_type`` discriminates description for the ROAD_MARKING_SYMBOL WorkItem. Required if symbol_count > 0. - ``stud_type`` and ``reflective_colour`` discriminate description for the ROAD_STUD WorkItem. Required if stud_count > 0. - ``marking_material`` is carried on every description but is NOT a discriminator or banding axis (UK QS convention). | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnlyHint=true. The description adds authentication requirement (TIER_INSUFFICIENT error) and output delivery details, providing useful behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is excessively long, mixing critical information (paid tier, alternative) with verbose technical details about assembly hierarchy and presets. It lacks front-loaded clarity, forcing an agent to parse dense text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers authentication, parameter defaults, output modes, and deliverables. While complete for a complex tool, the verbosity reduces quick comprehension; a more structured presentation would improve completeness perception.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema coverage, the description thoroughly explains each parameter, including defaults, enums, and interpretation rules (e.g., line_length_m meaning, discrimination logic). This fully compensates for the sparse schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a BoQ for road markings, referencing UK standards. However, the purpose is somewhat buried among extensive secondary details about assembly lineage and presets, which could distract an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the paid tier requirement and points to a free alternative (compute_end_area_earthworks), giving clear guidance on when to use this tool vs. another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_single_service_runCompute Single Service Run BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Single-service utility run per NJUG Volume 1 — one water main OR one gas main OR one electricity cable duct OR one telecoms duct (or fibre / street-lighting / HV cable duct) in a dedicated trench. Wraps the combined-services-trench engine with a single-band envelope and re-tags emissions back to this assembly. Renders through CESMM4 Class I / NRM2 Group 41 / MMHW Series 1300 / SMM7 Group T (services) on top of the shared earthworks / drainage handlers (excavation, disposal, bedding, surround, fill, tape). Example params: bedding_thickness_m=0.1 m (0.05–0.3), surround_above_crown_m=0.15 m (0–0.5), trench_length_m=50 m (1–1000). Example call: {"params": {"bedding_thickness_m": 0.1, "surround_above_crown_m": 0.15, "trench_length_m": 50}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single-service utility run. Maps neatly to a one-column UI form: the user picks a service type from a dropdown, optionally tweaks cover/OD/material, sets length and trench width, and that's it. The wrapper builds the equivalent ``ServiceBand`` + single-band ``CombinedServicesTrenchParameters`` internally. All defaults align with NJUG 7 minimum-cover guidance for the selected service type (resolved at compute-time via the same ``_NJUG_DEFAULTS`` table that CST consumes). | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the annotation readOnlyHint=true. The tool clearly performs computation and generates deliverables (Excel, DXF, PDF), indicating it is not read-only. This inconsistency misleads the AI agent about the tool's behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but efficient, front-loading critical usage information (paid tier, free alternative). While it is somewhat lengthy, the amount of technical detail is justified by the tool's complexity. Minor improvements could make it slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers all necessary aspects: authentication requirements, output formats, example parameters, mapping to standards, and defaults. It provides enough context for the AI agent to use the tool correctly among 40+ sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite low schema description coverage (25%), the description adds substantial value by explaining the purpose of the params object, listing example parameters with ranges, describing enum options like service_type and bedding_context, and linking defaults to NJUG guidance. This fully compensates for the sparse schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as computing a single-service utility run per NJUG Volume 1 for specific utility types (water, gas, electricity, telecoms, etc.). It distinguishes from sibling tools by mentioning the free-tier alternative compute_manhole and implying it differs from compute_combined_services_trench.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it is 'Paid tier only,' describes the tier error response, and directs users to a free alternative (compute_manhole). Provides example parameters and an example call, and explains that omitted parameters use sensible defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_soakawayCompute Infiltration Soakaway (CIRIA C753) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_attenuation_tank. Infiltration soakaway per CIRIA C753 Chapter 25. Granular-fill or modular-crate storage envelope with infiltration discharge through the base and side walls. Wraps attenuation_tank for the storage envelope and emits an INFILTRATION_SURFACE item plus optional PERFORATED_DISTRIBUTION_PIPE on top. Includes the C753 rational-method sizing engine with hot-spot and cold-spot factors of safety per C753 Tables 25.4 / 25.5; the engine refuses to size for VERY_HIGH hot-spot catchments (fuel forecourts, lorry parks) which C753 prohibits from direct infiltration without pre-treatment. Half-emptying time checked against the 24h C753 §25.4 limit. Renders cleanly across CESMM4 / NRM2 / MMHW / SMM7 using existing earthworks / drainage handlers plus the two new categories (INFILTRATION_SURFACE, PERFORATED_DISTRIBUTION_PIPE) added in S22. Example params: catchment_area_m2=500 m² (10–10000), rainfall_depth_mm=60 mm (10–300), measured_infiltration_rate_m_per_s=0.0001 m/s (1e-07–0.01). Example call: {"params": {"catchment_area_m2": 500, "rainfall_depth_mm": 60, "measured_infiltration_rate_m_per_s": 0.0001}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a CIRIA C753 infiltration soakaway. Two ways to specify the design storm: (a) ``design_storm_volume_m3`` directly (from an upstream MicroDrainage / InfoWorks ICM model) — preferred for any catchment > 1 ha or where the upstream model is the design-of-record. (b) ``catchment_area_m2`` + ``rainfall_depth_mm`` + ``runoff_surface_type`` (or ``runoff_coefficient_override``) — the rational-method shortcut, appropriate for small-catchment soakaways (housing estate, supermarket forecourt, small commercial yard) where a senior QS / drainage engineer would sketch the design from these three numbers. If both are specified, ``design_storm_volume_m3`` wins. Soil characterisation: - ``measured_infiltration_rate_m_per_s``: from a BRE 365 falling-head soakage test on site - ``confidence``: per C753 Table 25.4 — LOW (single test, FoS=10), MEDIUM (2-3 tests, FoS=4), HIGH (≥3 tests + groundwater monitoring, FoS=2) - ``hot_spot``: per C753 §25.5 — LOW (residential / amenity), MEDIUM (car parks, minor roads), HIGH (A-roads, large car parks), VERY_HIGH (forecourts, lorry parks — not permitted without pre-treatment) Geometry: Rectangular plan, prismatic depth. The depth here is the effective storage depth (water level at design fill); the attenuation_tank's ``cover_to_tank_top`` covers the soil cover above the granular surround. The granular fill type is governed by the underlying attenuation_tank delegate — pick ``tank_type=CRATE`` for modular geocellular soakaways (typical for high storage / low footprint) or ``tank_type=PIPES`` for large-bore concrete pipe soakaways (typical for highway and industrial). The ``void_ratio`` here applies to the granular-fill case (TankType.CRATE with ``crate_void_ratio`` becomes a free user choice; for the pipe case the pipes themselves provide the storage volume). | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the engine refuses to size for VERY_HIGH hot-spot catchments, and checks half-emptying time per C753. Annotations already indicate readOnlyHint=true, and description adds behavioral constraints beyond this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections: paid tier warning, alternative, purpose, example, deliverables. Each sentence adds value and is front-loaded with essential info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity and existence of output schema, the description covers purpose, parameters, limitations, example, and deliverables comprehensively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%), but the description explains key parameters (catchment_area, rainfall, infiltration rate) and provides two design storm methods. It adds context for hot_spot, confidence, and tank_type, though not all parameters are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes an infiltration soakaway BoQ per CIRIA C753, specifying the sizing engine, safety factors, and deliverables. It distinguishes itself from the sibling compute_attenuation_tank by noting it's the paid tier with infiltration discharge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states paid tier requirement and provides alternative free-tier tool (compute_attenuation_tank). Includes example parameters and a sample call, giving clear guidance on when and how to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_soil_nailed_slopeCompute Soil-Nailed Slope BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. Cut slope stabilised by passively-stressed soil nails with an applied face system. Discriminates between four face systems via the face_system enum: SHOTCRETE_MESH (dominant UK highway-cutting choice per SHW Cl. 644), HARD_FACING_PANEL (premium permanent works), FLEXIBLE_MESH (weathered rock drape), and VEGETATED_GEOGRID (landscape-sensitive schemes). Third member of the earth_structures L1 leaf (after gabion_wall S29 and reinforced_soil_wall S30). Eight variant presets cover all four face systems × representative slope geometries. Routes via three new WorkCategory entries (SOIL_NAIL, SHOTCRETE_FACE, FACE_MESH_REINFORCEMENT) plus reuse of EXCAVATION_GENERAL, DISPOSAL, CONCRETE_REINFORCED, GEOTEXTILE_FILTER, GEOGRID, and TOPSOIL_PLACE. Codes: CESMM4 C.5.X (soil nail) + E.8.10 (shotcrete) + G.5.8 (mesh), NRM2 7.7.X + 5.28.1 + 11.6.1, MMHW 600.20.X + 600.21.1 + 600.22.1 (SHW Cl. 638-639 / Cl. 644), SMM7 D32.3.X (steel piling — soil nails) + D41.6/D41.7 (the NAMED home for the three earth-structures families now). 23rd use of the classed-then-legacy attribute discrimination pattern; 4th use of the declared-then-banded pattern (nail_length_m bands the C.5.X / 7.7.X / 600.20.X / D32.3.X third digit). Example params: slope_height_m=8 m (0.5–25), slope_angle_deg=65 ° (10–89), slope_length_m=30 m (2–500). Example call: {"params": {"slope_height_m": 8, "slope_angle_deg": 65, "slope_length_m": 30}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single soil-nailed slope. Geometry interpretation: - ``slope_height_m`` is the vertical extent of the cut slope (top of crest to toe of slope). - ``slope_angle_deg`` is the slope angle from horizontal (typically 50-80° for soil-nailed cuts). - ``slope_length_m`` is the horizontal length along the slope crest — the spatial extent of the assembly along the highway alignment. - ``nail_rows`` is the number of horizontal rows of nails; ``nail_horizontal_spacing_m`` and ``nail_vertical_spacing_m`` give the in-row and between-row centres (m). - ``nail_length_m`` is the design nail length (excavation + bond length; same for all nails in this assembly — for variable-length schemes, instantiate multiple assemblies). - ``nail_inclination_deg`` is the angle below horizontal of the nail axis (typically 10-20°). Face-system attributes (used only if relevant to ``face_system``): - ``shotcrete_thickness_mm`` / ``shotcrete_grade`` / ``face_mesh_designation`` — SHOTCRETE_MESH only. - ``panel_thickness_mm`` / ``panel_concrete_grade`` — HARD_FACING_PANEL only. - ``geogrid_grade`` / ``topsoil_thickness_mm`` — VEGETATED_GEOGRID only. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool requires an authenticated CivilQuants account and returns TIER_INSUFFICIENT error otherwise, and that deliverable URLs are returned for XLSX/DXF/PDF. This adds valuable context beyond the readOnlyHint annotation, though the annotation already signals no state mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is quite long and dense, with a single paragraph structure that could be better organized with bullet points or sections. While it is front-loaded with the paid-tier warning, the rest is a stream of technical details that may be overwhelming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, usage constraints (paid tier), parameter guidance, output options, and examples. Given the tool's complexity (multiple face systems, many parameters, output formats), the description is sufficiently complete, though it could be more structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema by providing overall context (e.g., variant presets, coding standards, example calls) and summarizing parameter behavior. Although the input schema has detailed descriptions for enum parameters, the description's extra examples and hierarchy information enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a BoQ for a soil-nailed slope, specifies the resource (soil-nailed slope) and action (compute BoQ), and distinguishes itself from sibling tools like compute_gabion_wall and compute_reinforced_soil_wall by noting it is the third member of the earth_structures leaf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions that it is a paid-tier tool and provides a free-tier alternative (compute_cantilever_wall). It also gives context on when to choose each face system via the enum descriptions. However, it does not compare to other similar retaining wall tools beyond the leaf hierarchy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_strip_foundationCompute Concrete Strip Foundation BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_cantilever_wall. Linear reinforced concrete strip foundation, level or stepped. Closes the P1 launch set alongside pad_foundation. Integrates BS 8666:2020 reinforcement scheduling. Stepping is the v10 demonstration of cross-cutting standards-handler discrimination. Example params: length=10 m (1–100), width=0.75 m (0.3–2.5), thickness=0.35 m (0.15–1.5). Example call: {"params": {"length": 10, "width": 0.75, "thickness": 0.35}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for the strip foundation assembly. Defaults are tuned to a typical UK domestic / light commercial strip: 750mm wide, 350mm deep, 10m long, founded ~700mm below GL on 75mm blinding. Reinforcement is 2T16 bottom + 2T12 top with T8 transverse distribution at 250 centres — a conservative starting point refineable per loading. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which is consistent with a computation tool. The description adds critical behavioral details: authentication requirement, error on insufficient tier, and that deliverables (xlsx, dxf, pdf) are generated with paid tier or watermarked for free. It also mentions integration with BS 8666:2020 and stepping as a demonstration of cross-cutting standards. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense and well-structured, starting with the paid-tier warning and ending with deliverables. It contains some marketing language ('Closes the P1 launch set', 'v10 demonstration') that, while not harmful, could be trimmed for brevity. Overall, every sentence earns its place, but a slightly tighter version would be a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 4 top-level parameters and a nested object, the description and schema together fully describe the tool's behavior, inputs, outputs (including deliverables and formats), and constraints (paid tier, authentication). The existence of an output schema (not shown) further reduces burden. The description also ties it to standards (BS 8666, CESMM4, NRM2, etc.) and gives real-world context (UK domestic/light commercial defaults).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a detailed description for the 'params' object, explaining defaults and reinforcement details. The tool description supplements with explicit example values and ranges for key parameters (length=10 m [1-100], width=0.75 m [0.3-2.5], thickness=0.35 m [0.15-1.5]), and clarifies omitted parameters use sensible engineering defaults. This goes well beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a bill of quantities for a concrete strip foundation (linear reinforced, level or stepped). It distinguishes from sibling tools like compute_cantilever_wall (free-tier alternative) and pad_foundation (part of the same launch set). The verb 'compute' combined with the specific resource and variants makes the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only' and provides a clear free-tier alternative (compute_cantilever_wall). Includes an example call and parameter ranges, explaining when to use this tool (linear reinforced strip foundation) and how to request deliverables. The guidelines are comprehensive and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_swaleCompute SuDS Swale (CIRIA C753) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_attenuation_tank. Vegetated, geotextile-reinforced or rip-rap-lined linear drainage swale per CIRIA C753. Trapezoidal prismatic channel with three lining strategies covering the UK design palette from low-velocity amenity grass channels (1V:3H, 1-3% gradient) to high-velocity rip-rap-lined stretches. Optional check-dams (stone or concrete) for steeper sections. Renders cleanly across all four standards using existing earthworks / geosynthetics / concrete handlers — no PC items, all contractor-full supply route. Example params: bed_width=0.5 m (0.2–3), left_side_slope_h_per_v=3 (1.5–6), right_side_slope_h_per_v=3 (1.5–6). Example call: {"params": {"bed_width": 0.5, "left_side_slope_h_per_v": 3, "right_side_slope_h_per_v": 3}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authentication requirement and tier error behavior, and describes all deliverables and output formats. Annotations have readOnlyHint=true, which is consistent with a computation tool that does not mutate data; no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with critical tier information, followed by concise technical description, examples, and deliverables. Each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested params, multiple outputs), the description covers all important aspects: tier, alternatives, parameter examples, and deliverables. Output schema exists, so return values are not needed in description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides detailed examples, defaults, and ranges for key parameters like bed_width and side slopes. It explains the overall params object but does not list every subparameter; still adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a SuDS swale BoQ per CIRIA C753, with specific examples of parameters and a free-tier alternative. It distinguishes itself from siblings by explicitly naming compute_attenuation_tank.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it is paid tier only and requires authentication, provides a free alternative, and gives example calls and parameter ranges. Clearly guides when to use and what to expect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_traffic_signCompute Traffic Sign BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Traffic sign installation per SHW Cl. 1201-1206 and TSRGD 2016. Discriminates between five TSRGD sign classifications via the sign_type enum: warning triangular, regulatory circular, regulatory rectangular, directional rectangular, and information rectangular. SECOND member of the highway L1 leaf (after S36 VRS) and FIRST member of the highway_signs_markings L2 leaf — 41st assembly. Five variant presets cover the principal UK commercial scenarios: rural warning triangle on single post, urban regulatory circular, rural advance directional on twin posts, motorway gantry ADS, and urban information rectangle. Routes via three new WorkCategory entries (TRAFFIC_SIGN_POST, TRAFFIC_SIGN_FACE, SIGN_FOUNDATION). Codes: CESMM4 X.4 (Class X §4 — traffic signs), NRM2 34.8 (Site works — signs), MMHW 1300.1.{a}.{h} (Series 1300 — Road Lighting/Traffic Signs/Bollards, with 2D banding by face_area × mounting_height), SMM7 Q40.6 (Section Q40 — Fencing/site furniture). 25th use of classed-then-legacy attribute discrimination pattern; 6th use of declared-then-banded AND the SECOND 2D-banded handler (MMHW 1300.1.{a}.{h} bands by both axes simultaneously). Example params: post_length_m=3 m (1.5–12), post_count=1 Nr (1–4), faces=1 Nr (1–6). Example call: {"params": {"post_length_m": 3, "post_count": 1, "faces": 1}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single traffic sign installation. Geometry interpretation: - ``post_length_m`` is the length of the supporting post above ground (UK convention measures the *above-ground* length, not the often-greater driven/embedded length). For gantry signs, this is the height of each gantry leg. - ``post_count`` is the number of supporting posts. Typical values: 1 (small warning/regulatory), 2 (twin-post directional, gantry legs). - ``faces`` is the number of distinct sign faces on the assembly. A single gantry can carry 1-3 distinct sign faces (one per lane); a twin-post directional can carry advance and confirmation faces. Face geometry: - ``actual_face_area_m2`` is the m² of a single face (used for face-area descriptions; the WorkItem quantity is enumerated per face). Foundation: - ``foundation_type`` carries the SHW Cl. 1204 classification. - ``concrete_grade`` is for description text — concrete is deemed-included in the foundation unit rate (no separate CONCRETE line emitted). - ``approximate_foundation_volume_m3`` is for description text only — UK QS convention does not measure sign-foundation concrete separately (see SHW Cl. 1204). | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description confirms no side effects beyond computing outputs. It discloses authentication requirements, error condition (TIER_INSUFFICIENT), and deliverables behavior. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with bullet points, examples, and presets, making it readable. While lengthy, it front-loads critical info (paid tier, alternative). Some detailed codes (CESMM4, etc.) add noise but are relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given many parameters and options, the description covers sign types, presets, standards, and deliverables. However, it lacks explanation of the JSON response structure for output modes like 'summary' or 'full_json'. Output schema is absent, so description should cover this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%), but description adds extensive parameter guidance: example values, defaults, geometry interpretation, foundation types, and face area classes. This compensates well for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a traffic sign Bill of Quantities per UK standards (SHW, TSRGD). It specifies the five sign types and mentions a free-tier alternative (compute_end_area_earthworks), distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only' and provides a free-tier alternative. Includes example calls and parameter guidance. However, it does not explicitly mention when not to use this tool versus other compute_* siblings besides the one alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_utility_chamberCompute Utility Access Chamber BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Catalogue-driven utility access chamber covering ten standard UK types: BT/Openreach jointing chambers JC1-JC4 (defaulting to UTILITY_PROVIDER_SUPPLY routing), water meter chamber (FW6), wastewater inspection chamber (RW9), valve chamber, gas Emergency Control Valve pit (ECV), LV electrical link box, and cable draw pit. Composite emission: precast chamber unit + BS EN 124 cover & frame (PC supply) + excavation + bedding (SHW Cl. 803) + granular surround + optional geotextile + selected fill + disposal. Routes via manhole_type=utility_chamber attribute discrimination through CESMM4 Class K.1.5.x, NRM2 33.7.11-.13, MMHW 500.5.13-.15 (SHW Cl. 507), and SMM7 R12.3.10-.12. JC types route their chamber unit through the v18 statutory-undertaker supply route infrastructure (CESMM4 Class A.4.3, NRM2 Group 1, MMHW Series 100, SMM7 A53) as a PC sum plus contractor attendance line. Example params: bedding_thickness_mm=150 mm (75–300), bedding_overhang_m=0.1 m (0.075–0.3), surround_thickness_m=0.15 m (0.1–0.3). Example call: {"params": {"bedding_thickness_mm": 150, "bedding_overhang_m": 0.1, "surround_thickness_m": 0.15}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameter form for a utility access chamber. Catalogue-driven: pick a ``chamber_type`` and the chamber's nominal plan dimensions, depth, wall thickness, cover loading and supply route default are read from ``_CATALOGUE``. Any field left as ``None`` resolves to the catalogue default at ``__post_init__`` time; an explicit value wins. The ``supply_route`` parameter follows the same rule: ``None`` → catalogue default (UTILITY_PROVIDER_SUPPLY for JC1–JC4, CONTRACTOR_FULL for the other six). Setting an explicit value overrides — e.g. setting ``SupplyRoute.CONTRACTOR_FULL`` on a JC2 captures the private-estate case where the chamber is contractor- supplied rather than Openreach-supplied. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals internal routing logic, default behaviors, and parameter constraints (e.g., example ranges). It mentions tier responses and download URL generation for deliverables. The readOnlyHint annotation suggests no side effects, which the description does not contradict. However, the exact return format is not fully described (though an output schema exists).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and packed with information but could be more concise. It front-loads the paid tier note and then lists types, standards, examples, and deliverables. While organized, it is longer than necessary for the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (many parameters, nested object, output schema), the description covers chamber types, standards, defaults, an example call, and deliverables. It does not elaborate on the output_mode enum, but the output schema exists. Overall, it provides sufficient context for a domain-literate user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%), but the description adds meaning: it explains chamber_type enum values with UK types, supply routing defaults, and provides example parameter values and ranges. It does not explain every parameter (e.g., output_mode), so some burden remains on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a Bill of Quantities for utility access chambers, listing ten specific UK chamber types and supporting four standards. It distinguishes itself from the sibling compute_manhole, which is noted as a free-tier alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes the paid tier requirement and provides a free alternative (compute_manhole). It gives context on authentication (CivilQuants account) but does not explicitly state when to use this tool over other compute_* tools beyond the chamber specialization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_utility_kiosk_baseCompute Utility Kiosk Base BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_manhole. Foundation + kiosk hardware composite for utility cabinets — LV electricity feeder pillars (DNO-supplied), Openreach FTTC cabinets (PIA-supplied), EV rapid-charging plinths, packaged DNO substations, and generic precast plinths. Light-wrapper delegation around pad_foundation for the substructure (excavation, RC pad with pedestal, reinforcement), plus kiosk-specific PC-supply hardware (1 complete unit on UPS route, 4 components — body / door / lock / base-plate — on Employer-PC route). Catalogue-driven supply-route defaults encode that LV pillars and FTTC cabinets are normally utility-provider-supplied complete units, while EV chargers, DNO substations, and generic plinths are normally Employer-PC-nominated per component. Example params: quantity=1 Nr (1–100), blinding_thickness_m=0.075 m (0.05–0.15), working_space_m=0.3 m (0–1). Example call: {"params": {"quantity": 1, "blinding_thickness_m": 0.075, "working_space_m": 0.3}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a utility kiosk base. Fields marked "(None → catalogue)" resolve from the catalogue entry at ``__post_init__`` time; an explicit non-None value always wins. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral context beyond the readOnlyHint annotation: authentication requirements, tier-based access, default supply routes, and parameter defaults. However, it does not fully detail all defaults or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but slightly verbose, containing domain-specific jargon. It is well-structured with a clear flow, but could be more concise without losing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and low schema coverage, the description provides a solid overview but lacks detailed documentation of all parameter combinations and edge cases. The presence of an output schema compensates partially, but more detail on return values (beyond deliverables) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at only 25%, the description compensates by providing example parameters with units and ranges, explaining the kiosk_type enum, and describing supply_route defaults. This adds significant meaning beyond the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool computes a Bill of Quantities (BoQ) for utility kiosk bases, covering substructure and hardware composite for five specific cabinet types. It also mentions it wraps 'pad_foundation' and can output deliverables (xlsx, dxf, pdf), which fully specifies the tool's purpose and distinguishes it from siblings like 'compute_manhole'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Paid tier only' and directs free-tier users to the alternative 'compute_manhole'. This provides clear guidance on when to use this tool versus an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_vehicle_restraint_systemCompute Vehicle Restraint System (VRS) BoQARead-onlyInspect
Paid tier only. Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT — sign up at https://civilquants.com/pricing or use the free-tier alternative compute_end_area_earthworks. Vehicle restraint system (VRS) for highway works per SHW Cl. 401-419 and BS EN 1317. Discriminates between six structural system types via the vrs_system_type enum: tensioned and untensioned corrugated steel beam, wire rope, in-situ concrete step barrier, precast concrete single-slope, and combined heavy-duty (corrugated beam over concrete kerb upstand). FIRST member of the highway_restraint L2 leaf — opens the brand-new highway L1 category as the 40th assembly. Six variant presets cover the principal UK commercial scenarios: motorway verge TCB N2/W4, motorway central wire rope N2/W6, urban untensioned N2/W2, bridge approach concrete step H2/W1, median precast single-slope H2/W2, and high-containment verge H4a/W4. Routes via three new WorkCategory entries (VEHICLE_RESTRAINT_SYSTEM, VRS_TERMINAL, VRS_TRANSITION) plus reuse of CONCRETE_REINFORCED, REINFORCEMENT, FORMWORK and EXCAVATION_TRENCH for the concrete variants. Codes: CESMM4 X.3 (Class X §3 — crash barriers), NRM2 34.7 (Site works — crash barriers), MMHW 400.1.{ww}.{cl} (Series 400 — Road Restraint Systems, with 2D banding by working_width × containment), SMM7 Q40.5 (Section Q40 — Fencing, crash barriers). 24th use of the classed-then-legacy attribute discrimination pattern; 5th use of the declared-then-banded pattern AND the FIRST 2D-banded handler (MMHW 400.1.{ww}.{cl} bands by both axes simultaneously). Example params: length_m=100 m (12–10000), post_spacing_m=2 m (0.5–8), foundation_width_m=0.9 m (0.2–2). Example call: {"params": {"length_m": 100, "post_spacing_m": 2, "foundation_width_m": 0.9}, "standard": "MMHW"}. Omitted parameters use sensible engineering defaults. Pass deliverables=["xlsx","dxf","pdf"] (any subset) to also receive one-shot download URLs in the same call: Excel BoQ (both tiers, watermarked free) plus the dimensioned DXF (CAD) and PDF drawing sheets (paid tier).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | Parameters for a single vehicle restraint system run. Geometry interpretation: - ``length_m`` is the run length along the highway alignment. - ``post_spacing_m`` is the centre-to-centre spacing of supporting steel posts (irrelevant for INSITU and PRECAST_SLAB foundation types). Typical UK values: 2.0m (TCB), 4.0m (TCB W6 variant), 3.2m (wire rope), 1.5m (high-containment hybrid). - ``terminals_per_run`` is typically 2 (one at each end of a continuous run); can be 1 for a barrier that returns into a structure at one end. - ``transitions`` is the number of system-type transitions within the run (e.g. to a parapet or to a different VRS type). Zero is normal for a single-system run. System-type-specific attributes (set only those relevant to the variant's ``vrs_system_type``): - ``beam_thickness_mm`` — corrugated-beam variants only. - ``wire_strands`` / ``wire_tension_kn`` — wire rope only. - ``concrete_grade`` / ``concrete_cross_section_m2`` / ``reinforcement_kg_per_m`` — concrete variants only. - ``foundation_width_m`` / ``foundation_depth_m`` — INSITU_FOUND foundation only. - ``precast_unit_length_m`` — precast variants only. | |
| standard | No | MMHW | |
| output_mode | No | full_json | |
| deliverables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds extensive behavioral context beyond the readOnlyHint annotation: it reveals the paid-tier limitation, authentication requirement, error response, system type discrimination, standard codes, and output deliverables. This fully informs the agent about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with critical information (paid tier, alternative) but is quite lengthy, spanning several paragraphs. While every sentence adds value, the verbosity could be trimmed without losing essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, nested objects, output schema), the description is remarkably complete: it covers purpose, standards, variants, presets, example calls, parameter details, and output formats. No critical gaps remain for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite low schema description coverage (25%), the description richly explains parameters in context, providing example values, ranges, and detailed enum descriptions (e.g., vrs_system_type with six variants). It adds meaning beyond the input schema, such as geometry interpretation and system-specific attributes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('compute') and resource ('Vehicle Restraint System BoQ'), clearly indicating the tool's function for highway works. It distinguishes itself from siblings by mentioning the free-tier alternative 'compute_end_area_earthworks' and detailing its role as the first member of the highway_restraint L2 leaf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the paid-tier requirement and directs users to sign up or use a free alternative. It provides clear context for when to use this tool (VRS BoQ for highway works) but does not explicitly list conditions where the tool should not be used, though the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_pipelineGet the customer-side document pipelineARead-onlyInspect
Obtain the CivilQuants customer-side document pipeline — the toolkit the document-heavy skills (tender review, geotechnical / geo-environmental interpretation) use to chunk a tender pack and render a Word pack on the user's machine. Returns the self-unpacking chunking package, the pipeline discipline, and the python-docx render helpers. Universal (free + paid). NOTE: running the pipeline over real documents requires a code-execution client (Claude Code / Codex / VS Code) — a chat connector can read the toolkit but cannot execute it. The full kit is large (~60 KB); pass component='chunking'|'discipline'|'render' for one part (~20 KB each), or omit it for the whole kit.
| Name | Required | Description | Default |
|---|---|---|---|
| component | No | Which part to fetch; omit for the whole kit. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this by stating 'obtain' and 'read the toolkit'. It discloses execution limitations, size of components, and the purpose of the parameter, adding context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 4 sentences, front-loaded with purpose. Each sentence is meaningful: defines the tool, lists return elements, notes universal availability, warns about execution restrictions, and explains the parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter schema, good annotations, and presence of an output schema, the description covers all necessary context: what the tool returns, how to use the optional parameter, and behavioral constraints. No additional information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with a description for the 'component' parameter. The description adds value by explaining the size implication (~20 KB vs ~60 KB) and clarifying usage of enum values, enhancing the schema's information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the 'CivilQuants customer-side document pipeline' with specific verb and resource. It distinguishes from sibling tools (compute_*, get_project, etc.) by focusing on a pipeline toolkit for document-heavy skills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes that the pipeline cannot be executed in a chat connector but requires a code-execution client, providing clear usage boundaries. It implies when to fetch components via the 'component' parameter but doesn't enumerate alternatives to the tool itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectGet projectARead-onlyInspect
Fetch a previously saved CivilQuants project by project_id. When the id is not in context (e.g. a new conversation reopening 'Demo - Cantilever Wall'), pass the project's exact display name in the project_id field instead. If several projects share the name, the error envelope lists the candidate project_ids; call list_projects to browse everything saved. Paid tier only — anonymous callers receive a TIER_INSUFFICIENT envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint annotation, it discloses error handling (envelope with candidate ids), fallback behavior (display name), and tier requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with main action, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 required param and output schema present, the description covers usage, edge cases, errors, and tier constraints completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains the two modes of using project_id (id or display name) and the resolution of name conflicts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'fetch' and resource 'project by project_id', distinguishing it from sibling tools like list_projects which is for browsing all projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (fetch by id or display name), when-not-to (if multiple shares, use list_projects), and tier restriction (paid only).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skillGet senior-QS skill methodologyARead-onlyInspect
Paid tier only. Fetch a senior-QS skill methodology by slug (see list_skills) and APPLY it to the user's documents — the returned body is the system instruction for you to run the methodology on the customer's tokens; CivilQuants does not run inference. Paid callers get the full methodology; anonymous/free callers get a TIER_INSUFFICIENT upsell body; a rejected token gets an INVALID_TOKEN re-authenticate body. The document-heavy skills assume you can chunk/parse the customer's files and render a Word pack locally — that needs a code-execution client (Claude Code / Codex / VS Code) and the pack from get_document_pipeline; on a chat connector you can still read and reason with the methodology. Sign up at https://civilquants.com/pricing. Example: get_skill(skill="tender_risk_assessment").
| Name | Required | Description | Default |
|---|---|---|---|
| skill | Yes | Skill slug from list_skills. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond readOnlyHint annotation by detailing tier-dependent responses (full methodology, TIER_INSUFFICIENT, INVALID_TOKEN), notes that CivilQuants does not run inference, and explains dependencies on get_document_pipeline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with key qualifier 'Paid tier only' and core function. It's a single paragraph but each sentence adds necessary context. Minor redundancy in tier details could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple response types, execution environment needs) and the presence of an output schema, the description covers all critical aspects: prerequisites, behavior, and integration with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds an example skill slug and reinforces that it comes from list_skills, adding practical value beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'fetch' and resource 'senior-QS skill methodology by slug', clearly distinguishing from sibling compute tools. It mentions list_skills for slugs and explains the returned body is for the AI to apply, avoiding ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Paid tier only', provides alternative list_skills for slugs, contrasts free vs paid responses, and advises on code-execution client vs chat connector for document-heavy skills.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsARead-onlyInspect
List every project saved by the calling subscriber — project_id, name, client, status, default standard, assembly count, timestamps. Use this to re-find a saved project from a new conversation when its project_id is no longer in context, then pass the project_id to get_project or recompute_project. Paid tier only — anonymous callers receive a TIER_INSUFFICIENT envelope.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. Description adds further context: tier restriction and envelope error for anonymous callers, which is valuable behavioral disclosure beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose with fields, usage guidance, and restriction. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, presence of output schema, and annotations, the description fully covers what the tool does, when to use it, and important behavioral context. Sibling tools are many but this list tool's role is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema (baseline 4). Description does not attempt to add parameter info, which is appropriate since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the verb 'List' and resource 'every project saved by the calling subscriber', specifies return fields, and distinguishes from siblings by mentioning get_project and recompute_project as next steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use case: re-find a saved project when project_id is out of context. Tells agent to pass project_id to get_project or recompute_project. Also notes paid tier restriction, guiding agent on when to avoid calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsList senior-QS skillsARead-onlyInspect
List the 10 senior-QS skill methodologies CivilQuants exposes (tender review, risk assessment, QS measurement/contract advice, geotechnical + geo-environmental interpretation, earthworks, preliminaries, pavement design, subcontract analysis). Universal discovery — both tiers see the full list. Returns each skill's slug, title, one-line summary and tier; then call get_skill(skill=) to fetch the methodology body. The skills are paid-tier; a free caller gets a sign-up prompt from get_skill. NOTE: the document-heavy skills (tender review, the interpretation skills) need a code-execution client (Claude Code / Codex / VS Code) plus the chunking pack from get_document_pipeline to run a real tender pack — on a chat connector you can read the methodology but cannot chunk/parse files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While readOnlyHint already signals safety, the description adds valuable behavioral details: it lists the 10 skills, specifies return fields (slug, title, summary, tier), notes free tier behavior on get_skill, and clarifies which skills require a code-execution client. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a note, well-structured and front-loaded with key information. Every sentence adds value, though the note is slightly verbose. Could be trimmed slightly but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema present, the description is remarkably complete. It covers purpose, return fields, next steps, tier implications, and special client requirements. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters (100% schema coverage), yet the description adds meaning by enumerating the 10 skills and the return schema fields. This provides context beyond the empty schema, justifying a score above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists 10 specific senior-QS skill methodologies, distinguishing it from the sibling get_skill which fetches the full methodology body. The verb 'list' and resource 'skills' are specific, and the description names the exact skills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (universal discovery, both tiers), and explicitly directs to 'call get_skill(skill=<slug>)' for the body. It also warns about limitations on chat connectors for document-heavy skills, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recompute_projectRecompute projectARead-onlyInspect
Re-run every enabled assembly in a saved project and render aggregated BoQs across the requested measurement standards. recompute_project takes no parameter overrides — it re-runs the saved assemblies exactly as stored. To revise a parameter, save an amended copy with save_project (see its description for the recipe) and recompute the new project_id. Paid tier only — anonymous callers receive a TIER_INSUFFICIENT envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| request | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds that the tool takes no parameter overrides and re-runs exactly as stored, and notes the paid-tier requirement. This enhances transparency without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each purposeful: main action, constraint about no overrides, and tier restriction. Front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters and an output schema, the description covers core behavior, constraints, and alternatives (save_project). It provides sufficient context for an agent to decide when and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains that project_id identifies the project and the request parameter selects measurement standards. It also clarifies that no parameter overrides are accepted, adding crucial context beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool re-runs all enabled assemblies in a saved project and renders aggregated BoQs across requested measurement standards. This specific verb-resource combination distinguishes it from sibling compute_X tools that handle individual assembly types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (re-run saved assemblies as-is) and when not to (use save_project to amend parameters first). Also notes paid-tier restriction, providing clear context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_skill_reportRender Bill of Quantities deliverableARead-onlyInspect
Render previously-computed BoQ results into a deliverable (Excel workbook or Word report). Excel is free with watermark + sheet protection; Word is paid-tier only and returns a TIER_INSUFFICIENT envelope for anonymous callers. The wire shape matches POST /api/v1/mcp/render exactly.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Wire shape for POST /api/v1/mcp/render. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims to render deliverables (creating files), but annotations set readOnlyHint=true, which is contradictory. The disclosure of free/paid behavior and watermark protection does not resolve the contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded purpose and key details. No unnecessary information earns high marks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich input schema and output schema present, the description covers tier restrictions and wire shape. All necessary context is provided given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter descriptions in the schema are detailed. The tool description adds minimal value beyond noting the wire shape match, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it renders previously-computed BoQ results into Excel or Word deliverables. It distinguishes the free/paid tier difference and matches the API endpoint, making it distinct from sibling compute tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates usage after compute and specifies tier restrictions (Word paid-only), providing clear context. It lacks explicit when-not or alternatives, but the intent is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_assembly_from_descriptionResolve assembly from descriptionARead-onlyInspect
Resolve a plain-English job description to candidate catalogue assemblies and the fields you'll need to compute one. Deterministic router — it does NOT return a Bill of Quantities and NEVER guesses parameter values; it returns candidate slugs (plural when ambiguous, with clarifying questions), each assembly's tier, whether it supports compute_multi_section_assembly, and per-field metadata (unit, min/max, default). Then call compute_ (or compute_multi_section_assembly) with the values you fill in. Also known as compute_from_description. Example: {"description":"a 3 m deep manhole","preferred_standard":"MMHW"}.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| preferred_standard | No | ||
| return_resolution_log | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses deterministic behavior, no guessing, returns slugs with tier info and metadata. Annotations say readOnlyHint=true, description adds valuable context beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: purpose, behavior, example. Slightly verbose but each sentence adds value. Could be more concise without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity, explanation of output (slugs, tier, metadata) is sufficient. Output schema exists so return values not needed. Minor gap: return_resolution_log not explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description explains description and preferred_standard via example, but return_resolution_log is not mentioned. With 0% schema coverage, description partially compensates but misses one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it resolves a plain-English job description to candidate assemblies and needed fields, with an example. Distinguishes from siblings by explicitly stating it does not return a BOQ and never guesses values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: use when you have a description, then call compute_<slug> tools. States what it won't do (BOQ, guessing), and mentions alternative name compute_from_description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_projectSave projectAInspect
Persist a CivilQuants project with its assembly list. Each call creates a new project — it never overwrites an existing one. To revise a saved project's parameters: call get_project to recover its assemblies, amend the values, then call save_project again with the amended list (a revision-suffixed name like 'Pump Station R02' keeps the history browsable) and run recompute_project on the new project_id — recompute_project takes no parameter overrides. To measure a different assembly type instead, route via resolve_assembly_from_description. Re-find saved work in a later conversation with list_projects or get_project by exact name. Paid tier only — anonymous callers receive a TIER_INSUFFICIENT envelope pointing at https://civilquants.com/pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Body for ``POST /api/v1/mcp/project/save``. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that each call creates a new project (never overwrites) and mentions tier restriction, adding context beyond annotations (readOnlyHint=false, destructiveHint=false). Does not include potential side effects like overwriting, but that is explicitly ruled out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is moderately long but each sentence provides value. Front-loaded with main purpose. Could be slightly more concise, but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: creation behavior, revision workflow, tier restriction, alternative tools, and how to refind projects. Output schema exists so return values are not needed. Complete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions. Description adds context on revision-suffixed name for history but does not detail other parameters. Baseline score appropriate as schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Persist a CivilQuants project with its assembly list' and distinguishes from sibling tools like recompute_project and resolve_assembly_from_description by explaining when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use this tool (create new project), when to use alternatives (revise saved project: get_project, amend, save_project again; different assembly type: resolve_assembly_from_description) and tier restriction (paid only).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!