For AI assistants

OSHA recordkeeping checks, inside ChatGPT or Claude

Four of LogStead’s checks are available to AI assistants through the Model Context Protocol (MCP). Ask your assistant whether you have to keep OSHA records, whether you have to submit to OSHA electronically, what your deadlines are, or what your TRIR is, and it runs the same rules LogStead does. Every result the tools return cites the regulation behind it.

Connect

In ChatGPT, install LogStead from its plugin listing. In any other assistant that supports custom MCP connectors, add this server URL. There is no sign-in and no API key.

https://logstead.app/api/mcp

Tools

  • 29 CFR 1904.1 · 1904.2 · 1904.39

    recordkeeping_exemption_check

    Whether an establishment has to keep OSHA injury and illness records or is partially exempt: by company size (10 or fewer employees at all times last year) or by industry (OSHA’s partially exempt list, matched by NAICS code). Also lists the duties that apply either way, such as reporting a work-related fatality within 8 hours.

  • 29 CFR 1904.41 · Appendices A and B to Subpart E

    ita_filing_check

    Whether an establishment must make the routine annual submission of its Form 300A summary, and its Form 300 and 301 case data, to OSHA’s Injury Tracking Application for a year’s records, from that year’s peak headcount and its NAICS code, with that year’s March 2 deadline and whether it has passed. A code it can’t match definitively gets “possibly required”, never an all-clear, and an OSHA notice of an individual data collection applies whatever the answer.

  • 29 CFR 1904.29 · 1904.32 · 1904.33 · 1904.35 · 1904.39 · 1904.41

    recordkeeping_deadlines

    The deadlines for one year’s records: record a case within 7 calendar days, report a fatality within 8 hours and a hospitalization, amputation or loss of an eye within 24 when the event is one 1904.39 covers, post the 300A from February 1 to April 30, submit by March 2 when required, keep the records five years, and give employees copies of their establishment’s records by the end of the next business day. Each item says which events or requests it covers.

  • OSHA forms package · BLS SOII 2024

    incidence_rates

    TRIR and DART rates from your case counts and hours worked, each compared with the Bureau of Labor Statistics 2024 private-industry average for your industry, for context.

All four are read-only: they compute from what you pass in and change nothing. The same rules power the free tools on this site.

Try asking

  • We have 14 employees at one warehouse. Do we have to keep an OSHA 300 log?
  • Our sawmill had 60 employees at peak last year. Do we have to submit our 300A to OSHA electronically, and by when?
  • What are our OSHA recordkeeping deadlines for our 2026 records?
  • We had 3 recordable cases last year, 1 with days away from work, and 104,000 hours worked. What are our TRIR and DART rates?

Reference

For directories and platforms reviewing the connector, and for anyone wiring it into their own assistant.

ToolInputReturnsClass
recordkeeping_exemption_checkcompany_peak_employees: integer, 0 to 1,000,000 · naics_code: optional, 6 digitsmust_keep_records, basis, headline, explanation, company_peak_employees, naics_code, partially_exempt_industry, still_required, size_rule, industry_rule, naics_note, scope, sources, disclaimer, learn_more_urlRead
ita_filing_checkpeak_employees: integer, 0 to 1,000,000 · naics_code: optional, 6 digits · records_year: optional, 2023 to the current year (default: the last full year)result, headline, explanation, records_year, records_year_complete, form_300a_summary, forms_300_301_case_data, partially_exempt_industry, peak_employees, naics_code, employee_count_rule, routine_only, deadline, submission_deadline (date, covers_records_year, status), year_notes, naics_note, scope, sources, disclaimer, tool_urlRead
recordkeeping_deadlinesrecords_year: optional, 2000 to 2100 (default: the current year)records_year, today, deadlines (id, obligation, applies_when, when, starts, ends, status, cite), notes, scope, sources, disclaimer, learn_more_urlRead
incidence_ratesrecordable_cases: integer, 0 to 1,000,000 · dart_cases: optional integer, 0 to 1,000,000 · hours_worked: optional, above 0 · average_employees: optional, only to estimate hours · naics_code: optional, 3 to 6 digitstrir, dart_rate, recordable_cases, dart_cases, hours_worked, hours_estimated, formula, hours_rule, trir_benchmark and dart_benchmark (average, compared_with, level, matched_naics, your_rate_is), benchmark_note, sources, disclaimer, tool_urlRead
Classification
Read, for all four. None writes data, changes an account or acts for the user, so none is a write or a sensitive write. Each declares readOnlyHint true, destructiveHint false, idempotentHint true and openWorldHint false.
Permissions
None. There is no sign-in, OAuth scope or API key, so no test account is needed to exercise every tool.
Side effects
None. Inputs are used to compute the result and are not stored.
Results
Every successful call returns a text summary and structured content that matches the tool’s output schema, with its sources (cite, URL, date read) and the not-legal-advice note. Each result links to the matching page on this site, tagged utm_source=mcp_plugin.
Status
Each call is synchronous: the response is the final result, so there is nothing to poll. The server is stateless: it issues no session, and a tools/call works without a prior initialize.
Errors
Input that fails a tool’s schema (a negative count, a NAICS code in the wrong format, a year out of range) returns a result marked isError, with a message naming the field. So do the rules a schema can’t express: ita_filing_check refuses a records_year that hasn’t started, and incidence_rates needs hours_worked or average_employees and refuses more DART cases than recordable cases. Unknown arguments are ignored, but a call whose arguments hold more than 32 values in all (array elements and object keys) returns a result marked isError. An unknown tool name returns JSON-RPC error -32602. A request body over 64 KiB is refused with HTTP 413 and JSON-RPC error -32000 before any tool runs.
Rate limits
We set no rate limit of our own on this endpoint. Each request is capped in size: a body of at most 64 KiB, and at most 32 argument values per tool call (see Errors).
Transport
MCP over Streamable HTTP (JSON-RPC 2.0) at the URL above. Server version 1.1.2.

Your data

The server needs no account and cannot see any LogStead workspace or record. It receives only the inputs a check needs (a headcount, a NAICS code, case counts and hours, or a year), uses them to compute the answer, and does not store them or record them in analytics. Please leave names and other personal details out of your requests. Details are in the Privacy Policy.

Questions: support@logstead.app.

This tool gives general information based on OSHA’s recordkeeping rules (29 CFR Part 1904) to help you understand your obligations. It is not legal advice and does not replace the current regulation or the judgment of a qualified safety professional. Rules can change and edge cases exist — verify results against the current text at osha.gov/recordkeeping and consult a professional before making a compliance decision.