{"name":"com.mcparmory/bamboohr","slug":"mcparmory-bamboohr","title":null,"description":"Manage employee records, time off, benefits, and payroll data","url":"https://mcp.market/server/mcparmory-bamboohr","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":31,"stars":31,"forks":4,"downloads_week":155,"last_push_at":"2026-05-12T12:55:57.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/mcparmory/registry","website":null,"version":"1.0.6","remotes":[],"packages":[{"registryType":"pypi","identifier":"mcparmory-bamboohr","version":"1.0.6","runtimeHint":"uvx","transport":{"type":"stdio"}},{"registryType":"oci","identifier":"ghcr.io/mcparmory/bamboohr:1.0.6","runtimeHint":"docker","transport":{"type":"stdio"}}],"tools":[{"name":"add_goal_comment","description":"Adds a new comment to a specific goal belonging to the given employee. Returns the newly created comment object, including its assigned ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"assign_break_policy_employees","description":"Assigns a specific set of employees to a break policy, fully replacing all existing employee assignments with the provided list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"assign_employees_to_break_policy","description":"Assigns one or more employees to an existing break policy, adding them to the policy's membership without affecting any previously assigned employees.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bulk_upsert_clock_entries","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bulk_upsert_timesheet_entries","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clock_in_employee","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clock_out_employee","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"close_goal","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_break","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_break_policy","description":"Creates a new break policy for time tracking compliance, optionally including break definitions and employee assignments in a single request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_candidate","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_employee","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_employee_goal","description":"Creates a new performance goal for a specified employee, including due dates, completion tracking, milestones, and sharing with other employees.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_employee_table_row","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_employee_table_row_v1_1","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_job_opening","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_project","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_time_entry","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_break","description":"Soft-deletes a time tracking break by its unique identifier, permanently removing it from any associated break policies.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_break_policy","description":"Permanently deletes a break policy by its unique identifier. All associated breaks and employee assignments linked to the policy are also removed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_clock_entries","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_company_file","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_employee_file","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_employee_goal","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_employee_table_row","description":"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).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_goal_comment","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_hour_entries","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_time_tracking_record","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_webhook","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"download_company_file","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"download_employee_file","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_break","description":"Retrieves the full details of a specific time tracking break by its unique identifier, including its name, duration, paid status, and availability configuration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_break_policy","description":"Retrieves a single break policy by its unique identifier. Optionally includes counts of associated employees and breaks for summary reporting.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_company_profile","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_custom_report","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_employee","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_employee_goals_aggregate","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_field_options","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_field_options_rfc7807","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_goal_aggregate","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_goal_filters","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_time_tracking_record","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_webhook","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_applicant_statuses","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_applications","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_benefit_deduction_types","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_break_assessments","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_break_policies","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_break_policy_breaks","description":"Retrieves a paginated list of breaks associated with a specific break policy. Supports OData v4 filtering to narrow results by break attributes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_break_policy_employees","description":"Retrieves the list of employees assigned to a specific break policy. Returns an empty list if no employees are currently assigned to the policy.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_changed_employee_table_rows","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_company_benefits","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_countries","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_country_states","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_custom_reports","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_dataset_fields","description":"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","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_dataset_fields_v1_2","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_datasets","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_datasets_v1_2","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_employee_benefits","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_employee_break_availabilities","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_employee_break_policies","description":"Retrieves all break policies assigned to a specific employee. Requires permission to view the target employee's records.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_employee_fields","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_employee_goals","description":"Retrieves the list of goals assigned to a specific employee, optionally filtered by goal status. Returns up to 50 goals in a `goals` array.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_employee_table_rows","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_employees","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_enabled_integrations","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_goal_alignment_options","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_goal_comments","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_goal_share_options","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_hiring_leads","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_job_locations","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_member_benefit_events","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_member_benefits","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_timesheet_entries","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_timezones","description":"Retrieves a paginated list of available timezones. Supports pagination, filtering, sorting, and field projection via OData v4 query parameters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_users","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_webhook_logs","description":"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 —","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_webhook_monitor_fields","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_webhook_post_fields","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"list_webhooks","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"query_dataset","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"reopen_goal","description":"Reopens a previously closed goal for the specified employee, returning it to in-progress status. Returns the updated goal object reflecting the new status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"replace_break_policy","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"replace_break_policy_breaks","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_goal_sharing","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"unassign_employees_from_break_policy","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_break","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_break_policy","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_company_file","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_employee","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_employee_file","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_employee_table_row","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_employee_table_row_v1_1","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_goal_comment","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_goal_progress","description":"Updates the completion percentage of a specific employee goal, optionally recording the completion date when the goal is fully achieved.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_goal_with_milestones","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_milestone_progress","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_time_entry","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"upsert_hour_records","description":"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.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-27T21:30:39.181Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:30:39.199Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":8,"max":15,"notes":["last push 138 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"mcparmory-bamboohr","version":"1.0.6","found":true,"weeklyDownloads":155,"license":"MIT","dependencyCount":6,"publishedAt":"2026-05-11T19:31:15.961531Z","repositoryUrl":"https://github.com/mcparmory/registry"}],"repo":{"found":true,"owner":"mcparmory","repo":"registry","archived":false,"pushedAt":"2026-05-12T12:55:57Z","stars":31,"forks":4,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/261029234?v=4","ownerCreatedAt":"2026-02-11T20:13:50Z","license":"NOASSERTION"},"icon":{"url":"https://mcparmory.com/favicon-180.png","source":"site","width":180,"height":180},"presence":{"stars":31,"forks":4,"downloadsWeek":155,"license":"NOASSERTION","lastPushAt":"2026-05-12T12:55:57.000Z","score":31}}}},"grade_history":[],"reviews":[]}