Bamboohr MCP server

Connect Bamboohr to Claude, ChatGPT, Cursor, Claude Code, Codex, Gemini, GitHub Copilot and any other MCP client, for your whole team. Metorial adds security, governance, and tracing, and gives everyone one Magic MCP URL to connect.

What you can do with the Bamboohr MCP server

Ask your agent in plain language. Each of these maps to a real tool on the server.

  • Use the get account metadata tool in Bamboohr
  • Use the create employee tool in Bamboohr
  • Use the get time off balances tool in Bamboohr
  • Use the get job listings tool in Bamboohr
  • Use the create goal tool in Bamboohr
  • Use the update goal tool in Bamboohr

Supported Tools

get_account_metadata

Get Account Metadata

Retrieve company-level metadata including list values (e.g., departments, locations, divisions), table definitions, and user accounts. Useful for discovering valid values for fields and understanding the data model.

create_employee

Create Employee

Create a new employee record in BambooHR. At minimum, first name and last name are required. You can include additional fields like email, job title, department, hire date, and any other standard or custom fields.

get_time_off_balances

Get Time Off Balances

Retrieve visible time off balances for an employee as of a date. Results depend on Time Off permissions and visible categories. A discretionary policy may have a zero balance while still allowing requests. Resolve caller ID 0 with get_current_user before using this tool.

get_job_listings

Get Job Listings

Retrieve all job listings from BambooHR's applicant tracking system. Returns job summaries including titles, statuses, departments, and locations.

create_goal

Create Goal

Create a simple goal for an employee. Supply title and dueDate. Sharing defaults to the owner and must include the owner if explicitly supplied. Progress must be an integer from 0 to 100.

update_goal

Update Goal

Update an existing goal. Can change title, description, progress, due date, sharing, or close/reopen the goal. To close or reopen a goal, use the **action** field.

add_application_comment

Add Application Comment

Add a comment to a job application. Useful for leaving notes during the recruitment review process.

get_employee_training_records

Get Employee Training Records

Retrieve training records for a specific employee. Optionally filter by training type. Returns completion dates, instructors, hours, credits, and notes.

get_application_details

Get Application Details

Retrieve detailed information about a specific job application, including the applicant's name, contact information, resume, answers to screening questions, and current status.

get_company_report

Get Company Report

Run an exact saved custom report. Legacy report IDs use the documented deprecated endpoint and support JSON or downloadable CSV/PDF/XML. IDs from list_resources reports use reportSource=current and return one page of JSON with native pagination. Standard reports are not supported.

get_employee_directory

Get Employee Directory

Retrieve employee directory entries visible under the company's directory sharing settings. This is a permission-limited directory, not a complete employee roster or headcount.

get_goals

Get Employee Goals

Retrieve up to 50 visible goals for an employee. all includes closed goals, open selects goals in progress, and closed selects closed goals. With no filter, BambooHR excludes closed goals. A full page is not proof of completeness.

add_goal_comment

Add Goal Comment

Add a comment to an existing employee goal. Useful for providing feedback, status updates, or discussion on goal progress.

delete_table_row

Delete Table Row

Delete a specific row from an employee's table data. Requires the employee ID, table name, and row ID.

delete_file

Delete File

Delete a file from an employee's file folder or the company file folder. Requires the file ID and optionally the employee ID (for employee files).

upload_file

Upload File

Upload a file to an employee's file folder or the company file folder. Requires a category ID, file name, and the file content as a string. Specify an employee ID for employee files, or omit it for company files.

update_employee

Update Employee

Update one or more fields on an existing employee record. Pass the employee ID and the fields to update. Both standard fields (firstName, lastName, jobTitle, department, etc.) and custom fields are supported.

get_account_fields

Get Account Fields

Retrieve visible employee field definitions, including field IDs, names, types and aliases for employee reads, writes and reports.

update_application_status

Update Application Status

Change the status of an exact job application. Use list_resources with resourceType=application_statuses to discover valid active status IDs.

upsert_table_row

Add or Update Table Row

Add a new row or update an existing row in an employee's table data. If a rowId is provided, the existing row is updated; otherwise a new row is created. Tables include job history, compensation, education, and other structured data.

get_applications

Get Applications

Retrieve job applications from BambooHR's applicant tracking system. Filter by job ID, status, or new applications since a given date. Supports pagination.

update_time_off_request_status

Update Time Off Request Status

Change the status of an existing time off request. Can approve, deny, or cancel a request. Optionally include a note explaining the status change.

add_training_record

Add Training Record

Record a completed training for an employee. Specify the training type, completion date, and optionally the instructor, hours, credits, cost, and notes.

add_timesheet_entry

Add Timesheet Entry

Add a timesheet hour entry for an employee on a specific date. Can include hours worked, a note, and optionally associate with a project or task.

get_benefits_overview

Get Benefits Overview

Retrieve visible company benefit plan summaries and deduction types. When employeeId is supplied, also retrieve company coverage levels and dependents for that exact employee. Company coverage levels are not proof of an employee's enrollment.

list_files

List Files

List files for an employee or the company. Returns file metadata organized by categories, including file IDs, names, sizes, and dates. Specify an employee ID for employee files, or omit it to list company-level files.

get_timesheet_entries

Get Timesheet Entries

Retrieve timesheet entries and clock entries for a date range. Optionally filter by specific employee IDs. Returns both timesheet hour entries and clock-in/clock-out entries.

get_time_off_types

Get Time Off Types

Retrieve all available time off types configured in BambooHR (e.g., vacation, sick leave, personal days). Returns type IDs, names, and policy details.

get_whos_out

Get Who's Out

List visible time off occurrences and company holidays for a date range. With dates omitted, BambooHR uses today through 14 days out. Entries are not a count of unique employees.

clock_in_out

Clock In/Out

Clock an employee in or out for time tracking. Supports adding notes and associating the entry with a project or task.

get_time_off_requests

Get Time Off Requests

Retrieve time off requests within a date range. Optionally filter by employee, status, or time off type. Returns all matching requests with their details including dates, status, type, and notes.

get_employee

Get Employee

Retrieve detailed information about a specific employee by their ID. Specify which fields to include in the response — common fields include name, email, job title, department, hire date, status, and more. Use the **Get Account Fields** tool to discover all available field names.

get_table_data

Get Employee Table Data

Retrieve tabular data for an employee. Tables include job history, compensation, education, and other structured data. Use the **Get Account Metadata** tool to discover available table names.

get_training_types

Get Training Types

Retrieve visible training types, including their IDs, names, assigned categories and required status.

create_time_off_request

Create Time Off Request

Submit a new time off request for an employee. Specify the employee, time off type, date range, and requested status. The request can be submitted as "requested" (pending approval) or "approved" (if you have admin permissions).

generate_custom_report

Generate Custom Report

Generate an ad-hoc employee report using the documented deprecated report endpoint. It includes accessible active and inactive employees; onlyCurrent controls historical field values, not employment status. JSON returns structured data; CSV, PDF and XML produce a downloadable file. Use get_account_fields to discover field IDs.

list_resources

List Resources

Discover internal employee IDs, current saved report IDs, or active application status IDs. Returns one native page. Employee fields and counts are permission-sensitive; do not present a partial page or inaccessible values as complete company headcount. Current report IDs require reportSource=current in get_company_report; legacy IDs are a separate namespace.

get_current_user

Get Current User

Resolve the authenticated caller using employee ID 0, requesting only first and last name. An integration account without an employee record returns employeeId 0 and employeeBound=false; this does not identify an employee or grant access to employee-specific resources.

download_file

Download File

Download an exact existing employee or company file after checking that its ID appears in that folder. Use list_files to select an ID. Omit employeeId only for company files. Permission-limited or absent metadata is not proof that a file does not exist.

Connect Bamboohr to your AI client

Every client uses the same Magic MCP URL, and so does any other MCP client. Add it once and sign in with SSO.

  1. Enable Bamboohr in Metorial. In your Metorial portal, enable the Bamboohr MCP server and sign in with the account that owns the data. Access stays governed by your team policies.
  2. Add a custom connector. Open Customize, then Connectors. Select Add, then Custom, then Web.
  3. Paste your Metorial MCP URL. Name it Metorial, paste your Magic MCP URL (<your-magic-mcp-url>) and continue.
  4. Sign in. Select Add and sign in to load Bamboohr tools.

Run Bamboohr through the Metorial gateway

One governed layer for every app your agents reach, not a separate connector per tool.

  • Give Bamboohr and every other app to your whole team through one MCP gateway, behind your SSO.
  • Scope which teams and agents can use Bamboohr tools with role-based access control, and trace every call.
  • Prefer to run it yourself? Metorial is open source and self-hostable.

More integrations teams use with Bamboohr

Linkedin

Authenticate LinkedIn members with OpenID Connect, fetch the authenticated member profile, and create self-serve LinkedIn shares with text, article links, and uploaded images. Organization and Community Management workflows should move to a separate slate because LinkedIn restricts combining those products in one app.

Workable

Manage recruiting, hiring, and HR processes. Create and track job postings, manage candidates through hiring pipelines, and handle employee records. Create, move, disqualify, and comment on candidates. Manage requisitions with approval workflows. Retrieve offers and scheduled events like interviews. Create and manage departments. Handle employee data, documents, and time-off requests. Build custom careers pages with public job listing endpoints.

Ashby

Read and manage candidates, applications, jobs, offer forms and interview schedules. Discover required organization resources, inspect the connected API key and download provider files.

Async Interview

Review asynchronous interview campaigns and candidate submissions. List interview jobs, retrieve interview responses with candidate details and recording links, and filter responses by job.

Breathe Hr

Read employee, absence, sickness, organization, compensation and training records. Create employee and sickness records, request or decide leave, cancel absences, and manage expenses and claims. Discover the connected account and available configuration records.

Brex

Read and manage Brex users, cards, vendors, budgets and spend limits. Inspect card expenses, transactions, accounts and transfer status, download exact receipt files, and initiate explicitly requested vendor payments. Availability depends on the account role, scopes and enabled Brex products.

Technical notes for Bamboohr

Read and update visible BambooHR employee records and tables, time off, timesheets, goals and training records. Discover employee IDs, current reports and active applicant statuses. Read company benefit summaries and employee dependents, retrieve applicant tracking data, generate reports and download employee or company files. Permissions and company configuration determine availability.

Frequently asked questions

Common questions about connecting Bamboohr to AI agents with Metorial.

  1. How many tools does the Bamboohr MCP server have?
    The Bamboohr MCP server exposes 39 tools, including Get Account Metadata, Create Employee, Get Time Off Balances. Each one is governed and traced through Metorial.
  2. Bamboohr exposes tools your agents call on demand; it does not publish event triggers yet. Everything still runs through one governed MCP URL.
  3. Any MCP client, including VS Code, Windsurf, Zed, OpenCode and Grok. Each one reaches the Bamboohr MCP server through the same Metorial URL.
  4. Use role-based access control to decide which teams, users, and agents can use Bamboohr and which of its tools they can call.
  5. Yes. Metorial is open source, so you can run the Bamboohr MCP server yourself or use the hosted gateway.

Connect Bamboohr to production AI agents

See how Metorial gives your team governed access to Bamboohr, with tracing and security controls built in.