# Bamboohr Mcp

> MCP server for BambooHR — 74 tools + 30 role-based skills for Claude

- **Type:** MCP server
- **Install:** `agentstack add mcp-acalder-techpm-bamboohr-mcp`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [acalder-techpm](https://agentstack.voostack.com/s/acalder-techpm)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [acalder-techpm](https://github.com/acalder-techpm)
- **Source:** https://github.com/acalder-techpm/bamboohr-mcp

## Install

```sh
agentstack add mcp-acalder-techpm-bamboohr-mcp
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

**Give Claude full access to your BambooHR — employees, time off, hiring, benefits, training, and more.**

[](https://www.npmjs.com/package/bamboohr-mcp)
[](LICENSE)
[](https://nodejs.org)
[](https://modelcontextprotocol.io)

---

A [Model Context Protocol](https://modelcontextprotocol.io) server that connects Claude to BambooHR. Install once, then talk to your HR data in plain English — no dashboards, no manual exports.

```
"Who's out next week?"
"Onboard Sarah Chen starting Monday — Engineering, reports to Maria."
"Show training compliance for the Sales team."
"Approve all pending PTO requests for my team."
"What's our average time-to-fill for engineering roles?"
```

---

## What's included

**🔧 74 MCP Tools**
Full BambooHR API coverage across 11 modules — employees, time off, time tracking, ATS, benefits, training, goals, reports, webhooks, files, and metadata.

**📦 Zero-deploy setup**
Ships as an `npx`-runnable package. Add two lines to your Claude config and you're done.

**🎭 30 Role-Based Skills**
Pre-built workflows for HR admins, managers, recruiters, employees, payroll, L&D, and automation admins — organized by who uses them.

**🔌 Works everywhere**
Claude Desktop, Claude Code CLI, or any MCP-compatible client.

---

## Quickstart

### Step 1 — Get your BambooHR API key

1. Log in to BambooHR
2. Click your profile icon (top right) > **API Keys**
3. Click **Add New Key**, name it, and copy it

Your subdomain is the prefix in your BambooHR URL — e.g. `acme` from `acme.bamboohr.com`.

---

### Step 2 — Add to Claude Desktop

Edit your config file:

- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "bamboohr": {
      "command": "npx",
      "args": ["-y", "bamboohr-mcp"],
      "env": {
        "BAMBOOHR_API_KEY": "your-api-key-here",
        "BAMBOOHR_SUBDOMAIN": "your-company-subdomain"
      }
    }
  }
}
```

Restart Claude Desktop.

---

### Step 3 — Or add to Claude Code (CLI)

```bash
claude mcp add bamboohr \
  -e BAMBOOHR_API_KEY=your-api-key-here \
  -e BAMBOOHR_SUBDOMAIN=your-company-subdomain \
  -- npx -y bamboohr-mcp
```

---

### Step 4 — Verify

Open Claude and ask: **"Show me the BambooHR employee directory"**

---

## Available Tools

👤 Employees — 6 tools

| Tool | Description |
|------|-------------|
| `bamboohr_get_employee` | Get an employee record by ID |
| `bamboohr_list_employees` | List all employees in the directory |
| `bamboohr_create_employee` | Create a new employee |
| `bamboohr_update_employee` | Update employee fields |
| `bamboohr_get_updated_employee_ids` | Get IDs of recently changed employees |
| `bamboohr_get_company_info` | Get company account details |

🏖️ Time Off — 8 tools

| Tool | Description |
|------|-------------|
| `bamboohr_get_time_off_types` | List all leave types |
| `bamboohr_get_time_off_policies` | List all time-off policies |
| `bamboohr_get_time_off_requests` | Get requests by date range, status, employee |
| `bamboohr_create_time_off_request` | Submit a time-off request |
| `bamboohr_update_time_off_request_status` | Approve, deny, or cancel a request |
| `bamboohr_get_time_off_balance` | Get leave balances for an employee |
| `bamboohr_get_whos_out` | See who is out during a date range |
| `bamboohr_assign_time_off_policies` | Assign policies to an employee |

⏱️ Time Tracking — 5 tools

| Tool | Description |
|------|-------------|
| `bamboohr_get_timesheet_entries` | Get clock/hour entries |
| `bamboohr_clock_in` / `bamboohr_clock_out` | Record clock events |
| `bamboohr_create_hour_entries` | Submit hour entries |
| `bamboohr_list_break_policies` | List break policies |
| `bamboohr_list_employee_break_availability` | Check break availability |

🎯 Applicant Tracking (ATS) — 9 tools

| Tool | Description |
|------|-------------|
| `bamboohr_list_job_summaries` | List all job openings |
| `bamboohr_create_job_opening` | Create a new job opening |
| `bamboohr_create_candidate` | Create a candidate record |
| `bamboohr_get_job_applications` | Get applications for a job |
| `bamboohr_get_applicant_statuses` | List pipeline stages |
| `bamboohr_update_applicant_status` | Move a candidate to a new stage |
| `bamboohr_add_application_comment` | Add a note to an application |
| `bamboohr_get_hiring_leads` | List available hiring leads |
| `bamboohr_get_company_locations` | List company locations |

🏥 Benefits — 7 tools

| Tool | Description |
|------|-------------|
| `bamboohr_get_company_benefits` | List all benefit plans |
| `bamboohr_get_employee_benefits` | Get an employee's enrollments |
| `bamboohr_get_benefit_coverages` | List coverage tiers |
| `bamboohr_get_benefit_deduction_types` | List deduction types |
| `bamboohr_get_employee_dependents` | List an employee's dependents |
| `bamboohr_create_employee_dependent` | Add a dependent |
| `bamboohr_get_member_benefit_events` | Get benefit life events |

📊 Reports & Datasets — 5 tools

| Tool | Description |
|------|-------------|
| `bamboohr_list_reports` | List all saved reports |
| `bamboohr_run_report` | Run a report by ID |
| `bamboohr_list_datasets` | List available datasets |
| `bamboohr_get_dataset_fields` | Get fields for a dataset |
| `bamboohr_query_dataset` | Query a dataset with filters |

🎓 Training — 6 tools

| Tool | Description |
|------|-------------|
| `bamboohr_get_training_categories` | List training categories |
| `bamboohr_get_training_types` | List training types/courses |
| `bamboohr_create_training_type` | Create a training type |
| `bamboohr_get_employee_trainings` | Get an employee's training records |
| `bamboohr_create_training_record` | Assign training to an employee |
| `bamboohr_update_training_record` | Update a training record |

🏆 Goals & Performance — 7 tools

| Tool | Description |
|------|-------------|
| `bamboohr_list_goals` | Get goals for an employee |
| `bamboohr_get_goals_aggregate` | Get goal summary/stats |
| `bamboohr_create_goal` | Create a performance goal |
| `bamboohr_update_goal_progress` | Update percent complete |
| `bamboohr_close_goal` / `bamboohr_reopen_goal` | Close or reopen a goal |
| `bamboohr_get_goal_status_counts` | Get goal status breakdown |

🔔 Webhooks — 7 tools

| Tool | Description |
|------|-------------|
| `bamboohr_list_webhooks` | List all webhooks |
| `bamboohr_get_webhook` | Get webhook details |
| `bamboohr_create_webhook` | Create a new webhook |
| `bamboohr_update_webhook` | Update a webhook |
| `bamboohr_delete_webhook` | Delete a webhook |
| `bamboohr_get_webhook_logs` | View delivery logs |
| `bamboohr_get_webhook_monitor_fields` | List monitorable fields |

📁 Files — 6 tools

| Tool | Description |
|------|-------------|
| `bamboohr_get_employee_files` | List files for an employee |
| `bamboohr_get_employee_file` | Download a specific file |
| `bamboohr_upload_employee_file` | Upload a file to an employee |
| `bamboohr_delete_employee_file` | Delete an employee file |
| `bamboohr_get_company_files` | List company-level files |
| `bamboohr_create_employee_file_category` | Create a file category |

⚙️ Account & Metadata — 7 tools

| Tool | Description |
|------|-------------|
| `bamboohr_get_fields` | List all employee fields |
| `bamboohr_get_tabular_fields` | List tabular fields |
| `bamboohr_get_users` | List BambooHR user accounts |
| `bamboohr_get_countries` | List countries |
| `bamboohr_get_states` | List states for a country |
| `bamboohr_get_list_field_details` | Get options for a list field |
| `bamboohr_update_list_field_values` | Add/update list field options |

---

## Skills — Role-Based Workflows

Skills are pre-built prompts that handle common HR workflows end-to-end. Copy them to `~/.claude/skills/` to use them in Claude Code.

```bash
# Install all skills at once
cp -r skills/* ~/.claude/skills/
```

---

### 🗂️ HR Admin
*For the people running day-to-day HR operations.*

| Skill | Try saying... |
|-------|--------------|
| `onboard-employee` | "Onboard Sarah Chen starting Monday in Engineering" |
| `offboard-employee` | "Process termination for Bob Lee, last day is Friday" |
| `bulk-update-records` | "Update all Engineering employees to the Austin office" |
| `manage-documents` | "Show me Jane Doe's employee files" |
| `sync-org-changes` | "Move Alex to the Platform team reporting to Maria" |
| `audit-employee-data` | "Find all employees missing a work email" |

---

### 📈 HR Manager / HRBP
*For strategic HR visibility, analytics, and reporting.*

| Skill | Try saying... |
|-------|--------------|
| `headcount-report` | "Headcount report by department" |
| `workforce-snapshot` | "Give me a workforce snapshot" |
| `run-custom-report` | "Run a report of all employees in California" |
| `performance-overview` | "Performance overview for the Engineering team" |
| `new-hire-trends` | "Show new hires for Q1 2025" |

---

### 🎯 Recruiter / Talent Acquisition
*For managing job openings, candidates, and hiring pipelines.*

| Skill | Try saying... |
|-------|--------------|
| `post-job-opening` | "Post a Senior Engineer role in Austin, TX" |
| `review-pipeline` | "Review the pipeline for the Product Manager role" |
| `advance-candidate` | "Move Jane Smith to the Final Interview stage" |
| `hiring-velocity-report` | "What's our average time-to-fill?" |

---

### 👔 Manager / Team Lead
*For team-level visibility and day-to-day approvals.*

| Skill | Try saying... |
|-------|--------------|
| `approve-time-off` | "Review pending PTO requests for my team" |
| `team-availability` | "Who's out next week?" |
| `team-directory` | "Show me my team roster" |
| `review-team-goals` | "Show team goal progress for Q2" |
| `approve-timesheets` | "Review timesheets for last week" |

---

### 🙋 Employee Self-Service
*For employees managing their own HR needs.*

| Skill | Try saying... |
|-------|--------------|
| `request-time-off` | "Request 3 days off starting June 10" |
| `check-leave-balance` | "How many PTO days do I have left?" |
| `update-profile` | "Update my home address in BambooHR" |
| `view-my-trainings` | "What trainings am I assigned?" |

---

### 💼 Payroll & Benefits Admin
*For managing benefits enrollment and compensation data.*

| Skill | Try saying... |
|-------|--------------|
| `benefits-status-check` | "Check benefits enrollment for John Doe" |
| `dependent-enrollment` | "Add a dependent for Sarah Chen — newborn daughter" |
| `compensation-audit` | "Run a compensation audit for Engineering" |

---

### 🎓 Training & L&D
*For tracking learning programs and compliance.*

| Skill | Try saying... |
|-------|--------------|
| `assign-training` | "Assign HIPAA training to all new hires in HR" |
| `compliance-report` | "Training compliance report for Q2" |
| `manage-catalog` | "Show our full training catalog" |

---

### ⚡ Automation Admin
*For teams integrating BambooHR with other systems via webhooks.*

| Skill | Try saying... |
|-------|--------------|
| `setup-webhook` | "Create a webhook that fires when job title changes" |
| `debug-webhook` | "Show recent webhook logs for my HRIS sync" |
| `automation-overview` | "What automations are connected to BambooHR?" |

---

## Development

```bash
git clone https://github.com/acalder-techpm/bamboohr-mcp
cd bamboohr-mcp
npm install
npm run build
```

**Test locally:**

```bash
export BAMBOOHR_API_KEY=your-key
export BAMBOOHR_SUBDOMAIN=your-subdomain
node dist/index.js
```

**Interactive testing with MCP Inspector:**

```bash
npx @modelcontextprotocol/inspector node dist/index.js
```

---

## Authentication

BambooHR uses HTTP Basic Auth with your API key as the username. This server handles it automatically — just set `BAMBOOHR_API_KEY`.

> **Tip:** API keys inherit the permissions of the user who created them. Use an Admin user's key for full access, or a limited user's key for read-only integrations.

To create a key: **BambooHR > Profile icon > API Keys > Add New Key**

---

## Examples

Here are three real-world examples showing how Claude uses this MCP server.

### Example 1: Check team availability

**You say:** "Who's out next week on the Engineering team?"

**What happens:** Claude calls `bamboohr_get_whos_out` with next week's date range, then cross-references with `bamboohr_list_employees` filtered to Engineering. It returns a summary like:

> 3 people out next week in Engineering:
> - **Sarah Chen** - PTO Mon-Wed
> - **James Park** - Sick leave Monday
> - **Lisa Nguyen** - PTO all week
>
> 12 of 15 team members available.

### Example 2: Onboard a new hire

**You say:** "Onboard Maria Torres starting March 17, Software Engineer in Platform, reports to Alex Kim, Austin office."

**What happens:** Claude calls `bamboohr_create_employee` with the provided details, then calls `bamboohr_assign_time_off_policies` to set up standard PTO. It returns:

> Created employee record for **Maria Torres** (ID: 4521)
> - Department: Platform
> - Job Title: Software Engineer
> - Location: Austin, TX
> - Supervisor: Alex Kim
> - Start Date: 2026-03-17
> - PTO policies assigned: Standard PTO, Sick Leave, Company Holidays

### Example 3: Training compliance report

**You say:** "Show me who's overdue on HIPAA training in the HR department."

**What happens:** Claude calls `bamboohr_list_employees` to get HR department members, then `bamboohr_get_employee_trainings` for each to check HIPAA completion status. It returns:

> **HIPAA Training Compliance - HR Department**
>
> 2 of 8 team members overdue:
> - **Tom Rivera** - due Feb 15, 2026 (22 days overdue)
> - **Amy Walsh** - due Mar 1, 2026 (9 days overdue)
>
> 6 members current. Next renewal due: Jun 2026 (Dana Lee).

---

## Privacy Policy

This MCP server acts as a local bridge between Claude and your BambooHR account. Here is how data is handled:

- **No data collection.** This server does not collect, store, or transmit any data to third parties. It does not phone home, send analytics, or log to external services.
- **Local execution only.** The server runs on your machine as a local stdio process. All API calls go directly from your machine to BambooHR's API (`api.bamboohr.com`).
- **Credentials stay local.** Your `BAMBOOHR_API_KEY` and `BAMBOOHR_SUBDOMAIN` are read from local environment variables and are never persisted, logged, or transmitted anywhere other than BambooHR's API.
- **BambooHR's privacy policy applies.** Data returned from the BambooHR API is subject to [BambooHR's Privacy Policy](https://www.bamboohr.com/privacy-policy). This server does not cache or persist any API responses.
- **You control access.** The API key's permissions in BambooHR determine what data this server can access. Use a limited-permission key to restrict scope.

---

## Support

- **Issues:** [github.com/acalder-techpm/bamboohr-mcp/issues](https://github.com/acalder-techpm/bamboohr-mcp/issues)
- **Email:** adam.calder@bamboohr.com
- **Discussions:** [github.com/acalder-techpm/bamboohr-mcp/discussions](https://github.com/acalder-techpm/bamboohr-mcp/discussions)

---

## Contributing

PRs welcome. If you add a new tool or skill, follow the existing patterns in `src/tools/` and `skills/` and open a pull request with a brief description of the use case.

---

## License

[MIT](LICENSE) — made with ☕ and Claude.

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [acalder-techpm](https://github.com/acalder-techpm)
- **Source:** [acalder-techpm/bamboohr-mcp](https://github.com/acalder-techpm/bamboohr-mcp)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-acalder-techpm-bamboohr-mcp
- Seller: https://agentstack.voostack.com/s/acalder-techpm
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
