
Get a specific employee by ID with optional field selection. Returns employee profile data including personal info, job details, and contact information.
Get the employee directory containing all employees with basic information. Use this for a quick overview of all employees in the organization.
Create a new employee record in BambooHR. Requires at minimum first and last name. Returns the created employee data with assigned ID.
Update an existing employee's information. Only provided fields will be updated; omitted fields remain unchanged.
List all files associated with an employee, organized by category. Returns file metadata including names, sizes, and categories.
List goals for an employee with optional status filtering. Returns goal details including progress and due dates.
Get a specific goal by ID with full details including description, progress, and comments.
Create a new goal for an employee. Set title, description, due date, and optional sharing with other employees.
Update an existing goal. Modify title, description, due date, progress percentage, or sharing settings.
Close/complete a goal. Optionally add a completion comment to document the outcome.
Reopen a previously closed goal. Allows continued work and tracking on the goal.
Add a comment to a goal. Use for progress updates, feedback, or documentation.
Get all available employee field definitions. Returns field IDs, names, and types that can be used in reports and employee queries.
Get all available list field values (e.g., departments, locations, employment statuses). Useful for populating dropdowns or validating input.
Get all BambooHR user accounts with their associated employee IDs and login status. Useful for user management and access auditing.
Run a predefined company report by ID. Supports optional filtering and multiple output formats (JSON, CSV, etc.).
Run a custom employee report with specified fields. Select which employee fields to include in the report output.
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 with optional filters for date range, employee, status, action needed, and type.
Get the time off policies assigned to an employee, joined with the org-wide policy catalog so each entry includes the policy name and type (accruing/discretionary).
Get all available time off types configured in the BambooHR account (e.g., Vacation, Sick, Personal).
Calculate an employee's estimated time off balance for a future date, accounting for accruals and scheduled time off.
Create a new time off request for an employee. Requires time off type, start date, and end date.
Get timesheet entries for an employee within a date range. Returns detailed time tracking records with hours, tasks, and projects.
Add a new timesheet entry for an employee. Records hours worked on a specific date with optional task/project association.
Edit an existing timesheet entry. Updates hours and optionally task, project, or notes.
Delete a timesheet entry by ID. Permanently removes the time tracking record.
Record a clock-in time for an employee. Optionally specify start time and timezone; defaults to current time.
Record a clock-out time for an employee. Optionally specify end time and timezone; defaults to current time.
Get daily time tracking summaries for an employee within a date range. Returns aggregated hours per day.
Get all training categories/types defined in the BambooHR account. Returns category names, requirements, and renewal periods.
Get all training records for a specific employee. Returns completed trainings with dates, hours, and costs.
Add a training record for an employee. Records completion of a training type with optional cost, hours, and instructor info.
Update an existing training record. Modify completion date, cost, hours, instructor, or notes.
Delete a training record by ID. Permanently removes the training from the employee's record.
Validate BambooHR credentials. Verifies credentials during setup.

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}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.
Here are some common use cases:
Here are just a few reasons:
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:
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.
Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to BambooHR without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity.
IT also provisions access by role or group via SCIM. An HR manager, for example, gets BambooHR to access employee records and PTO data, Workday to manage workforce operations, and Google Sheets to report headcount; while a recruiter gets BambooHR to track new hire profiles, Greenhouse to manage candidates, and Slack to coordinate with hiring managers.
Every tool call an employee's AI makes to BambooHR is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now