MCP.Market

Bamboohr MCP server

by mcparmory.com·com.mcparmory/bamboohr·v1.0.6·31 stars

Manage employee records, time off, benefits, and payroll data

B80/100grade B
What users say
No reviews yet
Be the first
Safety scan
B80/100

full report

Adoption
Growing

31 stars155 downloads/wk

Reviews

Write one

Nobody has reviewed Bamboohr yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Bamboohr tools (100, 37 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add_goal_comment

    Adds a new comment to a specific goal belonging to the given employee. Returns the newly created comment object, including its assigned ID.

  • assign_break_policy_employees

    Assigns a specific set of employees to a break policy, fully replacing all existing employee assignments with the provided list.

  • assign_employees_to_break_policy

    Assigns one or more employees to an existing break policy, adding them to the policy's membership without affecting any previously assigned employees.

  • bulk_upsert_clock_entrieswrite action

    Creates new timesheet clock entries or updates existing ones in a single bulk operation. Entries containing an existing ID are updated; entries without an ID are created as new records.

  • bulk_upsert_timesheet_entrieswrite action

    Creates new timesheet hour entries or updates existing ones in a single bulk operation. Entries containing an existing ID are updated; entries without an ID are created as new records.

  • clock_in_employee

    Records a clock-in entry for an employee, defaulting to the current server time. To log a historical entry, supply a date, start time, and timezone, and optionally associate the entry with a project, task, break, or note.

  • clock_out_employee

    Records a clock-out entry for a currently clocked-in employee, defaulting to the current server time. To log a historical clock-out, supply a date, end time, and timezone.

  • close_goal

    Closes an employee's goal by transitioning it to closed status, optionally recording a comment at the time of closure. Note: cascading goals that have visible child goals cannot be closed.

  • create_breakwrite action

    Creates a new break and associates it with the specified break policy. Configure the break's name, pay status, duration, and availability rules to control when employees can take it.

  • create_break_policywrite action

    Creates a new break policy for time tracking compliance, optionally including break definitions and employee assignments in a single request.

  • create_candidatewrite action
  • create_employeewrite action

    Creates a new employee record with at minimum a first and last name; additional fields such as payroll, contact, and job details can be included using any valid employee field name discoverable via the list-fields endpoint. Employees added to a Trax Payroll-synced pay schedule require a full set of payroll-related fields including SSN/EIN, compensation, and location details.

  • create_employee_goalwrite action

    Creates a new performance goal for a specified employee, including due dates, completion tracking, milestones, and sharing with other employees.

  • create_employee_table_rowwrite action

    Appends a new row to a specified tabular data section of an employee record, such as job information or compensation history. Submit field name/value pairs in JSON or XML to record a new entry with an effective date and relevant attributes.

  • create_employee_table_row_v1_1write action

    Adds a new row to a specified table in an employee's record, such as job information or compensation history. Accepts row data in JSON or XML format with an optional effective date and relevant field values.

  • create_job_openingwrite action
  • create_projectwrite action

    Creates a new time tracking project with optional task-level tracking and employee access controls. Returns the created project including its ID, tasks, and employee access list when access is restricted.

  • create_time_entrywrite action

    Creates a single time tracking hour record for an employee. Use this endpoint for one-off entries; for bulk imports use the batch upsert endpoint.

  • delete_breakwrite action

    Soft-deletes a time tracking break by its unique identifier, permanently removing it from any associated break policies.

  • delete_break_policywrite action

    Permanently deletes a break policy by its unique identifier. All associated breaks and employee assignments linked to the policy are also removed.

  • delete_clock_entrieswrite action

    Permanently deletes one or more timesheet clock entries by their unique IDs. This operation is idempotent, so submitting IDs for already-deleted entries will not cause errors or require retries.

  • delete_company_filewrite action

    Permanently deletes a company file by its unique identifier. Requires write access to company files; returns 404 if the file is not found or 403 if the caller lacks sufficient permissions.

  • delete_employee_filewrite action

    Permanently deletes a specific file associated with an employee record. Returns 200 even if the file was already deleted (idempotent), 404 if the file is not linked to the specified employee, and 403 if the caller lacks permission or the file is managed by BambooPayroll.

  • delete_employee_goalwrite action

    Permanently deletes a specific goal associated with an employee. The goal must belong to the specified employee; returns 204 with no response body on success.

  • delete_employee_table_rowwrite action

    Permanently removes a specific row from a named tabular dataset associated with an employee. Deletion will fail if the row has pending approval changes (409) or is tied to an active pay schedule (412).

  • delete_goal_commentwrite action

    Permanently deletes a specific comment from an employee's goal. The comment must belong to the specified goal, which must be associated with the specified employee. Returns 204 with no response body on success.

  • delete_hour_entrieswrite action

    Permanently deletes one or more timesheet hour entries by their unique IDs. This operation is idempotent, so submitting IDs for already-deleted entries will not cause errors or require retries.

  • delete_time_tracking_recordwrite action

    Permanently deletes a time tracking record and all of its associated revisions by ID. Note that both not-found and invalid ID cases return a 400 invalid-argument response for backward compatibility.

  • delete_webhookwrite action

    Permanently deletes a webhook associated with the authenticated user's API key. Returns 403 if the webhook belongs to a different API key, or 404 if the webhook does not exist.

  • download_company_file

    Downloads the raw content of a company file by its ID, with the response including the appropriate MIME type and original filename as an attachment. Access is granted if the file or its category is shared with employees, shared directly with the requesting user, or the user holds view permission on the file section.

  • download_employee_file

    Downloads the binary content of a specific file attached to an employee record, returning it as an attachment with the appropriate MIME type. Returns 403 if access to the employee or file section is denied, and 404 if the file does not exist or is archived.

  • get_break

    Retrieves the full details of a specific time tracking break by its unique identifier, including its name, duration, paid status, and availability configuration.

  • get_break_policy

    Retrieves a single break policy by its unique identifier. Optionally includes counts of associated employees and breaks for summary reporting.

  • get_company_profile

    Retrieves the company's basic profile information, including legal name, display name, primary address, and contact phone number. Data is sourced from active payroll client metadata for BambooHR Payroll companies, or from account settings for all others.

  • get_custom_report

    Retrieve paginated data for a specific saved custom report by its ID, using the report's stored field list and filter configuration. Use list_custom_reports to discover available report IDs.

  • get_employee

    Retrieves profile and field data for a specific employee by ID. Supports selective field retrieval and optionally includes future-dated values from historical tables such as job title or compensation.

  • get_employee_goals_aggregate

    Retrieves a comprehensive aggregate of all goals for a given employee, including milestone-containing goals, type counts, filter actions, comment counts, and shared employee details. This version extends v1.1 by including goals that contain milestones.

  • get_field_options

    Retrieve the available filter values for one or more fields in a dataset, returning an object keyed by field name where each value is an array of id/value pairs. Use the returned id values when constructing filters for dataset queries.

  • get_field_options_rfc7807

    Retrieve the available filter values for one or more fields in a dataset, returning an object keyed by field name where each value is an array of id/value pairs. Use the returned id values when constructing filters for dataset queries.

  • get_goal_aggregate

    Retrieves a comprehensive goal detail view for a specific employee, including the goal's comments, alignment options, and a consolidated list of all persons who are shared on or have commented on the goal. Designed to populate a full goal detail view in a single request.

  • get_goal_filters

    Retrieves the count of goals grouped by status for a specific employee, including goals that contain milestones. Use this to understand an employee's goal distribution across statuses before fetching detailed goal data.

  • get_time_tracking_record

    Retrieves a single time tracking record by its unique ID, returning full details including hours, date, employee, project, task, and shift differential information. Note that project and shiftDifferential fields may be null when not applicable, and missing records may return an empty or null payload rather than a not-found error.

  • get_webhook

    Retrieves the full configuration of a single webhook owned by the authenticated user, including its name, URL, format, monitored fields, events, and activity timestamps. Returns 403 if the webhook belongs to a different user and 404 if it does not exist.

  • list_applicant_statuses

    Retrieves all applicant tracking statuses configured for the company, including both system-defined and custom statuses. Requires the API key owner to have access to ATS settings.

  • list_applications

    Retrieve a paginated list of job applications from the Applicant Tracking System (ATS). Supports filtering by job, application status, position status, and submission date, with flexible sorting options.

  • list_benefit_deduction_types

    Retrieves all benefit deduction types available in the system, including categories such as 401(k), HSA, and Section 125, along with their allowable plan types, default deduction codes, and any sub-types. Requires Benefits Administration permissions.

  • list_break_assessments

    Retrieves a paginated list of break assessments, each recording whether an employee complied with their assigned break policy for a given day along with any violations. Use the filter parameter to scope results by employee, date, compliance result, or other fields.

  • list_break_policies

    Retrieves a paginated list of all break policies configured in the time-tracking system. Optionally includes employee and break counts per policy for summary reporting.

  • list_break_policy_breaks

    Retrieves a paginated list of breaks associated with a specific break policy. Supports OData v4 filtering to narrow results by break attributes.

  • list_break_policy_employees

    Retrieves the list of employees assigned to a specific break policy. Returns an empty list if no employees are currently assigned to the policy.

  • list_changed_employee_table_rows

    Retrieves table rows for all employees whose records have changed since a specified timestamp, grouped by employee ID. Any change to an employee record causes all of that employee's rows in the specified table to be returned, making this an efficient alternative to fetching full table data for all employees.

  • list_company_benefits

    Retrieves all active (non-deleted) company benefit plans for the account, including summary-level details such as name, benefit category type, associated vendor and deduction IDs, effective date range, and catch-up eligibility flags. For full plan details including SSO URL, description, and ACA fields, use get_company_benefit with a specific plan ID.

  • list_countries

    Retrieves the full list of countries supported by BambooHR, each including a numeric string ID, full name, and ISO 3166-1 alpha-2 code. The returned country IDs can be used with the Get States by Country ID endpoint to fetch corresponding states or provinces.

  • list_country_states

    Retrieves the list of states or provinces for a given country, sorted alphabetically by abbreviation. Each result includes a numeric ID, abbreviation label, ISO 3166-2 code, and full name.

  • list_custom_reports

    Retrieve a paginated list of saved custom reports available in the account, returning each report's ID and name. Use the returned report ID with the get_custom_report operation to fetch full report data.

  • list_dataset_fields

    Retrieves the available fields for a specified dataset, returning paginated field descriptors that include each field's machine-readable name, human-readable label, parent section type and name, and entity name. Use the returned field `name` values when constructing field selections in POST /api/v1/datasets/{datasetName} queries. Note: this endpoint is deprecated — prefer GET /api/v1_2/datasets/{d

  • list_dataset_fields_v1_2

    Retrieve the available fields for a specified dataset, returning paginated field descriptors that include each field's machine-readable name, human-readable label, parent section, and entity name. Use the returned field `name` values when constructing data queries against the dataset.

  • list_datasets

    Retrieves all available datasets, returning each dataset's machine-readable name and human-readable label. Use the returned names to query data via POST /api/v1/datasets/{datasetName} or discover fields via GET /api/v1/datasets/{datasetName}/fields. Note: this endpoint is deprecated — prefer GET /api/v1_2/datasets.

  • list_datasets_v1_2

    Retrieves all available datasets, returning each dataset's machine-readable name and human-readable label. Use the returned name values to query dataset records or discover available fields via related endpoints.

  • list_employee_benefits

    Retrieves current and future benefit enrollment records for one or more employees, grouped by employee, including plan details, enrollment status, deduction amounts, and cost-sharing information. At least one filter — employee ID, company benefit plan ID, or enrollment status effective date — must be provided.

  • list_employee_break_availabilities

    Retrieves the available break options for a specific employee at a given point in time. Requires permission to view the target employee and time-tracking-break access.

  • list_employee_break_policies

    Retrieves all break policies assigned to a specific employee. Requires permission to view the target employee's records.

  • list_employee_fields

    Retrieves all available employee fields for the account, including field ID, display name, data type, and deprecation status. Use this to discover valid field names before querying employee data via the Get Employee, Datasets, or other field-based endpoints.

  • list_employee_goals

    Retrieves the list of goals assigned to a specific employee, optionally filtered by goal status. Returns up to 50 goals in a `goals` array.

  • list_employee_table_rows

    Retrieves all rows from a specified table for one or all employees, returning only the fields the caller has permission to access. Results are unordered and field visibility is subject to field-level permission checks.

  • list_employees

    Retrieves a paginated list of employees, each including core identity and job fields by default, with optional filtering, sorting, and additional contact or social fields. Use the Get Employee endpoint or Datasets API for more comprehensive field coverage.

  • list_enabled_integrations

    Retrieves the list of integration and feature identifiers currently enabled for the company. Each identifier is an uppercase string key representing an activated product feature or integration, reflecting the company's current subscription and configuration.

  • list_goal_alignment_options

    Retrieves the list of goals that a specified employee's goal can be aligned with. When a goal ID is provided, the currently aligned goal is included in the results even if it would otherwise be filtered out.

  • list_goal_comments

    Retrieves all comments associated with a specific goal for a given employee. Useful for reviewing feedback, progress notes, and discussion threads tied to a performance goal.

  • list_goal_share_options

    Retrieves a list of employees with whom the specified employee's goals can be shared. Results are filtered by a search term matching name, employee ID, or email.

  • list_hiring_leads

    Retrieves the list of employees eligible to be assigned as a hiring lead on a job opening. Use the returned `employeeId` values as the `hiringLead` field when creating a new job opening via the Create Job Opening endpoint.

  • list_job_locations

    Retrieves all company locations available for use when creating a job opening in the Applicant Tracking System. Requires ATS settings access; use the returned location IDs as the `jobLocation` field when creating a job opening.

  • list_member_benefit_events

    Retrieves benefit enrollment events for all employees and their dependents over the past year, organized by member. Each entry identifies a member and lists their per-plan coverage events (eligibility granted, enrolled, or loss of coverage) in chronological order. Requires benefit settings access.

  • list_member_benefits

    Retrieves a paginated list of benefit enrollment records for all members (employees and dependents) in the company for a specified calendar year, including each member's plans and enrollment status date ranges. Requires benefit admin privileges; non-admin callers receive a 403.

  • list_timesheet_entries

    Retrieves timesheet entries (clock and hour types) for all employees or a filtered subset within a specified date range. Both dates must fall within the last 365 days and are interpreted in the company timezone.

  • list_timezones

    Retrieves a paginated list of available timezones. Supports pagination, filtering, sorting, and field projection via OData v4 query parameters.

  • list_users

    Retrieves all users for the company, with each record including user ID, employee ID, name, email, account status, and last login time. Support admin accounts are always excluded; results can be filtered by status and returned as JSON or XML based on the Accept header.

  • list_webhook_logs

    Retrieves recent delivery log entries for a specific webhook, covering the last 14 days and up to 200 entries. Each entry includes the webhook URL, last attempt and success timestamps (UTC datetime or status string), HTTP response code, payload format, and employee IDs in the payload. Note: when the rate limit is exceeded the server returns HTTP 200 with an error object instead of the log array —

  • list_webhook_monitor_fields

    Retrieves all employee fields available for webhook monitoring, including each field's numeric ID, human-readable name, and alias. Use the returned field IDs or aliases when specifying the `monitorFields` array during webhook creation or updates.

  • list_webhook_post_fieldswrite action

    Retrieves all available employee fields that can be included in a webhook post body, along with their related table and page record references. Use the returned field IDs or aliases in the `postFields` map when creating or updating a webhook.

  • list_webhooks

    Retrieves all webhooks associated with the authenticated API key, returning an empty array if none exist. Each result includes the webhook ID, name, URL, creation datetime, and last fired datetime; use get_webhook to fetch full configuration details for a specific webhook.

  • query_dataset

    Retrieve paginated records from a specified dataset by providing a list of fields to return, with optional filtering, sorting, grouping, and aggregation. Use GET /api/v1/datasets/{datasetName}/fields to discover available field names before calling this endpoint.

  • reopen_goal

    Reopens a previously closed goal for the specified employee, returning it to in-progress status. Returns the updated goal object reflecting the new status.

  • replace_break_policy

    Performs a full replacement of a break policy and all its associated data, including breaks and employee assignments. Any breaks or assignments not included in the request payload will be removed from the policy.

  • replace_break_policy_breaks

    Replaces the complete set of breaks for a specified break policy. Breaks with an ID are updated, breaks without an ID are created, and any existing breaks omitted from the request are soft-deleted.

  • set_goal_sharing

    Replaces the complete list of employees a goal is shared with, overwriting any previous sharing configuration. The goal owner's employee ID must be included in the updated list.

  • unassign_employees_from_break_policywrite action

    Removes specific employees from a break policy assignment without affecting the policy itself or other assigned employees. Only applicable to policies that are not configured to apply to all employees.

  • update_breakwrite action

    Partially updates an existing time tracking break by its UUID, modifying only the fields provided in the request body. Returns the full updated break record on success.

  • update_break_policywrite action

    Partially updates an existing break policy by its UUID, modifying only the fields provided in the request body. Returns the full updated break policy on success.

  • update_company_filewrite action

    Updates metadata for an existing company file, including its display name, category, and employee visibility. Only fields included in the request body are modified; omitted fields remain unchanged.

  • update_employeewrite action

    Update one or more fields for an existing employee by submitting a JSON object or XML document with field name/value pairs. To discover all available field names beyond those listed here, call the list_fields operation (GET /api/v1/meta/fields). Note: if the employee is on a Trax Payroll pay schedule, a comprehensive set of required payroll fields must be included in the request.

  • update_employee_filewrite action

    Updates metadata for an existing employee file, supporting renaming, category reassignment, and toggling employee visibility. Only fields included in the request body are modified; omitted fields remain unchanged.

  • update_employee_table_rowwrite action

    Updates an existing row in a specified employee table by submitting one or more field name/value pairs to modify. Targets a specific row by ID within tables such as job information or compensation history.

  • update_employee_table_row_v1_1write action

    Updates an existing row in a specified employee table, such as job information or compensation history. Submit field changes to modify the row's effective date, location, department, job title, reporting structure, or team assignments.

  • update_goal_commentwrite action

    Updates the text of an existing comment on a specific employee goal. The comment, goal, and employee must all be correctly associated for the update to succeed.

  • update_goal_progresswrite action

    Updates the completion percentage of a specific employee goal, optionally recording the completion date when the goal is fully achieved.

  • update_goal_with_milestoneswrite action

    Updates an existing performance goal for a specified employee, including support for adding, modifying, or deleting milestones within the goal. Use this version (v1.1) instead of v1 when milestone management is required.

  • update_milestone_progresswrite action

    Updates the completion status of a specific milestone within an employee's goal. Use this to mark a milestone as complete or incomplete as part of tracking goal progress.

  • update_time_entrywrite action

    Updates an existing time tracking entry identified by its unique ID. Use this to correct hours worked or reassign the entry to a different project, task, shift differential, or holiday.

  • upsert_hour_records

    Bulk create or update time tracking hour records in a single request. Note that HTTP 201 may be returned even when individual records fail validation — always inspect each item's `success` flag and `response.message` for partial failures.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan5 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 138 days ago8/15
  • Maintainer identityregistry namespace matches repository owner7/10
Overall 80/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Bamboohr compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
80/100
higher than 60% of 48,255 servers
Tools
100
the typical server has 7
Tools that change things
37%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
31
more than 92% of 28,688 servers
Downloads a week
155
more than 71% of 12,191 servers with a package

What its tools let an agent do: 56 read · 11 create · 22 change · 11 delete

Install Bamboohr in Claude Code, Cursor or VS Code

claude mcp add bamboohr -- uvx mcparmory-bamboohr
Add to Cursor

What the publisher says

From the Bamboohr repository's README, as published. We do not edit it. Read it on GitHub

MCP Armory Registry

Production-ready MCP servers for popular APIs, generated by MCP Blacksmith.

Servers · Install & Usage · Features · How it works · License

MCP servers that connect AI agents to real-world APIs. Each server is a standalone Python package — generated from the upstream OpenAPI spec using MCP Blacksmith and tested against the live API before release. Hosted on MCP Armory or run independently.

<!-- SERVERS:BEGIN -->

Servers

🧠 AI & Machine Learning &ensp; ElevenLabs · Linkup · Parallel · Perplexity AI · Ragie · Replicate

📊 Analytics &ensp; Ahrefs · Datadog · Google Analytics · Google Search Console · Linkly · Mixpanel · PostHog

⛓️ Blockchain & Crypto &ensp; Alchemy NFT

💼 CRM & Sales &ensp; Apollo

💬 Communication &ensp; Atlassian Confluence · Google Gmail · MailerSend · Mailtrap · Postmark · Resend · Slack

🗄️ Data & Databases &ensp; Enigma · Pinecone

🛠️ Developer Tools &ensp; AgentQL · Apify · Bitbucket · Bright Data · Browserbase · BuiltWith · Canvas · CircleCI · Codacy · Contentful Management · ConvertAPI · E2B · Firecrawl · GitHub · GitLab · LaunchDarkly · Postman · Scrapingant · Semrush AppCenter · Sentry

📄 Documents & Printing &ensp; PDF.co

🛒 E-commerce &ensp; Shopify Admin

💰 Finance &ensp; Alpha Vantage · Polygon · Ramp

👥 HR & Recruiting &ensp; BambooHR

☁️ Infrastructure &ensp; Globalping · Grafana · PagerDuty · Rootly · Runpod

⚖️ Legal & Compliance &ensp; NetLicensing

🗺️ Maps & Location &ensp; Google Maps Platform · IP2Location.io IP Geolocation · OpenCage Geocoding

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Bamboohr: common questions

Is Bamboohr MCP server safe?
Mostly: it is graded B (80/100). Read the Bamboohr safety report
How do I install Bamboohr?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Bamboohr need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Bamboohr maintained?
The last commit was 176 days ago (2026-05-12). The latest release is v1.0.6.
How does Bamboohr compare with other MCP servers?
safety score 80/100 (higher than 60% of 48,255 servers); tools 100 (the typical server has 7); tools that change things 37% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

More from mcparmory.com →