Skip to main content
Glama
mikkmihkel

BambooHR MCP Server

by mikkmihkel

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BAMBOOHR_TOKENYesYour BambooHR API key. Create one in BambooHR under your profile > API Keys.
BAMBOOHR_VACATION_TYPENoThe 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_DOMAINYesThe 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 allowed flag. Only fields with allowed:true can be read by bamboohr_get_employee or bamboohr_employee_report; the rest (pay, bank, national id, date of birth, gender, home contact details) are refused by policy. Use search to find a field by name (e.g. 'shoe', 'hire'). Set includeOptions to see the allowed values of list fields.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count4/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues