# BambooHR — MCP server on mcp.ai > Connect your BambooHR account and use 42 tools for human resources straight from your AI agent. Connect with your own API key. BambooHR is a cloud-based human resources management system (HRMS) that helps businesses manage their employees, payroll, and benefits. By: mcp.ai · official Page: https://mcp.ai/bamboohr ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_bamboohr?ms=1787293560000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/bamboohr/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/bamboohr/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/bamboohr/skill.md Postman collection (v2.1): https://mcp.ai/bamboohr/postman.json ## Tools - bamboohr_ats_create_candidate(zip?: string, city?: string, email?: string, jobId: integer, state?: string, resume?: object, source?: string, address?: string, country?: string, lastName: string, firstName: string, references?: string, referredBy?: string, websiteUrl?: string, collegeName?: string, coverLetter?: object, linkedinUrl?: string, phoneNumber?: string, dateAvailable?: string, desiredSalary?: string, highestEducation?: string) — Tool to create a candidate application. Use when adding a new applicant to a specific job opening in BambooHR ATS. - bamboohr_ats_create_job_opening(jobStatus: string, department?: string, hiringLead: integer, jobLocation?: integer, compensation?: string, postingTitle: string, employmentType: string, jobDescription: string, internalJobCode?: string, minimumExperience?: string, applicationQuestionResume?: string, applicationQuestionAddress?: string, applicationQuestionCollege?: string, applicationQuestionReferences?: string, applicationQuestionReferredBy?: string, applicationQuestionWebsiteUrl?: string, applicationQuestionCoverLetter?: string, applicationQuestionLinkedinUrl?: string, applicationQuestionDateAvailable?: string, applicationQuestionDesiredSalary?: string, applicationQuestionHighestEducation?: string) — Tool to create a new job opening in BambooHR ATS. Use when you need to open a new job for applicants. - bamboohr_ats_get_applications(page?: integer, jobId?: integer, jobStatusGroups?: string, applicationStatus?: string, applicationStatusId?: integer) — Tool to list job applications with optional filters. Use when retrieving ATS applications for reporting or integration. - bamboohr_benefit_get_coverages(coverage_id?: string) — Tool to retrieve standard benefit coverage options. Use when you need to fetch all or specific coverages before configuring benefit plans. - bamboohr_benefit_get_member_events(limit?: integer, offset?: integer) — Tool to list member benefit events. Use when you need to fetch all benefit events visible to the authenticated user. - bamboohr_company_get_eins() — Tool to retrieve company Employer Identification Numbers (EINs). Use when you need to fetch your account's EINs after authenticating. - bamboohr_company_get_information() — Tool to retrieve company information. Use when you need details about the current account's settings. - bamboohr_create_file_category(categories: string[]) — Tool to create new company file categories. Use when organizing company files by adding new categories after confirming desired names. - bamboohr_create_time_off_request(end: string, dates?: object[], notes?: object[], start: string, amount?: number, status: string, employeeId: string, timeOffTypeId: integer, previousRequest?: integer) — Tool to submit a new time off request. Use after confirming employee ID and valid payload. - bamboohr_datasets_list() — Tool to list available datasets via the Datasets API. Use when you need to discover available dataset schemas before querying data. - bamboohr_dependents_create(ssn?: string, city?: string, state?: string, gender?: string, country?: string, zipCode?: string, lastName: string, firstName: string, homePhone?: string, isStudent?: string, employeeId: integer, middleName?: string, dateOfBirth: string, isUsCitizen?: string, addressLine1?: string, addressLine2?: string, relationship?: string) — Tool to add a dependent to an employee. Use when a new dependent needs to be recorded for benefits or HR tracking. Ensure the employee record exists before calling this tool. - bamboohr_dependents_get_all() — Tool to retrieve all employee dependents. Use after ensuring your API key has access to benefit settings. - bamboohr_employee_create(lastName: string, firstName: string) — Tool to create a new employee record. Use when adding employees via BambooHR API. Returns the new employee's ID. - bamboohr_employee_files_create_category(categories: string[]) — Tool to create new employee file categories. Use when organizing employee files by adding new categories after confirming desired names. - bamboohr_employee_get_changed(since: string) — Tool to get employees inserted, updated, or deleted since a given timestamp. Use when fetching incremental HR changes. - bamboohr_files_list() — Tool to list company file categories and their files. Use when you need to retrieve all company files organized by category after confirming file inventory exists. - bamboohr_files_upload(file?: object, share: string, category: string, fileName: string, rawContent?: string, rawMimetype?: string) — Tool to upload a new company file. Use when you need to add a file to BambooHR after confirming its category and share settings. - bamboohr_get_all_employees() — Retrieves all employees from the BambooHR employee directory including their basic information and status. - bamboohr_get_applicant_statuses() — Tool to retrieve applicant statuses. Use when you need to list ATS statuses for your company; requires ATS settings access. - bamboohr_get_custom_employee_fields() — Tool to fetch custom employee field values. Use when you need to retrieve only custom fields for all employees. - bamboohr_get_custom_reports(title?: string, fields?: string[], format?: string, reportId?: string, onlyCurrent?: boolean, filters_last_changed_value?: string, filters_last_changed_include_null?: string) — Tool to run a custom report by ID or ad-hoc fields. Use when you need to execute a saved report or generate an ad-hoc report and retrieve its results in JSON or file format. - bamboohr_get_employee(fields?: string[], employeeId: string) — Tool to retrieve detailed information for a specific employee. Use when you need individual employee data by ID. - bamboohr_get_employee_photo(size: string, employee_id: string) — Tool to retrieve an employee's profile photo by size. Use when you need to download the image binary for the specified employee after confirming their ID. - bamboohr_get_hiring_leads() — Tool to retrieve potential hiring leads (employees who can manage job openings) for use in creating a new job opening. The API key owner must have access to ATS settings. - bamboohr_get_job_summaries(sortBy?: string, sortOrder?: string, statusGroups?: string) — Tool to retrieve a list of ATS job summaries. Use when you need an overview of all job postings and their key details. - bamboohr_get_meta_departments(limit?: integer, offset?: integer, name_contains?: string) — Tool to list department metadata. Use after needing all available department codes and names. - bamboohr_get_meta_divisions(limit?: integer, offset?: integer, name_contains?: string) — Tool to list all division metadata. Use after authenticating to fetch the account's divisions. - bamboohr_get_meta_employment_statuses() — Tool to list all employment status metadata. Use when you need all defined employment statuses for the company. - bamboohr_get_meta_job_titles(limit?: integer, offset?: integer, name_contains?: string, include_archived?: boolean) — Tool to retrieve job title metadata. Uses the list-field metadata endpoint and extracts the options for the `jobTitle` field. - bamboohr_get_meta_locations(limit?: integer, offset?: integer, name_contains?: string, include_archived?: boolean) — Tool to list location metadata. Use when you need all configured company locations for lookups. - bamboohr_get_meta_time_off_types() — Tool to list time-off type metadata. Use when you need to discover available time-off types before creating time-off requests. - bamboohr_get_report(fd?: string, format?: string, report_id: string) — Tool to fetch a built-in or published report in JSON or other formats. Use when you need to retrieve report data or download report files after specifying the report ID and desired output format. - bamboohr_get_time_off_balances(end_date?: string, employee_ids?: integer[], max_employees?: integer) — Tool to retrieve time-off balances for employees. Use when you need current balances across your team. - bamboohr_get_time_off_policies() — Tool to list time-off policies with accrual rates and details. This action retrieves policy configuration including accrual amounts, schedules, maximum accrual limits, and rollover settings. Use this - bamboohr_get_time_off_requests(id?: string, end: string, type?: string, start: string, action?: string, status?: string, employeeId?: string) — Tool to list time-off requests within a date range. Use after confirming start and end dates; supports optional filters for status, employee, and time off type. - bamboohr_list_builtin_reports() — Tool to list all available company and custom reports. Use after confirming account setup. Requires 'report' scope for OAuth or an API key with report access permissions. - bamboohr_meta_get_countries(limit?: integer, offset?: integer, name_contains?: string) — Tool to retrieve all available country options. Use when you need a complete list of selectable countries before updating or validating country fields. - bamboohr_meta_get_list_field_details() — Tool to get details for all list fields. Use when you need to discover list field options before using them. - bamboohr_meta_get_tabular_fields() — Tool to list tabular table fields metadata. Use when you need standard table structures before accessing table rows. - bamboohr_meta_get_users() — Tool to list active users with basic info. Use when you need to retrieve current users' IDs, names, and emails. - bamboohr_update_employee(fields: object, employee_id: string) — Tool to update fields on a specified employee record. Use when you need to modify employee properties via BambooHR API after confirming the target employee ID. Example: "Update employee 12345's depart - bamboohr_update_time_off_request(note?: string, status: string, request_id: string) — Tool to update the status of an existing time-off request. Use when you need to approve, deny, or cancel a request after reviewing it. Example: "Approve time-off request 12345". ## Example prompts - "What can I do in BambooHR?" - "Show me a summary of my BambooHR account" ## Links Docs: https://mcp.ai/docs/mcps/bamboohr Website: https://mcp.ai/mcps/bamboohr