bamboohr-mcp

bamboohr-mcp

Enables natural language interaction with BambooHR to manage employee records, time off, hiring, and benefits. It provides 74 tools and pre-built workflows to automate HR operations like onboarding, reporting, and performance tracking.

Category
访问服务器

README

<div align="center"> <img width="3100" height="1344" alt="Gemini_Generated_Image_9padc99padc99pad" src="https://github.com/user-attachments/assets/21868157-f222-49a9-b4fa-1e0644f15bc6" />

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

npm version License: MIT Node >=18 MCP

</div>


A Model Context Protocol 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

<table> <tr> <td valign="top" width="50%">

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

</td> <td valign="top" width="50%">

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

</td> </tr> </table>


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
{
  "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)

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

<details> <summary><strong>👤 Employees</strong> — 6 tools</summary>

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

</details>

<details> <summary><strong>🏖️ Time Off</strong> — 8 tools</summary>

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

</details>

<details> <summary><strong>⏱️ Time Tracking</strong> — 5 tools</summary>

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

</details>

<details> <summary><strong>🎯 Applicant Tracking (ATS)</strong> — 9 tools</summary>

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

</details>

<details> <summary><strong>🏥 Benefits</strong> — 7 tools</summary>

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

</details>

<details> <summary><strong>📊 Reports & Datasets</strong> — 5 tools</summary>

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

</details>

<details> <summary><strong>🎓 Training</strong> — 6 tools</summary>

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

</details>

<details> <summary><strong>🏆 Goals & Performance</strong> — 7 tools</summary>

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

</details>

<details> <summary><strong>🔔 Webhooks</strong> — 7 tools</summary>

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

</details>

<details> <summary><strong>📁 Files</strong> — 6 tools</summary>

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

</details>

<details> <summary><strong>⚙️ Account & Metadata</strong> — 7 tools</summary>

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

</details>


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.

# 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

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

Test locally:

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

Interactive testing with MCP Inspector:

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


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 — made with ☕ and Claude.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选