Connect your AI Agents to BambooHR in minutes

Available tools
get_employee
Get a specific employee by ID with optional field selection. Returns employee profile data including personal info, job details, and contact information.
get_employee_directory
Get the employee directory containing all employees with basic information. Use this for a quick overview of all employees in the organization.
add_employee
Create a new employee record in BambooHR. Requires at minimum first and last name. Returns the created employee data with assigned ID.
update_employee
Update an existing employee's information. Only provided fields will be updated; omitted fields remain unchanged.
get_employee_files
List all files associated with an employee, organized by category. Returns file metadata including names, sizes, and categories.
list_goals
List goals for an employee with optional status filtering. Returns goal details including progress and due dates.
get_goal
Get a specific goal by ID with full details including description, progress, and comments.
create_goal
Create a new goal for an employee. Set title, description, due date, and optional sharing with other employees.
update_goal
Update an existing goal. Modify title, description, due date, progress percentage, or sharing settings.
close_goal
Close/complete a goal. Optionally add a completion comment to document the outcome.
reopen_goal
Reopen a previously closed goal. Allows continued work and tracking on the goal.
add_goal_comment
Add a comment to a goal. Use for progress updates, feedback, or documentation.
get_fields
Get all available employee field definitions. Returns field IDs, names, and types that can be used in reports and employee queries.
get_lists
Get all available list field values (e.g., departments, locations, employment statuses). Useful for populating dropdowns or validating input.
get_users
Get all BambooHR user accounts with their associated employee IDs and login status. Useful for user management and access auditing.
get_company_report
Run a predefined company report by ID. Supports optional filtering and multiple output formats (JSON, CSV, etc.).
run_custom_report
Run a custom employee report with specified fields. Select which employee fields to include in the report output.
get_whos_out
Get a list of employees who are out (on time off) for a given date range. Defaults to today if no dates provided.
list_time_off_requests
List time off requests with optional filters for date range, employee, status, action needed, and type.
get_time_off_policies
Get the time off policies assigned to a specific employee, including accrual rates and balances.
get_time_off_types
Get all available time off types configured in the BambooHR account (e.g., Vacation, Sick, Personal).
estimate_time_off_balance
Calculate an employee's estimated time off balance for a future date, accounting for accruals and scheduled time off.
add_time_off_request
Create a new time off request for an employee. Requires time off type, start date, and end date.
get_timesheet_entries
Get timesheet entries for an employee within a date range. Returns detailed time tracking records with hours, tasks, and projects.
add_timesheet_entry
Add a new timesheet entry for an employee. Records hours worked on a specific date with optional task/project association.
edit_timesheet_entry
Edit an existing timesheet entry. Updates hours and optionally task, project, or notes.
delete_timesheet_entry
Delete a timesheet entry by ID. Permanently removes the time tracking record.
clock_in
Record a clock-in time for an employee. Optionally specify start time and timezone; defaults to current time.
clock_out
Record a clock-out time for an employee. Optionally specify end time and timezone; defaults to current time.
get_daily_entries
Get daily time tracking summaries for an employee within a date range. Returns aggregated hours per day.
list_training_categories
Get all training categories/types defined in the BambooHR account. Returns category names, requirements, and renewal periods.
list_employee_trainings
Get all training records for a specific employee. Returns completed trainings with dates, hours, and costs.
add_employee_training
Add a training record for an employee. Records completion of a training type with optional cost, hours, and instructor info.
update_employee_training
Update an existing training record. Modify completion date, cost, hours, instructor, or notes.
delete_employee_training
Delete a training record by ID. Permanently removes the training from the employee's record.
validate_credential
Validate BambooHR credentials. Verifies credentials during setup.

How to set up Merge Agent Handler
In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}FAQs on using Merge's BambooHR MCP server
FAQs on using Merge's BambooHR MCP server
What is a BambooHR MCP server?
It’s an MCP server that exposes data and functionality from BambooHR via tools. Your agents can invoke these tools to add employees, gather employee information, modify a goal, and more.
BambooHR doesn’t currently support their own official MCP server, so you’ll need to use one that's hosted and maintained by a 3rd-party.
How can I use a BambooHR MCP server?
Here are some common use cases:
- Employee directory sync: Your agent can pull employee profile data from BambooHR and update downstream systems. For example, when a new hire is added, create an internal directory record and notify Slack
- Onboarding automation: Your agent can trigger onboarding workflows from BambooHR changes. For instance, when a new hire becomes active, create onboarding tasks and schedule kickoff meetings
- PTO and coverage coordination: Your agent can monitor time-off updates in BambooHR and alert managers or teams. For example, when PTO is booked, flag coverage gaps and update schedules
- Offboarding workflows: Your agent can kick off offboarding when an employee status changes. For instance, when termination is recorded, create an offboarding ticket and notify IT/People Ops
What makes Merge Agent Handler’s BambooHR MCP server better than alternative BambooHR MCP servers?
Here are just a few reasons:
- Enterprise-grade security with Data Loss Protection (DLP): Merge includes a Security Gateway that scans tool inputs and outputs for sensitive data and enforces configurable rules (e.g., block or redact sensitive fields). The platform provides default and custom DLP rules to prevent data misuse
- Built-in authentication & credential management: Agent Handler supports dynamic authorization flows and handles credential management across connectors.You can require individual authentication per user or allow shared authentication per connector within a Tool Pack
- Real-time observability with fully searchable logs: Agent Handler logs every tool call and its underlying API request, enabling full audit trails. Logs are searchable for auditing, debugging, and optimization
- Connector Studio for customization: You can access pre-built connectors, add or modify your own connectors, and customize integration functionality
- Evaluation Suite before production deployment: You can define evaluation scenarios, validate tool output against expected results, and pinpoint connector improvements prior to production.
Can I set custom security rules for BambooHR tool calls in Merge Agent Handler?
Yes, the Security Gateway and Data Loss Protection (DLP) engine scan tool inputs and outputs for sensitive data and take action based on configured rules.
You can:
- Block highly sensitive identifiers (input + output): Block any BambooHR tool call if the request or response contains an SSN (e.g., a 123-45-6789 pattern)
- Redact PII while still allowing the call: Allow “get employee” style tool calls, but automatically redact personal emails or other sensitive fields before data is returned to the agent or written downstream
- Prevent secrets leaking into BambooHR fields: Block tool calls that attempt to write API keys, bearer tokens, or password-like strings into any BambooHR text field (for example, notes or custom fields)
- Tool-level allow/deny for write actions: Allow read-only BambooHR tools, but block high-risk write actions unless explicitly permitted (for example, “update employee” or “terminate employee”)
- Alerting on violations: When a rule is hit, log it and alert your team with the rule name, timestamp, connector/tool, and requesting user/system
How can I start using Merge Agent Handler’s BambooHR MCP server?
1. Create (or log into) your Merge Agent Handler account, then open the dashboard where you manage connectors and tool packs.
2. Create a Tool Pack for the workflow you are building, since tool packs define which connectors and tools your agent can use (and the auth scope, like individual vs shared).
3. Add the BambooHR connector to the Tool Pack (or import it as a remote MCP server connector, if you are bringing your own server).
4. Create a “registered user” for the end user (or team) who will authenticate to BambooHR. This is the container that holds credentials.
5. Have the end user authenticate BambooHR. Agent Handler will prompt for credentials the first time a BambooHR tool call is attempted, and tools become available after auth is complete.
6. List available tools (via list_tools) so you can see the BambooHR tools that are now unlocked for that Tool Pack and registered user combination.
7. Test tool calls in the playground, then wire the same MCP server into your actual agent so it can invoke BambooHR tools in production.
8. Turn on default security rules and add custom DLP rules (block, redact, or log) before scaling usage beyond testing.
Ready to try it out?
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now



















