Skip to content

ComplyOnSite MCP server

Give an AI assistant the waste codes, exposure calculators, first-aid rules, waste paperwork and construction data behind the free tools on this site. No account or key. It answers questions; it never saves, signs or sends anything.

Version 0.2.0. Streamable HTTP. Listed in the official MCP Registry as com.complyonsite/tools.

https://mcp.complyonsite.com/mcp

Connect

Add the server address as a remote MCP server. There is nothing to sign in to.

Claude

In claude.ai or Claude Desktop, on any plan:

  1. Open Customize, then Connectors.
  2. Choose Add, then Add custom connector.
  3. Name it ComplyOnSite and paste the server address.
  4. Choose No sign in, then Add.

On Team and Enterprise plans, an owner adds it first in Organization settings, Connectors.

ChatGPT

  1. Open chatgpt.com/plugins.
  2. Choose +, then Add custom MCP server.
  3. Enter a name, and the server address under Connection.
  4. Choose no authentication, accept the warning, then Create as a plugin.

In a workspace, an admin may need to allow custom MCP servers first.

Claude Code

claude mcp add --transport http complyonsite https://mcp.complyonsite.com/mcp

Add --scope user to use it in every project.

Codex

codex mcp add complyonsite --url https://mcp.complyonsite.com/mcp

Or add it to ~/.codex/config.toml:

[mcp_servers.complyonsite]
url = "https://mcp.complyonsite.com/mcp"

Cursor

Add it to ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:

{
  "mcpServers": {
    "complyonsite": {
      "url": "https://mcp.complyonsite.com/mcp"
    }
  }
}

VS Code

Run MCP: Add Server from the Command Palette and choose HTTP, or add it to .vscode/mcp.json:

{
  "servers": {
    "complyonsite": {
      "type": "http",
      "url": "https://mcp.complyonsite.com/mcp"
    }
  }
}

Other clients

Any client that supports remote MCP servers over Streamable HTTP. Add the address with no authentication. Most JSON configurations take this form:

{
  "mcpServers": {
    "complyonsite": {
      "type": "http",
      "url": "https://mcp.complyonsite.com/mcp"
    }
  }
}

What it covers

It answers

It does not

  • Classify waste. A code search returns candidate codes and the assessment each one needs.
  • Create, save, sign or send a document. start_document returns a link to the form with the codes or job filled in.
  • Build RAMS, convert safety data sheets or check Defra Receipt of Waste spreadsheets. Those run on the website.
  • Return single tool models’ declared figures. Those are on the power tool pages, linked to each maker’s document.
  • Read HSE live. Injury figures are the release shown on the injury statistics page.

Tools (8)

Every tool, with its inputs, a question it answers and the arguments an assistant sends. Every tool only reads.

Estimate first-aid cover

first_aid_requirements · read-only

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.

Inputs

work text, optional

Workplace setting; defaults to construction site. One of "site", "factory", "office", "shop", "nursery", "school". Default "site".

shifts list of whole numbers, required

Highest number of people present at once on each shift. 1 to 4 items. Each: 1 to 10000.

firstAidersAvailable list of whole numbers, optional

First-aiders already available on each shift, in the same order. At most 4 items. Each: 0 to 10000.

receptionClass true or false, optional

For a school: whether it has a reception or nursery class. Default false.

factors list of text, optional

Relevant factor ids returned by this tool for the selected workplace. At most 5 items. Each: 1 to 30 characters.

Example

Ask: “How many first-aiders do we need with 51 people on site?”

{ "name": "first_aid_requirements", "arguments": { "work": "site", "shifts": [ 51 ] } }
The answer, shortened
{
  "source": {
    "name": "ComplyOnSite",
    "url": "https://complyonsite.com/tools/first-aid-requirements-calculator?work=site"
  },
  "work": "site",
  "result": {
    "place": {
      "id": "site",
      "label": "Construction site",
      "hazard": "higher",
      "tag": "Higher risk",
      "covers": "Building, demolition, groundworks, site maintenance"
    },
    "factors": [],
    "plan": {
      "shifts": [
        "{…}"
      ],
      "missing": [],
      "firstAiders": 2,
      "appointed": 0
    },
    "many": false,
    "children": false,
    "room": true,
    "answered": true,
    "answers": [
      {
        "key": "shift-1",
        "eyebrow": "Recommended",
        "headline": "{…}",
        "minor": false,
        "have": null
      }
    ],
    "steps": [
      {
        "key": "cover",
        "title": "Holiday cover",
        "text": "Train a spare person, so someone is always on duty."
      },
      {
        "key": "kit",
        "title": "A first-aid kit",
        "text": "Easy to reach, with a green and white cross sign."
      },
      "… 2 more"
    ]
  },
  "calculatorUrl": "https://complyonsite.com/tools/first-aid-requirements-calculator?work=site&people=51",
  "availableFactors": [
    {
      "id": "shared",
      "label": "Other contractors work on this site"
    },
    {
      "id": "bleeding",
      "label": "Risk of serious bleeding"
    },
    "… 3 more"
  ],
  "sources": [],
  "limit": "A starting point for the needs assessment. Consider the work, workforce, site layout, shifts, remoteness and people who are not employees before deciding the…"
}

Calculate daily HAVS exposure

havs_daily_exposure · read-only

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.

Inputs

tools list of objects, required

Tools or tasks used by one person during one day; 1 to 20 entries. 1 to 20 items.

Each item of tools:

tools[].label text, optional

Optional task or tool label used in the result. 1 to 60 characters.

tools[].minutes whole number, required

Actual exposure time in minutes, not the whole shift. 1 to 1440.

tools[].category text, optional

HSE tool-category slug returned by power_tool_types; use with variant when vibration is omitted. 1 to 60 characters.

tools[].variant text, optional

HSE variant slug belonging to category; use when that category has multiple variants. 1 to 60 characters.

tools[].vibration number, optional

Your own vibration value, m/s². The website rounds this input to two decimal places. 0.1 to 100.

Example

Ask: “What is the vibration exposure for two hours on a tool at 5 m/s²?”

{ "name": "havs_daily_exposure", "arguments": { "tools": [ { "vibration": 5, "minutes": 120 } ] } }
The answer, shortened
{
  "source": {
    "name": "ComplyOnSite",
    "url": "https://complyonsite.com/tools/havs-calculator"
  },
  "exposure": {
    "tools": [
      {
        "id": "tool-1",
        "label": "Tool 1",
        "minutes": 120,
        "magnitude": "{…}",
        "a8": 2.5,
        "a8Low": 2.5,
        "a8High": 2.5,
        "points": 100,
        "pointsLow": 100,
        "pointsHigh": 100,
        "share": 1
      }
    ],
    "hours": 2,
    "a8": 2.5,
    "a8Low": 2.5,
    "a8High": 2.5,
    "points": 100,
    "pointsLow": 100,
    "pointsHigh": 100,
    "band": "above-action",
    "bandLow": "above-action",
    "bandHigh": "above-action",
    "largest": null
  },
  "display": {
    "a8": "2.50",
    "points": "100",
    "a8Low": "2.50",
    "a8High": "2.50"
  },
  "units": {
    "a8": "m/s² A(8)",
    "time": "minutes"
  },
  "thresholds": {
    "action": 2.5,
    "limit": 5
  },
  "sources": [
    {
      "title": "HSE, Vibration risk assessment, Table 1 \"Some typical vibration levels for common tools\"",
      "url": "https://www.hse.gov.uk/vibration/hav/assessrisks.htm",
      "read": "read 16 September 2026"
    }
  ],
  "limit": "Initial estimate for the entered tasks. Real exposure varies; the range can cross a threshold even when the central estimate does not."
}

Calculate daily noise exposure

noise_daily_exposure · read-only

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.

Inputs

tasks list of objects, required

Measured tasks for one person in one day; 1 to 10 entries. 1 to 10 items.

Each item of tasks, option 1:

tasks[].label text, optional

Short human-readable label or stable slug, up to 60 characters. 1 to 60 characters.

tasks[].minutes whole number, required

Actual exposure time in minutes, not the whole shift. 1 to 1440.

tasks[].level number, required

Measured task-equivalent continuous A-weighted sound level, LAeq in dB(A). 40 to 140.

tasks[].protectionWorn true or false, optional

Whether hearing protection is worn during this task; defaults to false. Default false.

tasks[].levelC number, optional

Measured C-weighted task level in dB(C), needed to estimate protection at the ear. 40 to 160.

Each item of tasks, option 2: kind "dosemeter":

tasks[].kind "dosemeter", required
tasks[].label text, optional

Short human-readable label or stable slug, up to 60 characters. 1 to 60 characters.

tasks[].measuredMinutes whole number, required

How long the dosemeter measured. 1 to 1440.

tasks[].minutes whole number, optional

Exposure time represented. Defaults to measuredMinutes. 1 to 1440.

tasks[].protectionWorn true or false, optional

Whether hearing protection is worn during this task; defaults to false. Default false.

tasks[].levelC number, optional

Measured C-weighted task level in dB(C), needed to estimate protection at the ear. 40 to 160.

tasks[].unit "pa2h" or "dose85" or "dose80", required

With unit: "pa2h": Sound exposure in Pa²h. With unit: "dose85": Percentage dose referenced to 85 dB(A) for 8 hours. With unit: "dose80": Percentage dose referenced to 80 dB(A) for 8 hours.

tasks[].reading number, required

With unit: "pa2h": Dosemeter sound exposure in Pa²h. 0.0001 to 10000. With unit: "dose85": Dosemeter reading as a percentage. 0.0001 to 100000. With unit: "dose80": Dosemeter reading as a percentage. 0.0001 to 100000.

peak number, optional

Highest measured C-weighted peak sound pressure level in dB(C). 60 to 200.

protector object, optional

Hearing-protector attenuation from its SNR or H/M/L ratings.

Inside protector, option 1: method "snr":

protector.method "snr", required
protector.snr number, required

Hearing-protector attenuation rating in decibels. 1 to 60.

Inside protector, option 2: method "hml":

protector.method "hml", required
protector.h number, required

Hearing-protector attenuation rating in decibels. 1 to 60.

protector.m number, required

Hearing-protector attenuation rating in decibels. 1 to 60.

protector.l number, required

Hearing-protector attenuation rating in decibels. 1 to 60.

week object, optional

Repeat the calculated day this many days, or supply the daily LEP,d for each exposed day.

Inside week, option 1:

week.days whole number, required

Number of days, from 1 to 7, on which this calculated daily exposure repeats. 1 to 7.

Inside week, option 2:

week.levels list of numbers, required

Daily LEP,d values in dB(A), one for each exposed day, maximum 7. 1 to 7 items. Each: 40 to 140.

Example

Ask: “Eight hours at 85 dB(A): what is the daily noise exposure?”

{ "name": "noise_daily_exposure", "arguments": { "tasks": [ { "level": 85, "minutes": 480 } ] } }
The answer, shortened
{
  "source": {
    "name": "ComplyOnSite",
    "url": "https://complyonsite.com/tools/noise-exposure-calculator"
  },
  "exposure": {
    "tasks": [
      {
        "id": "task-1",
        "label": "Task 1",
        "level": 85,
        "minutes": 480,
        "points": 100,
        "partial": 85,
        "share": 1,
        "moreBeforeLower": 0,
        "moreBeforeUpper": 0
      }
    ],
    "minutes": 480,
    "points": 100,
    "level": 85,
    "band": "upper",
    "largest": null
  },
  "display": {
    "level": "85",
    "points": "100",
    "atEar": "85"
  },
  "week": null,
  "action": {
    "band": "upper",
    "byPeak": false
  },
  "peak": {
    "assessed": false
  },
  "atEar": {
    "tasks": [
      {
        "id": "task-1",
        "atEar": 85,
        "worn": false,
        "fit": null
      }
    ],
    "level": 85,
    "overLimit": false
  },
  "units": {
    "level": "dB(A) LEP,d",
    "week": "dB(A) LEP,w",
    "peak": "dB(C)",
    "time": "minutes"
  },
  "thresholds": {
    "lowerAction": 80,
    "upperAction": 85,
    "atEarLimit": 87
  },
  "sources": [
    {
      "title": "HSE L108, third edition (2021)",
      "url": "https://www.hse.gov.uk/pubns/priced/l108.pdf",
      "read": "read 27 September 2026"
    },
    {
      "title": "Control of Noise at Work Regulations 2005",
      "url": "https://www.legislation.gov.uk/uksi/2005/1643/contents"
    }
  ],
  "limit": "Action values use noise before protection. The 87 dB(A) limit uses noise at the ear; a missing protector rating or C-weighted level leaves it unassessed. Mis…"
}

Get construction injury statistics

construction_injury_statistics · read-only

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.

Inputs

series text, optional

Dataset series to return; defaults to the latest headline figures. One of "latest", "deaths", "fatal-accident-kinds", "employment", "self-reported-injury", "reported-injuries", "ill-health". Default "latest".

Example

Ask: “How many construction workers died last year in Great Britain?”

{ "name": "construction_injury_statistics", "arguments": { "series": "latest" } }
The answer, shortened
{
  "source": {
    "name": "ComplyOnSite",
    "url": "https://complyonsite.com/data/construction-injury-statistics"
  },
  "series": "latest",
  "coverage": "Great Britain, construction",
  "rows": {
    "workerDeaths": {
      "year": "2025/26p",
      "deaths": 25,
      "rate": 1.23,
      "provisional": true
    },
    "fiveYear": {
      "period": "2021/22 - 2025/26p",
      "deaths": 186,
      "averageRate": 1.78,
      "provisional": true
    },
    "fallsFromHeight": {
      "period": "2021/22 - 2025/26p",
      "deaths": 97,
      "totalDeaths": 186
    },
    "employment": {
      "year": "2024/25r",
      "employeeDeaths": 17,
      "employeeRate": 1.28,
      "selfEmployedDeaths": 18,
      "selfEmployedRate": 2.31,
      "status": "revised",
      "provisional": false,
      "revised": true,
      "sourceTable": "RIDFATAL Table 1"
    },
    "selfReportedInjury": {
      "period": "2022/23 - 2024/25",
      "constructionRate": 2500,
      "constructionLower": 1930,
      "constructionUpper": 3060,
      "allIndustriesRate": 1780,
      "allIndustriesLower": 1650,
      "allIndustriesUpper": 1910,
      "sourceTable": "LFSINJIND Table-1"
    }
  },
  "release": {
    "id": "2026-10-03",
    "retrieved": "2026-10-03"
  },
  "sources": {
    "fatalitiesHistorical": {
      "sourceTable": "RIDHIST Table 1",
      "sourceSheet": "Table 1",
      "published": "2025-11-20",
      "url": "https://www.hse.gov.uk/statistics/assets/docs/ridhist.xlsx"
    },
    "fatalitiesLatest": {
      "sourceTable": "RIDFATAL Table 1",
      "sourceSheet": "Table 1",
      "published": "2026-07-01",
      "url": "https://www.hse.gov.uk/statistics/assets/docs/ridfatal.xlsx"
    },
    "fatalKinds": {
      "sourceTable": "Fatalities reportable under RIDDOR (record list), aggregated",
      "sourceSheet": "Fatals 2122 to 2526p",
      "published": "2026-07-01",
      "url": "https://www.hse.gov.uk/statistics/assets/docs/fatalities-reportable-under-riddor.xlsx"
    },
    "selfReportedInjury": {
      "sourceTable": "LFSINJIND Table-1",
      "sourceSheet": "Table-1",
      "published": "2025-11-20",
      "url": "https://www.hse.gov.uk/statistics/assets/docs/lfsinjind.xlsx"
    },
    "reportedInjuries": {
      "sourceTable": "RIDIND Table 3",
      "sourceSheet": "Table 3",
      "published": "2025-11-20",
      "url": "https://www.hse.gov.uk/statistics/assets/docs/ridind.xlsx"
    },
    "illHealthAll": {
      "sourceTable": "LFSILLIND Table-1",
      "sourceSheet": "Table-1",
      "published": "2025-11-20",
      "url": "https://www.hse.gov.uk/statistics/assets/docs/lfsillind.xlsx"
    },
    "illHealthMusculoskeletal": {
      "sourceTable": "LFSILLIND Table-2",
      "sourceSheet": "Table-2",
      "published": "2025-11-20",
      "url": "https://www.hse.gov.uk/statistics/assets/docs/lfsillind.xlsx"
    }
  },
  "units": "Deaths and reported injuries are counts; rates are per 100,000 workers; ill health is in thousand workers. Self-reported injury is a Labour Force Survey esti…",
  "limit": "Latest published periods differ by series. Provisional and revised figures retain their status; these are the website’s retained release, not a live HSE feed."
}

Get power-tool exposure data

power_tool_types · read-only

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.

Inputs

type text, optional

Tool-type slug returned by this tool, for example angle-grinder; omit to list all available types. 1 to 60 characters.

Example

Ask: “How much do angle grinders vibrate?”

{ "name": "power_tool_types", "arguments": { "type": "angle-grinder" } }
The answer, shortened
{
  "source": {
    "name": "ComplyOnSite",
    "url": "https://complyonsite.com/data/power-tools/angle-grinders"
  },
  "type": {
    "slug": "angle-grinder",
    "label": "Angle grinder",
    "group": "grinding",
    "page": "angle-grinders",
    "hse": "angle-grinder",
    "vibration": {
      "models": 544,
      "p10": 4.5,
      "median": 6.5,
      "p90": 8.9,
      "min": 1.7,
      "max": 13.5
    },
    "noise": {
      "models": 572,
      "p10": 83,
      "median": 89,
      "p90": 95,
      "min": 73,
      "max": 98
    }
  },
  "hseVibration": {
    "slug": "angle-grinder",
    "label": "Angle grinder",
    "aliases": [
      "grinder",
      "disc cutter",
      "… 3 more"
    ],
    "group": "grinding",
    "printed": "Grinders - Angle",
    "action": "rotary",
    "variants": [
      {
        "slug": "small",
        "label": "100 to 180 mm disc",
        "printed": "Grinders - Angle: 100 - 180 mm",
        "low": 3,
        "high": 10,
        "value": 7
      },
      {
        "slug": "flap-disc",
        "label": "100 or 125 mm flap disc",
        "printed": "Grinders - Angle: 125 and 100 mm Flapper discs",
        "low": 2,
        "high": 5,
        "value": 4
      },
      "… 1 more"
    ]
  },
  "inUseNoise": {
    "above": [
      6.8,
      22.8
    ],
    "tested": "six angle grinders cutting and grinding stone and metal",
    "report": "HSE RR1182, 2022",
    "url": "https://www.hse.gov.uk/research/rrhtm/rr1182.htm"
  },
  "perShotNoise": false,
  "retrieved": {
    "from": "2026-09-29",
    "to": "2026-09-30"
  },
  "units": {
    "vibration": "m/s²",
    "noise": "dB(A) declared LpA"
  },
  "terms": "Summary figures calculated by ComplyOnSite from makers’ declared values. Reuse them with credit to ComplyOnSite and a link to https://complyonsite.com/data/p…",
  "sources": [
    {
      "title": "ComplyOnSite aggregates of makers’ declared figures",
      "url": "https://complyonsite.com/data/power-tools/angle-grinders"
    },
    {
      "title": "HSE, Vibration risk assessment, Table 1 \"Some typical vibration levels for common tools\"",
      "url": "https://www.hse.gov.uk/vibration/hav/assessrisks.htm"
    }
  ],
  "limit": "Spreads describe declared figures across models, not a person’s exposure or a measured workplace level. Use a measured LAeq for noise exposure; model figures…"
}

Check waste paperwork requirements

waste_paperwork · read-only

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.

Inputs

document text, optional

A document id returned by this tool, for example us-asbestos-wsr or sct-special-waste. 1 to 60 characters.

jurisdiction text, optional

UK jurisdiction; use together with hazardous, or omit both to list documents. One of "gb-eng", "gb-wls", "gb-sct", "gb-nir".

hazardous true or false, optional

Whether the waste is hazardous; use together with jurisdiction.

Example

Ask: “What paperwork goes with non-hazardous waste in England?”

{ "name": "waste_paperwork", "arguments": { "jurisdiction": "gb-eng", "hazardous": false } }
The answer, shortened
{
  "source": {
    "name": "ComplyOnSite",
    "url": "https://complyonsite.com/tools/waste-transfer-note"
  },
  "jurisdiction": "England",
  "document": "Waste transfer note",
  "available": true,
  "paperwork": {
    "id": "gb-eng-transfer",
    "country": "United Kingdom",
    "countryId": "gb",
    "place": "England",
    "covers": "Non-hazardous waste",
    "kind": "note",
    "electronic": {
      "answer": "yes",
      "label": "Yes",
      "note": "It must be viewable in a visible, legible form.",
      "from": "spec",
      "source": null
    },
    "signature": {
      "answer": "yes",
      "label": "Yes",
      "note": "An electronic note takes an electronic signature.",
      "from": "spec",
      "source": null
    },
    "tool": {
      "href": "/tools/waste-transfer-note",
      "label": "Waste transfer note"
    },
    "document": "Waste transfer note",
    "issuedBy": "Anyone: the law sets the items, not the layout",
    "parties": [
      {
        "role": "Transferor (the person handing the waste over)",
        "does": "Sections A and B, and signs section D",
        "optional": false
      },
      {
        "role": "Transferee (the person collecting it)",
        "does": "Section C, and signs section D",
        "optional": false
      }
    ],
    "partiesFrom": "text",
    "items": null,
    "kept": {
      "years": 2,
      "who": "Transferor and transferee",
      "rule": "The transferor and the transferee each keep the note, or a copy, for at least 2 years."
    },
    "system": {
      "name": "Digital waste tracking",
      "url": "https://www.gov.uk/government/publications/digital-waste-tracking-service/digital-waste-tracking-service",
      "note": "Permitted receiving sites report each load from 1 October 2026; the note still goes with the waste."
    },
    "sources": [
      {
        "title": "Waste (England and Wales) Regulations 2011, regulation 35",
        "url": "https://www.legislation.gov.uk/uksi/2011/988/regulation/35",
        "read": "6 October 2026"
      },
      {
        "title": "Digital waste tracking service (GOV.UK)",
        "url": "https://www.gov.uk/government/publications/digital-waste-tracking-service/digital-waste-tracking-service",
        "read": "6 October 2026"
      }
    ]
  },
  "rules": {
    "changes": "The waste hierarchy statement is England and Wales’s, and registration numbers are checked with the Environment Agency.",
    "hierarchy": "By signing in section D, I confirm that I have fulfilled my duty to apply the waste hierarchy as required by regulation 12 of the Waste (England and Wales) R…",
    "producerImporter": false,
    "destination": false,
    "regulator": "the Environment Agency",
    "register": "https://environment.data.gov.uk/public-register/view/search-waste-carriers-brokers",
    "tiers": true,
    "hazardous": {
      "href": "https://www.gov.uk/dispose-hazardous-waste/consignment-notes",
      "label": "Consignment notes on GOV.UK"
    },
    "tracking": "Since 1 October 2026"
  },
  "sources": [
    {
      "title": "Waste transfer note",
      "url": "https://complyonsite.com/tools/waste-transfer-note"
    },
    {
      "title": "Waste paperwork by jurisdiction",
      "url": "https://complyonsite.com/data/waste-paperwork#doc-gb-eng-transfer"
    },
    "… 2 more"
  ],
  "limit": "Business waste, one non-hazardous transfer. This identifies the note route; it does not decide every exemption or certify a movement."
}

Get a compliance document link

start_document · read-only

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.

Inputs

Option 1: document "waste-transfer-note" or document "consignment-note":

document "waste-transfer-note" or "consignment-note", required

With document: "waste-transfer-note": Open the non-hazardous waste transfer note. With document: "consignment-note": Open the hazardous waste consignment note.

codes list of text, optional

With document: "waste-transfer-note": Non-hazardous EWC codes to prefill; defaults to none, maximum 5. At most 5 items. Each: Short human-readable label or stable slug, up to 60 characters. 1 to 60 characters. With document: "consignment-note": Hazardous EWC codes to prefill; defaults to none, maximum 5. At most 5 items. Each: Short human-readable label or stable slug, up to 60 characters. 1 to 60 characters.

Option 2: document "rams":

document "rams", required

Open the RAMS flow.

job text, optional

RAMS job slug returned in an error when an unknown slug is supplied. 1 to 60 characters.

operation text, optional

Supported operation slug belonging to the selected job. 1 to 60 characters.

Example

Ask: “Start a waste transfer note for mixed rubble and wood.”

{ "name": "start_document", "arguments": { "document": "waste-transfer-note", "codes": [ "17 09 04", "17 02 01" ] } }
The answer, shortened
{
  "source": {
    "name": "ComplyOnSite",
    "url": "https://complyonsite.com/tools/waste-transfer-note"
  },
  "url": "https://complyonsite.com/tools/waste-transfer-note?code=170904-170201",
  "prefilled": {
    "codes": [
      "170904",
      "170201"
    ]
  },
  "created": false,
  "sources": [
    {
      "title": "Waste transfer note",
      "url": "https://complyonsite.com/tools/waste-transfer-note"
    },
    {
      "title": "Commission Decision 2000/532/EC, Annex: List of wastes (as retained in UK law)",
      "name": "the UK List of Waste",
      "url": "https://www.legislation.gov.uk/eudn/2000/532/annex",
      "edition": "revised version as at 31 December 2020",
      "read": "27 September 2026"
    }
  ],
  "limit": "Only EWC codes are filled in. Jurisdiction must be chosen on the page. Parties, addresses, load details, dates and signatures need a versioned answer-import …"
}

What an answer contains

source
The ComplyOnSite page that shows the same answer, with its address.
sources
The regulations, HSE guidance or data behind the figures, with links.
limit
What the answer does not establish, for example that a search result is not a waste classification.
Format
The same JSON comes as text and as structured content.
Errors
An input the tool does not know, such as an unlisted waste code or tool type, returns an error with the accepted choices.

Limits

Requests
6000 every 60 seconds, and 600 every 10 seconds from one IP address, counted separately at each Cloudflare location.
Over the limit
HTTP 429, with Retry-After: 60 or Retry-After: 10.
Request size
Up to 32 KB. Each tool also limits its own inputs, shown in its table.
Methods
POST, OPTIONS. No sessions and no event stream.

Privacy

  • No account, key, sign-in or cookie.
  • Read-only: no tool stores or changes anything.
  • Tool arguments and answers are not logged.
  • Your IP address is used to count requests against the limit.
  • For 10% of requests, chosen at random, Cloudflare keeps logs and traces for 7 days: the time, IP address and the approximate location and network it implies, the client name, the request headers including which tool was called, and the response status.
  • No analytics.

The privacy policy covers the server in full.

Support