BambooHR MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BAMBOOHR_TOKEN | Yes | Your BambooHR API key. Create one in BambooHR under your profile > API Keys. | |
| BAMBOOHR_VACATION_TYPE | No | The exact name of the vacation time-off type, used by the vacation overview tool. Optional; defaults to the single type that looks like vacation. | |
| BAMBOOHR_COMPANY_DOMAIN | Yes | The company subdomain from your BambooHR URL, e.g. 'acme' for acme.bamboohr.com. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bamboohr_whos_outA | List employees who are out of office and company holidays in a date range. Defaults to today through 14 days ahead. Each entry has type 'timeOff' (with employeeId and employee name) or 'holiday' (holiday name only). A range with more people out than the per-call record limit is refused (holidays do not count); use a shorter range. |
| bamboohr_list_employeesA | Look up employees in the BambooHR directory with id, name, job title, department, division, location, supervisor and work email. Requires search, department or location — listing the whole company in one call is not allowed — and returns at most the per-call record limit of people. Use the id with the balance and request tools. |
| bamboohr_list_time_off_typesA | List the company's time-off types (e.g. vacation, unpaid leave) with their ids and units, plus the default hours per weekday. Use this to find the right type name or id for other tools. Health-related types (sick leave, care leave and similar) are excluded by policy and are not listed; health-related absences appear elsewhere as a generic 'absent'. |
| bamboohr_time_off_balancesA | Get one employee's time-off balances as of a date, including amount used year-to-date. Use a future date to project the balance. Health-related balances (sick leave and similar) are not reported. |
| bamboohr_time_off_requestsA | List time-off requests overlapping a date range, optionally filtered by employee, status and time-off type. Health-related absences are reduced to type 'absent' with no notes. Results are limited to employees the API key's owner may see, and to the per-call record limit. |
| bamboohr_vacation_overviewA | Vacation report for one department (or a list of employeeIds) and one calendar year: vacation balance as of a date, used year-to-date, vacation planned after that date (approved or requested), unplanned balance (balance minus planned), the longest continuous vacation block in calendar days, and whether they have at least one 14-day continuous block. Adjacent requests are merged into one block. A department or employeeIds is required — a company-wide overview in one call is not allowed, ask per department — and the group must fit the per-call record limit. Use onlyMissingFourteenDayBlock to list only employees without a 14-day vacation. The summary counts all employees before that filter. Note: planned vacation excludes a request already in progress on the as-of date, on the assumption that BambooHR's balance has already deducted it. |
| bamboohr_list_fieldsA | List every employee field in this BambooHR account, standard and custom, with id, name, API alias, type and an |
| bamboohr_list_tablesA | List the tabular fields this server may read (job history, employment status, and custom tables such as equipment or certificates) with the table alias and its columns. Compensation, bonus, bank, identity-document, health and similar tables, and money-type columns, are excluded by policy and are not listed. Use the alias with bamboohr_table_rows. |
| bamboohr_company_holidaysA | List company holidays that overlap a date range. Default: the current calendar year. Multi-day holidays that overlap the range are included. |
| bamboohr_list_usersA | List BambooHR user accounts (people who can log in) with their linked employee id, status and last login (no email: BambooHR may return a home address there). Useful for access reviews: who has an enabled account, who never logged in. Narrow the list with status or search; more accounts than the per-call record limit are refused. |
| bamboohr_get_employeeA | Read one employee's field values: standard fields (hire date, job title, supervisor, status, work contact details) and custom fields (e.g. shoe size). Omit employeeId to read the API key owner's own record. Omit fields for a sensible default set. Fields outside the allow-list — pay, bank, national id, date of birth, gender, home contact details — are refused and nothing is returned; ask for other fields instead. missingFields lists requested fields that came back empty or that the key may not see. |
| bamboohr_employee_reportA | Pull chosen fields for a bounded group of employees in one call: e.g. hire date and a custom field such as shoe size for one department. Requires either employeeIds or a department, location or division filter (exact name, case-insensitive); company-wide reports are refused. At most the configured per-call record limit of rows is returned, otherwise the call is refused — narrow the filter. Only allow-listed and custom fields may be requested; pay, bank, birth date and similar fields are refused. id, displayName and status are always included. Inactive (terminated) employees are excluded unless includeInactive is true. missingFields lists fields BambooHR did not return, usually because the API key may not see them or the name is wrong; check names with bamboohr_list_fields. |
| bamboohr_table_rowsA | Read the rows of an employee table for ONE employee: job history (jobInfo), employmentStatus, or any custom table (e.g. equipment, certificates). employeeId is required. Pay, compensation, bank, identity-document, health and similar tables are excluded by policy and are refused; money-type columns are dropped. Get valid table aliases from bamboohr_list_tables. Rows are unsorted; sort by date yourself. |
| bamboohr_changed_employeesA | List employees whose record changed since a timestamp: new hires (Inserted), edits to any field or table (Updated), and removals (Deleted). Ids and timestamps only, no field values. Newest first. Use bamboohr_get_employee to see the current values. |
| bamboohr_training_typesA | List the company's training types (name, category, required, renewable, renewal frequency in months, due window for new hires) and training categories. Use the type id with bamboohr_training_records. |
| bamboohr_training_recordsA | List one employee's completed trainings with completion date, instructor, hours, credits, cost and notes. Optionally limit to one training type. To check who is missing a required training, call this per employee. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Tools mostly map to distinct resources and actions, with detailed descriptions clarifying boundaries. Some overlap exists between whos_out, time_off_requests, and company_holidays, and between list_employees, get_employee, and employee_report, but these are unlikely to cause serious misselection.
All tools share the bamboohr_ prefix and snake_case, but the naming convention is mixed: some use list_ or get_ while many are bare noun phrases like training_types, table_rows, or vacation_overview. This is readable but does not follow a consistent verb_noun pattern.
At 16 tools, the server is slightly above the typical 3-15 range, but the count is justified by the breadth of HR subdomains covered: employees, time off, training, tables, users, holidays, and change tracking. Each tool serves a distinct purpose and none feels redundant.
The server provides strong read-only coverage of common HR workflows: employee lookup, field metadata, time-off balances and requests, training records, holidays, and change tracking. Minor gaps exist, such as training compliance requiring per-employee calls and company-wide reports being intentionally blocked, but agents can work around these.