Skip to main content
Glama

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 50 of 56 tools scored. Lowest: 3.5/5.

Server CoherenceA
Disambiguation4/5

Most tools have distinct purposes with detailed descriptions, but the large number of closely related structures (e.g., multiple wall types, drainage inlets) could cause some confusion. Descriptions are thorough, mitigating ambiguity.

Naming Consistency4/5

The majority of tools follow a consistent `compute_<noun>` pattern. However, several administrative tools use different verbs (get, list, save, etc.), introducing mild inconsistency.

Tool Count3/5

56 tools is high but defensible given the broad civil engineering domain. The set covers many specific structures and workflows, though some tools could be merged or scoped more tightly.

Completeness4/5

The tool set covers a wide range of common civil engineering tasks (walls, foundations, drainage, pavements, highways, utilities). Minor gaps exist (e.g., no explicit bridge or tunnel tool), but the core domain is well-covered.

Available Tools

56 tools
compute_anchored_wallCompute Anchored Retaining Wall BoQA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
freeboardNo
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Discloses authentication requirement and paid tier restriction. Explains behavior of freeboard parameter. Annotations set readOnlyHint: true, consistent with a computation tool. 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.

Conciseness4/5

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

While the description is lengthy, it efficiently packs essential information about variants, standards, parameters, and deliverables. Each sentence adds value, though slight tightening could improve conciseness.

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

Completeness5/5

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

Given the tool's complexity (three structural variants, multiple standards, many parameters), the description is thorough. It covers variants, presets, standard mappings, parameter constraints, and deliverables. Output schema exists for return values.

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

Parameters5/5

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

Adds significant meaning beyond the schema: provides example values with ranges (stem_height=6 m (2–15)), defaults, and relationships (freeboard vs retained_height). The description compensates for the schema's limited descriptions and adds engineering context.

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

Purpose5/5

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

The description clearly states that the tool computes a Bill of Quantities for anchored retaining walls, specifically noting it's the only wall family member with pre-stressed ground anchors. It distinguishes from the sibling tool compute_cantilever_wall by mentioning 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.

Usage Guidelines5/5

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

Explicitly states it's paid tier only and warns about TIER_INSUFFICIENT error for unauthenticated calls. Provides the free alternative compute_cantilever_wall. Includes example params and an example call. Clarifies when to use freeboard vs retained_height.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

The description mentions that the tool is free tier with limitations, anonymous callers are welcome, and omitted parameters use sensible defaults. It does not contradict the readOnlyHint annotation, as the tool performs calculations without mutating data. This adds valuable 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.

Conciseness4/5

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

The description is moderately sized and contains essential information: tier restrictions, configuration options, example call, and deliverables. It is front-loaded with critical constraints. A slightly more structured format could improve readability, but it remains efficient.

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

Completeness4/5

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

Given the tool's complexity (many parameters, nested object, multiple standards) and the presence of an output schema, the description is fairly complete. It covers free tier limitations, example usage, and defaults. It could have elaborated on the meaning of each output mode, but overall it is sufficient.

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

Parameters3/5

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

Despite schema description coverage being 0%, the description compensates by explaining key parameters like tank_length, crate_width, and crate_height with default ranges. It states that omitted parameters use defaults, but does not describe all parameters individually. This is adequate but not fully comprehensive.

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

Purpose5/5

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

The description clearly states the tool computes a stormwater attenuation tank Bill of Quantities. It specifies two tank configurations (crates or pipes) and excavation types, distinguishing this tool from sibling tools that compute other civil engineering structures.

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

Usage Guidelines4/5

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

The description explicitly notes that only the MMHW standard is available in the free tier, while CESMM4, NRM2, and SMM7 require a paid tier. It includes an example call and explains the deliverables parameter. However, it does not provide explicit guidance on when not to use this tool versus its 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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Discloses authentication requirement and error behavior (TIER_INSUFFICIENT), output formats (xlsx, dxf, pdf), and defaults behavior. Adds value beyond the readOnlyHint annotation by detailing access constraints and deliverable options.

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

Conciseness2/5

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

Overly verbose; includes extraneous taxonomy details about structural families (SEVENTH member, FIFTH leaf) and coding references that are not needed for an AI agent. Core information should be more front-loaded and concise.

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

Completeness3/5

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

Provides a good overview of the tool's complexity, structural forms, and deliverables, but lacks detailed descriptions for many parameters. Adequate for a complex tool given presence of output schema and default parameter values.

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

Parameters3/5

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

Adds meaning with example parameter ranges (wall_length_m, retained_height_m, embedment_below_formation_m) and explanations of the bored_pile_form enum. However, schema coverage is low (25%) and many parameters remain undescribed; the description partially compensates but is not exhaustive.

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

Purpose4/5

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

The description clearly states the tool computes a BoQ for bored pile retaining walls and distinguishes from the free-tier alternative compute_cantilever_wall. However, the purpose is somewhat buried in verbose taxonomy about structural families and coding references.

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

Usage Guidelines4/5

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

Provides explicit guidance on paid tier requirement ('Calling this without an authenticated CivilQuants account returns TIER_INSUFFICIENT'), alternative free tool (compute_cantilever_wall), and gives example parameters and calls. Lacks explicit when-not-to-use but provides sufficient context.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior1/5

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

The description contradicts annotations: readOnlyHint is true, but the tool performs computation (returns BoQ, drawings) and requires paid authentication. Description states TIER_INSUFFICIENT error, indicating a write/compute operation, not read-only.

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

Conciseness3/5

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

Long description (multiple paragraphs) with detailed examples. Front-loaded with important paid tier warning, but could be more concise. Some redundancy (e.g., repeated info on headwalls).

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

Completeness4/5

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

Given complexity and output schema existence, description is comprehensive: explains components, standards, optional deliverables, and defaults. Covers most aspects needed for agent to use correctly.

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

Parameters4/5

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

Schema description coverage is low (25%), but the description adds value by explaining defaults and deliverable mechanism. However, it does not enumerate all parameters; the schema itself has some descriptions. Overall, adds moderate insight beyond schema.

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

Purpose5/5

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

The description clearly states it computes a precast concrete box culvert BoQ, specifying the resource (box culvert run) and verb (compute). It distinguishes from siblings by naming 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.

Usage Guidelines5/5

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

Explicitly mentions paid tier requirement and free-tier alternative. Provides example parameters and call, and notes when to use (for box culvert BoQ) and when to avoid (if not paid).

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 BoQA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
freeboardNo
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

The description adds significant behavioral context beyond the readOnlyHint annotation: free tier restrictions, anonymous caller support, default parameter behavior, freeboard back-calculation, and deliverables format. No contradiction with annotations; the description enriches the agent's understanding of side effects and limitations.

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

Conciseness4/5

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

The description is a single paragraph with all essential information, front-loading free tier info and purpose. It is clear but could benefit from more structure (e.g., bullet points for parameters) to improve scanability. Every sentence adds value, with minimal redundancy.

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

Completeness4/5

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

Given the complexity (5 top-level parameters, nested params object with many fields, output schema present), the description covers core functionality, tier constraints, example usage, and key parameter behaviors. It lacks coverage of error cases or behavior when parameters are out of range, but overall is adequate for the complexity level.

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

Parameters3/5

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

The schema has 0% parameter description coverage, so the description must compensate. It adds meaning for key parameters like stem_height with range examples (2–8 m), stem_thickness_top (0.2–0.6), stem_thickness_bottom (0.25–0.9), freeboard (clearance), and deliverables (any subset of xlsx, dxf, pdf). However, many other parameters (toe_length, heel_length, etc.) are left undocumented, so compensation is partial.

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

Purpose5/5

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

The description clearly states the tool computes BoQ for an in-situ reinforced concrete cantilever retaining wall, specifying components like toe, heel, stem, excavation, etc. It distinguishes from sibling tools by focusing on 'cantilever' wall, which differentiates from other retaining wall types like gravity or counterfort walls.

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

Usage Guidelines4/5

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

The description provides clear context on when to use (cantilever wall BoQ) and tier limitations (free tier only for MMHW). It includes an example call with parameters. However, it does not explicitly state when not to use or suggest alternatives among sibling tools like compute_gravity_wall or compute_counterfort_wall, so it lacks exclusions.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description discloses that authentication is required for paid tier, that it returns deliverables like xlsx/dxf/pdf conditionally, and that it is read-only (consistent with annotations). It adds context about the return format and tier limitations beyond the readOnlyHint.

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

Conciseness3/5

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

The description is very long and includes many implementation details (e.g., discriminator pattern, companion assembly history) that are not essential for an agent. It could be more concise while retaining key information.

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

Completeness5/5

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

The description covers authorization, parameter defaults, example calls, deliverable options, and standards. Given the tool's complexity (4 parameters, nested objects, enums), this provides all necessary context for correct invocation without needing external lookup.

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

Parameters4/5

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

Although schema description coverage is only 25%, the description compensates by explaining each parameter's role, providing example values, and clarifying defaults and enum meanings (e.g., material families, use descriptions).

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

Purpose5/5

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

The description clearly states it computes BoQ for carrier pipe runs according to four standards (CESMM4, NRM2, MMHW, SMM7) with specific class references. It distinguishes itself from siblings by mentioning the companion tool 'connection_to_existing' and the free-tier alternative 'compute_manhole'.

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

Usage Guidelines5/5

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

The description explicitly states 'Paid tier only' and provides an alternative free tool, 'compute_manhole'. It also explains that omitted parameters use sensible defaults and gives example parameter calls, guiding effective usage.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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'.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Discloses paid tier requirement, authorization failure response, watermarking for free tier, and deliverables behavior. Annotations have readOnlyHint: true, and description adds behavioral 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.

Conciseness4/5

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

Somewhat verbose but front-loaded with key information. Every sentence is informative. Could be slightly more concise, but structure is logical.

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

Completeness5/5

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

Covers all aspects: purpose, usage, alternatives, authentication, parameters example, deliverables, and standards. Despite high complexity, the description provides complete guidance.

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

Parameters4/5

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

Schema coverage is 25%, but description explains catalogue-driven sizing, example params, and that omitted params use sensible defaults. It adds context for parameters like size and standard beyond the schema.

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

Purpose5/5

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

The description clearly states it computes a BoQ for a precast concrete catchpit/silt trap, using BS 5911-3 and several standard methods. It distinguishes from manholes by the silt-sump geometry and typical position upstream of an interceptor.

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

Usage Guidelines5/5

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

Explicitly states paid tier and provides free-tier alternative compute_manhole. Gives example params and call, and context for when to use (upstream of petrol/oil interceptor in forecourt drainage).

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses authentication and tier requirements, the behavior of omitted parameters (defaults), and the ability to receive deliverables with one-shot download URLs. It also explains the rendering standards and the free/paid tier differences (watermarked vs. full).

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

Conciseness4/5

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

The description is well-structured and front-loaded with the most important information (paid tier, core functionality). It is informative but somewhat lengthy; every sentence serves a purpose, though some details (e.g., the list of standards) could be more concise.

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

Completeness4/5

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

Given the complexity (nested parameters, multiple standards, optional deliverables, authentication) and the presence of an output schema, the description covers the essential aspects for tool selection and invocation. It provides examples and explains the shared envelope concept, but could further clarify the relationship between parameters and defaults.

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

Parameters4/5

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

The description adds value by explaining the services array structure, providing example parameter values and ranges, and clarifying that omitted parameters use sensible defaults. The input schema itself has descriptions for many parameters, so the description complements rather than replaces schema information.

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

Purpose5/5

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

The description clearly states the tool computes a BoQ for a shared utility trench with multiple services, following NJUG Volume 1 and multiple standards (CESMM4, NRM2, MMHW, SMM7). It distinguishes from the free-tier alternative compute_manhole and implies differentiation from compute_single_service_run by emphasizing the shared envelope.

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

Usage Guidelines4/5

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 suggests the free-tier alternative compute_manhole. It provides example parameters and a call example, but does not explicitly state when to use this tool over other trench-related siblings (e.g., compute_single_service_run).

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for a single connection-to-existing extra-over item.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Beyond readOnlyHint annotation, the description discloses tier restrictions, behavior when not authenticated, that it computes BoQ (not modifies data), and details on deliverables. It adds significant context about the standards routing and output modes, though it could slightly improve by explicitly stating no write operations occur.

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

Conciseness5/5

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

The description is dense but well-organized: starts with tier warning, then systematically covers tool purpose, standards, parameters, unit, sibling tools, example, and deliverables. Every sentence adds value; no redundancy.

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

Completeness4/5

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

Very comprehensive for a complex tool, but existing_asset_id parameter is not explained in the description (only mentioned in schema). The description covers connection types, standards, deliverables, and tier info well, but omits guidance on when and how to use the existing_asset_id field.

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

Parameters5/5

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

Schema coverage is low (25%), but the description compensates by explaining connection_type as a discriminator with standard codes, method as non-code-affecting, and provides example call with diameter range and sensible defaults for omitted parameters. It adds engineering context missing from schema.

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

Purpose5/5

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

The description clearly states the tool computes an extra-over connection BoQ item for drainage, enumerates connection types, and distinguishes from sibling compute_manhole and carrier_pipe_run. It provides a specific verb ('computes') and resource ('Connection to Existing drainage BoQ').

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

Usage Guidelines5/5

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

Explicitly states paid tier only with a free alternative (compute_manhole), mentions when not to use (tier insufficient), and provides context on when to use this versus siblings like carrier_pipe_run. Also includes prerequisites (authenticated account).

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 BoQA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
freeboardNo
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Discloses tier requirements, error responses (TIER_INSUFFICIENT), watermarking, and deliverable behavior beyond annotations. Annotations already provide readOnlyHint=true, so the bar is lower; description adds useful context about payment and output restrictions. 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.

Conciseness4/5

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

The description is relatively long but well-structured with clear sections. Front-loaded with critical tier information. Each sentence adds value, though could be slightly condensed. No redundant repetition of schema.

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

Completeness5/5

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

Given the complexity of the tool (many nested params, multiple standards, deliverables), the description covers tier, error handling, alternatives, parameter usage, standards, and output options. Output schema exists, so return value explanation is not needed. Complete for effective tool selection and invocation.

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

Parameters4/5

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

Schema description coverage is 20%, but the description adds meaning by explaining parameter usage like freeboard vs retained-height, deliverables format, and example calls. Nested params object has its own rich schema descriptions for enums. The description provides context that the schema alone does not.

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

Purpose5/5

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

The description states 'Compute Counterfort Retaining Wall BoQ', uses specific verb 'compute' and resource, and distinguishes from sibling tools by explicitly naming the free-tier alternative compute_cantilever_wall and referencing other wall types for height ranges. The purpose is clear and unambiguous.

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

Usage Guidelines5/5

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

Explicitly states when to use (4-10m retained heights) and when not (above cantilever-economic range, below anchored-wall range). Provides explicit alternative (compute_cantilever_wall for free tier) and mentions prerequisites (CivilQuants account). Comprehensive usage guidance.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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).
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint: true. The description adds concrete details: authentication requirement, tier insufficiency error, and behavior of deliverables (one-shot download URLs). 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.

Conciseness3/5

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

The description is verbose, including extensive standards references and variant presets that may not be essential for an AI agent to select the tool. However, it is front-loaded with key info (paid tier, purpose).

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

Completeness4/5

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

Covers purpose, constraints, alternatives, examples, and deliverables option. Output schema exists, so no need to detail return values. Provides sufficient context for an agent to invoke correctly.

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

Parameters4/5

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

Schema description coverage is low (25%). The description adds value by detailing parameter ranges (e.g., run_length_m 1-1000) and explaining side_slope_h_per_v meaning. It also notes that omitted parameters use engineering defaults.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Linear primary measurement of an open earthwork drainage channel' and outputs a BoQ. It distinguishes from siblings by mentioning it's the second member of the drainage_ancillaries leaf and contrasts with the free-tier alternative compute_manhole.

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

Usage Guidelines5/5

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

Explicitly states paid-tier requirement, provides sign-up link, and directs to free alternative compute_manhole. Also gives example parameters and a sample call, plus notes on omitted parameters using defaults.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint=true, meaning no side effects. The description adds that the tool requires authentication for paid tier, returning a specific error otherwise. It also mentions optional deliverables. This adds 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.

Conciseness3/5

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

The description is long but packed with relevant information. It begins with the tier warning and then provides definitions, defaults, and examples. Some redundancy could be trimmed (e.g., repeating standard references).

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

Completeness3/5

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

Given the tool's complexity (many parameters, output schema exists), the description covers usage context, standards, example call, and deliverables. However, it misses comprehensive parameter documentation and could better describe return values when output schema is present but not detailed in description.

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

Parameters2/5

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

The input schema has 15+ parameters with no description coverage (0%). The description only mentions three example parameters and their ranges, lacking explanation for the majority. It states omitted parameters use defaults, but without detailing them, the agent cannot understand their purpose or values.

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

Purpose5/5

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

Title and description clearly specify the tool computes BoQ for 'highway pavement edge drain' per HD 33/16, with a detailed definition. It distinguishes itself from siblings like compute_french_drain by mentioning highway-specific defaults and standards.

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

Usage Guidelines5/5

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

Explicitly states 'Paid tier only' and points to free-tier alternative compute_manhole. Provides example parameters and call format, helping the agent decide when to use this tool versus other drain computation 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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInputs 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

The description goes beyond the readOnlyHint annotation by detailing tier requirements, error conditions, delegation to end_area_earthworks engine, auto-computation of topsoil strip, and support for optional excavation. It also explains the inheritance of rendering invariants and the one-shot download URL mechanism for deliverables.

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

Conciseness4/5

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

The description is well-structured with clear sections: tier warning, core functionality, example, and deliverables. It front-loads critical information (paid tier, alternative) and uses bullet-like phrasing. However, it is somewhat verbose and could be trimmed without losing substance.

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

Completeness4/5

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

Given the tool's complexity (many parameters, nested objects, sibling tools), the description covers the main workflow, tier restrictions, and deliverables. It explains the delegation and core features. However, it lacks detailed parameter descriptions for most parameters, relying on defaults and an example. The existence of an output schema reduces the need for return value explanation, but parameter descriptions are still lacking.

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

Parameters3/5

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

The schema has many parameters with 25% coverage, but the description adds value by explaining crest_width_m, side_slope_h_per_v, and strip_envelope_offset_m with examples and sensible defaults. However, it does not explain the meaning of most other parameters like method, bulking, material classes, which are critical for proper use. The example call helps but is insufficient for full understanding.

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

Purpose5/5

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

The description clearly states it computes an embankment cross-section BoQ, explicitly distinguishing from the free-tier alternative compute_end_area_earthworks. It specifies the geometry-driven approach per MMHW Series 600 and lists key parameters, making the purpose unambiguous.

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

Usage Guidelines5/5

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

It explicitly states it is paid-tier only and directs to the free-tier alternative compute_end_area_earthworks. It provides example parameters and a full example call, enabling correct invocation. It also explains when to omit parameters and how to request deliverables.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInputs 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations provide readOnlyHint=true, and the description adds significant behavioral context: computation details (integration method, bulking, shrinkage), tier limitations, rendering behavior across standards, and deliverable options. 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.

Conciseness2/5

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

The description is a dense, single paragraph with many clauses and details. It could be structured into sections (purpose, usage, examples, limitations) for better readability. While informative, it lacks conciseness.

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

Completeness4/5

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

Given the tool's complexity (nested objects, many params, output schema exists), the description covers calculation method, standards, deliverables, tier limitations, example call, and defaults. It doesn't explain return values, but output schema fills that gap. Fairly complete.

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

Parameters3/5

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

Schema has detailed parameter descriptions (e.g., bulking, cross_sections) covering 25% of parameters, plus enums with standard material classes. The tool description adds overall context (example params, integration method) but does not significantly enhance individual parameter meaning beyond the schema.

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

Purpose5/5

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

The description explicitly states the tool computes end-area earthworks BoQ, specifies the standard (MMHW), method (Simpson's Rule), and provides example parameters and deliverables. It clearly distinguishes from sibling compute tools by naming the specific earthworks and standard.

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

Usage Guidelines4/5

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

The description provides clear context: free tier vs paid tier, which standards are supported, anonymous callers welcome, and example call with parameters. However, it does not explicitly state when to use this tool versus sibling compute tools for different structures, which is a minor gap.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInput 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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 context about authentication requirements, tier insufficiency errors, and the one-shot download URLs for deliverables, going 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.

Conciseness4/5

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

The description is comprehensive but lengthy; however, every sentence provides essential information. It is well-structured, starting with the critical usage constraint and then detailing the build-up layers, standards, and example calls.

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

Completeness4/5

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

Given the tool's complexity (many parameters, multiple standards, output modes, deliverables), the description covers key aspects: purpose, usage constraints, parameter defaults, and output options. The presence of an output schema partly reduces the need to describe return values in detail.

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

Parameters4/5

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

While schema description coverage is 25%, the description adds meaningful context for parameters, such as traffic category mappings to DMRB CD 226, default dimensions for an urban access road, and the effect of omitted parameters. This compensates for the lack of full schema descriptions.

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

Purpose5/5

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

The description clearly states that the tool computes a flexible pavement build-up BoQ, including optional layers, standards, and traffic categories. It distinguishes itself from sibling tools like compute_rigid_pavement and compute_end_area_earthworks by specifying 'flexible pavement' and mentioning the 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.

Usage Guidelines5/5

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

The description explicitly states 'Paid tier only' and provides the alternative compute_end_area_earthworks for free-tier users. It gives example parameters, default values, and notes when explicit thicknesses are needed (e.g., design traffic >30 msa).

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations set readOnlyHint=true, consistent with description (no data modification mentioned). Description adds useful context: requires authenticated account, returns TIER_INSUFFICIENT error without it, and delivers download URLs for deliverables. No contradictions.

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

Conciseness4/5

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

Description is well-structured: starts with tier info, then technical description, then example, then deliverables. Front-loaded with critical details. Slightly long but earns its length with relevant information.

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

Completeness5/5

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

Covers tier, alternative, standards (CESMM4, NRM2, MMHW, SMM7), example call, default behavior, and deliverables. With output schema present, return values need not be detailed. Sufficient for agent to understand and invoke correctly.

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

Parameters2/5

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

Schema description coverage is 0% per context, but description only provides example values for three parameters (pipe_internal_diameter_mm, pipe_wall_thickness_mm, drain_length) without explaining others. 'Omitted parameters use sensible defaults' offers minimal guidance. Does not compensate for lack of schema descriptions.

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

Purpose5/5

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

The description clearly states it computes a French drain BoQ, provides technical details (perforated drain, granular-filled trench, geotextile wrap), and distinguishes from sibling tool compute_manhole as a paid-tier alternative. The purpose is 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.

Usage Guidelines5/5

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

Explicitly states 'Paid tier only' and mentions the free-tier alternative compute_manhole. Includes example parameters and call, and explains when to use the tool versus alternatives. Provides clear context for invocation.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description extensively describes behavioral traits: paid tier, authentication, output options (deliverables: xlsx, dxf, pdf), default parameters, and the discriminator pattern for structural forms. It adds context beyond annotations by explaining the paid tier error and output features. However, it does not explicitly confirm read-only behavior, and annotations state readOnlyHint=true, which may be contradictory given the tool creates new WorkCategory entries.

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

Conciseness2/5

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

The description is excessively long (over 500 words) with dense technical details about structural forms, codes, and historical context. While informative, it lacks conciseness; a shorter version would be more efficient for an AI agent to parse. Key information is front-loaded (paid tier, authentication), but the latter half is verbose.

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

Completeness5/5

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

Given the tool's complexity (four forms, many parameters, paid tier, multiple output modes), the description covers virtually all relevant aspects: authentication, alternative tool, parameter examples, defaults, output deliverables, codes, and discriminator patterns. It is extremely thorough and leaves few gaps for an agent to infer.

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

Parameters4/5

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

The description adds value beyond the schema by providing example parameters and call, listing defaults for key parameters (wall_height=3m, wall_length=25m, basket_length_m=2m), and explaining the deliverables parameter. Schema coverage is low (25%), but the description compensates with examples and practical usage notes, though it doesn't detail every parameter.

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

Purpose5/5

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

The description clearly states the tool computes a Bill of Quantities for a modular gabion retaining wall. It distinguishes from siblings by being the first non-concrete retaining structure and explicitly names the free alternative compute_cantilever_wall. The four structural forms and eight variant presets are detailed, leaving no ambiguity about what the tool does.

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

Usage Guidelines5/5

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

The description starts with 'Paid tier only' and specifies authentication requirements, explicitly warning about TIER_INSUFFICIENT error. It names the free-tier alternative compute_cantilever_wall. It also provides example parameters and a call, guiding when to use this tool versus alternatives.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint: true, so the tool is stateless. The description adds context: describes computation details (inclusions like excavation, drainage), output deliverables (Excel, DXF, PDF), and tier behavior (TIER_INSUFFICIENT error). No contradictory behavior disclosed. Slight verbosity but 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.

Conciseness3/5

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

Description is lengthy and includes internal implementation details (e.g., '13th use of the classed-then-legacy pattern') that are irrelevant for an agent. Front-loaded with tier info, but overall verbose. Could be more concise while retaining essential information.

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

Completeness4/5

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

Given complexity (4 top-level params, nested params, output schema exists), the description covers tool purpose, inputs (including defaults and ranges), outputs (deliverables), and usage context. Output schema handles return details. Some param descriptions missing, but overall adequate for an experienced agent.

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

Parameters3/5

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

Schema description coverage is only 25% (low). The description adds meaning for key parameters like stem_height, stem_thickness_top/bottom (with ranges) and mentions variant presets. However, many parameters are not explained (e.g., toe_length, heel_length, back_profile, etc.). The example call helps but incomplete compensation for low coverage.

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

Purpose5/5

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

The description clearly states it computes a mass concrete gravity retaining wall BoQ, specifying wall type, cross-section, and materials. It explicitly differentiates from the sibling tool compute_cantilever_wall as a free-tier alternative, and mentions variants. The verb 'compute' and resource 'Mass Concrete Gravity Retaining Wall BoQ' are specific.

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

Usage Guidelines5/5

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

Explicitly states paid tier requirement and provides the free-tier alternative (compute_cantilever_wall). Includes example parameters and example call. Describes when to use, including variant presets and standard codes. Clear guidance on deliverables and how to pass them.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description discloses behavioral traits such as free tier restriction, anonymous caller acceptance, and use of sensible defaults. While annotations already indicate readOnlyHint=true, the description adds context about tiers and deliverables. It does not contradict annotations.

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

Conciseness4/5

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

The description is relatively long but well-structured with front-loaded tier information and an example call. Almost every sentence adds value, but it could be slightly more concise by grouping standard-related info. Still, it earns a 4 for clarity.

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

Completeness4/5

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

Given the tool's complexity (many parameters, nested objects, output schema exists), the description covers essential aspects: tier limitations, an example call, deliverables, and component description. It does not need to explain return values due to output schema. It is nearly complete for an agent to invoke correctly, though more parameter details would help.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden. It adds meaning by explaining the composite nature of the gully and providing example parameters with ranges (e.g., pot_internal_diameter_mm 300–750). However, it does not describe all 24 parameters individually, leaving many undocumented. Baseline 3 is appropriate as it partially compensates.

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

Purpose5/5

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

The name and title clearly indicate a tool for computing a gully with connection BoQ. The description explains it is a composite drainage inlet with specific components (gully pot, grating, kerb outlet, connection drain), and the mention of four-standard rendering with sub-codes distinguishes it from sibling tools like compute_catchpit or 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.

Usage Guidelines4/5

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

The description explicitly states that the free tier only supports MMHW, and that other standards require a paid tier. It provides an example call and mentions that omitted parameters use defaults. However, it does not explicitly compare this tool to siblings or state when to use it instead of alternatives like compute_catchpit or compute_manhole.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Discloses paid tier enforcement, authentication requirement, and the dual-quantity behavior across four standards. Does not contradict annotations (readOnlyHint is appropriate for a computation tool).

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

Conciseness5/5

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

Front-loaded with tier info and alternative, then logically structured: behavior, standards, parameters, example. Every sentence adds value; no redundancy.

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

Completeness5/5

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

Covers tier, standards, parameter semantics, example call, deliverables, and sibling context. Thoroughly equips an agent to select and invoke the tool correctly.

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

Parameters5/5

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

Despite low schema coverage (25%), the description provides extensive parameter details: ranges, defaults, engineering rationale, geometry interpretation, and examples. Fully compensates for schema gaps.

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

Purpose5/5

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

The description clearly states it computes extra-over measurement of hard material in trench excavation, specifies the dual-quantity nature (length and volume), and distinguishes from the free-tier alternative compute_manhole.

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

Usage Guidelines5/5

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

Explicitly states paid tier requirement and provides free-tier alternative compute_manhole. Also notes SMM7's deemed-included behavior, guiding appropriate usage.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Beyond the readOnlyHint annotation (which indicates no state modification), the description discloses pricing tiers, output modes (summary, boq, etc.), deliverables (xlsx, dxf, pdf), and watermarks for free tier. This adds significant behavioral context.

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

Conciseness4/5

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

The description is packed with useful information but is somewhat long and dense. Front-loading key points (free tier, standard restriction) is effective, though some technical details could be organized more clearly.

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

Completeness3/5

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

Given the complex nested input schema (4 top-level params, many sub-params) and 0% schema description coverage, the description provides essential context (standards, outputs, example) but lacks detailed parameter explanations. Output schema exists but is not shown, so return values remain partially unclear.

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

Parameters3/5

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

The schema has 0% description coverage, but the description compensates with an example for three key parameters (pipe_internal_diameter_mm, pipe_wall_thickness_mm, invert_below_apron_m) and notes that omitted parameters use defaults. However, many parameters (e.g., cover_mm, concrete_grade) are not explained, leaving gaps.

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

Purpose5/5

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

The description explicitly states it computes a reinforced concrete outfall headwall BoQ, detailing components (back wall, wing walls, apron, scour protection) and standards (CESMM4, NRM2, SMM7, MMHW). This clearly distinguishes it from sibling tools like compute_headwall_attenuation_outlet and compute_headwall_precast.

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

Usage Guidelines4/5

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

The description provides clear guidance: free tier for MMHW, paid for others; example params and full call; defaults for omitted parameters. It does not explicitly state when not to use this tool versus alternatives, but the context of headwall type is implicit.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description reveals that the tool requires authentication and is a paid service, returning a TIER_INSUFFICIENT error otherwise. It mentions the default supply route (CONTRACTOR_INSTALL_PC_SUPPLY) and the ability to request deliverables like xlsx, dxf, pdf. While the annotations indicate readOnlyHint=true, the description does not contradict it and adds context about billing and output generation. It lacks explicit mention of side effects or state changes, but overall provides good behavioral insight.

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

Conciseness3/5

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

The description is relatively long and contains domain-specific jargon (e.g., 'bundle-with-shared-envelope pattern') that may not be helpful for an AI agent. While it is front-loaded with the critical paid-tier warning, the overall structure could be more concise by removing extraneous details. The length is justified for the complexity, but it could be trimmed.

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

Completeness3/5

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

The description covers key aspects like input parameters, example call, output modes, and deliverable options. However, it lacks a formal output schema description; the agent must infer return values from the text. Given the tool's complexity (nested params, many options), the description leaves some gaps (e.g., exact structure of 'full_json' output). It is adequate but not fully complete.

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

Parameters3/5

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

With only 25% schema description coverage, the description partially compensates by explaining the high-level parameter categories (orifice, flap valve, weir, penstock, scour protection) and providing example parameter values and an example call. However, it does not detail each parameter's meaning or constraints beyond a few examples, so agents must rely heavily on the schema for full parameter semantics.

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

Purpose5/5

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

The description uses a specific verb ('compute') and clearly identifies the resource ('Headwall — Attenuation Outlet BoQ'). It distinguishes from sibling tool 'compute_headwall' by noting it is the paid-tier alternative. The purpose is unambiguous: it computes a bill of quantities for a controlled attenuation outlet headwall with ironmongery and scour protection.

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

Usage Guidelines5/5

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

The description explicitly states it is paid-tier only and directs users to the free-tier alternative 'compute_headwall' for unpaid access. It provides a URL for pricing and mentions authentication requirements. It also gives example parameters and an example call, helping the agent understand 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_headwall_precastCompute Precast Concrete Outfall Headwall BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior1/5

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

Annotations declare readOnlyHint=true, suggesting read-only behavior, but the description indicates a paid operation that creates deliverables (Excel, DXF, PDF) and returns errors without authentication. This is a clear contradiction, and the description adds context about tier requirements but conflicts 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.

Conciseness4/5

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

The description is long but front-loads critical tier and availability info. Every sentence adds value, though some parameter details could be streamlined. Generally well-structured.

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

Completeness4/5

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

Given the tool's complexity (many parameters, nested objects, output schema exists), the description covers tier constraints, standards, example usage, and catalogue-driven sizing. It is fairly complete for the domain.

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

Parameters4/5

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

Schema description coverage is only 25%, but the description adds significant meaning: explains size enum values, bedding types, example parameter ranges and defaults, and references a catalogue. This compensates for low schema coverage.

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

Purpose5/5

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

The description clearly states the tool computes a BoQ for precast concrete outfall headwalls, distinguishes from the free-tier sibling 'compute_headwall', and specifies standards and sizing ranges. This is a specific verb+resource with sibling differentiation.

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

Usage Guidelines5/5

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

Explicitly states 'Paid tier only', provides alternative 'compute_headwall' for free tier, and describes when to use UK precast headwall. Includes example calls and omitted parameter defaults.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInputs 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)
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations only provide readOnlyHint=true. The description adds significant behavioral context: authentication requirement, specific error message (TIER_INSUFFICIENT), discrimination of channel types, defaults for omitted parameters, and generation of deliverables with download URLs. It does not contradict annotations and provides value beyond the minimal annotations.

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

Conciseness2/5

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

The description is verbose, containing multiple paragraphs with technical details (e.g., 'second highway L1 family outside Section Q after S39 lighting → V41') that are not essential for agent understanding. It could be more concise and better structured, though it front-loads important usage constraints.

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

Completeness4/5

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

Given the complexity (many parameters, nested object, output schema exists), the description covers authentication, alternative, standards, output formats, defaults, and an example call. It omits explicit listing of required parameters beyond the example, but the example suffices. Output schema information is not needed as it exists separately.

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

Parameters3/5

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

The input schema already provides detailed descriptions for most sub-parameters (depth_class, channel_type, outfall_type, silt_box_type). The description adds context about the 5x4 grid and example parameters but does not significantly enhance understanding of individual parameters beyond the schema. Top-level parameters like standard and output_mode lack descriptions, but the description mentions deliverables loosely.

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

Purpose5/5

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

The description clearly states the tool computes a Bill of Quantities for highway drainage channel installation per UK standards, specifying verb 'compute' and resource 'Highway Drainage Channel BoQ'. It distinguishes from the sibling tool 'compute_end_area_earthworks' which is mentioned 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.

Usage Guidelines5/5

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

The description explicitly states when to use this tool vs the alternative: 'Paid tier only...use the free-tier alternative compute_end_area_earthworks'. It also implies use for highway drainage channel calculations, not for other drainage structures.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInput 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the description rightfully focuses on other behaviors: tier restriction (paid) and authentication requirements, sensible engineering defaults for omitted parameters, and optional file generation (xlsx, dxf, pdf). 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.

Conciseness4/5

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

The description is somewhat lengthy but well-structured: tier/authentication first, then assembly composition, standards, examples, and optional deliverables. Every sentence serves a purpose (e.g., defaults, profiles, call example). Slightly more verbose than necessary but packed with valuable detail.

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

Completeness5/5

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

Given the tool's complexity (many parameters, nested object, multiple standards, tier restrictions, file generation), the description covers all essential aspects: authentication, assembly details, supported profiles/channels, example call with ranges, and deliverables. The output schema exists (not shown here) so return values need not be described. Very complete.

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

Parameters4/5

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

Schema description coverage is low (25%), but the description compensates with detailed examples (kerb_length=25 m, range 1–1000; bed_thickness_mm=150 mm, range 75–300; bed_extra_each_side_mm=100 mm, range 0–300) and explains kerb profile types (HB2/HB1/SP/BN/EF/ER) and channel options. It adds meaning beyond the schema, especially for the nested params object.

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

Purpose5/5

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

The description states it computes a precast concrete kerb run BoQ, listing assembly components (excavation, sub-base, concrete bed, kerb units, etc.) and supported standards (CESMM4, NRM2, MMHW, SMM7). It explicitly distinguishes from sibling tools by mentioning a free-tier alternative (compute_cantilever_wall) and specifying the linear kerb run context.

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

Usage Guidelines4/5

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

Explicitly states 'Paid tier only' and directs to free alternative for non-authenticated users. It describes the typical use case (linear precast concrete kerb on concrete bed and haunch over Type 1 sub-base). While it doesn't list explicit exclusions, the purpose is so specific that usage 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_lighting_columnCompute Lighting Column BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInputs 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Discloses authentication requirement and tier restriction. Describes the large 24-cell banded grid and the return of download URLs for deliverables. Annotations already declare readOnlyHint=true, so no contradiction; the description adds useful context about the computation's scope.

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

Conciseness3/5

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

The description is comprehensive but quite verbose, with a lot of internal detail (e.g., banded grid, handler code). The first sentence captures purpose, but overall could be more concise to reduce processing overhead for an AI agent.

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

Completeness5/5

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

Given the complexity of parameters, nested objects, and multiple standards, the description covers purpose, usage, parameter defaults, examples, and output formats. An output schema exists, so return values are handled externally.

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

Parameters4/5

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

Schema description coverage is 25%, but the description elaborates on key enums (column_type, foundation_type, etc.) and explains defaults. Adds meaning beyond the schema for the major parameters, though not exhaustive for all 11 sub-parameters.

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

Purpose5/5

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

The description clearly states the tool computes a BoQ for highway/street lighting column installation per BS EN 40 + BS 5489-1:2020 + TR 22. It names the output (Excel, DXF, PDF) and distinguishes from the free-tier sibling 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.

Usage Guidelines5/5

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. Includes example parameter values and a full example call, plus explains default behavior and optional deliverables.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations indicate readOnlyHint=true, and the description confirms a read operation (computes BoQ, renders standards). It adds behavioral details: tier restrictions, deliverables (xlsx, dxf, pdf), watermarking, and composite assembly components. No contradictions. However, it does not mention rate limits or authentication beyond 'anonymous callers welcome'.

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

Conciseness4/5

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

The description is well-structured, front-loading key information about tiers, standard restrictions, and assembly components. While it is somewhat long, every sentence adds value. It could be slightly more concise, but it is not verbose.

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

Completeness4/5

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

Given the tool's complexity (30+ parameters, nested object, output schema exists), the description covers essential aspects: input examples, defaults, deliverables, and output modes. It does not explain the return structure, but the output schema fills that gap. The description is sufficient for an agent to make a correct call.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It provides example parameters with typical values and ranges (e.g., internal_diameter=1.5, wall_thickness=0.15, invert_depth=3.5) and mentions that omitted parameters use sensible defaults. However, it does not describe all parameters, leaving many undocumented. This partial compensation earns a 3.

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

Purpose5/5

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

The description clearly states the tool computes a Bill of Quantities (BoQ) for precast concrete circular manholes. It specifies the composite assembly and distinguishes itself from similar tools by indicating the standard coverage (MMHW free, others paid). The verb 'compute' and resource 'manhole' are specific.

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

Usage Guidelines4/5

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

The description provides explicit context on when to use: free tier for MMHW, paid tier for others. It welcomes anonymous callers and mentions sensible defaults. However, it does not explicitly compare with sibling tools like compute_manhole_precast or provide 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_manhole_precastCompute Precast Concrete Monolithic Manhole BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Discloses authentication requirements (paid tier), default parameter behavior, and one-shot delivery of downloadable files (Excel, DXF, PDF). No contradiction with readOnlyHint annotation, as the tool is a stateless computation generating results, not mutating external state.

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

Conciseness3/5

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

The description is verbose, covering paid tier warning, construction details, standards, example parameters, and deliverables in a single block. While informative, it could be more concise (e.g., separating authentication guidance from parameter details).

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

Completeness4/5

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

Given the tool's complexity (multiple standards, nested params, deliverables), the description provides adequate context: purpose, usage caveats, example call, and output options. With an output schema present (as per context signals), it does not need to detail return values.

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

Parameters4/5

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

With only 25% schema coverage, the description compensates by explaining catalogue-driven sizing (PMC_1200–PMC_2400), giving example parameters with ranges, and noting that omitted parameters use sensible defaults. However, not all 20+ parameters are individually clarified, leaving some ambiguity.

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

Purpose5/5

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

Description explicitly defines the tool as computing a BoQ for a precast monolithic manhole, details the construction type (BS 5911-3), and contrasts with sibling 'compute_manhole' for free-tier alternative. The verb 'compute' and resource 'manhole precast' are specific and differentiated.

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

Usage Guidelines5/5

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

Clearly states 'Paid tier only' and directs users to the free alternative 'compute_manhole' if they lack an authenticated CivilQuants account. Provides example parameters and standards (e.g., MMHW), giving agents clear context for invocation.

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 BoQA
Read-only
Inspect

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}]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionsYes
standardNoMMHW
deliverablesNo
aggregate_boqNo
assembly_slugYes
shared_paramsNo
include_backupNo
include_section_boqNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Annotations provide readOnlyHint, and the description adds important behavioral context: each section consumes one daily slot, and non-linear items return INVALID_INPUT. 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.

Conciseness5/5

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

The description is a single paragraph but well-structured: starts with core function, lists use cases, constraints, free tier info, and an example. Every sentence adds value, no fluff.

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

Completeness4/5

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

Given the complexity (8 parameters, nested sections) and the presence of an output schema, the description covers the essential concept, constraints, and provides an example. Some optional parameters are not detailed, but core usage is fully explained.

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

Parameters4/5

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

With 0% schema coverage, the description compensates by explaining critical parameters: assembly_slug must be a sectioned assembly, sections array with labels and run lengths, shared_params applied to all. An example illustrates usage. However, some parameters (deliverables, aggregate_boq, include_backup, include_section_boq) are not explicitly explained.

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

Purpose5/5

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

The description clearly states the verb ('compute'), the resource ('sectioned/linear assembly across multiple sections'), and the output ('combined Bill of Quantities plus per-section results'). It distinguishes from siblings by specifying that it is for multi-section assemblies like walls and drains, and notes that 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.

Usage Guidelines4/5

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

It explicitly says to use for walls, kerb runs, drains, or barriers that change length, and implies not for single-section assemblies. It also mentions free tier limitation. However, no explicit alternatives or when-not-to-use are stated, though the context of single-section compute tools is clear from sibling names.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description transparently discloses authentication requirements and returns TIER_INSUFFICIENT error, aligning with readOnlyHint annotation (no state change). It mentions behavior for deliverables parameter (one-shot download URLs). 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.

Conciseness4/5

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

The description is well-structured: starts with critical tier info, then purpose, example parameters, and deliverables. It is slightly lengthy but every sentence adds value. Front-loads key information.

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

Completeness3/5

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

Given the high number of parameters and options (deliverables, output modes), the description provides essential guidance but lacks explanation of less common parameters and output schema. However, the output schema exists separately. Overall adequate for basic usage.

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

Parameters3/5

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

Schema has 0% description coverage, but the description compensates by giving example parameters with ranges and explaining the deliverables parameter. However, many parameters (e.g., top_mat, cover_mm, working_space) are not explained beyond schema defaults. The description adds value but does not cover all parameters.

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

Purpose5/5

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

The description clearly states it computes a BoQ for a single isolated reinforced concrete pad foundation with optional pedestal, and mentions integration with reinforcement scheduling. The title 'Compute Concrete Pad Foundation BoQ' matches. It distinguishes from sibling tool compute_cantilever_wall 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.

Usage Guidelines4/5

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

The description explicitly says 'Paid tier only' and mentions the error for unauthenticated users, providing a free-tier alternative. It includes example parameters and a call example, and explains the deliverables parameter. It gives clear context but does not explicitly list when to not 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_parapetCompute Parapet (Bridge / Structural Deck) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInputs 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).
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Annotations only provide readOnlyHint: true. The description adds crucial behavioral information: authentication constraints (paid tier), error code for insufficient tier, defaulting of parameters, and the ability to receive one-shot download URLs for deliverables. 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.

Conciseness2/5

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

The description is overly verbose with extraneous details like 'LAUNCH-COMPLETING 45TH ASSEMBLY', 'SEVENTH 1D-banded handler', and 'second principled rejection of forced 2D banding'. While packed with information, it lacks structure and front-loading for an agent. Could be streamlined to focus on invocation-critical info.

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

Completeness4/5

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

Given complexity (4 parameters, enums, nested objects) and the existence of an output schema, the description covers parameter semantics, usage constraints, and deliverables. However, it misses explicit guidance on when to use this tool vs the many sibling tools beyond the one free-tier alternative, and it includes extraneous project status. Still, it is largely complete.

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

Parameters5/5

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

Schema description coverage is only 25%, but the description provides extensive meaning for all parameters, including detailed explanations of enum values (four parapet_type classifications, nine containment_level values), constraints (height 900-1800 mm, length 1-2000 m), and the role of transition_type and post_count. It compensates fully for low schema coverage.

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

Purpose5/5

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

The description clearly states it computes BoQ for bridge/structural deck parapet installation per UK standards (BS 6779-1, BS EN 1317-2, SHW Cl. 408). It distinguishes from siblings by mentioning the free-tier alternative compute_end_area_earthworks and by being a specific parapet handler. No sibling tool duplicates this purpose.

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

Usage Guidelines5/5

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

Explicitly states 'Paid tier only' and that unauthenticated calls return TIER_INSUFFICIENT, with a sign-up URL and a free-tier alternative (compute_end_area_earthworks). It also gives an example call and notes omitted parameters use sensible defaults. Clear when-to-use and when-not-to.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInput 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Discloses paid tier, error response (TIER_INSUFFICIENT), deliverables behavior (watermarked for free tier), and UK trade-boundary platform principle. Does not reveal error handling for invalid inputs, but annotations (readOnlyHint=true) are consistent. Minor gap: no mention of performance or rate limits.

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

Conciseness4/5

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

The description is structured with clear sentences covering tier, standards, parameters, and example. It is slightly lengthy but each sentence adds value. Could be more concise, but effectively communicates necessary info without fluff.

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

Completeness4/5

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

Given the tool has an output schema (not shown, but context says true), the description does not need to detail return values. It covers purpose, inputs, tier, and deliverables adequately. Missing: explanation of output_mode and standard options, but that is mitigated by output schema and sibling context.

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

Parameters4/5

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

The description adds meaning beyond the schema by explaining defaults (e.g., length=12m, width=5m, reservoir_thickness_mm=350) and providing an example call. It clarifies the deliverables parameter and the 'params' object structure. Schema descriptions exist for many inner properties, so description complements well.

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

Purpose5/5

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

The description clearly specifies the tool computes permeable pavement BoQ per CIRIA C753, covering three UK surface types and infiltration regimes. It distinguishes itself from siblings like compute_flexible_pavement and compute_rigid_pavement by its specific domain, and even names 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.

Usage Guidelines5/5

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

Explicitly states paid tier requirement, provides a free alternative, and includes example parameters and a full example call. It also mentions omitted parameters use sensible defaults, guiding usage. No ambiguity about 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_petrol_oil_interceptorCompute Prefabricated Petrol/Oil Interceptor (Separator) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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).
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior1/5

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

The description describes generating deliverables (Excel, DXF, PDF) and opening a drainage_treatment leaf, implying write-side effects or document creation, which contradicts the readOnlyHint annotation indicating a read-only operation.

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

Conciseness4/5

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

The description is lengthy but front-loaded with critical access info (paid tier) and structured with technical details, examples, and output options. Some redundancy with schema defaults, but overall efficient.

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

Completeness5/5

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

Given the tool's complexity (multiple parameters, standards, output modes, deliverables), the description covers all essential aspects: standards, catalogue selection, engineering assumptions, output options, and example usage. Output schema exists, so return values need not be detailed.

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

Parameters4/5

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

With only 25% schema description coverage, the description compensates well by explaining the three catalogue axes (size, class, type), providing example parameters and an example call, and clarifying engineering defaults.

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

Purpose5/5

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

The description clearly states the tool computes a BoQ for a prefabricated petrol/oil interceptor, specifying standards (BS EN 858, SHW) and differentiating from sibling 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.

Usage Guidelines5/5

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

Explicitly states paid-tier requirement, returns TIER_INSUFFICIENT error without authentication, and recommends free-tier alternative compute_manhole. Provides clear context on 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_pipe_beddingCompute Pipe Bedding and Surround BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint=true. Description adds behavioral context: paid tier, authentication requirement (TIER_INSUFFICIENT), and one-shot download URLs for deliverables. Does not contradict annotations. Lacks explicit mention of side effects beyond computation.

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

Conciseness4/5

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

Description is comprehensive but somewhat lengthy. Front-loaded with critical info (paid tier, alternative). Well-structured with logical flow: constraints, strategy, standards, example, deliverables. Could trim redundant phrases but overall efficient for the complexity.

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

Completeness4/5

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

Covers most necessary aspects: purpose, limitations, standards, defaults, example, outputs. Missing detailed return value description but output schema likely provides that. Adequate for a complex tool with many parameters and deliverables.

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

Parameters4/5

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

Schema description coverage is 0% (many parameters lack descriptions). Description compensates by explaining the strategy pattern (BeddingContext × BeddingClass), providing example parameter ranges and values, and detailing deliverables. Adds meaning beyond schema enums with usage context.

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

Purpose5/5

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

Clearly states the tool computes pipe bedding and surround BoQ. Differentiates from sibling 'compute_manhole' by specifying it's the paid-tier alternative. Includes specific verb ('compute') and resource ('pipe bedding and surround BoQ').

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

Usage Guidelines5/5

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

Explicitly states paid-tier requirement, mentions the free-tier alternative ('compute_manhole'), and describes when to use (linear pipe trench). Provides example parameters and call syntax. Clearly guides the agent on prerequisites and alternatives.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters for a single pipework testing measurement.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint: true; description adds that it returns deliverables (Excel, DXF, PDF) and can raise TIER_INSUFFICIENT error. Does not contradict annotations and adds useful behavioral context beyond read-only nature.

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

Conciseness4/5

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

Front-loaded with critical info (tier restriction, purpose), but the description is verbose. Every sentence adds value, yet could be more streamlined for readability.

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

Completeness5/5

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

Given the complexity (multiple standards, four parameters, nested input, various output modes/deliverables), the description is comprehensive. It explains standards, variants, example calls, error conditions, and output formats. Output schema exists but description provides additional context.

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

Parameters4/5

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

Schema description coverage is 25% (only test_method has a detailed description). The tool description compensates by explaining the discriminator pattern, eight variant presets, example params with ranges, and default usage info, adding significant meaning.

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

Purpose5/5

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

The description clearly states the tool's purpose: linear measurement of testing on new drainage pipework (CCTV, air/water pressure, mandrel pull) with specific CESMM4/NRM2/MMHW/SMM7 references. It distinguishes itself as 'third member of the drainage_ancillaries L2 leaf' and '21st use of the discriminator pattern via test_method', setting it apart from siblings.

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

Usage Guidelines5/5

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

Explicitly states 'Paid tier only' and directs free-tier users to 'compute_manhole' as an alternative. Provides examples, parameter defaults, and variant presets, making usage conditions clear.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description confirms this is a compute operation. Additionally, it discloses tier requirements, authentication needs, omitted parameter defaults, and the ability to request deliverables like xlsx/dxf/pdf, adding value 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.

Conciseness2/5

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

The description is overly verbose, containing esoteric details like '17th use of the classed-then-legacy attribute discrimination pattern' that are irrelevant for tool selection. While the first sentence is front-loaded, the length detracts from clarity.

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

Completeness5/5

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

Given the tool's complexity (nested parameters, multiple standards, facing variants, deliverables), the description covers purpose, usage, parameters, defaults, codes, and example calls. The presence of an output schema means return values need not be described, so completeness is high.

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

Parameters4/5

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

Despite low schema coverage (25%), the description extensively explains the parameter structure, default values, and facing variants. It gives example parameters and sensible defaults, compensating for the missing schema descriptions at the top level.

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

Purpose5/5

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

The title and description clearly state this tool computes a Bill of Quantities for reinforced soil walls. It distinguishes itself from siblings by specifying the wall type, facing systems, and referencing a free-tier alternative (compute_cantilever_wall). The purpose is 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.

Usage Guidelines5/5

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

The description explicitly notes this is paid tier only and directs users to the free alternative compute_cantilever_wall if authentication is lacking. It also provides typical use cases, standards, and example parameters, giving clear when-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_rigid_pavementCompute Rigid (Concrete) Pavement Build-Up BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInput 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint=true, consistent with the description's focus on computation (no mutations). Description adds detail about internal routing logic (v12 slab discrimination, v8 fill handlers) and deliverables (xlsx, dxf, pdf), which goes beyond the annotation. No contradictions.

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

Conciseness4/5

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

Description is lengthy but well-structured: starts with tier info, then components, example, and deliverables. Each sentence adds value. Could be slightly more concise, but for a complex tool with many parameters, the detail is warranted.

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

Completeness4/5

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

Given the complexity (many parameters, nested object, output schema exists), the description covers the essential aspects: pavement types, reinforcement standards, deliverables, and tier restrictions. The output schema handles return value details. Minor gaps exist (e.g., interaction of certain parameters), but overall sufficient.

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

Parameters4/5

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

Schema description coverage is 25% (low), but the description compensates by explaining key parameters with example values and ranges (e.g., length=50m, width=7m, sub_base_thickness_mm=150mm). It also discusses defaults and sensible engineering defaults for omitted parameters. Not every parameter is covered in detail, but the overall semantics are clear.

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

Purpose5/5

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

The description clearly states it computes rigid pavement build-up BoQ, lists components (capping, sub-base, membrane, slab, reinforcement) and standards (CESMM4, NRM2, MMHW, SMM7). It differentiates from siblings like compute_flexible_pavement and compute_permeable_pavement by specifying 'rigid (concrete)' and mentioning 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.

Usage Guidelines4/5

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

Explicitly states 'Paid tier only' and describes authentication requirement. Provides example parameters and defaults, and mentions free-tier alternative. Does not explicitly contrast with other pavement tools, but the specificity of 'rigid pavement' and mention of DMRB CD 226 guidelines provides sufficient context.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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).
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Discloses authentication requirements, output formats (xlsx, dxf, pdf with download URLs), internal item routing, and material treatment. Adds significant context beyond the annotations (readOnlyHint: true) without contradiction.

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

Conciseness2/5

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

Overly verbose with internal taxonomy details (e.g., 'THIRD member of the highway L1 leaf') and repetitive parameter descriptions. The essential guidance is buried in a dense paragraph. Not concise.

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

Completeness5/5

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

Covers all aspects: authentication, standards, alternatives, parameter semantics, output modes, deliverable formats, and example. Despite complexity (4 parameters, nested object, output schema), the description leaves no gaps.

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

Parameters5/5

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

Adds extensive meaning beyond the schema: geometry interpretation, discrimination rules, defaults anchored to a real scenario, and explanations for each parameter's role. Low schema coverage (25%) is compensated by rich description.

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

Purpose5/5

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

The description clearly states it computes a Road Marking BoQ with specific UK standards and discriminators. It distinguishes from siblings by naming the free-tier alternative compute_end_area_earthworks and providing internal taxonomy context.

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

Usage Guidelines5/5

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

Explicitly notes paid tier and free alternative, provides example parameters and call, explains when to set parameters to zero, and offers default behavior. No ambiguity about prerequisites or context.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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).
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

The description discloses authentication behavior (returns TIER_INSUFFICIENT if not authenticated), output modes (summary, material_schedule, boq, etc.), and optional deliverables (xlsx, dxf, pdf). These add context beyond the readOnlyHint annotation, which is consistent with a compute operation. No contradictions.

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

Conciseness4/5

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

The description is somewhat long but well-structured, starting with the paid-tier warning and moving through purpose, example, and output options. It is front-loaded with critical information but could be more concise by reducing redundancy.

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

Completeness5/5

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

Given the tool's complexity (4 top-level parameters, nested objects, multiple standards, deliverables), the description covers authentication, purpose, standards, parameters, and output formats. The presence of an output schema reduces the need to describe return values.

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

Parameters4/5

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

With low schema description coverage (25%), the description compensates by providing example parameter values, ranges, and an example call. It explains important parameters like bedding_thickness_m and service_type. However, many parameters still rely on the schema for their semantics.

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

Purpose5/5

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

The description clearly states 'Single-service utility run per NJUG Volume 1' and enumerates the specific utilities (water main, gas main, etc.). It distinguishes itself from sibling tools like compute_combined_services_trench by noting it wraps the combined engine with a single-band envelope.

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

Usage Guidelines4/5

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

The description explicitly states 'Paid tier only' and mentions a free alternative (compute_manhole). It gives context about when to use this tool (single-service runs) and implies alternatives for multi-service or free-tier use. However, it does not explicitly contrast with similar siblings like compute_combined_services_trench.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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).
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description goes beyond by detailing the paid tier requirement, error response (TIER_INSUFFICIENT), the computational engine (rational-method sizing, factors of safety, half-emptying time check), and the wrapping of attenuation_tank. This adds valuable context without contradicting the annotations, though it does not cover rate limits or auth steps beyond the initial check.

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

Conciseness4/5

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

The description is relatively long but well-organized, front-loading the critical paid-tier warning and then systematically covering the tool's standard, sizing engine, output items, and example usage. It avoids redundancy and each sentence contributes information, though it could be slightly more concise without losing clarity.

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

Completeness4/5

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

Given the tool's complexity (many parameters, nested input schema, and an output schema that is present but not shown here), the description covers the key usage context: the two ways to specify the design storm, soil characterization factors, geometry considerations, and deliverables (xlsx, dxf, pdf). It does not describe the output structure in detail, but the existence of an output schema reduces the burden. The description is mostly complete for an agent to understand how to invoke the tool correctly.

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

Parameters3/5

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

With only 25% schema description coverage, the tool description provides some parameter context through example values and a brief explanation of key parameters (catchment_area_m2, rainfall_depth_mm, measured_infiltration_rate_m_per_s). However, it does not elaborate on every parameter, leaving many details to the schema's own description for the 'params' object. This partially compensates for the low coverage but not fully, resulting in a score of 3.

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

Purpose5/5

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

Description clearly states the tool computes infiltration soakaways per CIRIA C753. It specifies the storage envelope types (granular-fill or modular-crate) and mentions the sizing engine. It distinguishes itself from the sibling 'compute_attenuation_tank' by noting it as a free-tier alternative, thus clarifying the tool's specific scope.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool (for infiltration soakaways under CIRIA C753) and when not to, by naming the free-tier alternative 'compute_attenuation_tank'. It also includes constraints like the prohibition of VERY_HIGH hot-spot catchments without pre-treatment, and example parameters and calls that help the agent understand typical usage scenarios.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations indicate readOnlyHint=true, so the tool is read-only. The description adds behavioral context: paid-tier restriction, computation and return of BoQ files, output formats (xlsx, dxf, pdf), and default parameter handling. It also details the face system enum extensively. No contradictions with annotations. However, some internal jargon ('classed-then-legacy pattern') may be unnecessary, but overall transparency is high.

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

Conciseness3/5

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

The description is lengthy (~600 words) and includes many technical details and numbering (e.g., '23rd use of pattern'). While it front-loads the tier restriction and alternative, the later parts become dense with specific standards and code references. It could be more concise and better structured (e.g., separate sections). It earns its sentences but could be trimmed.

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

Completeness4/5

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

Given the tool's complexity (nested parameters, multiple enums, output schema exists), the description covers the core purpose, key parameters, face system options, and output deliverables. It provides example calls and explains default behaviors. Missing detailed descriptions for some sub-parameters (e.g., steel_grade, geogrid_grade) and does not explain the output schema, but the latter is not required. Overall, it is fairly complete for an agent to use.

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

Parameters3/5

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

Schema description coverage is low (25%), but the description compensates by providing detailed meanings for key parameters like face_system, nail_permanence, and the geometry interpretation of the params object. Example param values are given. However, many sub-parameters (e.g., steel_grade, geogrid_grade) lack description. The description adds value beyond the schema but is incomplete for all parameters.

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

Purpose5/5

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

The title and description clearly state it computes the Bill of Quantities for soil-nailed slopes, with specific verb 'compute' and resource 'soil-nailed slope BoQ'. It explicitly distinguishes from the sibling tool compute_cantilever_wall, noting it as a free-tier alternative. The description also details the four face systems and standards, making the tool's specific purpose unambiguous.

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

Usage Guidelines5/5

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

The description clearly states the tool is paid tier only, requiring an authenticated CivilQuants account, and returns TIER_INSUFFICIENT otherwise. It directs users to the free-tier alternative compute_cantilever_wall. This provides explicit 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_strip_foundationCompute Concrete Strip Foundation BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior1/5

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

The annotation readOnlyHint=true contradicts the description which claims computation (creates BoQ, requires auth, returns error if not). The description itself is clear about behavior (paid tier, error handling), but the contradiction with annotations reduces trust. Per guidelines, a score of 1 is given due to contradiction.

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

Conciseness4/5

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

The description is front-loaded with critical access information and provides context, examples, and deliverables. It is relatively long but each sentence adds value. Some technical phrasing (e.g., 'cross-cutting standards-handler discrimination') may be unnecessary for most agents.

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

Completeness4/5

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

Given the complexity (many parameters, nested object, output schema exists), the description covers key aspects: paid tier, alternative, example call, default behavior, and deliverable options. It does not detail return values, but the output schema is available. It is sufficiently complete for a competent agent.

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

Parameters3/5

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

Schema description coverage is low (25%), but the description provides example parameters with ranges (e.g., length 1–100 m) and defaults tuned to UK domestic. However, only three of many nested parameters are exemplified, so compensation is partial. The description adds value but not comprehensive coverage.

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

Purpose5/5

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

The description uses specific verb 'compute' and resource 'strip foundation BoQ'. It distinguishes from sibling 'compute_cantilever_wall' as a free-tier alternative and mentions it completes the P1 launch set with 'pad_foundation'. The purpose is clear and differentiated.

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

Usage Guidelines4/5

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

The description explicitly states the paid-tier requirement, provides a free alternative (compute_cantilever_wall), and gives an example call with parameter settings. However, it does not explicitly state when not to use this tool versus other similar tools, though the mention of 'strip foundation' implies scope.

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) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Discloses tier restrictions (TIER_INSUFFICIENT error), watermarking for free tier, and that DXF/PDF require paid tier. readOnlyHint annotation is consistent with compute behavior. No contradictions.

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

Conciseness4/5

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

Well-structured and information-dense, with tier info first, then purpose, parameter details, example. Could be slightly more concise but every sentence adds value.

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

Completeness5/5

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

Given tool complexity (many parameters, nested objects, output schema exists), description covers usage, tier restrictions, defaults, deliverables, and example. Output schema handles return values, so no need to describe them.

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

Parameters5/5

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

Schema covers only 0% of parameters (no descriptions in schema for most properties). Description compensates by explaining parameter ranges (e.g., bed_width 0.2–3), slopes, lining strategies, check dams, and defaults. Example call adds clarity.

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

Purpose5/5

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

Description clearly states the tool computes a SuDS swale BoQ per CIRIA C753, covering three lining types. It distinguishes from sibling tool compute_attenuation_tank as a free alternative, and the purpose is 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.

Usage Guidelines5/5

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 alternative compute_attenuation_tank. Includes example params and call, explains omitted parameters use defaults, and describes deliverables. Guidance is clear and comprehensive.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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).
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Discloses authentication requirements, tier insuffiency error, and deliverable URLs. Annotations already set readOnlyHint=true, so the description adds value by detailing the paid-tier restriction and error behavior without contradiction.

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

Conciseness2/5

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

The description is extremely verbose, listing numerous codes, standards, and leaf relationships. While informative, it lacks conciseness and could be better structured with bullet points or sections.

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

Completeness4/5

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

Covers authentication, standards, sign types, presets, codes, example calls, and deliverables. With a complex input schema and output schema, the description provides comprehensive context, though it could be more streamlined.

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

Parameters3/5

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

Schema description coverage is 25%, but the schema itself has extensive descriptions for each parameter. The tool description adds some additional context (e.g., leaf membership, codes) but not significant parameter-level details beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool computes a traffic sign BoQ, distinguishing it from the free-tier alternative compute_end_area_earthworks. It also provides context on sign classifications and standards, making 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.

Usage Guidelines5/5

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

Explicitly states 'Paid tier only' and directs users to the free alternative. Describes when to use different sign types and presets, and mentions deliverables options. Provides clear guidance for correct invocation.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameter 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Discloses authentication requirement, error code, default behavior for parameters, and one-shot download URLs for deliverables. 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.

Conciseness4/5

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

The description is comprehensive but not excessively verbose; front-loaded with critical info (paid tier, alternatives). Some redundancy in enumerating standards could be trimmed.

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

Completeness5/5

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

Covers authentication, alternatives, catalogue details, standard routing, example params, and deliverables. Output schema exists for return values, so no gap.

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

Parameters4/5

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

While schema coverage is low (25%), the description adds meaning for key parameters like chamber_type and supply_route defaults, and provides example values for bedding and surround. Could mention standard and output_mode explicitly.

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

Purpose5/5

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

The description clearly states the tool computes a Bill of Quantities for utility access chambers, specifies the ten chamber types, and distinguishes from the free-tier alternative compute_manhole.

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

Usage Guidelines5/5

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

Explicitly states paid tier requirement, provides alternative for free tier, and includes example call with standard parameters.

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 BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Discloses paid-tier requirement, delegation to pad_foundation, and catalogue-driven defaults. Does not contradict readOnlyHint annotation. Adds value beyond annotations by explaining the composite structure and engineering defaults.

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

Conciseness3/5

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

The description is verbose and contains multiple technical sentences. While front-loaded with critical info, it could be more concise without losing essential details.

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

Completeness4/5

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

For a complex tool with many parameters and a nested input schema, the description covers usage, defaults, output options, and sibling alternatives. Output schema exists so return values are not required. Adequately complete.

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

Parameters4/5

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

Describes key parameters (quantity, blinding_thickness_m, working_space_m) with example ranges and explains kiosk_type enum values. Adds meaning beyond the schema, though not all parameters are covered.

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

Purpose5/5

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

The description clearly states it computes a Bill of Quantities for utility kiosk bases, listing the specific kiosk types it covers. It distinguishes itself from siblings by mentioning the free-tier alternative compute_manhole.

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

Usage Guidelines5/5

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

Explicitly states paid-tier-only and provides a free alternative. Offers example parameters and call, explains defaults, and describes how to request deliverables. Gives 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_vehicle_restraint_systemCompute Vehicle Restraint System (VRS) BoQA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesParameters 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.
standardNoMMHW
output_modeNofull_json
deliverablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

The description discloses authentication requirements (paid tier), output modes including downloadable deliverables, and the first-time use of a 2D-banded pattern. It adds context beyond the readOnlyHint annotation, which is consistent with a compute-only operation. 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.

Conciseness4/5

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

The description is front-loaded with critical info (paid tier, authentication, alternative) and is well-organized, but it is verbose, containing extensive details that could be shortened. Still, every sentence provides value, so it earns a 4 rather than a 5.

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

Completeness5/5

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

The description covers all aspects: purpose, usage constraints, system types, variant presets, work categories, standard codes, example call, deliverables, and output behavior. It is fully complete for a complex tool with many parameters and enums.

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

Parameters5/5

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

Despite low schema description coverage (25%), the tool description thoroughly explains each system type, the meaning of key parameters like post_spacing_m and terminals_per_run, and provides example parameter values and an example call. It compensates fully for missing schema descriptions.

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

Purpose5/5

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

The description clearly states the tool computes Vehicle Restraint System (VRS) BoQ per SHW and BS EN 1317, with specific verb 'compute' and resource 'VRS BoQ'. It distinguishes from siblings by mentioning it is the first member of a new highway category and explicitly names 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.

Usage Guidelines5/5

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

The description explicitly states 'Paid tier only' and provides the exact error message for unauthenticated users, along with a link to sign up and an alternative free tool. It also mentions that omitted parameters use sensible engineering 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.

get_document_pipelineGet the customer-side document pipelineA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
componentNoWhich part to fetch; omit for the whole kit.all

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds further behavioral context: explains that a chat connector can read but not execute, and provides details on component sizes and self-unpacking nature.

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

Conciseness4/5

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

Two main sentences plus a note. Information is front-loaded with purpose, then components, then usage constraint. Efficient but could slightly trim the list of skill types in the first sentence.

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

Completeness4/5

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

Given only one optional parameter and presence of output schema, the description covers the tool comprehensively. Mentions return values (chunking package, discipline, render helpers) and size details. No missing critical context.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value by explaining the component enum values with size estimates and clarifying that omitting gets the whole kit.

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

Purpose5/5

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

Description clearly states the tool obtains the CivilQuants customer-side document pipeline, used by document-heavy skills. It distinguishes itself from computational sibling tools by explicitly listing its purpose and components.

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

Usage Guidelines4/5

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

Provides explicit usage guidance including that running the pipeline requires a code-execution client, and a chat connector can only read but not execute. Does not explicitly name alternatives, but given sibling tools are compute-focused, the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectGet projectA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Adds behavioral info beyond readOnlyHint annotation: error envelopes with candidate IDs when names conflict, tier restriction for anonymous callers.

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

Conciseness5/5

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

Three concise sentences front-loading core purpose, then alternatives and constraints. No wasted words.

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

Completeness5/5

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

Covers parameter semantics, failure modes, tier requirements, and alternative tools comprehensively for a simple fetch tool.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining the single parameter accepts both ID and exact display name.

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

Purpose5/5

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

Clearly states the tool fetches a project by project_id, with explicit alternative usage (display name). Distinguishes from siblings like list_projects and recompute_project.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use project_id vs display name, handles naming conflicts by referring to list_projects, and mentions paid tier restriction.

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 methodologyA
Read-only
Inspect

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").

ParametersJSON Schema
NameRequiredDescriptionDefault
skillYesSkill slug from list_skills.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Beyond the readOnlyHint annotation, the description details that no inference is run by CivilQuants, the returned body is a system instruction, and different response bodies (TIER_INSUFFICIENT, INVALID_TOKEN) occur based on caller status. It also explains prerequisites for document-heavy skills, adding significant behavioral context.

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

Conciseness5/5

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

The description is concise yet comprehensive, front-loading critical info ('Paid tier only'). Each sentence adds necessary context, including example usage, and there is no verbosity. Ideal structure for quick agent comprehension.

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

Completeness5/5

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

Given the tool's complexity and existing output schema, the description covers all essential aspects: what is returned, different response scenarios, prerequisites, related tools (list_skills, get_document_pipeline), and usage constraints. No gaps remain.

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

Parameters3/5

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

The input schema already describes the 'skill' parameter as 'Skill slug from list_skills' with 100% coverage. The description adds an example and confirms the slug source, but does not substantially improve meaning beyond the schema. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool fetches a senior-QS skill methodology by slug and returns system instructions for the agent to apply. It distinguishes from siblings like list_skills (listing) and get_document_pipeline (document pack) by specifying its unique role.

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

Usage Guidelines4/5

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

The description specifies 'Paid tier only', advises to see list_skills for the slug, and explains different response bodies for free/anonymous/rejected callers. It also mentions when code-execution is needed versus chat usage, providing clear context for when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsList projectsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

The description discloses behavior beyond the readOnlyHint annotation: it specifies that the tool returns all projects for the calling subscriber, lists the exact fields returned, and explains the tier restriction (anonymous callers get a 'TIER_INSUFFICIENT' envelope). There is no contradiction with 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.

Conciseness5/5

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

The description is concise (three sentences) and front-loaded: the first sentence states the purpose and outputs, the second provides usage context, and the third states restrictions. Every sentence adds necessary information without redundancy.

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

Completeness5/5

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

Given the tool has no parameters and an output schema (implied by context signals), the description is complete: it explains what the tool does, when to use it, what data it returns, and who can use it. No additional information is needed.

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

Parameters4/5

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

With zero parameters and 100% schema coverage, the baseline is 4. The description does not need to add parameter information since there are none. It adds value by describing the return fields, which complements the missing output schema.

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

Purpose5/5

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

The description clearly states the action ('List every project saved by the calling subscriber') and the resource ('projects'). It distinguishes itself from sibling tools like 'get_project' and 'recompute_project' by targeting a different use case (listing vs. fetching or computing). The inclusion of specific fields enhances clarity.

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

Usage Guidelines5/5

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

The description explicitly tells when to use the tool: 'Use this to re-find a saved project from a new conversation when its project_id is no longer in context.' It also provides guidance on subsequent steps ('pass the project_id to get_project or recompute_project') and warns about tier restrictions ('Paid tier only'), effectively excluding unauthorized users.

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 skillsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Annotations declare readOnlyHint=true, and the description confirms a read operation. It adds context: both tiers see the full list, the specific return fields (slug, title, summary, tier), and the caveat about needing a code-execution client for certain skills. No contradictions.

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

Conciseness5/5

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

The description is highly concise: two sentences plus a note, with the purpose front-loaded. Every sentence serves a purpose, and there is no redundant information.

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

Completeness5/5

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

Given zero parameters and the presence of an output schema, the description provides all necessary context: what is listed, what fields are returned, how to proceed with get_skill, free-tier behavior, and special requirements for document-heavy skills. It is fully adequate.

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

Parameters4/5

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

The input schema has zero parameters (100% coverage), so baseline is 4. The description adds value by listing the exact skills and indicating the return structure, which helps the agent understand the output without needing to inspect the output schema.

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

Purpose5/5

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

The description clearly states it lists the 10 senior-QS skill methodologies, provides specific examples, and distinguishes from the sibling tool get_skill. The verb 'list' is specific, and the resource is well-defined.

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

Usage Guidelines5/5

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

Explicitly instructs to call this tool first for discovery, then use get_skill for detailed methodology. Also notes that free-tier users will encounter a sign-up prompt from get_skill, and that document-heavy skills require a code-execution client, providing clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_projectRecompute projectA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations declare readOnlyHint=true, consistent with the tool. The description adds useful context: it takes no parameter overrides, and paid tier required with a specific error envelope for anonymous callers. It doesn't fully detail if the project state changes, but readOnlyHint covers that.

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

Conciseness5/5

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

Three clear, front-loaded sentences. First sentence states purpose, second clarifies constraints, third provides guidance and tier info. No wasted words.

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

Completeness4/5

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

Covers purpose, parameters, constraints, and tier requirement. With an output schema present, the return values are handled. Could mention error cases like invalid project_id, but overall sufficient for a recompute tool.

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

Parameters4/5

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

Schema description coverage is 0%, but the description explains the request parameter's purpose: filtering by measurement standards. It also clarifies that no parameter overrides are taken, which adds context beyond the schema.

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

Purpose5/5

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

The description clearly states it re-runs every enabled assembly and renders aggregated BoQs across requested measurement standards. It distinguishes itself from sibling compute_* tools by explicitly noting it takes no parameter overrides.

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

Usage Guidelines5/5

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

The description explicitly says when to use (re-run a saved project) and when not to (to revise parameters, use save_project instead). It also mentions the paid tier restriction, which guides proper usage.

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 deliverableA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesWire shape for POST /api/v1/mcp/render.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior1/5

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

The description describes a write operation (rendering a deliverable) but the annotation readOnlyHint=true indicates it is read-only. This is a direct contradiction. Beyond the contradiction, it adds tier constraints and wire shape details, but the contradiction severely undermines transparency.

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

Conciseness5/5

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

The description is two sentences that efficiently cover the core purpose, tier differences, and wire shape. No extraneous information.

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

Completeness4/5

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

Given the complex input schema and existence of output schema, the description covers key aspects: rendering action, deliverable types, tier restrictions, and endpoint match. It does not explain the return value, but that's handled by the output schema.

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

Parameters3/5

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

The schema has 100% description coverage for all parameters, so the description adds marginal value. It reiterates the wire shape and tier constraints but does not explain individual fields beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it renders previously-computed BoQ results into Excel or Word deliverables. It specifies the tier differences: Excel is free with watermark and sheet protection, Word is paid-only. This distinguishes it 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.

Usage Guidelines4/5

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

The description implies that compute results must be obtained first ("previously-computed BoQ results") and provides tier-specific guidance (Excel vs Word). It does not explicitly state when not to use or name alternatives, but the purpose is clear enough for appropriate selection.

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 descriptionA
Read-only
Inspect

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"}.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYes
preferred_standardNo
return_resolution_logNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Description goes beyond the readOnlyHint annotation by detailing deterministic behavior, what it returns (slugs, tier, etc.), and what it never does (compute or guess). This provides rich behavioral context not covered by annotations.

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

Conciseness4/5

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

The description is well-structured with a clear first sentence, then clarifying details, next steps, and an example. It is informative without being overly verbose, though a slight reduction would be possible.

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

Completeness4/5

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

Given the output schema exists, the description covers the key return elements. It addresses ambiguity and next steps, and mentions the alias. It is complete for the tool's purpose, though could briefly note error cases.

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

Parameters2/5

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

Schema has 0% description coverage, so the description must compensate. It implies the 'description' param meaning and gives an example for 'preferred_standard', but the 'return_resolution_log' param is not mentioned at all, leaving a coverage gap.

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

Purpose5/5

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

The description clearly states it resolves a plain-English description to candidate assemblies and fields. It explicitly distinguishes from compute tools by stating it does not return a Bill of Quantities or guess values, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description tells when to use: to get candidate slugs and fields from a description. It then instructs to call compute_<slug> next. It does not explicitly list when not to use, but the context is clear enough given the sibling compute tools.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesBody for ``POST /api/v1/mcp/project/save``.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate non-destructive write. Description adds behavioral context: never overwrites, uses revision naming, and mentions paid-tier restriction. 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.

Conciseness4/5

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

Single dense paragraph that front-loads the purpose. Every sentence provides value, though could be more structured for readability. No wasted words.

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

Completeness5/5

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

Given tool complexity, sibling context, and existing output schema, the description covers creation, revision workflow, alternative tools, and re-finding. Also addresses payment restrictions.

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

Parameters4/5

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

Schema coverage is 100%, so baseline 3. Description adds value by explaining how to use the name parameter for revision and mentioning assemblies array, but does not detail each field.

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

Purpose5/5

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

The description clearly states the tool persists a project with its assembly list and explicitly notes each call creates a new project, never overwriting. This distinguishes it from siblings like get_project or recompute_project.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use: for revision, call get_project first, amend, then save with a revision-suffixed name; for a different assembly type, use resolve_assembly_from_description. Also notes paid tier requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources