ComplyOnSite
Server Details
UK waste codes, HAVS, noise, first aid, paperwork and construction statistics.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: injury statistics, waste code search, first aid assessment, HAVS exposure calculation, noise exposure calculation, power tool reference data, document URL generation, and waste paperwork requirements. Although some tools touch related topics like waste or documents, their descriptions explicitly delineate their outputs and limitations, preventing misselection.
All tool names use snake_case with descriptive, mostly noun-based phrases, which is consistent and readable. The set includes one verb-led tool (start_document) among noun phrases, a minor deviation from a uniform verb_noun pattern, but overall naming is predictable.
Eight tools is well within the ideal 3-15 range and appropriate for the server's apparent scope. Each tool covers a separate compliance area or calculation, so none appear redundant or unnecessary.
The domain is UK workplace/construction health and safety compliance, but the surface lacks tools for common operations such as creating risk assessments (only a URL starter), COSHH assessments, manual handling, RIDDOR reporting, or general HSE guidance search. These notable gaps limit the server's usefulness for end-to-end compliance workflows.
Available Tools
8 toolsconstruction_injury_statisticsGet construction injury statisticsARead-onlyIdempotentInspect
Return a retained HSE series for construction deaths, non-fatal injuries or ill health in Great Britain. Preserves each series’ period, units, provisional or revised status, confidence intervals, source file and publication date. This does not query a live HSE feed.
| Name | Required | Description | Default |
|---|---|---|---|
| series | No | Dataset series to return; defaults to the latest headline figures. | latest |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | Selected retained HSE series, including its period and status fields. |
| limit | Yes | |
| units | Yes | |
| series | Yes | |
| source | Yes | |
| release | Yes | Retained dataset release metadata. |
| sources | Yes | Named HSE source files with publication dates and URLs. |
| coverage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the bar is lower. The description adds useful context beyond them: the series are 'retained' with preserved period, units, provisional/revised status, confidence intervals and publication date, confirming the agent may receive deprecated or provisional data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the capability front-loaded, then the data-provenance caveat. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations fully cover the safety profile. The description supplies the remaining context an agent needs: the geographic scope, the static/retained nature of the data, and the metadata preserved per series.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema coverage, the enum values and their meanings are fully documented in the schema, so this is the baseline case. The description adds no parameter-level guidance (e.g., choosing between 'latest' and a specific series), so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return') and resource ('retained HSE series for construction deaths, non-fatal injuries or ill health in Great Britain'), and immediately clarifies the data's nature. An agent can tell this is a static construction-injury statistics lookup, distinct from the exposure/search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing note 'This does not query a live HSE feed' is an implied usage constraint, warning the agent that results are historical/static rather than current. However, it offers no explicit when-to-use conditions or named alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ewc_searchFind UK waste codesARead-onlyIdempotentInspect
Search the UK List of Waste by material words, one or more codes, or a code prefix. Returns official entries, hazardous and mirror status, partner codes, source lineage and any assessment needed. Use the returned entries as candidates: origin, process and composition still determine the classification.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matched waste groups and official entries to return; defaults to 5. | |
| query | Yes | Material words, one or more EWC/LoW codes, or a code prefix; common spaced, hyphenated and unspaced formats are accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| codes | Yes | |
| entry | Yes | |
| limit | Yes | Material limitation on interpreting the result. |
| query | Yes | Trimmed query that was searched. |
| nearby | Yes | |
| prefix | Yes | |
| source | Yes | |
| wastes | Yes | |
| entries | Yes | |
| sources | Yes | |
| partners | Yes | |
| entryTotal | Yes | |
| suggestion | Yes | |
| wasteTotal | Yes | |
| nearbyHeading | Yes | |
| partnersNamed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and a closed world, so the safety profile is covered. The description adds meaningful behavioral context: that results are candidates rather than authoritative classifications, which is a decision-affecting trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the search scope front-loaded and the caveat second. Everything earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be detailed, yet the description usefully sketches them and adds the candidate-vs-final classification caveat. Complete enough for an agent to call and interpret correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents both limit and query (including accepted spaced/hyphenated/unspaced formats). The description restates query modes but adds no syntax beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (UK List of Waste) and enumerates the three query modes (material words, codes, code prefix). No sibling tool covers waste code lookup, so it is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Adds a clear usage caveat — the returned entries are candidates and must be confirmed by origin, process and composition. It stops short of naming when-not-to-use or an alternative tool, but the caveat gives real operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
first_aid_requirementsEstimate first-aid coverARead-onlyIdempotentInspect
Estimate workplace first-aid cover for each shift from HSE guidance, with EYFS and education guidance where relevant. Returns recommended roles, training, shortages, practical steps, factors and source lineage. This starts a workplace needs assessment; it is not a statutory staffing quota.
| Name | Required | Description | Default |
|---|---|---|---|
| work | No | Workplace setting; defaults to construction site. | site |
| shifts | Yes | Highest number of people present at once on each shift. | |
| factors | No | Relevant factor ids returned by this tool for the selected workplace. | |
| receptionClass | No | For a school: whether it has a reception or nursery class. | |
| firstAidersAvailable | No | First-aiders already available on each shift, in the same order. |
Output Schema
| Name | Required | Description |
|---|---|---|
| work | No | |
| error | No | |
| limit | No | |
| result | No | Calculated cover by shift, shortfalls, practical steps and source-linked factors. |
| source | Yes | |
| factors | No | Valid factor ids returned with an unknown-factor error. |
| sources | No | |
| calculatorUrl | No | Calculator URL with these anonymous inputs prefilled. |
| availableFactors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds real value beyond them: the output contents (roles, training, shortages, practical steps, factors, source lineage) and the important caveat that results are advisory rather than a statutory quota.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, then returns, then the scope caveat. Every sentence carries information and the most decision-relevant claim is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema and full-coverage input schema, the description need not repeat parameter or return detail, and it supplies the missing behavioral framing (advisory, iterative via the factors feedback loop implied by 'factor ids returned by this tool'). Minor gap: no explicit note that shifts/firstAidersAvailable are parallel arrays, though the schema covers this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents work, shifts, factors, receptionClass and firstAidersAvailable in detail. The description does not add syntax or format guidance beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (estimate) and resource (workplace first-aid cover) with the governing basis (HSE guidance, plus EYFS/education guidance where relevant) and the per-shift scope. Nothing about it is tautological or overlapping with the unrelated sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing line 'This starts a workplace needs assessment; it is not a statutory staffing quota' positions the tool and rules out misuse as a compliance quota, but there is no explicit when-to-use condition or named alternative. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
havs_daily_exposureCalculate daily HAVS exposureARead-onlyIdempotentInspect
Calculate one person’s daily hand-arm vibration exposure as A(8), HSE points and low/high range. For each tool, supply a measured vibration magnitude in m/s² or an HSE category and variant returned by power_tool_types. Time means actual tool-running time in the person’s hands.
| Name | Required | Description | Default |
|---|---|---|---|
| tools | Yes | Tools or tasks used by one person during one day; 1 to 20 entries. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| limit | No | |
| units | No | |
| source | Yes | |
| display | No | |
| sources | No | |
| exposure | No | |
| variants | No | |
| categories | No | |
| thresholds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds the output metrics and reiterates that 'minutes' means actual tool-running time, but discloses nothing about rounding, error handling, or result shape beyond what annotations and the output schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, purpose stated first, then input routes, then the clarification of the ambiguous 'minutes' field. No filler and nothing important buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter calculation tool with a full-coverage schema, an output schema and complete annotations, the description covers everything an agent needs to call it correctly. Only a note on result handling or validation limits would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 only if the description adds nothing. It does add cross-field logic the schema does not encode: vibration is an alternative to category+variant, and the category/variant values must originate from power_tool_types. That is genuine meaning beyond the flat schema properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate one person's daily hand-arm vibration exposure') and names the exact outputs produced (A(8), HSE points, low/high range). This is clearly distinguishable from the sibling noise_daily_exposure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the two mutually exclusive input routes (measured vibration magnitude OR an HSE category+variant from power_tool_types), which is real when-to-use guidance tied to another tool. It stops short of stating when this tool should not be used, so it does not reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
noise_daily_exposureCalculate daily noise exposureARead-onlyIdempotentInspect
Calculate one person’s daily LEP,d and optional weekly LEP,w from measured task LAeq or dosemeter readings. Optionally assesses peak dB(C) and sound at the ear from SNR or HML protection data. Do not use sound power LwA or per-shot values; omitted peak or protection measurements remain explicitly unassessed.
| Name | Required | Description | Default |
|---|---|---|---|
| peak | No | Highest measured C-weighted peak sound pressure level in dB(C). | |
| week | No | Repeat the calculated day this many days, or supply the daily LEP,d for each exposed day. | |
| tasks | Yes | Measured tasks for one person in one day; 1 to 10 entries. | |
| protector | No | Hearing-protector attenuation from its SNR or H/M/L ratings. |
Output Schema
| Name | Required | Description |
|---|---|---|
| peak | No | |
| week | No | |
| atEar | No | |
| error | No | |
| limit | No | |
| units | No | |
| action | No | |
| source | Yes | |
| display | No | |
| minutes | No | Total task time in minutes when it exceeds one day. |
| sources | No | |
| exposure | No | |
| thresholds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior. The description adds useful behavioral context by explaining what is computed and that omitted peak or protection measurements remain explicitly unassessed. It does not describe error handling or output format, but it does supplement the annotations meaningfully.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loads the primary computation. Every sentence carries useful information: the core calculation, the optional peak/protection assessment, and the explicit unassessed caveat. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, output schema, and annotations, the description is nearly complete for calling the tool correctly. It covers the core computation, optional outputs, and a key behavioral nuance about omitted measurements. The main gap is the lack of alternative-tool guidance, but the structured fields carry most of the remaining burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description synthesizes the main input types (task LAeq or dosemeter readings, peak dB(C), SNR/HML protection) but adds no format or syntax details beyond what the schema provides. This matches the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Calculate one person’s daily LEP,d and optional weekly LEP,w from measured task LAeq or dosemeter readings.' It clearly identifies the domain and computation. It does not explicitly distinguish itself from sibling tools such as havs_daily_exposure, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an input-exclusion rule ('Do not use sound power LwA or per-shot values') but does not state when to use this tool versus alternatives. There is no guidance about scenarios, prerequisites, or sibling tools. It relies on the reader to infer the usage context from the tool name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
power_tool_typesGet power-tool exposure dataARead-onlyIdempotentInspect
List available power-tool type slugs, or return aggregate vibration and declared noise spreads for one type. A selected type also includes mapped HSE vibration variants and HSE in-use noise comparisons where available. It does not return maker-model rows or quotes; declared LpA is not measured task LAeq.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Tool-type slug returned by this tool, for example angle-grinder; omit to list all available types. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| error | No | |
| limit | No | |
| terms | No | Reuse terms for the aggregate. |
| types | No | |
| units | No | |
| source | Yes | |
| sources | No | |
| retrieved | No | |
| inUseNoise | No | HSE comparison of declared and measured in-use noise, when available. |
| hseVibration | No | HSE category and variants, when this type maps to one. |
| perShotNoise | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read profile (readOnly, idempotent, non-destructive, closed-world), so the description needn't repeat that. It instead adds genuinely non-obvious semantics: it excludes maker-model rows and quotes, and explicitly cautions that declared LpA is not measured task LAeq — a distinction an agent could otherwise get wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with the primary listing behavior front-loaded, followed by the single-type detail and the exclusions. Every clause carries information; there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one optional parameter, full schema coverage, an output schema handling return values, and annotations covering safety, the description supplies everything else needed: mode selection, included HSE mappings, and the declared-vs-measured caveat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description already covers the slug format and the omit-to-list behavior, so the schema does the heavy lifting. The description restates the two modes but adds no new syntax, examples, or constraints beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource in both operating modes: 'List available power-tool type slugs' versus 'return aggregate vibration and declared noise spreads for one type.' It also excludes adjacent data (maker-model rows, quotes), so an agent knows exactly what this tool yields without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the selection condition clearly: omit 'type' to enumerate all slugs, supply one to get aggregates, and notes that a selected type additionally includes mapped HSE variants where available. It stops short of naming an alternative tool for the excluded data, but no sibling covers that ground.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_documentGet a compliance document linkARead-onlyIdempotentInspect
Return an anonymous ComplyOnSite URL for a waste transfer note, hazardous waste consignment note or RAMS flow. Waste-note links prefill validated EWC codes; RAMS links select a job and optional supported operation. The tool does not create, save, sign, issue or submit a document.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Anonymous ComplyOnSite URL with the supported values prefilled. |
| jobs | No | |
| error | No | |
| limit | No | |
| source | Yes | |
| created | No | Always false: this tool returns a link and does not create or save a document. |
| sources | No | |
| prefilled | No | |
| operations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, and the description reinforces this with an explicit list of actions it will not perform. It also adds the useful trait that returned links are 'anonymous' and that waste-note links come with pre-validated EWC codes, context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler: the output artifact is front-loaded, the variant behavior follows, and the negative scope closes. Nothing is repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present there is no need to document return values, and the description covers the variant semantics, the prefill behavior, and the scope negations that an agent would otherwise have to guess. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining the semantic difference between the oneOf branches — codes prefill validated EWC codes for waste notes, while job/operation select a supported operation for RAMS. That mapping adds real meaning beyond the schema's field-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return an anonymous ComplyOnSite URL') and enumerates the three document variants it can produce, so an agent knows exactly what it gets back. It does not, however, distinguish itself from the sibling 'waste_paperwork' tool, leaving some ambiguity about which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains when each variant applies ('Waste-note links prefill validated EWC codes; RAMS links select a job and optional supported operation') and explicitly excludes non-goals ('does not create, save, sign, issue or submit'). No alternative sibling is named, so the routing between this and waste_paperwork remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
waste_paperworkCheck waste paperwork requirementsARead-onlyIdempotentInspect
Return waste-paperwork requirements for a named document, or choose the UK route from jurisdiction and hazardous status. A document id takes precedence when both forms are supplied. Results cover parties, required items, retention, electronic and signature status, regulator route and source lineage. Preparation tools do not issue, submit or confirm acceptance of official documents.
| Name | Required | Description | Default |
|---|---|---|---|
| document | No | A document id returned by this tool, for example us-asbestos-wsr or sct-special-waste. | |
| hazardous | No | Whether the waste is hazardous; use together with jurisdiction. | |
| jurisdiction | No | UK jurisdiction; use together with hazardous, or omit both to list documents. |
Output Schema
| Name | Required | Description |
|---|---|---|
| spec | No | Shared document field, guide, FAQ and source specification when available. |
| count | No | |
| error | No | |
| limit | No | |
| rules | No | |
| source | Yes | |
| sources | No | |
| document | No | Full paperwork row, or document name for the jurisdiction route. |
| available | No | |
| documents | No | |
| paperwork | No | Full paperwork requirements row for the selected jurisdiction route. |
| jurisdiction | No | |
| officialRoute | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower; the description still adds real behavioral value with the precedence rule and the explicit statement that it does not issue, submit, or confirm official documents. It does not disclose response size limits or rate behavior, which keeps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose and the mode-selection rule before the output summary and scope caveat. The enumerated results list ('parties, required items, retention...') is slightly redundant with the output schema but compact and useful for routing decisions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, 100% schema coverage, and a present output schema, the description covers everything an agent needs: what it returns, how to select the lookup mode, precedence on conflict, and the explicit limitation that it is preparation-only. Nothing material is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description goes beyond by defining the interaction between parameters (document takes precedence when both forms are supplied, jurisdiction and hazardous are used together, omitting both lists documents). That precedence semantics is not fully derivable from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return waste-paperwork requirements') and immediately distinguishes the two lookup modes: by document id or by jurisdiction plus hazardous status. An agent can tell what it gets back (parties, required items, retention, regulator route) without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing rules: use document for a named document, jurisdiction+hazardous for the UK route, omit both to list documents, and document id wins on conflict. It does not name any sibling tool as an alternative, but the negative boundary ('preparation tools do not issue, submit or confirm acceptance') clarifies the intended scope of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- Changed
construction_injury_statistics2 fields changed- added
Input schema / properties / series / descriptionAdded value: +"Dataset series to return; defaults to the latest headline figures." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "coverage": { + "const": "Great Britain, construction", + "type": "string" + }, + "limit": { + "type": "string" + }, + "release": { + "additionalProperties": false, + "description": "Retained dataset release metadata.", + "properties": { + "id": { + "type": "string" + }, + "retrieved": { + "type": "string" + } + }, + "required": [ + "id", + "retrieved" + ], + "type": "object" + }, + "rows": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "employment": { + "additionalProperties": false, + "properties": { + "employeeDeaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "employeeRate": { + "type": "number" + }, + "provisional": { + "type": "boolean" + }, + "revised": { + "type": "boolean" + }, + "selfEmployedDeaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "selfEmployedRate": { + "type": "number" + }, + "sourceTable": { + "type": "string" + }, + "status": { + "enum": [ + "final", + "revised", + "provisional" + ], + "type": "string" + }, + "year": { + "type": "string" + } + }, + "required": [ + "year", + "employeeDeaths", + "employeeRate", + "selfEmployedDeaths", + "selfEmployedRate", + "status", + "provisional", + "revised", + "sourceTable" + ], + "type": "object" + }, + "fallsFromHeight": { + "additionalProperties": false, + "properties": { + "deaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "period": { + "type": "string" + }, + "totalDeaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "period", + "deaths", + "totalDeaths" + ], + "type": "object" + }, + "fiveYear": { + "additionalProperties": false, + "properties": { + "averageRate": { + "type": "number" + }, + "deaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "period": { + "type": "string" + }, + "provisional": { + "type": "boolean" + } + }, + "required": [ + "period", + "deaths", + "averageRate", + "provisional" + ], + "type": "object" + }, + "selfReportedInjury": { + "additionalProperties": false, + "properties": { + "allIndustriesLower": { + "type": "number" + }, + "allIndustriesRate": { + "type": "number" + }, + "allIndustriesUpper": { + "type": "number" + }, + "constructionLower": { + "type": "number" + }, + "constructionRate": { + "type": "number" + }, + "constructionUpper": { + "type": "number" + }, + "period": { + "type": "string" + }, + "sourceTable": { + "type": "string" + } + }, + "required": [ + "period", + "constructionRate", + "constructionLower", + "constructionUpper", + "allIndustriesRate", + "allIndustriesLower", + "allIndustriesUpper", + "sourceTable" + ], + "type": "object" + }, + "workerDeaths": { + "additionalProperties": false, + "properties": { + "deaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "provisional": { + "type": "boolean" + }, + "rate": { + "type": "number" + }, + "year": { + "type": "string" + } + }, + "required": [ + "year", + "deaths", + "rate", + "provisional" + ], + "type": "object" + } + }, + "required": [ + "workerDeaths", + "fiveYear", + "fallsFromHeight", + "employment", + "selfReportedInjury" + ], + "type": "object" + }, + { + "items": { + "additionalProperties": false, + "properties": { + "deaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "provisional": { + "type": "boolean" + }, + "rate": { + "type": "number" + }, + "revised": { + "type": "boolean" + }, + "sourceTable": { + "type": "string" + }, + "status": { + "enum": [ + "final", + "revised", + "provisional" + ], + "type": "string" + }, + "year": { + "type": "string" + } + }, + "required": [ + "year", + "deaths", + "rate", + "status", + "provisional", + "revised", + "sourceTable" + ], + "type": "object" + }, + "type": "array" + }, + { + "additionalProperties": false, + "properties": { + "periods": { + "additionalProperties": false, + "properties": { + "fiveYear": { + "type": "string" + }, + "latestYear": { + "type": "string" + } + }, + "required": [ + "fiveYear", + "latestYear" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "fiveYearDeaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "kind": { + "type": "string" + }, + "latestYearDeaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceTable": { + "type": "string" + } + }, + "required": [ + "kind", + "fiveYearDeaths", + "latestYearDeaths", + "sourceTable" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "periods", + "rows" + ], + "type": "object" + }, + { + "items": { + "additionalProperties": false, + "properties": { + "employeeDeaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "employeeRate": { + "type": "number" + }, + "provisional": { + "type": "boolean" + }, + "revised": { + "type": "boolean" + }, + "selfEmployedDeaths": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "selfEmployedRate": { + "type": "number" + }, + "sourceTable": { + "type": "string" + }, + "status": { + "enum": [ + "final", + "revised", + "provisional" + ], + "type": "string" + }, + "year": { + "type": "string" + } + }, + "required": [ + "year", + "employeeDeaths", + "employeeRate", + "selfEmployedDeaths", + "selfEmployedRate", + "status", + "provisional", + "revised", + "sourceTable" + ], + "type": "object" + }, + "type": "array" + }, + { + "items": { + "additionalProperties": false, + "properties": { + "allIndustriesLower": { + "type": "number" + }, + "allIndustriesRate": { + "type": "number" + }, + "allIndustriesUpper": { + "type": "number" + }, + "constructionLower": { + "type": "number" + }, + "constructionRate": { + "type": "number" + }, + "constructionUpper": { + "type": "number" + }, + "period": { + "type": "string" + }, + "sourceTable": { + "type": "string" + } + }, + "required": [ + "period", + "constructionRate", + "constructionLower", + "constructionUpper", + "allIndustriesRate", + "allIndustriesLower", + "allIndustriesUpper", + "sourceTable" + ], + "type": "object" + }, + "type": "array" + }, + { + "items": { + "additionalProperties": false, + "properties": { + "overSevenDay": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "provisional": { + "type": "boolean" + }, + "revised": { + "type": "boolean" + }, + "sourceTable": { + "type": "string" + }, + "specified": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "status": { + "enum": [ + "final", + "revised", + "provisional" + ], + "type": "string" + }, + "year": { + "type": "string" + } + }, + "required": [ + "year", + "specified", + "overSevenDay", + "status", + "provisional", + "revised", + "sourceTable" + ], + "type": "object" + }, + "type": "array" + }, + { + "additionalProperties": false, + "properties": { + "allIllHealth": { + "type": "number" + }, + "allIllHealthLower": { + "type": "number" + }, + "allIllHealthUpper": { + "type": "number" + }, + "musculoskeletal": { + "type": "number" + }, + "musculoskeletalLower": { + "type": "number" + }, + "musculoskeletalUpper": { + "type": "number" + }, + "period": { + "type": "string" + }, + "sourceTable": { + "type": "string" + }, + "unit": { + "const": "thousand workers", + "type": "string" + } + }, + "required": [ + "period", + "allIllHealth", + "allIllHealthLower", + "allIllHealthUpper", + "musculoskeletal", + "musculoskeletalLower", + "musculoskeletalUpper", + "unit", + "sourceTable" + ], + "type": "object" + } + ], + "description": "Selected retained HSE series, including its period and status fields." + }, + "series": { + "enum": [ + "latest", + "deaths", + "fatal-accident-kinds", + "employment", + "self-reported-injury", + "reported-injuries", + "ill-health" + ], + "type": "string" + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "const": "ComplyOnSite", + "description": "Publisher of the returned data.", + "type": "string" + }, + "url": { + "description": "ComplyOnSite page that explains this result.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url" + ], + "type": "object" + }, + "sources": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "published": { + "type": "string" + }, + "sourceSheet": { + "type": "string" + }, + "sourceTable": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "sourceTable", + "sourceSheet", + "published", + "url" + ], + "type": "object" + }, + "description": "Named HSE source files with publication dates and URLs.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "units": { + "type": "string" + } + }, + "required": [ + "source", + "series", + "coverage", + "rows", + "release", + "sources", + "units", + "limit" + ], + "type": "object" +}
- Changed
ewc_search3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum matched waste groups and official entries to return; defaults to 5." - added
Input schema / properties / query / descriptionAdded value: +"Material words, one or more EWC/LoW codes, or a code prefix; common spaced, hyphenated and unspaced formats are accepted." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "codes": { + "items": { + "additionalProperties": false, + "properties": { + "entry": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "chapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "code": { + "description": "Six-digit List of Waste code without spaces or an asterisk.", + "pattern": "^\\d{6}$", + "type": "string" + }, + "description": { + "description": "Official List of Waste description.", + "type": "string" + }, + "display": { + "description": "Code formatted as printed in the List of Waste, including an asterisk when hazardous.", + "type": "string" + }, + "hazardous": { + "type": "boolean" + }, + "mirror": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "other": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "rule": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "rule", + "other", + "text" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Explanation of the mirror-code relationship, or null for an absolute entry." + }, + "mirrorPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Plain-language name derived from the official entry.", + "type": "string" + }, + "note": { + "type": "string" + }, + "subChapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "subChapterPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "WM3 entry type: absolute/mirror and hazardous/non-hazardous.", + "enum": [ + "AH", + "AN", + "MH", + "MN" + ], + "type": "string" + }, + "url": { + "description": "ComplyOnSite page for this code.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "code", + "display", + "hazardous", + "type", + "description", + "chapter", + "subChapter", + "mirrorPartners", + "subChapterPartners", + "name", + "mirror", + "url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "typed": { + "additionalProperties": false, + "properties": { + "asterisk": { + "type": "boolean" + }, + "code": { + "type": "string" + } + }, + "required": [ + "code", + "asterisk" + ], + "type": "object" + } + }, + "required": [ + "typed", + "entry" + ], + "type": "object" + }, + "type": "array" + }, + "entries": { + "items": { + "additionalProperties": false, + "properties": { + "chapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "code": { + "description": "Six-digit List of Waste code without spaces or an asterisk.", + "pattern": "^\\d{6}$", + "type": "string" + }, + "description": { + "description": "Official List of Waste description.", + "type": "string" + }, + "display": { + "description": "Code formatted as printed in the List of Waste, including an asterisk when hazardous.", + "type": "string" + }, + "hazardous": { + "type": "boolean" + }, + "mirror": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "other": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "rule": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "rule", + "other", + "text" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Explanation of the mirror-code relationship, or null for an absolute entry." + }, + "mirrorPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Plain-language name derived from the official entry.", + "type": "string" + }, + "note": { + "type": "string" + }, + "subChapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "subChapterPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "WM3 entry type: absolute/mirror and hazardous/non-hazardous.", + "enum": [ + "AH", + "AN", + "MH", + "MN" + ], + "type": "string" + }, + "url": { + "description": "ComplyOnSite page for this code.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "code", + "display", + "hazardous", + "type", + "description", + "chapter", + "subChapter", + "mirrorPartners", + "subChapterPartners", + "name", + "mirror", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "entry": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "chapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "code": { + "description": "Six-digit List of Waste code without spaces or an asterisk.", + "pattern": "^\\d{6}$", + "type": "string" + }, + "description": { + "description": "Official List of Waste description.", + "type": "string" + }, + "display": { + "description": "Code formatted as printed in the List of Waste, including an asterisk when hazardous.", + "type": "string" + }, + "hazardous": { + "type": "boolean" + }, + "mirror": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "other": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "rule": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "rule", + "other", + "text" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Explanation of the mirror-code relationship, or null for an absolute entry." + }, + "mirrorPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Plain-language name derived from the official entry.", + "type": "string" + }, + "note": { + "type": "string" + }, + "subChapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "subChapterPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "WM3 entry type: absolute/mirror and hazardous/non-hazardous.", + "enum": [ + "AH", + "AN", + "MH", + "MN" + ], + "type": "string" + }, + "url": { + "description": "ComplyOnSite page for this code.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "code", + "display", + "hazardous", + "type", + "description", + "chapter", + "subChapter", + "mirrorPartners", + "subChapterPartners", + "name", + "mirror", + "url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "entryTotal": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "kind": { + "enum": [ + "code", + "codes", + "digits", + "words", + "empty" + ], + "type": "string" + }, + "limit": { + "description": "Material limitation on interpreting the result.", + "type": "string" + }, + "nearby": { + "items": { + "additionalProperties": false, + "properties": { + "chapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "code": { + "description": "Six-digit List of Waste code without spaces or an asterisk.", + "pattern": "^\\d{6}$", + "type": "string" + }, + "description": { + "description": "Official List of Waste description.", + "type": "string" + }, + "display": { + "description": "Code formatted as printed in the List of Waste, including an asterisk when hazardous.", + "type": "string" + }, + "hazardous": { + "type": "boolean" + }, + "mirror": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "other": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "rule": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "rule", + "other", + "text" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Explanation of the mirror-code relationship, or null for an absolute entry." + }, + "mirrorPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Plain-language name derived from the official entry.", + "type": "string" + }, + "note": { + "type": "string" + }, + "subChapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "subChapterPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "WM3 entry type: absolute/mirror and hazardous/non-hazardous.", + "enum": [ + "AH", + "AN", + "MH", + "MN" + ], + "type": "string" + }, + "url": { + "description": "ComplyOnSite page for this code.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "code", + "display", + "hazardous", + "type", + "description", + "chapter", + "subChapter", + "mirrorPartners", + "subChapterPartners", + "name", + "mirror", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "nearbyHeading": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "partners": { + "items": { + "additionalProperties": false, + "properties": { + "chapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "code": { + "description": "Six-digit List of Waste code without spaces or an asterisk.", + "pattern": "^\\d{6}$", + "type": "string" + }, + "description": { + "description": "Official List of Waste description.", + "type": "string" + }, + "display": { + "description": "Code formatted as printed in the List of Waste, including an asterisk when hazardous.", + "type": "string" + }, + "hazardous": { + "type": "boolean" + }, + "mirror": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "other": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "rule": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "rule", + "other", + "text" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Explanation of the mirror-code relationship, or null for an absolute entry." + }, + "mirrorPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Plain-language name derived from the official entry.", + "type": "string" + }, + "note": { + "type": "string" + }, + "subChapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "subChapterPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "WM3 entry type: absolute/mirror and hazardous/non-hazardous.", + "enum": [ + "AH", + "AN", + "MH", + "MN" + ], + "type": "string" + }, + "url": { + "description": "ComplyOnSite page for this code.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "code", + "display", + "hazardous", + "type", + "description", + "chapter", + "subChapter", + "mirrorPartners", + "subChapterPartners", + "name", + "mirror", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "partnersNamed": { + "type": "boolean" + }, + "prefix": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "query": { + "description": "Trimmed query that was searched.", + "type": "string" + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "const": "ComplyOnSite", + "description": "Publisher of the returned data.", + "type": "string" + }, + "url": { + "description": "ComplyOnSite page that explains this result.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "suggestion": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "id", + "label" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "wasteTotal": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "wastes": { + "items": { + "additionalProperties": false, + "properties": { + "candidates": { + "items": { + "additionalProperties": false, + "properties": { + "entry": { + "additionalProperties": false, + "properties": { + "chapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "code": { + "description": "Six-digit List of Waste code without spaces or an asterisk.", + "pattern": "^\\d{6}$", + "type": "string" + }, + "description": { + "description": "Official List of Waste description.", + "type": "string" + }, + "display": { + "description": "Code formatted as printed in the List of Waste, including an asterisk when hazardous.", + "type": "string" + }, + "hazardous": { + "type": "boolean" + }, + "mirror": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "other": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "rule": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "rule", + "other", + "text" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Explanation of the mirror-code relationship, or null for an absolute entry." + }, + "mirrorPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Plain-language name derived from the official entry.", + "type": "string" + }, + "note": { + "type": "string" + }, + "subChapter": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "display": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "code", + "display", + "title" + ], + "type": "object" + }, + "subChapterPartners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "WM3 entry type: absolute/mirror and hazardous/non-hazardous.", + "enum": [ + "AH", + "AN", + "MH", + "MN" + ], + "type": "string" + }, + "url": { + "description": "ComplyOnSite page for this code.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "code", + "display", + "hazardous", + "type", + "description", + "chapter", + "subChapter", + "mirrorPartners", + "subChapterPartners", + "name", + "mirror", + "url" + ], + "type": "object" + }, + "when": { + "type": "string" + } + }, + "required": [ + "entry" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "note": { + "type": "string" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "label", + "sources", + "candidates" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "source", + "query", + "kind", + "entry", + "partners", + "partnersNamed", + "wastes", + "wasteTotal", + "entries", + "entryTotal", + "codes", + "nearby", + "nearbyHeading", + "prefix", + "suggestion", + "sources", + "limit" + ], + "type": "object" +}
- Changed
first_aid_requirements2 fields changed- added
Input schema / properties / work / descriptionAdded value: +"Workplace setting; defaults to construction site." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "availableFactors": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "id", + "label" + ], + "type": "object" + }, + "type": "array" + }, + "calculatorUrl": { + "description": "Calculator URL with these anonymous inputs prefilled.", + "format": "uri", + "type": "string" + }, + "error": { + "type": "string" + }, + "factors": { + "description": "Valid factor ids returned with an unknown-factor error.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "id", + "label" + ], + "type": "object" + }, + "type": "array" + }, + "limit": { + "type": "string" + }, + "result": { + "additionalProperties": false, + "description": "Calculated cover by shift, shortfalls, practical steps and source-linked factors.", + "properties": { + "answered": { + "type": "boolean" + }, + "answers": { + "items": { + "additionalProperties": false, + "properties": { + "eyebrow": { + "type": "string" + }, + "have": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "have": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "short": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "have", + "short" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "headline": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "course": { + "type": "string" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "type": "string" + } + }, + "required": [ + "count", + "role", + "course", + "note" + ], + "type": "object" + }, + "key": { + "type": "string" + }, + "minor": { + "type": "boolean" + } + }, + "required": [ + "key", + "eyebrow", + "headline", + "minor", + "have" + ], + "type": "object" + }, + "type": "array" + }, + "children": { + "type": "boolean" + }, + "factors": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "kit": { + "items": { + "type": "string" + }, + "type": "array" + }, + "label": { + "type": "string" + }, + "source": { + "additionalProperties": false, + "properties": { + "label": { + "type": "string" + }, + "quote": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "label", + "url", + "quote" + ], + "type": "object" + }, + "step": { + "additionalProperties": false, + "properties": { + "text": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "text" + ], + "type": "object" + }, + "why": { + "type": "string" + } + }, + "required": [ + "id", + "label", + "step", + "why", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "many": { + "type": "boolean" + }, + "place": { + "additionalProperties": false, + "properties": { + "covers": { + "type": "string" + }, + "hazard": { + "enum": [ + "higher", + "low" + ], + "type": "string" + }, + "id": { + "enum": [ + "site", + "factory", + "office", + "shop", + "nursery", + "school" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "required": [ + "id", + "label", + "hazard", + "tag", + "covers" + ], + "type": "object" + }, + "plan": { + "additionalProperties": false, + "properties": { + "appointed": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "firstAiders": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "missing": { + "items": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "type": "array" + }, + "shifts": { + "items": { + "additionalProperties": false, + "properties": { + "cover": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "appointed", + "type": "string" + }, + "people": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "people" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "one", + "type": "string" + }, + "people": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "raised": { + "const": true, + "type": "boolean" + }, + "training": { + "enum": [ + "EFAW or FAW", + "EFAW" + ], + "type": "string" + } + }, + "required": [ + "kind", + "people", + "training" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "kind": { + "const": "per", + "type": "string" + }, + "people": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "per": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "people", + "count", + "per" + ], + "type": "object" + } + ] + }, + "shift": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "shift", + "cover" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "shifts", + "missing", + "firstAiders", + "appointed" + ], + "type": "object" + }, + "room": { + "type": "boolean" + }, + "steps": { + "items": { + "additionalProperties": false, + "properties": { + "key": { + "type": "string" + }, + "text": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "key", + "title", + "text" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "place", + "factors", + "plan", + "many", + "children", + "room", + "answered", + "answers", + "steps" + ], + "type": "object" + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "const": "ComplyOnSite", + "description": "Publisher of the returned data.", + "type": "string" + }, + "url": { + "description": "ComplyOnSite page that explains this result.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "work": { + "enum": [ + "site", + "factory", + "office", + "shop", + "nursery", + "school" + ], + "type": "string" + } + }, + "required": [ + "source" + ], + "type": "object" +}
- Changed
havs_daily_exposure5 fields changed- added
Input schema / properties / tools / descriptionAdded value: +"Tools or tasks used by one person during one day; 1 to 20 entries." - added
Input schema / properties / tools / items / properties / category / descriptionAdded value: +"HSE tool-category slug returned by power_tool_types; use with variant when vibration is omitted." - added
Input schema / properties / tools / items / properties / label / descriptionAdded value: +"Optional task or tool label used in the result." - added
Input schema / properties / tools / items / properties / variant / descriptionAdded value: +"HSE variant slug belonging to category; use when that category has multiple variants." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "categories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "display": { + "additionalProperties": false, + "properties": { + "a8": { + "type": "string" + }, + "a8High": { + "type": "string" + }, + "a8Low": { + "type": "string" + }, + "points": { + "type": "string" + } + }, + "required": [ + "a8", + "points", + "a8Low", + "a8High" + ], + "type": "object" + }, + "error": { + "type": "string" + }, + "exposure": { + "additionalProperties": false, + "properties": { + "a8": { + "type": "number" + }, + "a8High": { + "type": "number" + }, + "a8Low": { + "type": "number" + }, + "band": { + "enum": [ + "below-action", + "above-action", + "above-limit" + ], + "type": "string" + }, + "bandHigh": { + "enum": [ + "below-action", + "above-action", + "above-limit" + ], + "type": "string" + }, + "bandLow": { + "enum": [ + "below-action", + "above-action", + "above-limit" + ], + "type": "string" + }, + "hours": { + "type": "number" + }, + "largest": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "a8": { + "type": "number" + }, + "a8High": { + "type": "number" + }, + "a8Low": { + "type": "number" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "magnitude": { + "additionalProperties": false, + "properties": { + "high": { + "type": "number" + }, + "low": { + "type": "number" + }, + "value": { + "type": "number" + } + }, + "required": [ + "value", + "low", + "high" + ], + "type": "object" + }, + "minutes": { + "type": "number" + }, + "points": { + "type": "number" + }, + "pointsHigh": { + "type": "number" + }, + "pointsLow": { + "type": "number" + }, + "share": { + "type": "number" + } + }, + "required": [ + "id", + "label", + "minutes", + "magnitude", + "a8", + "a8Low", + "a8High", + "points", + "pointsLow", + "pointsHigh", + "share" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "points": { + "type": "number" + }, + "pointsHigh": { + "type": "number" + }, + "pointsLow": { + "type": "number" + }, + "tools": { + "items": { + "additionalProperties": false, + "properties": { + "a8": { + "type": "number" + }, + "a8High": { + "type": "number" + }, + "a8Low": { + "type": "number" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "magnitude": { + "additionalProperties": false, + "properties": { + "high": { + "type": "number" + }, + "low": { + "type": "number" + }, + "value": { + "type": "number" + } + }, + "required": [ + "value", + "low", + "high" + ], + "type": "object" + }, + "minutes": { + "type": "number" + }, + "points": { + "type": "number" + }, + "pointsHigh": { + "type": "number" + }, + "pointsLow": { + "type": "number" + }, + "share": { + "type": "number" + } + }, + "required": [ + "id", + "label", + "minutes", + "magnitude", + "a8", + "a8Low", + "a8High", + "points", + "pointsLow", + "pointsHigh", + "share" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tools", + "hours", + "a8", + "a8Low", + "a8High", + "points", + "pointsLow", + "pointsHigh", + "band", + "bandLow", + "bandHigh", + "largest" + ], + "type": "object" + }, + "limit": { + "type": "string" + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "const": "ComplyOnSite", + "description": "Publisher of the returned data.", + "type": "string" + }, + "url": { + "description": "ComplyOnSite page that explains this result.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "thresholds": { + "additionalProperties": false, + "properties": { + "action": { + "type": "number" + }, + "limit": { + "type": "number" + } + }, + "required": [ + "action", + "limit" + ], + "type": "object" + }, + "units": { + "additionalProperties": false, + "properties": { + "a8": { + "const": "m/s² A(8)", + "type": "string" + }, + "time": { + "const": "minutes", + "type": "string" + } + }, + "required": [ + "a8", + "time" + ], + "type": "object" + }, + "variants": { + "items": { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "hammer", + "rotary", + "other" + ], + "type": "string" + }, + "high": { + "type": "number" + }, + "label": { + "type": "string" + }, + "low": { + "type": "number" + }, + "printed": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "required": [ + "slug", + "label", + "printed", + "low", + "high", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "source" + ], + "type": "object" +}
- Changed
noise_daily_exposure7 fields changed- added
Input schema / properties / peak / descriptionAdded value: +"Highest measured C-weighted peak sound pressure level in dB(C)." - added
Input schema / properties / protector / descriptionAdded value: +"Hearing-protector attenuation from its SNR or H/M/L ratings." - changed
Input schema / properties / protector / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "method": { - "const": "snr", - "type": "string" - }, - "snr": { - "maximum": 60, - "minimum": 1, - "type": "number" - } - }, - "required": [ - "method", - "snr" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "h": { - "maximum": 60, - "minimum": 1, - "type": "number" - }, - "l": { - "maximum": 60, - "minimum": 1, - "type": "number" - }, - "m": { - "maximum": 60, - "minimum": 1, - "type": "number" - }, - "method": { - "const": "hml", - "type": "string" - } - }, - "required": [ - "method", - "h", - "m", - "l" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "method": { + "const": "snr", + "type": "string" + }, + "snr": { + "description": "Hearing-protector attenuation rating in decibels.", + "maximum": 60, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "method", + "snr" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "h": { + "description": "Hearing-protector attenuation rating in decibels.", + "maximum": 60, + "minimum": 1, + "type": "number" + }, + "l": { + "description": "Hearing-protector attenuation rating in decibels.", + "maximum": 60, + "minimum": 1, + "type": "number" + }, + "m": { + "description": "Hearing-protector attenuation rating in decibels.", + "maximum": 60, + "minimum": 1, + "type": "number" + }, + "method": { + "const": "hml", + "type": "string" + } + }, + "required": [ + "method", + "h", + "m", + "l" + ], + "type": "object" + } +] - added
Input schema / properties / tasks / descriptionAdded value: +"Measured tasks for one person in one day; 1 to 10 entries." - changed
Input schema / properties / tasks / items / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "label": { - "maxLength": 60, - "minLength": 1, - "type": "string" - }, - "level": { - "maximum": 140, - "minimum": 40, - "type": "number" - }, - "levelC": { - "maximum": 160, - "minimum": 40, - "type": "number" - }, - "minutes": { - "description": "Actual exposure time in minutes, not the whole shift.", - "maximum": 1440, - "minimum": 1, - "type": "integer" - }, - "protectionWorn": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "minutes", - "level" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "dosemeter", - "type": "string" - }, - "label": { - "maxLength": 60, - "minLength": 1, - "type": "string" - }, - "levelC": { - "maximum": 160, - "minimum": 40, - "type": "number" - }, - "measuredMinutes": { - "description": "How long the dosemeter measured.", - "maximum": 1440, - "minimum": 1, - "type": "integer" - }, - "minutes": { - "description": "Exposure time represented. Defaults to measuredMinutes.", - "maximum": 1440, - "minimum": 1, - "type": "integer" - }, - "protectionWorn": { - "default": false, - "type": "boolean" - }, - "reading": { - "maximum": 10000, - "minimum": 0.0001, - "type": "number" - }, - "unit": { - "const": "pa2h", - "type": "string" - } - }, - "required": [ - "kind", - "measuredMinutes", - "unit", - "reading" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "dosemeter", - "type": "string" - }, - "label": { - "maxLength": 60, - "minLength": 1, - "type": "string" - }, - "levelC": { - "maximum": 160, - "minimum": 40, - "type": "number" - }, - "measuredMinutes": { - "description": "How long the dosemeter measured.", - "maximum": 1440, - "minimum": 1, - "type": "integer" - }, - "minutes": { - "description": "Exposure time represented. Defaults to measuredMinutes.", - "maximum": 1440, - "minimum": 1, - "type": "integer" - }, - "protectionWorn": { - "default": false, - "type": "boolean" - }, - "reading": { - "maximum": 100000, - "minimum": 0.0001, - "type": "number" - }, - "unit": { - "const": "dose85", - "type": "string" - } - }, - "required": [ - "kind", - "measuredMinutes", - "unit", - "reading" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "dosemeter", - "type": "string" - }, - "label": { - "maxLength": 60, - "minLength": 1, - "type": "string" - }, - "levelC": { - "maximum": 160, - "minimum": 40, - "type": "number" - }, - "measuredMinutes": { - "description": "How long the dosemeter measured.", - "maximum": 1440, - "minimum": 1, - "type": "integer" - }, - "minutes": { - "description": "Exposure time represented. Defaults to measuredMinutes.", - "maximum": 1440, - "minimum": 1, - "type": "integer" - }, - "protectionWorn": { - "default": false, - "type": "boolean" - }, - "reading": { - "maximum": 100000, - "minimum": 0.0001, - "type": "number" - }, - "unit": { - "const": "dose80", - "type": "string" - } - }, - "required": [ - "kind", - "measuredMinutes", - "unit", - "reading" - ], - "type": "object" - } - ] - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "label": { + "description": "Short human-readable label or stable slug, up to 60 characters.", + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "level": { + "description": "Measured task-equivalent continuous A-weighted sound level, LAeq in dB(A).", + "maximum": 140, + "minimum": 40, + "type": "number" + }, + "levelC": { + "description": "Measured C-weighted task level in dB(C), needed to estimate protection at the ear.", + "maximum": 160, + "minimum": 40, + "type": "number" + }, + "minutes": { + "description": "Actual exposure time in minutes, not the whole shift.", + "maximum": 1440, + "minimum": 1, + "type": "integer" + }, + "protectionWorn": { + "default": false, + "description": "Whether hearing protection is worn during this task; defaults to false.", + "type": "boolean" + } + }, + "required": [ + "minutes", + "level" + ], + "type": "object" + }, + { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "dosemeter", + "type": "string" + }, + "label": { + "description": "Short human-readable label or stable slug, up to 60 characters.", + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "levelC": { + "description": "Measured C-weighted task level in dB(C), needed to estimate protection at the ear.", + "maximum": 160, + "minimum": 40, + "type": "number" + }, + "measuredMinutes": { + "description": "How long the dosemeter measured.", + "maximum": 1440, + "minimum": 1, + "type": "integer" + }, + "minutes": { + "description": "Exposure time represented. Defaults to measuredMinutes.", + "maximum": 1440, + "minimum": 1, + "type": "integer" + }, + "protectionWorn": { + "default": false, + "description": "Whether hearing protection is worn during this task; defaults to false.", + "type": "boolean" + }, + "reading": { + "description": "Dosemeter sound exposure in Pa²h.", + "maximum": 10000, + "minimum": 0.0001, + "type": "number" + }, + "unit": { + "const": "pa2h", + "description": "Sound exposure in Pa²h.", + "type": "string" + } + }, + "required": [ + "kind", + "measuredMinutes", + "unit", + "reading" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "dosemeter", + "type": "string" + }, + "label": { + "description": "Short human-readable label or stable slug, up to 60 characters.", + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "levelC": { + "description": "Measured C-weighted task level in dB(C), needed to estimate protection at the ear.", + "maximum": 160, + "minimum": 40, + "type": "number" + }, + "measuredMinutes": { + "description": "How long the dosemeter measured.", + "maximum": 1440, + "minimum": 1, + "type": "integer" + }, + "minutes": { + "description": "Exposure time represented. Defaults to measuredMinutes.", + "maximum": 1440, + "minimum": 1, + "type": "integer" + }, + "protectionWorn": { + "default": false, + "description": "Whether hearing protection is worn during this task; defaults to false.", + "type": "boolean" + }, + "reading": { + "description": "Dosemeter reading as a percentage.", + "maximum": 100000, + "minimum": 0.0001, + "type": "number" + }, + "unit": { + "const": "dose85", + "description": "Percentage dose referenced to 85 dB(A) for 8 hours.", + "type": "string" + } + }, + "required": [ + "kind", + "measuredMinutes", + "unit", + "reading" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "dosemeter", + "type": "string" + }, + "label": { + "description": "Short human-readable label or stable slug, up to 60 characters.", + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "levelC": { + "description": "Measured C-weighted task level in dB(C), needed to estimate protection at the ear.", + "maximum": 160, + "minimum": 40, + "type": "number" + }, + "measuredMinutes": { + "description": "How long the dosemeter measured.", + "maximum": 1440, + "minimum": 1, + "type": "integer" + }, + "minutes": { + "description": "Exposure time represented. Defaults to measuredMinutes.", + "maximum": 1440, + "minimum": 1, + "type": "integer" + }, + "protectionWorn": { + "default": false, + "description": "Whether hearing protection is worn during this task; defaults to false.", + "type": "boolean" + }, + "reading": { + "description": "Dosemeter reading as a percentage.", + "maximum": 100000, + "minimum": 0.0001, + "type": "number" + }, + "unit": { + "const": "dose80", + "description": "Percentage dose referenced to 80 dB(A) for 8 hours.", + "type": "string" + } + }, + "required": [ + "kind", + "measuredMinutes", + "unit", + "reading" + ], + "type": "object" + } + ] + } +] - changed
Input schema / properties / week / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "days": { - "maximum": 7, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "days" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "levels": { - "items": { - "maximum": 140, - "minimum": 40, - "type": "number" - }, - "maxItems": 7, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "levels" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "days": { + "description": "Number of days, from 1 to 7, on which this calculated daily exposure repeats.", + "maximum": 7, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "days" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "levels": { + "description": "Daily LEP,d values in dB(A), one for each exposed day, maximum 7.", + "items": { + "maximum": 140, + "minimum": 40, + "type": "number" + }, + "maxItems": 7, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "levels" + ], + "type": "object" + } +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "action": { + "additionalProperties": false, + "properties": { + "band": { + "enum": [ + "below", + "lower", + "upper" + ], + "type": "string" + }, + "byPeak": { + "type": "boolean" + } + }, + "required": [ + "band", + "byPeak" + ], + "type": "object" + }, + "atEar": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "level": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "overLimit": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "tasks": { + "items": { + "additionalProperties": false, + "properties": { + "atEar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "fit": { + "anyOf": [ + { + "enum": [ + "too-much", + "target", + "too-little" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "type": "string" + }, + "worn": { + "type": "boolean" + } + }, + "required": [ + "id", + "atEar", + "worn", + "fit" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tasks", + "level", + "overLimit" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "display": { + "additionalProperties": false, + "properties": { + "atEar": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "level": { + "type": "string" + }, + "points": { + "type": "string" + } + }, + "required": [ + "level", + "points", + "atEar" + ], + "type": "object" + }, + "error": { + "type": "string" + }, + "exposure": { + "additionalProperties": false, + "properties": { + "band": { + "enum": [ + "below", + "lower", + "upper" + ], + "type": "string" + }, + "largest": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "level": { + "type": "number" + }, + "minutes": { + "type": "number" + }, + "moreBeforeLower": { + "type": "number" + }, + "moreBeforeUpper": { + "type": "number" + }, + "partial": { + "type": "number" + }, + "points": { + "type": "number" + }, + "share": { + "type": "number" + } + }, + "required": [ + "id", + "label", + "level", + "minutes", + "points", + "partial", + "share", + "moreBeforeLower", + "moreBeforeUpper" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "level": { + "type": "number" + }, + "minutes": { + "type": "number" + }, + "points": { + "type": "number" + }, + "tasks": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "level": { + "type": "number" + }, + "minutes": { + "type": "number" + }, + "moreBeforeLower": { + "type": "number" + }, + "moreBeforeUpper": { + "type": "number" + }, + "partial": { + "type": "number" + }, + "points": { + "type": "number" + }, + "share": { + "type": "number" + } + }, + "required": [ + "id", + "label", + "level", + "minutes", + "points", + "partial", + "share", + "moreBeforeLower", + "moreBeforeUpper" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tasks", + "minutes", + "points", + "level", + "band", + "largest" + ], + "type": "object" + }, + "limit": { + "type": "string" + }, + "minutes": { + "description": "Total task time in minutes when it exceeds one day.", + "type": "number" + }, + "peak": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "assessed": { + "const": false, + "type": "boolean" + } + }, + "required": [ + "assessed" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "assessed": { + "const": true, + "type": "boolean" + }, + "band": { + "enum": [ + "below", + "lower", + "upper", + "limit" + ], + "type": "string" + }, + "level": { + "type": "number" + } + }, + "required": [ + "assessed", + "level", + "band" + ], + "type": "object" + } + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "const": "ComplyOnSite", + "description": "Publisher of the returned data.", + "type": "string" + }, + "url": { + "description": "ComplyOnSite page that explains this result.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "thresholds": { + "additionalProperties": false, + "properties": { + "atEarLimit": { + "type": "number" + }, + "lowerAction": { + "type": "number" + }, + "upperAction": { + "type": "number" + } + }, + "required": [ + "lowerAction", + "upperAction", + "atEarLimit" + ], + "type": "object" + }, + "units": { + "additionalProperties": false, + "properties": { + "level": { + "const": "dB(A) LEP,d", + "type": "string" + }, + "peak": { + "const": "dB(C)", + "type": "string" + }, + "time": { + "const": "minutes", + "type": "string" + }, + "week": { + "const": "dB(A) LEP,w", + "type": "string" + } + }, + "required": [ + "level", + "week", + "peak", + "time" + ], + "type": "object" + }, + "week": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "averagingLikely": { + "type": "boolean" + }, + "band": { + "enum": [ + "below", + "lower", + "upper" + ], + "type": "string" + }, + "days": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "highest": { + "type": "number" + }, + "level": { + "type": "number" + }, + "points": { + "type": "number" + } + }, + "required": [ + "days", + "level", + "points", + "band", + "highest", + "averagingLikely" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "source" + ], + "type": "object" +}
- Changed
power_tool_types2 fields changed- added
Input schema / properties / type / descriptionAdded value: +"Tool-type slug returned by this tool, for example angle-grinder; omit to list all available types." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "error": { + "type": "string" + }, + "hseVibration": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "hammer", + "rotary", + "other" + ], + "type": "string" + }, + "aliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "group": { + "type": "string" + }, + "label": { + "type": "string" + }, + "printed": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "variants": { + "items": { + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "hammer", + "rotary", + "other" + ], + "type": "string" + }, + "high": { + "type": "number" + }, + "label": { + "type": "string" + }, + "low": { + "type": "number" + }, + "printed": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "required": [ + "slug", + "label", + "printed", + "low", + "high", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "slug", + "label", + "aliases", + "group", + "printed", + "action", + "variants" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "HSE category and variants, when this type maps to one." + }, + "inUseNoise": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "above": { + "prefixItems": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "type": "array" + }, + "report": { + "type": "string" + }, + "tested": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "above", + "tested", + "report", + "url" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "HSE comparison of declared and measured in-use noise, when available." + }, + "limit": { + "type": "string" + }, + "perShotNoise": { + "type": "boolean" + }, + "retrieved": { + "additionalProperties": false, + "properties": { + "from": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "required": [ + "from", + "to" + ], + "type": "object" + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "const": "ComplyOnSite", + "description": "Publisher of the returned data.", + "type": "string" + }, + "url": { + "description": "ComplyOnSite page that explains this result.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "terms": { + "description": "Reuse terms for the aggregate.", + "type": "string" + }, + "type": { + "additionalProperties": false, + "properties": { + "group": { + "type": "string" + }, + "hse": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "label": { + "type": "string" + }, + "noise": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "max": { + "type": "number" + }, + "median": { + "type": "number" + }, + "min": { + "type": "number" + }, + "models": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "p10": { + "type": "number" + }, + "p90": { + "type": "number" + } + }, + "required": [ + "models", + "p10", + "median", + "p90", + "min", + "max" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "page": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "slug": { + "type": "string" + }, + "vibration": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "max": { + "type": "number" + }, + "median": { + "type": "number" + }, + "min": { + "type": "number" + }, + "models": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "p10": { + "type": "number" + }, + "p90": { + "type": "number" + } + }, + "required": [ + "models", + "p10", + "median", + "p90", + "min", + "max" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "slug", + "label", + "group", + "page", + "hse", + "vibration", + "noise" + ], + "type": "object" + }, + "types": { + "items": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "hse": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "label": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "slug", + "label", + "hse", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "label": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "slug", + "label" + ], + "type": "object" + } + ] + }, + "type": "array" + }, + "units": { + "additionalProperties": false, + "properties": { + "noise": { + "const": "dB(A) declared LpA", + "type": "string" + }, + "vibration": { + "const": "m/s²", + "type": "string" + } + }, + "required": [ + "vibration", + "noise" + ], + "type": "object" + } + }, + "required": [ + "source" + ], + "type": "object" +}
- Changed
start_document2 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "codes": { - "default": [], - "items": { - "maxLength": 60, - "minLength": 1, - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "document": { - "const": "waste-transfer-note", - "type": "string" - } - }, - "required": [ - "document" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "codes": { - "default": [], - "items": { - "maxLength": 60, - "minLength": 1, - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "document": { - "const": "consignment-note", - "type": "string" - } - }, - "required": [ - "document" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "document": { - "const": "rams", - "type": "string" - }, - "job": { - "maxLength": 60, - "minLength": 1, - "type": "string" - }, - "operation": { - "maxLength": 60, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "document" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "codes": { + "default": [], + "description": "Non-hazardous EWC codes to prefill; defaults to none, maximum 5.", + "items": { + "description": "Short human-readable label or stable slug, up to 60 characters.", + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "document": { + "const": "waste-transfer-note", + "description": "Open the non-hazardous waste transfer note.", + "type": "string" + } + }, + "required": [ + "document" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "codes": { + "default": [], + "description": "Hazardous EWC codes to prefill; defaults to none, maximum 5.", + "items": { + "description": "Short human-readable label or stable slug, up to 60 characters.", + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "document": { + "const": "consignment-note", + "description": "Open the hazardous waste consignment note.", + "type": "string" + } + }, + "required": [ + "document" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "document": { + "const": "rams", + "description": "Open the RAMS flow.", + "type": "string" + }, + "job": { + "description": "RAMS job slug returned in an error when an unknown slug is supplied.", + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "operation": { + "description": "Supported operation slug belonging to the selected job.", + "maxLength": 60, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "document" + ], + "type": "object" + } +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "created": { + "const": false, + "description": "Always false: this tool returns a link and does not create or save a document.", + "type": "boolean" + }, + "error": { + "type": "string" + }, + "jobs": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "slug", + "label" + ], + "type": "object" + }, + "type": "array" + }, + "limit": { + "type": "string" + }, + "operations": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "limit": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "supported": { + "type": "boolean" + } + }, + "required": [ + "id", + "label", + "supported" + ], + "type": "object" + }, + "type": "array" + }, + "prefilled": { + "additionalProperties": false, + "properties": { + "codes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "job": { + "type": "string" + }, + "operation": { + "type": "string" + } + }, + "type": "object" + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "const": "ComplyOnSite", + "description": "Publisher of the returned data.", + "type": "string" + }, + "url": { + "description": "ComplyOnSite page that explains this result.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "url": { + "description": "Anonymous ComplyOnSite URL with the supported values prefilled.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "source" + ], + "type": "object" +}
- Changed
waste_paperwork3 fields changed- added
Input schema / properties / hazardous / descriptionAdded value: +"Whether the waste is hazardous; use together with jurisdiction." - added
Input schema / properties / jurisdiction / descriptionAdded value: +"UK jurisdiction; use together with hazardous, or omit both to list documents." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "available": { + "type": "boolean" + }, + "count": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "document": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": false, + "properties": { + "country": { + "type": "string" + }, + "countryId": { + "enum": [ + "gb", + "ie", + "nl", + "us", + "ca", + "au" + ], + "type": "string" + }, + "covers": { + "type": "string" + }, + "document": { + "type": "string" + }, + "electronic": { + "additionalProperties": false, + "properties": { + "answer": { + "type": "string" + }, + "from": { + "enum": [ + "spec", + "research", + "unknown" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "answer", + "label", + "note", + "from", + "source" + ], + "type": "object" + }, + "id": { + "type": "string" + }, + "issuedBy": { + "type": "string" + }, + "items": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "parts": { + "items": { + "additionalProperties": false, + "properties": { + "part": { + "type": "string" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "part", + "required" + ], + "type": "object" + }, + "type": "array" + }, + "required": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "total": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "total", + "required", + "parts" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "kept": { + "additionalProperties": false, + "properties": { + "rule": { + "type": "string" + }, + "who": { + "type": "string" + }, + "years": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "years", + "who", + "rule" + ], + "type": "object" + }, + "kind": { + "enum": [ + "note", + "form", + "prepare" + ], + "type": "string" + }, + "parties": { + "items": { + "additionalProperties": false, + "properties": { + "does": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + } + }, + "required": [ + "role", + "does", + "optional" + ], + "type": "object" + }, + "type": "array" + }, + "partiesFrom": { + "enum": [ + "sections", + "text" + ], + "type": "string" + }, + "place": { + "type": "string" + }, + "signature": { + "additionalProperties": false, + "properties": { + "answer": { + "type": "string" + }, + "from": { + "enum": [ + "spec", + "research", + "unknown" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "answer", + "label", + "note", + "from", + "source" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "system": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "note": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url", + "note" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "tool": { + "additionalProperties": false, + "properties": { + "href": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "href", + "label" + ], + "type": "object" + } + }, + "required": [ + "id", + "country", + "countryId", + "place", + "document", + "covers", + "kind", + "issuedBy", + "parties", + "partiesFrom", + "items", + "kept", + "electronic", + "signature", + "system", + "tool", + "sources" + ], + "type": "object" + } + ], + "description": "Full paperwork row, or document name for the jurisdiction route." + }, + "documents": { + "items": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "gb", + "ie", + "nl", + "us", + "ca", + "au" + ], + "type": "string" + }, + "document": { + "type": "string" + }, + "id": { + "type": "string" + }, + "keeping": { + "type": "string" + }, + "kind": { + "enum": [ + "note", + "form", + "prepare" + ], + "type": "string" + }, + "place": { + "type": "string" + }, + "region": { + "enum": [ + "gb-eng", + "gb-wls", + "gb-sct", + "gb-nir" + ], + "type": "string" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "tool": { + "additionalProperties": false, + "properties": { + "href": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "href", + "label" + ], + "type": "object" + } + }, + "required": [ + "id", + "country", + "place", + "kind", + "tool" + ], + "type": "object" + }, + "type": "array" + }, + "error": { + "type": "string" + }, + "jurisdiction": { + "type": "string" + }, + "limit": { + "type": "string" + }, + "officialRoute": { + "additionalProperties": false, + "properties": { + "href": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "href", + "label" + ], + "type": "object" + }, + "paperwork": { + "additionalProperties": false, + "description": "Full paperwork requirements row for the selected jurisdiction route.", + "properties": { + "country": { + "type": "string" + }, + "countryId": { + "enum": [ + "gb", + "ie", + "nl", + "us", + "ca", + "au" + ], + "type": "string" + }, + "covers": { + "type": "string" + }, + "document": { + "type": "string" + }, + "electronic": { + "additionalProperties": false, + "properties": { + "answer": { + "type": "string" + }, + "from": { + "enum": [ + "spec", + "research", + "unknown" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "answer", + "label", + "note", + "from", + "source" + ], + "type": "object" + }, + "id": { + "type": "string" + }, + "issuedBy": { + "type": "string" + }, + "items": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "parts": { + "items": { + "additionalProperties": false, + "properties": { + "part": { + "type": "string" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "part", + "required" + ], + "type": "object" + }, + "type": "array" + }, + "required": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "total": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "total", + "required", + "parts" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "kept": { + "additionalProperties": false, + "properties": { + "rule": { + "type": "string" + }, + "who": { + "type": "string" + }, + "years": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "years", + "who", + "rule" + ], + "type": "object" + }, + "kind": { + "enum": [ + "note", + "form", + "prepare" + ], + "type": "string" + }, + "parties": { + "items": { + "additionalProperties": false, + "properties": { + "does": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + } + }, + "required": [ + "role", + "does", + "optional" + ], + "type": "object" + }, + "type": "array" + }, + "partiesFrom": { + "enum": [ + "sections", + "text" + ], + "type": "string" + }, + "place": { + "type": "string" + }, + "signature": { + "additionalProperties": false, + "properties": { + "answer": { + "type": "string" + }, + "from": { + "enum": [ + "spec", + "research", + "unknown" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "answer", + "label", + "note", + "from", + "source" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "system": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "note": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url", + "note" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "tool": { + "additionalProperties": false, + "properties": { + "href": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "href", + "label" + ], + "type": "object" + } + }, + "required": [ + "id", + "country", + "countryId", + "place", + "document", + "covers", + "kind", + "issuedBy", + "parties", + "partiesFrom", + "items", + "kept", + "electronic", + "signature", + "system", + "tool", + "sources" + ], + "type": "object" + }, + "rules": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "changes": { + "type": "string" + }, + "destination": { + "type": "boolean" + }, + "hazardous": { + "additionalProperties": false, + "properties": { + "href": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "href", + "label" + ], + "type": "object" + }, + "hierarchy": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "producerImporter": { + "type": "boolean" + }, + "register": { + "type": "string" + }, + "regulator": { + "type": "string" + }, + "tiers": { + "type": "boolean" + }, + "tracking": { + "type": "string" + } + }, + "required": [ + "changes", + "hierarchy", + "producerImporter", + "destination", + "regulator", + "register", + "tiers", + "hazardous", + "tracking" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "changes": { + "type": "string" + }, + "law": { + "type": "string" + }, + "permit": { + "type": "string" + }, + "premises": { + "type": "boolean" + }, + "to": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "changes", + "law", + "premises", + "to", + "permit" + ], + "type": "object" + } + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "const": "ComplyOnSite", + "description": "Publisher of the returned data.", + "type": "string" + }, + "url": { + "description": "ComplyOnSite page that explains this result.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "name", + "url" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "spec": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "blank": { + "additionalProperties": false, + "properties": { + "href": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "label", + "href" + ], + "type": "object" + }, + "dates": { + "enum": [ + "dmy", + "mdy", + "ymd" + ], + "type": "string" + }, + "faqs": { + "items": { + "additionalProperties": false, + "properties": { + "answer": { + "type": "string" + }, + "link": { + "additionalProperties": false, + "properties": { + "href": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "label", + "href" + ], + "type": "object" + }, + "question": { + "type": "string" + } + }, + "required": [ + "question", + "answer" + ], + "type": "object" + }, + "type": "array" + }, + "guide": { + "items": { + "additionalProperties": false, + "properties": { + "body": { + "items": { + "type": "string" + }, + "type": "array" + }, + "heading": { + "type": "string" + } + }, + "required": [ + "heading", + "body" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "issuer": { + "additionalProperties": false, + "properties": { + "href": { + "type": "string" + }, + "name": { + "type": "string" + }, + "supplies": { + "type": "string" + } + }, + "required": [ + "name", + "href", + "supplies" + ], + "type": "object" + }, + "keeping": { + "type": "string" + }, + "kind": { + "enum": [ + "note", + "form", + "prepare" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "place": { + "type": "string" + }, + "sections": { + "items": { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "additionalProperties": false, + "properties": { + "choices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "help": { + "type": "string" + }, + "id": { + "type": "string" + }, + "input": { + "enum": [ + "text", + "area", + "date", + "time", + "number", + "choice", + "yesno" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "max": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "placeholder": { + "type": "string" + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "id", + "label", + "input" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "lead": { + "type": "string" + }, + "number": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "signer": { + "additionalProperties": false, + "properties": { + "nameField": { + "type": "string" + }, + "role": { + "type": "string" + }, + "slot": { + "type": "string" + } + }, + "required": [ + "slot", + "role" + ], + "type": "object" + }, + "statement": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "fields" + ], + "type": "object" + }, + "type": "array" + }, + "sheetTitle": { + "type": "string" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "edition": { + "description": "Edition or update date retained with the source.", + "type": "string" + }, + "name": { + "description": "Short source name used in explanatory text.", + "type": "string" + }, + "read": { + "description": "Date on which the source was checked.", + "type": "string" + }, + "title": { + "description": "Human-readable source title.", + "type": "string" + }, + "url": { + "description": "Source URL.", + "format": "uri", + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "kind", + "place", + "name", + "sheetTitle", + "sections", + "keeping", + "dates", + "guide", + "faqs", + "sources" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Shared document field, guide, FAQ and source specification when available." + } + }, + "required": [ + "source" + ], + "type": "object" +}
8 tool updates
- First observed
construction_injury_statistics - First observed
ewc_search - First observed
first_aid_requirements - First observed
havs_daily_exposure - First observed
noise_daily_exposure - First observed
power_tool_types - First observed
start_document - First observed
waste_paperwork
Related MCP Connectors
UK Environment Agency waste carrier licence records, with alerts on status and expiry.
RegEvidenceHub Waste: England waste registration, DWT readiness and permit-change preflight.
UK farm health and safety — HSE guidance, machinery, COSHH, children on farms
Construction daily-log generation, jurisdiction compliance requirements, construction FAQs.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceUK skip hire compliance MCP. Provides Waste Carrier Registration, EWC codes, and consignment notes.23 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceMuckaway AI MCP provides tools for UK waste management compliance, including waste classification, disposal facility lookup, duty of care documentation, and waste transfer notes.3 npmMIT
- AlicenseNot gradedqualityDmaintenanceUK crane hire compliance MCP for CPCS/CISRS/NPORS card verification and BS 7121 lift plans.44 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables UK lorry-loader (HIAB) compliance management, including lift planning, operator/slinger card checks, thorough examinations, and delivery rejection risk scoring.19 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.