About
Safetyculture — Model Context Protocol server
README
A Model Context Protocol (MCP) server for the SafetyCulture API. This project allows users to ask natural language questions about their SafetyCulture data after providing an API key.
Features
- Query SafetyCulture data using natural language
- Analyze inspection data and trends
- Compare safety metrics across time periods and categories
- Visualize inspection trends over time
Setup
- Clone this repository
- Install dependencies:
pip install -r requirements.txt - Copy
example.envto.envand configure your SafetyCulture API key - Run the server using one of these methods:
run_server.bat- Run the server with configuration from .env filerun_with_key.bat YOUR_API_KEY- Run the server with the provided API key
Testing the API
To test if your SafetyCulture API key works properly:
test_api.bat YOUR_API_KEY
Additional testing options:
test_api.bat- Run tests in interactive mode (prompts for API key)test_api.bat feed YOUR_API_KEY- Test just the Feed APItest_api.bat url- Check which API URLs are accessible without authentication
Usage with Claude for Desktop
- Install Claude for Desktop
- Configure Claude for Desktop to use this MCP server by editing the configuration file at
~/Library/Application Support/Claude/claude_desktop_config.json(Mac) or%APPDATA%\Claude\claude_desktop_config.json(Windows) - Add the following configuration:
{
"mcpServers": {
"safetyculture": {
"command": "python",
"args": [
"/path/to/your/project/src/main.py"
]
}
}
}
- Restart Claude for Desktop
- Use the MCP tools to query your SafetyCulture data with questions like:
- "How many inspections were done in this site over the last 3 months?"
- "Compare any trends in rise of injuries report for this category"
Available Tools
Authentication
authenticate: Authenticate with the SafetyCulture API using your API key
Inspection Data (Using Feed API)
get_inspections: Get SafetyCulture inspections for a specific time periodget_inspection_trends: Analyze trends in SafetyCulture inspections over timecompare_injury_reports: Compare injury reports between two time periods
Action Data (Using Feed API)
get_actions: Get SafetyCulture actions for a specific time period- Filter by status (e.g., 'in_progress', 'completed', 'overdue')
- Filter by priority (e.g., 'low', 'medium', 'high')
- View detailed information about each action
get_action_details: Get detailed information about a specific action by ID
About the Feed API
This MCP server uses the SafetyCulture Feed API, which provides a simple way to access collections of resources:
/feed/inspections: For listing inspections with various filter parameters/feed/actions: For listing actions with various filter parameters
The Feed API is preferred over the individual resource endpoints when you need to list multiple items.
Development
Project Structure
.
├── README.md
├── requirements.txt
├── example.env
└── src/
├── main.py # Main entry point
├── safetyculture_api/ # SafetyCulture API client
│ ├── __init__.py
│ └── client.py # API client implementation
├── tools/ # MCP tools
│ ├── __init__.py
│ └── inspection_tools.py # Inspection and action tools
└── utils/ # Utility modules
├── __init__.py
├── analysis.py # Data analysis utilities
├── config.py # Configuration management
└── date_utils.py # Date parsing utilities
Development Log
Initial Setup
- Created project structure
- Set up git repository
- Added README and requirements
- Implemented SafetyCulture API client
- Added MCP tools for querying inspection data
- Added utility modules for date parsing and data analysis
- Added configuration management
Installing Safetyculture
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/zerubroberts/safetyculture-mcp-serverFAQ
Is Safetyculture MCP free?
Yes, Safetyculture MCP is free — one-click install via Unyly at no cost.
Does Safetyculture need an API key?
No, Safetyculture runs without API keys or environment variables.
Is Safetyculture hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Safetyculture in Claude Desktop, Claude Code or Cursor?
Open Safetyculture on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Safetyculture with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
