Skip to main content
Glama

CDM 2015 duties and HSE F10 notification

cdm_duties
Read-onlyIdempotent

For a construction project in Great Britain (domestic by default): who holds the client's duties (on a domestic job they pass to the contractor, the principal contractor, or the principal designer under a written agreement), which roles must be filled (principal designer and principal contractor when there is more than one contractor), the core duties (construction phase plan, welfare, induction, health and safety file), and whether the project must be notified to HSE on form F10 (longer than 30 working days with more than 20 workers at once, or over 500 person days), with the arithmetic shown. Returns f10_notification_needed, f10_answer, client_duties_held_by, roles, duties, working, must_confirm and sources. Example: an extension with 4 trades, 60 working days, peak 6 on site, average 3: {"contractors":4,"duration_working_days":60,"peak_workers_on_site":6,"average_workers_on_site":3}.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "contractors": "<contractors>"
    },
    "name": "cdm_duties"
  }
}

Input Schema

NameRequiredDescriptionDefault
tradeNoOptional. The builder's own business details (Nero Trade Profile v1). Used to prefill the contractor details in notices and CDM answers and to give a stable nero_trade_ref. Not stored by Site Pack.
client_typeNoDefaults to domestic (a homeowner having work done on their own home, not as a business).
contractorsYesFirms and self-employed trades working on the project, including subcontractors. 1 if only you.
person_daysNoTotal person days, if already known.
peak_workers_on_siteNoMost people working on site at the same time.
duration_working_daysNoExpected length of the construction work in working days.
average_workers_on_siteNoTypical number on site, used to estimate person days.
designer_agreed_to_take_client_dutiesNoDomestic only: has the client a written agreement for the principal designer to take on the client duties?

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, idempotent, closed-world), and the description adds real substance beyond them: the defaults applied (domestic client duties passing under a written agreement), the numeric thresholds used for F10 (30 working days with 20+ workers, or 500+ person days), and a 'must_confirm' output flag signalling uncertainty. It does not explain what must_confirm means or note that answers are guidance rather than legal advice, keeping it from a 5.

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?

Purpose is front-loaded in the opening clause and the closing example is compact and directly usable. The middle of the description is dense with stacked parentheticals (duty-holder rules and F10 thresholds) that are informative but read as one very long sentence; it could be split for scannability.

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 rule-evaluating tool with 8 parameters, a nested trade object and no output schema, the description lists all eight returned fields and explains the logic that produces them. What is missing is guidance on interpreting 'must_confirm', the fallback behaviour when person_days is unknown (the schema hints at an average-based estimate), and any caveat about professional liability.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning on top: it ties the 'contractors' count to the 'more than one contractor' rule that triggers principal designer/principal contractor roles, and the worked example (4 trades, 60 days, peak 6, average 3) shows how duration and worker counts drive the F10 thresholds. The optional nested trade profile is left to 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 names a specific domain and decision set: who holds client duties under CDM 2015, which roles must be filled, core duties, and whether HSE F10 notification is required, with the arithmetic shown. That is far more than a restatement of the name and is clearly separable from siblings like check_building_regs or party_wall_notices.

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

Usage Guidelines3/5

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

The scope is set ('For a construction project in Great Britain (domestic by default)'), which implicitly tells the agent when the tool applies. However, it never names a when-not condition or points to a sibling for related questions (e.g. building regs or party wall), so routing against alternatives is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.