Koskamo

Jobsite MCP

An official MCP server by Jobsite providing free access to verbatim OSHA and state regulation text, the OSHA 1904 recordability decision tree, nearly 300 bilingual toolbox talks, regulatory news, and product documentation. It also supports a sample-data workspace creation without requiring user authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Jobsite MCP logo, by JobsiteVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Jobsite
MCP endpoint (Streamable HTTP)
https://jobsitecerts.com/api/mcp/public
Vendor documentation

What you can do with it

  • Search verbatim OSHA and state regulation text with citations
  • Run the OSHA 1904 recordability decision tree for injury classification
  • Retrieve bilingual construction toolbox talks
  • Look up Jobsite product documentation and features

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
jobsite-mcp 1.0.0
MCP protocol
2025-06-18
Tools
7 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
1 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Jobsite is construction safety, training-compliance and operations software. This is its free, no-login tier: reference tools that read no company's records and need no account, plus one tool that starts a sample workspace for a person. Tools: search_law_corpus returns verbatim regulation text — 29 CFR plus the California, Washington and Oregon heat and wildfire-smoke rules, OSHA interpretations and NIOSH/CDC/EPA guidance — each match labeled with its authority tier (T1 binding law; T2 agency interpretation; T3 technical guidance). Quote T2/T3 as what the agency says or recommends, never as a requirement. An empty result means "not in Jobsite's corpus", never "no such rule". osha_recordability_check applies the OSHA 29 CFR 1904 decision tree to the facts of an injury and cites the rule text; unknown facts come back as questions. get_toolbox_talk returns a ready-to-deliver toolbox talk (English or Spanish) by topic, hazard or standard number. search_regulatory_news searches recent Federal Register and OSHA news. lookup_jobsite_docs explains how Jobsite itself works; search_articles finds Jobsite's published articles and comparisons. start_jobsite_workspace creates a new Jobsite workspace holding only sample data and returns a one-time claim link for the person to open; it takes no personal details, the link expires in 7 days, and adding real workers needs a plan. Use it only when the person wants to try Jobsite, and give them the link. What needs an account: anything about a specific company's workers, training records, certifications, jobs, incidents or bills. Those tools are on the signed-in connector at https://jobsitecerts.com/api/mcp (OAuth; https://jobsitecerts.com/mcp explains it). A tool name this tier doesn't list returns a refusal saying so. Limits: requests are rate-limited per network address; a refusal says how long to wait. Results carry citations or links; quote them as given.

Tools

7 advertised

lookup_jobsite_docs — Search the Jobsite product guide
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

lookup_jobsite_docs input schema
{
  "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
}
lookup_jobsite_docs annotations
{
  "title": "Search the Jobsite product guide",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_articles — Search Jobsite articles
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_articles input schema
{
  "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_articles annotations
{
  "title": "Search Jobsite articles",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_law_corpus — Search the regulation corpus
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

search_law_corpus input schema
{
  "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_law_corpus annotations
{
  "title": "Search the regulation corpus",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_regulatory_news — Search regulatory news
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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

search_regulatory_news input schema
{
  "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
}
search_regulatory_news annotations
{
  "title": "Search regulatory news",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
osha_recordability_check — OSHA recordability check
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

osha_recordability_check input schema
{
  "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
}
osha_recordability_check annotations
{
  "title": "OSHA recordability check",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_toolbox_talk — Get a toolbox talk
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_toolbox_talk input schema
{
  "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
}
get_toolbox_talk annotations
{
  "title": "Get a toolbox talk",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
start_jobsite_workspace — Start a sample Jobsite workspace
Advertised by the server during the last successful anonymous check.

Create a new Jobsite workspace that holds only sample data (a sample crew, jobs and safety records; nothing real) for the person you are helping, so they can try Jobsite without setting anything up. Returns a one-time claim link to give them: opening it lets them create their login (or sign in) and own the workspace. The link expires in 7 days, and an unclaimed workspace is then deleted. Exploring the sample data is free; adding real workers needs a Jobsite plan. Takes no personal details. Limited to 3 workspaces a day per network address. Optional: company_name, focus (safety or home services) and the company's trade.

start_jobsite_workspace input schema
{
  "type": "object",
  "properties": {
    "focus": {
      "enum": [
        "safety",
        "home_services"
      ],
      "type": "string",
      "description": "safety (default): the Safety Suite. home_services: the Home Services Suite (service calls, estimates)."
    },
    "trade": {
      "type": "string",
      "maxLength": 40,
      "description": "The company's trade in a few words, e.g. \"roofing\" or \"HVAC\"; it sets the workspace's industry when it matches one Jobsite lists."
    },
    "company_name": {
      "type": "string",
      "maxLength": 80,
      "description": "The company name for the workspace (default \"Sample Company\"). The person can change it later."
    }
  },
  "additionalProperties": false
}
start_jobsite_workspace annotations
{
  "title": "Start a sample Jobsite workspace",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

1 advertised

incident_first_24h — Incident: the first 24 hours

Advertised by the server during the last successful anonymous check.

Walk an injury through Jobsite's OSHA 1904 recordability check, with the rule text and any reporting deadline.

what_happened
What happened, to whom (role, not name), and the treatment given. (required)

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
682 ms
95th percentile latency
682 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 682 ms · metadata changed · 7 tool(s), 0 resource(s), 0 resource template(s), 1 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http jobsite-mcp-jobsitecerts https://jobsitecerts.com/api/mcp/public

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add jobsite-mcp-jobsitecerts --url https://jobsitecerts.com/api/mcp/public

Cursor

Merge this server into .cursor/mcp.json in your project, then enable jobsite-mcp-jobsitecerts in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "jobsite-mcp-jobsitecerts": {
      "url": "https://jobsitecerts.com/api/mcp/public"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "jobsite-mcp-jobsitecerts": {
      "type": "streamableHttp",
      "url": "https://jobsitecerts.com/api/mcp/public",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start jobsite-mcp-jobsitecerts and inspect its tools.
VS Code configuration
{
  "servers": {
    "jobsite-mcp-jobsitecerts": {
      "type": "http",
      "url": "https://jobsitecerts.com/api/mcp/public"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http jobsite-mcp-jobsitecerts https://jobsitecerts.com/api/mcp/public

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "jobsite-mcp-jobsitecerts": {
      "url": "https://jobsitecerts.com/api/mcp/public"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "jobsite-mcp-jobsitecerts": {
      "serverUrl": "https://jobsitecerts.com/api/mcp/public"
    }
  }
}

Let your agent find its tools

Find servers like Jobsite MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Jobsite MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing