Breathe HR
About
Provides secure, read-write access to Breathe HR data for AI assistants.
Details
- Author
- fuzzylabs
- Categories
- Productivity, API
Jump to
Setup
Install Breathe HR in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/fuzzylabs/breathehr-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
Connect your Breathe HR data to AI assistants— Access employees, absences, leave requests, and company information through natural language queries, with secure read-write capabilities.
🚨 Disclaimer: This project is created byFuzzy Labswith good vibes and is not officially supported by Breathe HR. Use at your own discretion.
Transform how you work with your Breathe HR data by asking AI assistants natural language questions like:
- "Show me all employees in the Engineering department"
- "Who has pending leave requests this month?"
- "Create a holiday request for John Doe from March 1-5"
- "Search for employees named Sarah"
- "What's our current headcount by department?"
🔐 Secure Access— API key authentication with controlled permissions
🚀 Instant Setup— Works with any MCP-compatible AI assistant
📊 Complete Coverage— Access employees, absences, departments & more
- Log into your Breathe HR account
- Go toSettings → Integrations → API
- Create a new API key and copy it
# Install uv (Python package manager) curl -LsSf https://astral.sh/uv/install.sh | sh # Clone and install git clone https://github.com/fuzzylabs/breathehr-mcp.git cd breathehr-mcp uv sync
# Install uv curl -LsSf https://astral.sh/uv/install.sh | sh # Linux/macOS # OR for Windows: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Clone and install git clone https://github.com/fuzzylabs/breathehr-mcp.git cd breathehr-mcp uv sync
Add this to your Claude Desktop config file:
- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:%APPDATA%/Claude/claude_desktop_config.json
{ "mcpServers": { "breathe-hr": { "command": "uv", "args": [ "run", "--directory", "/path/to/your/breathehr-mcp", "python", "-m", "breathe_hr_mcp" ], "env": { "BREATHE_HR_API_KEY": "your_breathe_hr_api_key_here" } } } }
Copy this Cursor deeplink and paste it in your browser address bar:
cursor://anysphere.cursor-deeplink/mcp/install?name=breathe-hr&config=eyJicmVhdGhlLWhyIjp7ImNvbW1hbmQiOiJ1diIsImFyZ3MiOlsicnVuIiwiLS1kaXJlY3RvcnkiLCIvcGF0aC90by95b3VyL2JyZWF0aGVoci1tY3AiLCJweXRob24iLCItbSIsImJyZWF0aGVfaHJfbWNwIl0sImVudiI6eyJCUkVBVEhFX0hSX0FQSV9LRVkiOiJ5b3VyX2JyZWF0aGVfaHJfYXBpX2tleV9oZXJlIn19fQ== 💡 How to use: 1. Copy the entire cursor:// URL above 2. Paste it into your browser's address bar 3. Press Enter - this will open Cursor and prompt to install the MCP server Note: After clicking the button, you'll need to: 1. Update the path /path/to/your/breathehr-mcp to your actual installation directory 2. Replace your_breathe_hr_api_key_here with your actual Breathe HR API key Or manually add this to your Cursor MCP settings: json { "breathe-hr": { "command": "uv", "args": [ "run", "--directory", "/path/to/your/breathehr-mcp", "python", "-m", "breathe_hr_mcp" ], "env": { "BREATHE_HR_API_KEY": "your_breathe_hr_api_key_here" } } }
This server is compatible with any MCP client. Refer to your client's documentation for MCP server configuration.
- Using uv (recommended):Useuv runcommand as shown above - no Python path needed!
- uv path for Claude Desktop:Use full path~/.local/bin/uv(find yours withwhich uv)
- Manual Python paths (if not using uv):
- macOS (Homebrew):/opt/homebrew/bin/python3(Apple Silicon) or/usr/local/bin/python3(Intel)
- macOS (System):/usr/bin/python3(if available)
- Find your Python:Runwhich python3in terminal
- Windows:TryC:\Python311\python.exe
- Restart your AI assistant
- Start asking questions!
"List my Breathe HR employees"
"Show me pending leave requests"
"Create a holiday request for employee 123"
"Find employees in Engineering department"
This MCP server providessecure accessto your Breathe HR data:
- list_employees- Get paginated employee list with filters
- get_employee- Get detailed employee information
- search_employees- Search employees by query
- list_absences- Get absence records with filtering
- create_leave_request- Submit new leave requests
- get_employee_absences- Get absences for specific employee
- get_account_info- Get company account details
- get_departments- List all departments
"No module named 'breathe_hr_mcp'"
- Using uv:Make sure you're using the absolute directory path withuv run --directory
- Manual setup:Verify Python can find the installed packages:pip list | grep fastmcp
"spawn uv ENOENT" or "command not found: uv"
- Install uv first:curl -LsSf https://astral.sh/uv/install.sh | sh
- Restart your terminal after installation
- Verify installation:uv --version
"spawn python ENOENT" (if not using uv)
- Switch to uv setup (recommended) or use full Python path in config
- Check your Python path:which python3
- Try different common paths:/usr/bin/python3,/usr/local/bin/python3,/opt/homebrew/bin/python3
- Verify your Breathe HR API key is correct
- Check the key has appropriate permissions in Breathe HR
- Make sure there are no extra spaces or quotes around the key
- Breathe HR has API rate limits
- Wait a few minutes before trying again
- Reduce the frequency of requests
MCP tools not showing in your AI assistant
- Restart your AI assistant after config changes
- Check the config file syntax is valid JSON
- Verify file paths are absolute, not relative
- Issues & Bugs:GitHub Issues
- Breathe HR API Docs:developers.breathehr.com
- MCP Protocol:modelcontextprotocol.io
Render Deployment (Secure Remote HTTP Access)
Want to deploy the MCP server remotely so multiple users can access it via HTTP? Deploy to Render for easy cloud hosting with API key authentication.
-
Fork this repositoryto your GitHub account
Create a new Web Serviceand connect your GitHub fork
- Build Command:pip install uv && uv sync
- Start Command:uv run uvicorn breathe_hr_mcp:app --host 0.0.0.0 --port $PORT
- Plan:Free (or choose a paid plan for better performance)
Set environment variablesin Render dashboard:
- BREATHE_HR_API_KEY: Your Breathe HR API key
- MCP_API_KEY: A secure random API key for authentication (see generation instructions below)
Deploy- Render will automatically build and deploy your service
Generate a secure random API key for theMCP_API_KEYenvironment variable:
# Using Python python -c "import secrets; print(secrets.token_urlsafe(32))" # Using OpenSSL openssl rand -base64 32 # Using Node.js node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
⚠️Important: Store this API key securely - you'll need it to configure your MCP clients.
Once deployed, you'll get a URL likehttps://your-service.onrender.com. Configure your MCP clients to use:
{ "mcpServers": { "breathe-hr": { "command": "curl", "args": [ "-X", "POST", "https://your-service.onrender.com/mcp/", "-H", "Content-Type: application/json", "-H", "Authorization: Bearer YOUR_MCP_API_KEY_HERE", "-d", "@-" ] } } }
ReplaceYOUR_MCP_API_KEY_HEREwith the API key you generated and set in Render.
🔒Security Note: The API key authentication is only enforced when theMCP_API_KEYenvironment variable is set. If no API key is configured, the server will accept unauthenticated requests (useful for local development).
# List available tools curl -X POST https://your-service.onrender.com/mcp/ \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_MCP_API_KEY_HERE" \ -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}' # List employees curl -X POST https://your-service.onrender.com/mcp/ \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_MCP_API_KEY_HERE" \ -d '{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "list_employees", "arguments": {"page": 1, "per_page": 10} }, "id": 1 }'
⚠️ Note on Free Tier:Render's free tier spins down services after inactivity. First requests may take 30-60 seconds to wake up the service.
Environment Variables (for development):
cp .env.example .env # Edit .env and set BREATHE_HR_API_KEY=your_api_key_here
uv run uvicorn breathe_hr_mcp:app --reload # Server available at http://localhost:8000/mcp/
curl -X POST http://localhost:8000/mcp/ \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "method": "tools/list", "id": 1 }'
curl -X POST http://localhost:8000/mcp/ \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "list_employees", "arguments": {"page": 1, "per_page": 10} }, "id": 1 }'```
- Server:FastMCP framework with FastAPI backend
- Protocol:Model Context Protocol (MCP) via stdio
- API:Breathe HR API v1 with secure access
- Authentication:Bearer token (API key)
Magica is your all-in-one AI platform, offering 2500+ cutting-edge tools under a single subscription.
Turn your Make scenarios into callable tools for AI assistants.
Dynamically search and call tools using UnifAI Network
Connect your AI Agents to 8,000 apps instantly.
Interact with your Anytype data through its API, enabling AI assistants to access your information.
MCP server exposing 10 APITier utility APIs as AI agent tools
MCP Server for interacting with the Arcane API
Connect AI assistants to Automatisch for workflow automation.
Access data from the Bakaláři school system, including schedules, absences, and grades, through a standardized API.
MCP server for Brightspace (D2L): check grades, due dates, announcements, rosters & more using Claude, ChatGPT, Cursor, or any MCP client.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



