Free, no-login construction safety tools: OSHA rule text, toolbox talks, 1904 recordability.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
A ready-to-deliver construction toolbox talk from Jobsite's library of nearly 300 talks, in English or Spanish: title, talking points, a discussion question, duration, and the OSHA standards it is built on. Find one by topic or hazard in plain words ("trenching", "heat", "ladder setup") or by standard number ("1926.501"), or fetch one by talk_number. Returns the best match plus up to five other matching titles.
The hazard, task or standard, e.g. "trench cave-ins", "silica", "1926.1053".
en (default) or es (Spanish).
Or one talk by its number (from other_matches).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http safety-reference https://jobsitecerts.com/api/mcp/public
A ready-to-deliver construction toolbox talk from Jobsite's library of nearly 300 talks, in English or Spanish: title, talking points, a discussion question, duration, and the OSHA standards it is built on. Find one by topic or hazard in plain words ("trenching", "heat", "ladder setup") or by standard number ("1926.501"), or fetch one by talk_number. Returns the best match plus up to five other matching titles.
| Argument | Type | Description |
|---|---|---|
| topic | string | The hazard, task or standard, e.g. "trench cave-ins", "silica", "1926.1053". |
| language | string | en (default) or es (Spanish). |
| talk_number | integer | Or one talk by its number (from other_matches). |
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "The hazard, task or standard, e.g. \"trench cave-ins\", \"silica\", \"1926.1053\"."
},
"language": {
"enum": [
"en",
"es"
],
"type": "string",
"description": "en (default) or es (Spanish)."
},
"talk_number": {
"type": "integer",
"minimum": 1,
"description": "Or one talk by its number (from other_matches)."
}
},
"additionalProperties": false
}Look up how Jobsite (this product) works — features, UI navigation, terminology, account / billing, worker-side experience, what counts as a 'group' vs 'crew', etc. Use this for any 'how do I…' / 'where do I find…' / 'what does X mean in Jobsite' question. Returns matching sections from the curated product guide. NOT for OSHA / regulatory questions (use search_law_corpus or search_training_source) and NOT for tenant data lookups (use list_workers, list_expiring_certs, etc.). If a returned section is flagged todo:true, the topic is in scope but not yet documented — say so rather than inventing an answer.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max sections to return. Defaults to 4, cap 8. |
| query* | string | Natural-language query, e.g. 'how do I add a worker', 'difference between groups and crews', 'where do I see expiring certs'. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "Max sections to return. Defaults to 4, cap 8."
},
"query": {
"type": "string",
"description": "Natural-language query, e.g. 'how do I add a worker', 'difference between groups and crews', 'where do I see expiring certs'."
}
},
"additionalProperties": false
}Runs Jobsite's deterministic OSHA 29 CFR 1904 decision tree on the facts of an injury or illness: returns the proposed 300-log classification (or the questions still needed), the rationale with verbatim 1904 quotes, and any report-to-OSHA deadline (8 or 24 hours). Map the story to the answers; leave out anything not known — unknowns come back as questions, never guesses. Reads and writes no records.
| Argument | Type | Description |
|---|---|---|
| death | boolean | |
| new_case | boolean | A new case, not a recurrence of one already recorded. |
| days_away | boolean | ≥1 calendar day away after the day of injury (taken or recommended). |
| exception | string | A 1904.5(b)(2) work-relatedness exception, or none. |
| treatments | array | Every care given ([] = none). First-aid items are the closed 1904.7(b)(5)(ii) list; anything else is medical treatment. |
| loss_of_consciousness | boolean | |
| significant_diagnosis | boolean | Cancer, chronic irreversible disease, fractured/cracked bone or punctured eardrum, diagnosed by a clinician. |
Search Jobsite's published marketing content — blog articles, head-to-head COMPETITOR COMPARISON pages (e.g. 'Jobsite vs Procore', 'Jobsite vs SiteDocs', 'Jobsite vs SafetyCulture'), and pillar guides. Use this whenever the user asks how Jobsite compares to a competitor ('how are you better than Procore', 'Jobsite vs SafetyCulture', 'why pick you over X'), or asks for a published article on a construction-safety topic. Returns matching articles with a relevant excerpt and a link to the full page. This is DISTINCT from lookup_jobsite_docs (product how-to) and search_training_source (OSHA regulatory). If nothing matches, say you don't have an article on it rather than inventing a comparison.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max articles to return. Defaults to 4, cap 6. |
| query* | string | Natural-language query, e.g. 'how is Jobsite better than Procore', 'Jobsite vs SiteDocs', 'confined space article'. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "Max articles to return. Defaults to 4, cap 6."
},
"query": {
"type": "string",
"description": "Natural-language query, e.g. 'how is Jobsite better than Procore', 'Jobsite vs SiteDocs', 'confined space article'."
}
},
"additionalProperties": false
}Search the VERBATIM authority corpus behind Jobsite's training: 29 CFR regulation text (per-section, with citations), the CA/WA/OR state rules for heat illness and wildfire smoke, plus OSHA interpretations and NIOSH/CDC/EPA technical guidance the training cites. Use this when the user asks what an authority ACTUALLY SAYS — exact rule language, a specific citation ('what does 1926.501 require'), trigger heights, employer duties — and quote the returned text with its citation heading and jurisdiction. EVERY match carries an `authority` field: T1 is binding law, T2 is an agency interpretation and T3 is technical guidance. READ IT BEFORE YOU CHARACTERISE THE MATCH — quote a T2/T3 match as what that agency recommends or says, NEVER as what a regulation requires, and never call it a rule. This is DISTINCT from search_training_source (what Jobsite's TRAINING teaches, paraphrased) — prefer search_law_corpus when the user wants the source itself. The corpus spans the topics Jobsite trains on plus the authorities they cite, NOT all of 29 CFR: an empty result means 'not in the corpus', never 'no such rule exists'.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max sections to return. Defaults to 4, cap 8. |
| query* | string | Plain-words regulatory question or a citation number — 'fall protection trigger height', '1926.501', 'silica exposure control plan'. |
| jurisdiction | string | Optional filter. Omit to search all jurisdictions (federal is most of the corpus). |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "Max sections to return. Defaults to 4, cap 8."
},
"query": {
"type": "string",
"description": "Plain-words regulatory question or a citation number — 'fall protection trigger height', '1926.501', 'silica exposure control plan'."
},
"jurisdiction": {
"enum": [
"federal",
"california",
"washington",
"oregon"
],
"type": "string",
"description": "Optional filter. Omit to search all jurisdictions (federal is most of the corpus)."
}
},
"additionalProperties": false
}Search recent regulatory / safety news from the Federal Register (filtered to OSHA) and the OSHA news RSS feed. Use for questions about recent rule changes, enforcement memos, or news that might affect a training course's content (e.g. 'any silica updates this year', 'recent fall protection rulemaking'). Returns titles, agencies, dates, URLs, and short summaries — pure pass-through, nothing is persisted. Prefer specific multi-word queries built around an OSHA topic or standard ('respirable silica §1926.1153', 'lockout tagout enforcement', 'fall protection 1926.501'). NOT for tenant-data questions; NOT for general OSHA reference (use search_training_source for established standards).
| Argument | Type | Description |
|---|---|---|
| limit | number | Max results to return per source. Defaults to 6, cap 12. |
| query* | string | Natural-language search terms. Best with topical keywords plus standard numbers when known. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "Max results to return per source. Defaults to 6, cap 12."
},
"query": {
"type": "string",
"description": "Natural-language search terms. Best with topical keywords plus standard numbers when known."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 31, 2026.
| amputation_or_eye_loss |
| boolean |
| Amputation (incl. a fingertip) or loss of an eye. |
| work_environment_event | boolean | An event or exposure at work caused or contributed. |
| inpatient_hospitalization | boolean | Formal in-patient admission for care (not observation only). |
| restricted_or_transferred | boolean | Restricted work or job transfer beyond the day of injury. |
{
"type": "object",
"properties": {
"death": {
"type": "boolean"
},
"new_case": {
"type": "boolean",
"description": "A new case, not a recurrence of one already recorded."
},
"days_away": {
"type": "boolean",
"description": "≥1 calendar day away after the day of injury (taken or recommended)."
},
"exception": {
"enum": [
"none",
"general_public",
"symptoms_only_surfaced_at_work",
"voluntary_wellness",
"personal_food",
"personal_tasks_off_hours",
"grooming_self_medication_self_inflicted",
"commuting_accident",
"cold_or_flu",
"mental_illness_no_opinion"
],
"type": "string",
"description": "A 1904.5(b)(2) work-relatedness exception, or none."
},
"treatments": {
"type": "array",
"items": {
"enum": [
"otc_at_otc_strength",
"tetanus_shot",
"wound_cleaning",
"simple_wound_covering",
"hot_cold_therapy",
"non_rigid_support",
"transport_immobilization",
"nail_drain_blister",
"eye_patch",
"eye_irrigation_swab",
"splinter_removal",
"finger_guard",
"massage",
"heat_stress_fluids",
"rx_medication",
"otc_at_rx_strength",
"non_tetanus_immunization",
"sutures_staples_glue",
"rigid_immobilization",
"physical_therapy_chiro",
"other_medical_treatment",
"observation_only",
"diagnostic_only"
],
"type": "string"
},
"description": "Every care given ([] = none). First-aid items are the closed 1904.7(b)(5)(ii) list; anything else is medical treatment."
},
"loss_of_consciousness": {
"type": "boolean"
},
"significant_diagnosis": {
"type": "boolean",
"description": "Cancer, chronic irreversible disease, fractured/cracked bone or punctured eardrum, diagnosed by a clinician."
},
"amputation_or_eye_loss": {
"type": "boolean",
"description": "Amputation (incl. a fingertip) or loss of an eye."
},
"work_environment_event": {
"type": "boolean",
"description": "An event or exposure at work caused or contributed."
},
"inpatient_hospitalization": {
"type": "boolean",
"description": "Formal in-patient admission for care (not observation only)."
},
"restricted_or_transferred": {
"type": "boolean",
"description": "Restricted work or job transfer beyond the day of injury."
}
},
"additionalProperties": false
}