HR Safe Space
Endpoints / load-j1yko-0039 / Schema & tools
Raw MarkdownBrowse data

Vertexhaven Partners — HRIS data dictionary

Instance key: load-j1yko-0039
MCP endpoint: https://hr-safe-space.cheek.org/i/load-j1yko-0039/mcp
Authentication: none. The endpoint key is the only thing that selects a dataset.
Generated: 2026-09-14T05:48:19.587Z

Every row described here is synthetic. It represents no real person and no real organisation. This exists to give an assistant a realistic HRIS to work against.

This instance

Property Value
Company Vertexhaven Partners
Industry Healthcare Services
Email domain vertexhaven.io
Founded 1939
Base currency USD
Worker records 70,566
Management layers 9
Provisioned 2026-09-14T03:28:35.719Z
Tool calls served 14
Writes applied 0

Organisation shape

Layer Role People Average span of control
0 Chief Executive Officer 1 6
1 Executive 6 2
2 Executive 14 3
3 Vice President 38 3
4 Senior Director 114 3
5 Director 343 4
6 Senior Manager 1,373 5
7 Manager 6,867 9
8 Individual contributor 61,810

How an instance works

Calling any endpoint key for the first time provisions a complete HRIS for that key. The roster size is drawn from the range 50,000–425,000 worker records and is stable for the life of the key: the same key always describes the same company.

Provisioning is a single row insert. The employee roster is not copied per instance. One master template holds the worker records once; an instance is a projection over a prefix of that template, parameterised by the instance row. Names, company identity, department mix, location mix, pay scale and hire dates all derive from the instance, so two keys over the same template are two different companies. That is what makes it possible to stand up thousands of these: a 425,000-person company materialises in the time it takes to insert one row, and costs one row of storage until something is written to it.

Writes are copy-on-write. Every mutating tool writes a diff into this instance's private overlay: a patch, a newly created row, or a tombstone. Reads merge the overlay over the projection. The shared template is immutable at runtime, so a write through one endpoint key can never be observed through another.

Isolation guarantee. Every query this endpoint runs is bound to load-j1yko-0039. There is no tool, filter or parameter that reaches another instance's data.

Entities

Entity Rows here Origin Writable Description
employee 70,566 template-projection yes The worker record.
compensation_event 28,763 template-projection yes Historical pay changes: merit increases, promotions, market adjustments and retention awards.
time_off_request 15,591 template-projection yes Absence requests across every leave type, from submitted through approved, denied or taken.
performance_review 60,846 template-projection yes Completed review-cycle records with rating, potential, calibration state and written feedback.
goal 20,802 template-projection yes Individual objectives with weighting, progress and status.
benefit_enrollment 59,917 template-projection yes Which employees are enrolled in which benefit plans, with employee and employer cost.
training_record 43,646 template-projection yes Assigned and completed learning, including mandatory compliance training and its renewal state.
hr_case 727 template-projection yes Employee-relations matters: conduct concerns, grievances, accommodation requests, safety reports and ethics-hotline intake, with severity, SLA and assignment.
hr_case_note 2,151 template-projection yes Chronological notes recorded against an employee-relations case.
job_requisition 1,400 template-projection yes Open and historical hiring requisitions with hiring manager, recruiter, target and fill state.
candidate 26,000 template-projection yes Applicants against requisitions, with source, pipeline stage, rating and expected compensation.
payslip ~3,387,168 (derived) derived no Per-period earnings, taxes and deductions.
time_off_balance ~564,528 (derived) derived no Accrued, taken and available leave per employee per leave type.
audit_log 1 overlay no Every write any MCP tool has performed against this instance, in order.
department 19 reference no Department catalogue.
location 24 reference no Work locations with timezone, currency and cost-of-living index.
job 418 reference no Job catalogue: every department and level combination with its title, FLSA status and pay band.
benefit_plan 22 reference no Benefit plan catalogue with carrier, tier, cost split, deductible and eligibility waiting period.
training_course 25 reference no Learning catalogue, including which courses are mandatory and how often they must be renewed.
policy_document 12 reference no HR policy library.
payroll_run 48 template-projection no The payroll calendar: two years of semi-monthly periods with status and totals.

Operational entities

employee

Employee — The worker record. One row per person who has ever been on the roster, including terminated leavers. Org structure (manager, level, department, direct reports) is derived arithmetically from the position in the roster, so the reporting tree is always internally consistent and never orphaned.

Columns

Column Type Writable Description
employee_id text no Stable public identifier. primary key
seq integer no Position in the roster. Lower numbers sit higher in the org.
first_name text yes Given name.
last_name text yes Family name.
middle_initial text no Disambiguating initial, present only above the size of the name space.
full_name text yes Display name.
work_email text yes Corporate email. Unique across the instance.
work_phone text yes Work telephone number.
home_address_line1 text yes Home street address.
job_title text yes Current job title.
job_code text no Job catalogue code. FK → job.job_code
job_family text no Job family grouping.
flsa_status text no Overtime eligibility. one of: exempt, non-exempt
job_level integer yes Career level, 0 (associate) to 10 (CEO).
job_level_name text no Human-readable level.
job_level_code text no Short level code such as IC3 or M2.
is_people_manager boolean no True when the employee has at least one direct report.
is_executive boolean no True at VP level and above.
department_code text no Owning department. FK → department.code
department_name text yes Department name.
department_function text no Function grouping such as Technology or Revenue.
cost_center text no Finance cost centre.
location_code text yes Primary work location. FK → location.code
location_city text no Work city.
location_region text no State or region.
location_country text no Country.
location_country_code text no ISO 3166-1 alpha-2 country code.
location_timezone text no IANA timezone.
manager_id text yes Direct manager. Null only for the CEO. FK → employee.employee_id
manager_seq integer no Manager roster position.
direct_report_count integer no Exact number of direct reports.
org_depth integer no Layers below the CEO. 0 is the CEO.
employment_type text no Full-time, part-time, contractor, intern or temporary.
work_arrangement text yes On-site, hybrid or remote.
employment_status text yes Current status. one of: active, on_leave, terminated
hire_date date no Original hire date.
tenure_years numeric no Years of service to today.
termination_date date yes Last day worked. Null unless terminated.
termination_reason text yes Reason for leaving.
termination_voluntary boolean no True when the employee chose to leave.
leave_type text no Type of leave, when on leave.
date_of_birth date no Date of birth.
age integer no Age in whole years.
gender text no Self-identified gender.
ethnicity text no Self-identified ethnicity (US EEO categories).
base_salary_cents bigint yes Annual base salary in minor units.
base_salary numeric yes Annual base salary.
currency text no Pay currency, from the work location.
bonus_target_pct numeric no Target bonus as a percentage of base.
bonus_target numeric no Target bonus amount.
equity_units integer no Outstanding equity units.
compa_ratio numeric no Position in the pay band. 1.00 is midpoint.
band_min_cents bigint no Bottom of the pay band for this job.
band_mid_cents bigint no Midpoint of the pay band.
band_max_cents bigint no Top of the pay band.
department_ordinal integer no Internal department ordinal. Filtering on this instead of department_code lets the query engine discard rows before it joins the reference catalogues, which is the difference between a fast page and a full pass over the roster.
location_ordinal integer no Internal location ordinal. Same index-friendly role as department_ordinal.
employment_status_ordinal integer no Internal status ordinal: 0 active, 1 on leave, 2 terminated.
performance_rating integer yes Most recent rating, 1 to 5.
engagement_score integer no Latest engagement survey score, 1 to 100.
flight_risk_score integer no Modelled attrition risk, 1 to 100.
tenure_days integer no Days of service.

Filters

Filter Kind Applies to Description
query text full_name Free text across name, email, job title and id.
employee_id id employee_id Exact employee id.
department_code exact department_code Department code such as ENG.
location_code exact location_code Location code such as US-NYC.
employment_status enum employment_status Employment status.
employment_type exact employment_type Employment type.
work_arrangement exact work_arrangement On-site, Hybrid or Remote.
manager_id id manager_id Direct reports of this manager.
job_level_min number-range job_level Minimum career level.
job_level_max number-range job_level Maximum career level.
hired_after date-range hire_date Hired on or after this date.
hired_before date-range hire_date Hired on or before this date.
performance_rating number-range performance_rating Exact performance rating, 1 to 5.
is_people_manager boolean is_people_manager Only people managers.

Browse this data

compensation_event

Compensation event — Historical pay changes: merit increases, promotions, market adjustments and retention awards.

Columns

Column Type Writable Description
compensation_event_id text no Stable public identifier. primary key
employee_id text no Affected employee. FK → employee.employee_id
employee_name text no Employee display name.
effective_date date no Date the change took effect.
event_type text no Kind of change.
reason text no Business justification.
percent_change numeric no Percentage increase applied.
previous_salary numeric no Annualised base before the change.
new_salary numeric no Annualised base after the change.
currency text no Pay currency.
approved_by text no Approving manager. FK → employee.employee_id

Filters

Filter Kind Applies to Description
employee_id id employee_id Events for one employee.
event_type exact event_type Kind of change.
effective_after date-range effective_date On or after this date.
effective_before date-range effective_date On or before this date.

Browse this data

time_off_request

Time off request — Absence requests across every leave type, from submitted through approved, denied or taken.

Columns

Column Type Writable Description
request_id text no Stable public identifier. primary key
employee_id text no Requesting employee. FK → employee.employee_id
employee_name text no Employee display name.
leave_type_code text no Leave type code. FK → time_off_type.code
leave_type text no Leave type name.
is_paid boolean no Whether the leave is paid.
start_date date no First day of absence.
end_date date no Last day of absence.
business_days integer no Working days requested.
status text yes Request status. one of: pending, approved, denied, cancelled, taken
requested_on date no Submission date.
decided_on date yes Date the request was approved or denied.
approver_id text yes Deciding manager. FK → employee.employee_id
note text yes Employee-supplied note.
decision_note text yes Approver note.

Filters

Filter Kind Applies to Description
employee_id id employee_id Requests for one employee.
status enum status Request status.
leave_type_code exact leave_type_code Leave type code such as PTO.
start_after date-range start_date Starting on or after this date.
start_before date-range start_date Starting on or before this date.

Browse this data

performance_review

Performance review — Completed review-cycle records with rating, potential, calibration state and written feedback.

Columns

Column Type Writable Description
review_id text no Stable public identifier. primary key
employee_id text no Reviewed employee. FK → employee.employee_id
employee_name text no Employee display name.
reviewer_id text no Reviewing manager. FK → employee.employee_id
cycle_code text no Review cycle. FK → review_cycle.cycle_code
cycle_name text no Review cycle name.
rating integer yes Overall rating, 1 (unsatisfactory) to 5 (outstanding).
rating_label text no Rating in words.
potential text no Nine-box potential axis.
promotion_ready boolean yes Flagged ready for the next level.
calibrated boolean no Rating passed through calibration.
strengths text yes Recorded strengths.
growth_areas text yes Recorded development areas.
summary text yes Narrative summary.
submitted_on date no Date the review was submitted.

Filters

Filter Kind Applies to Description
employee_id id employee_id Reviews for one employee.
cycle_code exact cycle_code Review cycle code.
rating number-range rating Exact rating, 1 to 5.
promotion_ready boolean promotion_ready Only promotion-ready employees.

Browse this data

goal

Goal — Individual objectives with weighting, progress and status.

Columns

Column Type Writable Description
goal_id text no Stable public identifier. primary key
employee_id text no Goal owner. FK → employee.employee_id
employee_name text no Owner display name.
title text yes Goal statement.
category text no Goal category.
cycle_code text no Planning cycle.
progress_pct integer yes Percent complete.
status text yes Goal status. one of: on_track, at_risk, off_track, achieved, cancelled
weight_pct integer no Weight within the employee goal set.
due_date date no Target completion date.

Filters

Filter Kind Applies to Description
employee_id id employee_id Goals for one employee.
status enum status Goal status.
category exact category Goal category.

Browse this data

benefit_enrollment

Benefit enrollment — Which employees are enrolled in which benefit plans, with employee and employer cost.

Columns

Column Type Writable Description
enrollment_id text no Stable public identifier. primary key
employee_id text no Enrolled employee. FK → employee.employee_id
employee_name text no Employee display name.
plan_code text no Benefit plan. FK → benefit_plan.plan_code
plan_name text no Plan name.
category text no Benefit category.
carrier text no Carrier or administrator.
coverage_tier text no Coverage tier.
status text yes Enrollment status. one of: active, waived, terminated, pending
enrolled_on date no Effective date of coverage.
dependents integer no Covered dependents.
employee_monthly_cost numeric no Employee monthly contribution.
employer_monthly_cost numeric no Employer monthly contribution.
annual_employer_cost numeric no Employer cost over twelve months.

Filters

Filter Kind Applies to Description
employee_id id employee_id Enrollments for one employee.
plan_code exact plan_code Plan code.
category exact category Benefit category.
status enum status Enrollment status.

Browse this data

training_record

Training record — Assigned and completed learning, including mandatory compliance training and its renewal state.

Columns

Column Type Writable Description
training_record_id text no Stable public identifier. primary key
employee_id text no Learner. FK → employee.employee_id
employee_name text no Learner display name.
course_code text no Course. FK → training_course.course_code
course_title text no Course title.
category text no Course category.
is_mandatory boolean no Whether the course is required.
status text yes Completion status. one of: completed, in_progress, not_started, overdue
completed_on date yes Completion date.
score integer yes Assessment score out of 100.
expires_on date no Date the certification lapses.
assigned_on date no Date the course was assigned.

Filters

Filter Kind Applies to Description
employee_id id employee_id Records for one employee.
course_code exact course_code Course code.
status enum status Completion status.
is_mandatory boolean is_mandatory Only mandatory training.

Browse this data

hr_case

HR case — Employee-relations matters: conduct concerns, grievances, accommodation requests, safety reports and ethics-hotline intake, with severity, SLA and assignment.

Columns

Column Type Writable Description
case_id text no Stable public identifier. primary key
subject_employee_id text no Employee the case concerns. FK → employee.employee_id
subject_employee_name text no Subject display name. Suppressed when anonymous.
case_type_code text no Case type. FK → case_type.code
case_type text no Case type name.
category text no Case category.
status text yes Case status. one of: open, investigating, pending_review, resolved, closed
severity text yes Assessed severity. one of: low, medium, high, critical
confidential boolean no Restricted handling.
anonymous boolean no Reported anonymously.
assigned_to_id text yes Assigned HR partner. FK → employee.employee_id
assigned_to_name text no Assigned HR partner name.
opened_on date no Date the case was opened.
sla_due_on date no Date the case breaches its SLA.
closed_on date yes Date the case was closed.
days_open integer no Days between opening and closing, or today.
sla_breached boolean no Whether the SLA was missed.
summary text yes Intake summary.
note_count integer yes Number of case notes.
resolution text yes Recorded outcome.

Filters

Filter Kind Applies to Description
subject_employee_id id subject_employee_id Cases about one employee.
status enum status Case status.
severity enum severity Severity.
case_type_code exact case_type_code Case type code.
opened_after date-range opened_on Opened on or after this date.
sla_breached boolean sla_breached Only cases past SLA.

Browse this data

hr_case_note

HR case note — Chronological notes recorded against an employee-relations case.

Columns

Column Type Writable Description
note_id text no Stable public identifier. primary key
case_id text no Parent case. FK → hr_case.case_id
recorded_on date no Date the note was recorded.
author_id text no Author. FK → employee.employee_id
author_name text no Author display name.
internal boolean no Visible only to HR.
body text yes Note text.

Filters

Filter Kind Applies to Description
case_id id case_id Notes on one case.
internal boolean internal Only internal notes.

Browse this data

job_requisition

Job requisition — Open and historical hiring requisitions with hiring manager, recruiter, target and fill state.

Columns

Column Type Writable Description
requisition_id text no Stable public identifier. primary key
job_title text yes Role being hired.
job_code text no Job catalogue code. FK → job.job_code
department_code text no Hiring department. FK → department.code
department_name text no Department name.
location_code text no Work location. FK → location.code
job_level integer no Career level of the opening.
status text yes Requisition status. one of: draft, open, on_hold, filled, cancelled
priority text no Business priority. one of: low, medium, high, critical
openings integer no Headcount approved.
filled_count integer yes Headcount filled so far.
remote_eligible boolean no Open to remote candidates.
hiring_manager_id text no Hiring manager. FK → employee.employee_id
hiring_manager_name text no Hiring manager name.
recruiter_id text no Assigned recruiter. FK → employee.employee_id
recruiter_name text no Recruiter name.
opened_on date no Date the requisition opened.
target_fill_date date no Committed fill date.
days_open integer no Age of the requisition in days.
salary_band_min numeric no Bottom of the advertised band.
salary_band_max numeric no Top of the advertised band.

Filters

Filter Kind Applies to Description
status enum status Requisition status.
department_code exact department_code Hiring department.
location_code exact location_code Work location.
priority enum priority Business priority.
hiring_manager_id id hiring_manager_id Requisitions for one hiring manager.

Browse this data

candidate

Candidate — Applicants against requisitions, with source, pipeline stage, rating and expected compensation.

Columns

Column Type Writable Description
candidate_id text no Stable public identifier. primary key
full_name text no Candidate name.
email text no Contact email.
phone text no Contact phone.
requisition_id text no Requisition applied to. FK → job_requisition.requisition_id
job_title text no Role applied for.
department_code text no Hiring department.
source text no How the candidate arrived.
stage text yes Pipeline stage. one of: applied, screen, interview, onsite, offer, hired, rejected, withdrawn
rating integer yes Interview rating, 1 to 5. Null before interview.
years_experience integer no Self-reported years of experience.
expected_salary numeric no Candidate compensation expectation.
applied_on date no Application date.
last_activity_on date no Most recent pipeline activity.
days_in_pipeline integer no Days since applying.
referred_by_id text no Referring employee, when referred. FK → employee.employee_id
notes text yes Recruiter notes.

Filters

Filter Kind Applies to Description
requisition_id id requisition_id Candidates on one requisition.
stage enum stage Pipeline stage.
source exact source Sourcing channel.
query text full_name Free text across candidate name and email.

Browse this data

payslip

Payslip — Per-period earnings, taxes and deductions. Computed on demand from the employee record and the payroll calendar rather than stored: at roster scale this table would be tens of millions of rows per instance with no added information.

Columns

Column Type Writable Description
payslip_id text no Stable public identifier. primary key
employee_id text no Paid employee. FK → employee.employee_id
employee_seq integer no Roster position of the employee. Filtering on this instead of employee_id turns a scan of the whole roster into a primary-key lookup.
employee_name text no Employee display name.
payroll_run_id text no Payroll run. FK → payroll_run.payroll_run_id
period_start date no Pay period start.
period_end date no Pay period end.
pay_date date no Date paid.
gross_pay numeric no Gross earnings for the period.
base_earnings numeric no Base salary component.
bonus_earnings numeric no Bonus component, paid in the final period of a quarter.
federal_tax numeric no Federal income tax withheld.
state_tax numeric no State or regional tax withheld.
social_contributions numeric no Social insurance contributions.
benefit_deductions numeric no Pre-tax benefit deductions.
retirement_deferral numeric no Retirement plan deferral.
net_pay numeric no Take-home pay.
currency text no Payment currency.

Filters

Filter Kind Applies to Description
employee_id id employee_id Payslips for one employee.
payroll_run_id exact payroll_run_id Payslips in one payroll run.

Browse this data

time_off_balance

Time off balance — Accrued, taken and available leave per employee per leave type. Computed from tenure, the accrual policy and approved absences rather than stored.

Columns

Column Type Writable Description
balance_id text no Stable public identifier. primary key
employee_id text no Employee. FK → employee.employee_id
employee_seq integer no Roster position of the employee. Filtering on this instead of employee_id turns a scan of the whole roster into a primary-key lookup.
employee_name text no Employee display name.
leave_type_code text no Leave type. FK → time_off_type.code
leave_type text no Leave type name.
accrual_days_per_year numeric no Annual accrual rate.
accrued_days numeric no Days accrued in the current year.
taken_days numeric no Days taken in the current year.
scheduled_days numeric no Approved but not yet taken.
available_days numeric no Days still available.
max_carryover_days numeric no Cap on carryover into next year.
as_of date no Date the balance was computed.

Filters

Filter Kind Applies to Description
employee_id id employee_id Balances for one employee.
leave_type_code exact leave_type_code Leave type code.

Browse this data

audit_log

Audit log entry — Every write any MCP tool has performed against this instance, in order. Populated only by tool calls, so a freshly provisioned instance holds exactly one entry.

Columns

Column Type Writable Description
audit_id text no Stable public identifier. primary key
occurred_at timestamptz no When the write happened.
tool text no MCP tool that performed the write.
action text no Logical action.
entity text no Entity affected.
entity_id text no Record affected.
actor text no Who the tool acted as.
summary text no Human-readable description.
details jsonb no Structured before/after payload.

Filters

Filter Kind Applies to Description
entity exact entity Entity name.
entity_id id entity_id One record.
tool exact tool Tool name.

Browse this data

Reference catalogues

department

Department — Department catalogue. Headcount share is allocated per instance, so the same catalogue produces a differently shaped company each time.

Columns

Column Type Writable Description
code text no Department code. primary key
name text no Department name.
function text no Function grouping.
cost_center text no Finance cost centre.
headcount integer no Employees in this department in this instance.
active_headcount integer no Active employees.
avg_base_salary numeric no Average base salary.
leader_id text no Most senior person in the department. FK → employee.employee_id
leader_name text no Department leader.

Filters

Filter Kind Applies to Description
function exact function Function grouping.

Browse this data

location

Location — Work locations with timezone, currency and cost-of-living index. The index scales pay.

Columns

Column Type Writable Description
code text no Location code. primary key
city text no City.
region text no State or region.
country text no Country.
country_code text no ISO country code.
timezone text no IANA timezone.
currency text no Local currency.
cost_of_living_index numeric no Pay multiplier relative to the reference market.
is_headquarters boolean no Headquarters site.
headcount integer no Employees at this location.

Filters

Filter Kind Applies to Description
country_code exact country_code ISO country code.

Browse this data

job

Job — Job catalogue: every department and level combination with its title, FLSA status and pay band.

Columns

Column Type Writable Description
job_code text no Job code. primary key
title text no Job title.
department_code text no Department. FK → department.code
job_family text no Job family.
job_level integer no Career level.
level_name text no Level name.
flsa_status text no Overtime eligibility.
band_min numeric no Band minimum.
band_mid numeric no Band midpoint.
band_max numeric no Band maximum.
incumbents integer no Employees currently in this job.

Filters

Filter Kind Applies to Description
department_code exact department_code Department code.
job_level number-range job_level Career level.

Browse this data

benefit_plan

Benefit plan — Benefit plan catalogue with carrier, tier, cost split, deductible and eligibility waiting period.

Columns

Column Type Writable Description
plan_code text no Plan code. primary key
plan_name text no Plan name.
category text no Benefit category.
carrier text no Carrier.
coverage_tier text no Coverage tier.
employee_monthly_cost numeric no Employee monthly contribution.
employer_monthly_cost numeric no Employer monthly contribution.
deductible numeric no Annual deductible.
eligibility_days integer no Waiting period in days.
enrolled_count integer no Employees enrolled in this instance.

Filters

Filter Kind Applies to Description
category exact category Benefit category.

Browse this data

training_course

Training course — Learning catalogue, including which courses are mandatory and how often they must be renewed.

Columns

Column Type Writable Description
course_code text no Course code. primary key
title text no Course title.
category text no Category.
delivery text no Delivery mode.
duration_minutes integer no Duration in minutes.
is_mandatory boolean no Required for all employees.
renewal_months integer no Renewal cadence in months.
provider text no Training provider.
completion_count integer no Completions recorded in this instance.

Filters

Filter Kind Applies to Description
category exact category Category.
is_mandatory boolean is_mandatory Only mandatory courses.

Browse this data

policy_document

Policy document — HR policy library. Full text is returned so an assistant can answer policy questions from source.

Columns

Column Type Writable Description
policy_code text no Policy code. primary key
title text no Policy title.
category text no Policy category.
summary text no One-paragraph summary.
body text no Full policy text.
owner_function text no Owning function.
review_cycle_months integer no How often the policy is reviewed.

Filters

Filter Kind Applies to Description
category exact category Policy category.

Browse this data

payroll_run

Payroll run — The payroll calendar: two years of semi-monthly periods with status and totals.

Columns

Column Type Writable Description
payroll_run_id text no Run identifier. primary key
period_start date no Period start.
period_end date no Period end.
pay_date date no Payment date.
status text no Run status. one of: draft, processing, approved, paid
frequency text no Pay frequency.
employee_count integer no Employees paid in this run.
gross_total numeric no Total gross pay.
net_total numeric no Total net pay.

Filters

Filter Kind Applies to Description
status exact status Run status.

Browse this data

Tools

52 tools are exposed on this endpoint. 36 are read-only; 16 change data.

Tool Kind Reads / writes Purpose
search_employees read employee Search the worker directory by name, email, job title or id, with optional filters on department, location, status, employment type, manager, career level, hire date and performance rating.
get_employee read employee Full worker record for one employee: identity, contact details, job and level, department, location, reporting line, employment status and dates, demographics and compensation.
list_direct_reports read employee Everyone who reports directly to a given manager.
get_reporting_chain read employee The full management chain from an employee up to the CEO, one row per level.
get_org_snapshot read employee, department, location Shape of the whole organisation: roster size, active headcount, management layers with the population and span of control at each, and the largest departments and locations.
list_departments read department Department catalogue with headcount, active headcount, average base pay and the most senior leader.
list_locations read location Work locations with country, timezone, currency, cost-of-living index and headcount.
get_headcount_summary read employee Headcount grouped by any one of department, location, country, career level, employment type, work arrangement or status, with active counts and average base pay per group.
get_compensation_detail read employee, job Current pay for one employee: base salary, currency, bonus target, equity, compa-ratio and where they sit in the pay band for their job and level.
list_compensation_history read compensation_event Pay changes over time: merit increases, promotions, market adjustments and retention awards.
submit_compensation_change write employee, compensation_event, audit_log Change an employee's base salary.
get_pay_band_analysis read employee Compensation distribution by career level for a department or the whole company: population, minimum, average and maximum base pay, average compa-ratio, and how many people sit outside the 0.
list_payroll_runs read payroll_run The payroll calendar: pay periods, pay dates, status and totals.
get_payslips read payslip Payslips for one employee: gross, base and bonus earnings, tax and benefit deductions, and net pay for each pay period.
get_time_off_balances read time_off_balance Accrued, taken, scheduled and available days for every leave type for one employee, derived from tenure, the accrual policy and approved absences.
list_time_off_requests read time_off_request Absence requests filtered by employee, status, leave type or date range.
submit_time_off_request write time_off_request, time_off_balance, audit_log Submit a time off request on behalf of an employee.
decide_time_off_request write time_off_request, audit_log Approve, deny or cancel a pending time off request.
get_absence_summary read time_off_request Absence volume by leave type and status across the company or one department, with total days requested.
list_performance_reviews read performance_review Completed reviews with rating, potential, calibration state and promotion readiness.
get_performance_review read performance_review One review in full, including written strengths, growth areas and narrative summary.
submit_performance_review write performance_review, employee, audit_log Record a performance review for an employee in the current cycle.
list_goals read goal Individual objectives with weighting, progress and status.
update_goal_progress write goal, audit_log Update how far along a goal is, and optionally its status.
list_job_requisitions read job_requisition Hiring requisitions with status, priority, openings, hiring manager and age.
get_job_requisition read job_requisition, candidate One requisition in full, with its candidate pipeline broken down by stage.
open_job_requisition write job_requisition, audit_log Open a new hiring requisition.
list_candidates read candidate Applicants with source, pipeline stage, rating and days in pipeline.
advance_candidate write candidate, audit_log Move a candidate to a new pipeline stage, for example from screen to interview, or to offer.
get_recruiting_funnel read candidate, job_requisition Candidate volume by pipeline stage and source, plus open requisition counts, so you can see where the funnel narrows and which channels are producing.
transfer_employee write employee, audit_log Move an employee to a different department, location or manager.
promote_employee write employee, compensation_event, audit_log Promote an employee to a higher level, with an optional pay increase.
record_termination write employee, audit_log Record that an employee is leaving the organisation.
onboard_employee write employee, training_record, audit_log Add a new hire to the roster, with their job, department, location, manager and start date.
list_benefit_plans read benefit_plan Benefit plan catalogue with carrier, tier, employee and employer cost, deductible and enrollment counts.
get_benefit_enrollments read benefit_enrollment Which plans an employee is enrolled in, with cost split and effective dates.
enroll_in_benefit write benefit_enrollment, audit_log Enroll an employee in a benefit plan.
list_training_courses read training_course Learning catalogue with category, delivery mode, duration, mandatory flag and renewal cadence.
get_training_transcript read training_record An employee's learning history with completion status, scores and certification expiry.
assign_training write training_record, audit_log Assign a course to an employee.
list_hr_cases read hr_case Employee-relations matters with type, severity, status, assignment, SLA due date and whether the SLA has been breached.
get_hr_case read hr_case, hr_case_note One case in full, with its chronological notes.
open_hr_case write hr_case, audit_log Open an employee-relations case: a conduct concern, grievance, accommodation request, safety report or policy question.
add_case_note write hr_case_note, hr_case, audit_log Record a note against an employee-relations case.
resolve_hr_case write hr_case, audit_log Move a case forward: investigating, pending review, resolved or closed.
get_attrition_report read employee Leavers broken down by reason and whether the departure was voluntary, with attrition rate against the current roster, optionally scoped to a department.
get_diversity_report read employee Representation by gender or ethnicity, optionally cut by career level, so you can see how representation changes as seniority increases.
get_compliance_training_status read training_record, training_course Completion state for mandatory compliance training, by course, with the number overdue.
search_policies read policy_document Search the HR policy library and return full policy text, so a question about leave, pay, conduct or accommodations can be answered from source rather than paraphrased.
list_recent_changes read audit_log Everything any MCP tool has written to this instance, newest first.
describe_hris_schema read employee, compensation_event, time_off_request, performance_review, … The complete data dictionary for this endpoint: every entity, every column with its type and meaning, row counts for this instance, and which tools read or write each one.
get_instance_info read employee What this endpoint is: the company it represents, its roster size, when it was provisioned, how many writes it has taken, and where to browse or document it.

Directory & org

search_employees

Search employees — read-only

Search the worker directory by name, email, job title or id, with optional filters on department, location, status, employment type, manager, career level, hire date and performance rating. The primary way to find a person before acting on them.

Touches: employee

Argument Type Required Description
query string no Free text matched against name, work email, job title and employee id.
department_code string no Department code, e.g. ENG. See list_departments.
location_code string no Location code, e.g. US-NYC. See list_locations.
employment_status active | on_leave | terminated no Employment status.
employment_type string no Employment type, e.g. "Full-time regular".
work_arrangement string no On-site, Hybrid or Remote.
manager_id string no Return only the direct reports of this manager, e.g. EMP-0000042.
job_level_min integer no Minimum career level, 0 (associate) to 10 (CEO).
job_level_max integer no Maximum career level.
hired_after string no Only employees hired on or after this date.
hired_before string no Only employees hired on or before this date.
performance_rating integer no Exact most-recent performance rating, 1 to 5.
is_people_manager boolean no Only people managers.
sort string no Column to sort by. Defaults to employee_id.
direction asc | desc no Sort direction.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_employee

Get employee — read-only

Full worker record for one employee: identity, contact details, job and level, department, location, reporting line, employment status and dates, demographics and compensation.

Touches: employee

Argument Type Required Description
employee_id string yes Employee id, e.g. EMP-0000042.

list_direct_reports

List direct reports — read-only

Everyone who reports directly to a given manager.

Touches: employee

Argument Type Required Description
manager_id string yes Manager employee id, e.g. EMP-0000002.
include_terminated boolean no Include reports who have left. Defaults to false.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_reporting_chain

Get reporting chain — read-only

The full management chain from an employee up to the CEO, one row per level. Useful for escalation, approval routing and understanding where someone sits in the organisation.

Touches: employee

Argument Type Required Description
employee_id string yes Employee id to walk upward from.

get_org_snapshot

Get organisation snapshot — read-only

Shape of the whole organisation: roster size, active headcount, management layers with the population and span of control at each, and the largest departments and locations.

Touches: employee, department, location

Arguments: none.

list_departments

List departments — read-only

Department catalogue with headcount, active headcount, average base pay and the most senior leader.

Touches: department

Argument Type Required Description
function string no Restrict to one function grouping, e.g. Technology.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

list_locations

List locations — read-only

Work locations with country, timezone, currency, cost-of-living index and headcount.

Touches: location

Argument Type Required Description
country_code string no ISO 3166-1 alpha-2 country code, e.g. US.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_headcount_summary

Get headcount summary — read-only

Headcount grouped by any one of department, location, country, career level, employment type, work arrangement or status, with active counts and average base pay per group.

Touches: employee

Argument Type Required Description
group_by department | location | country | level | employment_type | work_arrangement | status no Dimension to group by. Defaults to department.
department_code string no Restrict to one department.
location_code string no Restrict to one location.

Compensation

get_compensation_detail

Get compensation detail — read-only

Current pay for one employee: base salary, currency, bonus target, equity, compa-ratio and where they sit in the pay band for their job and level.

Touches: employee, job

Argument Type Required Description
employee_id string yes Employee id.

list_compensation_history

List compensation history — read-only

Pay changes over time: merit increases, promotions, market adjustments and retention awards.

Touches: compensation_event

Argument Type Required Description
employee_id string no Restrict to one employee.
event_type string no Restrict to one kind of change, e.g. Promotion.
effective_after string no Only changes effective on or after this date.
effective_before string no Only changes effective on or before this date.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

submit_compensation_change

Submit compensation change — writes data

Change an employee's base salary. Records the new amount, the reason and the effective date, and warns if the result falls outside the pay band for their job and level.

What it changes: Writes the new base salary onto the employee record in this instance's overlay, appends a compensation event carrying the reason and percentage, and records an audit entry. The shared template is untouched, so no other instance sees the change.

Touches: employee, compensation_event, audit_log

Argument Type Required Description
employee_id string yes Employee whose pay is changing.
new_base_salary number yes New annual base salary in the employee's pay currency.
reason string yes Business justification, e.g. "Annual merit cycle" or "Promotion to Senior Manager".
event_type Merit increase | Promotion | Market adjustment | Retention award | Role change | Cost-of-living adjustment | Off-cycle adjustment | Internal transfer adjustment no Kind of change being recorded.
effective_date string no Date the change takes effect. Defaults to today.

get_pay_band_analysis

Get pay band analysis — read-only

Compensation distribution by career level for a department or the whole company: population, minimum, average and maximum base pay, average compa-ratio, and how many people sit outside the 0.85-1.15 compa-ratio range that normally triggers a pay review.

Touches: employee

Argument Type Required Description
department_code string no Restrict to one department.
location_code string no Restrict to one location.

list_payroll_runs

List payroll runs — read-only

The payroll calendar: pay periods, pay dates, status and totals.

Touches: payroll_run

Argument Type Required Description
status string no Restrict to one run status.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_payslips

Get payslips — read-only

Payslips for one employee: gross, base and bonus earnings, tax and benefit deductions, and net pay for each pay period. Computed on demand from the employee record and the payroll calendar.

Touches: payslip

Argument Type Required Description
employee_id string yes Employee id.
payroll_run_id string no Restrict to one payroll run, e.g. RUN-0048.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

Time off

get_time_off_balances

Get time off balances — read-only

Accrued, taken, scheduled and available days for every leave type for one employee, derived from tenure, the accrual policy and approved absences.

Touches: time_off_balance

Argument Type Required Description
employee_id string yes Employee id.
leave_type_code string no Restrict to one leave type, e.g. PTO.

list_time_off_requests

List time off requests — read-only

Absence requests filtered by employee, status, leave type or date range.

Touches: time_off_request

Argument Type Required Description
employee_id string no Restrict to one employee.
status pending | approved | denied | cancelled | taken no Request status.
leave_type_code string no Leave type code, e.g. PTO or SICK.
start_after string no Absences starting on or after this date.
start_before string no Absences starting on or before this date.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

submit_time_off_request

Submit time off request — writes data

Submit a time off request on behalf of an employee. Validates the dates and warns if the request exceeds the available balance for that leave type.

What it changes: Creates a pending absence request in this instance's overlay and records an audit entry. The request immediately appears in list_time_off_requests and counts against the employee's scheduled days once approved.

Touches: time_off_request, time_off_balance, audit_log

Argument Type Required Description
employee_id string yes Employee taking the leave.
leave_type_code string yes Leave type code, e.g. PTO, SICK, PARENT. See the schema documentation.
start_date string yes First day of absence.
end_date string yes Last day of absence.
note string no Reason or context for the request.

decide_time_off_request

Approve or deny time off — writes data

Approve, deny or cancel a pending time off request.

What it changes: Sets the request status to approved, denied or cancelled, stamps the decision date and the deciding manager, and records an audit entry.

Touches: time_off_request, audit_log

Argument Type Required Description
request_id string yes Request id, e.g. TOR-0000120-1 or TOR-N-000003.
decision approved | denied | cancelled yes Outcome to record.
decision_note string no Note explaining the decision.
approver_id string no Employee id of the approver. Defaults to the employee's manager.

get_absence_summary

Get absence summary — read-only

Absence volume by leave type and status across the company or one department, with total days requested. Useful for spotting leave concentration and pending-approval backlogs.

Touches: time_off_request

Argument Type Required Description
status string no Restrict to one request status.

Performance

list_performance_reviews

List performance reviews — read-only

Completed reviews with rating, potential, calibration state and promotion readiness.

Touches: performance_review

Argument Type Required Description
employee_id string no Restrict to one employee.
cycle_code string no Review cycle code, e.g. FY-PRV-EOY.
rating integer no Exact overall rating, 1 to 5.
promotion_ready boolean no Only employees flagged ready for promotion.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_performance_review

Get performance review — read-only

One review in full, including written strengths, growth areas and narrative summary.

Touches: performance_review

Argument Type Required Description
review_id string yes Review id, e.g. REV-0000012-0.

submit_performance_review

Submit performance review — writes data

Record a performance review for an employee in the current cycle.

What it changes: Creates a review record in this instance's overlay, updates the employee's current performance rating, and records an audit entry.

Touches: performance_review, employee, audit_log

Argument Type Required Description
employee_id string yes Employee being reviewed.
rating integer yes Overall rating, 1 (unsatisfactory) to 5 (outstanding).
summary string yes Narrative summary of the review.
strengths string no What the employee does well.
growth_areas string no Where the employee should develop.
potential Low potential | Moderate potential | High potential no Nine-box potential axis.
promotion_ready boolean no Whether the employee is ready for the next level.
cycle_code string no Review cycle. Defaults to the current mid-year cycle.

list_goals

List goals — read-only

Individual objectives with weighting, progress and status.

Touches: goal

Argument Type Required Description
employee_id string no Restrict to one employee.
status on_track | at_risk | off_track | achieved | cancelled no Goal status.
category string no Goal category, e.g. Business results.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

update_goal_progress

Update goal progress — writes data

Update how far along a goal is, and optionally its status.

What it changes: Writes the new progress and status onto the goal in this instance's overlay and records an audit entry.

Touches: goal, audit_log

Argument Type Required Description
goal_id string yes Goal id, e.g. GOL-0000018-0.
progress_pct integer yes Percent complete, 0 to 100.
status on_track | at_risk | off_track | achieved | cancelled no New status.

Recruiting

list_job_requisitions

List job requisitions — read-only

Hiring requisitions with status, priority, openings, hiring manager and age.

Touches: job_requisition

Argument Type Required Description
status draft | open | on_hold | filled | cancelled no Requisition status.
department_code string no Hiring department code.
location_code string no Work location code.
priority low | medium | high | critical no Business priority.
hiring_manager_id string no Restrict to one hiring manager.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_job_requisition

Get job requisition — read-only

One requisition in full, with its candidate pipeline broken down by stage.

Touches: job_requisition, candidate

Argument Type Required Description
requisition_id string yes Requisition id, e.g. REQ-000042.

open_job_requisition

Open job requisition — writes data

Open a new hiring requisition.

What it changes: Creates an open requisition in this instance's overlay with the supplied role, department, location and headcount, and records an audit entry.

Touches: job_requisition, audit_log

Argument Type Required Description
job_title string yes Role being hired.
department_code string yes Hiring department code, e.g. ENG.
location_code string no Work location code, e.g. US-NYC.
hiring_manager_id string yes Hiring manager employee id.
openings integer no Number of approved openings. Defaults to 1.
job_level integer no Career level of the opening, 0 to 10.
priority low | medium | high | critical no Business priority. Defaults to medium.
remote_eligible boolean no Whether the role is open to remote candidates.

list_candidates

List candidates — read-only

Applicants with source, pipeline stage, rating and days in pipeline.

Touches: candidate

Argument Type Required Description
requisition_id string no Restrict to one requisition.
stage applied | screen | interview | onsite | offer | hired | rejected | withdrawn no Pipeline stage.
source string no Sourcing channel, e.g. Employee referral.
query string no Free text across candidate name, email and role.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

advance_candidate

Advance candidate — writes data

Move a candidate to a new pipeline stage, for example from screen to interview, or to offer.

What it changes: Moves the candidate to the requested stage in this instance's overlay, stamps the activity date, optionally records an interview rating, and records an audit entry.

Touches: candidate, audit_log

Argument Type Required Description
candidate_id string yes Candidate id, e.g. CAND-001234.
stage applied | screen | interview | onsite | offer | hired | rejected | withdrawn yes New pipeline stage.
rating integer no Interview rating, 1 to 5.
notes string no Recruiter notes explaining the decision.

get_recruiting_funnel

Get recruiting funnel — read-only

Candidate volume by pipeline stage and source, plus open requisition counts, so you can see where the funnel narrows and which channels are producing.

Touches: candidate, job_requisition

Argument Type Required Description
requisition_id string no Restrict to one requisition.

Lifecycle

transfer_employee

Transfer employee — writes data

Move an employee to a different department, location or manager.

What it changes: Writes the new department, location and/or manager onto the employee record in this instance's overlay and records an audit entry. Reporting lines below the employee are unchanged; their reports move with them.

Touches: employee, audit_log

Argument Type Required Description
employee_id string yes Employee being transferred.
new_department_name string no New department name.
new_location_code string no New work location code, e.g. UK-LON.
new_manager_id string no New manager employee id.
effective_date string no Date the transfer takes effect. Defaults to today.
reason string no Reason for the transfer.

promote_employee

Promote employee — writes data

Promote an employee to a higher level, with an optional pay increase.

What it changes: Raises the employee's career level and title, optionally applies a new salary, writes a promotion compensation event, and records an audit entry.

Touches: employee, compensation_event, audit_log

Argument Type Required Description
employee_id string yes Employee being promoted.
new_job_title string yes New job title.
new_job_level integer no New career level, 0 to 10. Must be above the current level.
new_base_salary number no New annual base salary. Optional.
effective_date string no Date the promotion takes effect. Defaults to today.
reason string no Justification for the promotion.

record_termination

Record termination — writes data

Record that an employee is leaving the organisation.

What it changes: Marks the employee terminated with a last working day and reason in this instance's overlay, and records an audit entry. They stop counting toward active headcount but remain in the roster for reporting.

Touches: employee, audit_log

Argument Type Required Description
employee_id string yes Departing employee.
termination_date string yes Last working day.
reason string yes Reason for leaving, e.g. "Resignation - better opportunity".
voluntary boolean no Whether the employee chose to leave. Defaults to true.

onboard_employee

Onboard employee — writes data

Add a new hire to the roster, with their job, department, location, manager and start date. Mandatory onboarding training is assigned automatically.

What it changes: Creates a new employee record in this instance's overlay, assigns the mandatory onboarding courses, and records an audit entry. The new record is visible to every subsequent read on this endpoint and to no other instance.

Touches: employee, training_record, audit_log

Argument Type Required Description
full_name string yes New hire full name.
job_title string yes Job title.
department_name string no Department name.
location_code string no Work location code, e.g. US-AUS.
manager_id string yes Manager employee id.
hire_date string no Start date. Defaults to today.
base_salary number no Annual base salary.
job_level integer no Career level, 0 to 10.
employment_type string no Employment type. Defaults to "Full-time regular".
work_arrangement string no On-site, Hybrid or Remote.

Benefits & learning

list_benefit_plans

List benefit plans — read-only

Benefit plan catalogue with carrier, tier, employee and employer cost, deductible and enrollment counts.

Touches: benefit_plan

Argument Type Required Description
category string no Benefit category, e.g. Medical.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_benefit_enrollments

Get benefit enrollments — read-only

Which plans an employee is enrolled in, with cost split and effective dates.

Touches: benefit_enrollment

Argument Type Required Description
employee_id string no Restrict to one employee.
plan_code string no Restrict to one plan.
category string no Restrict to one benefit category.
status active | waived | terminated | pending no Enrollment status.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

enroll_in_benefit

Enroll in benefit — writes data

Enroll an employee in a benefit plan.

What it changes: Creates an active enrollment in this instance's overlay with the plan's cost split, and records an audit entry.

Touches: benefit_enrollment, audit_log

Argument Type Required Description
employee_id string yes Employee enrolling.
plan_code string yes Plan code, e.g. MED-PPO-EE. See list_benefit_plans.
dependents integer no Number of covered dependents.
effective_date string no Coverage start date. Defaults to today.

list_training_courses

List training courses — read-only

Learning catalogue with category, delivery mode, duration, mandatory flag and renewal cadence.

Touches: training_course

Argument Type Required Description
category string no Course category, e.g. Compliance.
is_mandatory boolean no Only mandatory courses.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_training_transcript

Get training transcript — read-only

An employee's learning history with completion status, scores and certification expiry.

Touches: training_record

Argument Type Required Description
employee_id string no Restrict to one employee.
status completed | in_progress | not_started | overdue no Completion status.
course_code string no Restrict to one course.
is_mandatory boolean no Only mandatory training.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

assign_training

Assign training — writes data

Assign a course to an employee.

What it changes: Creates a not-started training record in this instance's overlay and records an audit entry.

Touches: training_record, audit_log

Argument Type Required Description
employee_id string yes Employee to assign the course to.
course_code string yes Course code, e.g. CMP-110. See list_training_courses.
due_date string no When the course must be completed by.

Employee relations

list_hr_cases

List HR cases — read-only

Employee-relations matters with type, severity, status, assignment, SLA due date and whether the SLA has been breached.

Touches: hr_case

Argument Type Required Description
subject_employee_id string no Cases concerning one employee.
status open | investigating | pending_review | resolved | closed no Case status.
severity low | medium | high | critical no Assessed severity.
case_type_code string no Case type code, e.g. HARASS or ACCOM.
opened_after string no Cases opened on or after this date.
sla_breached boolean no Only cases past their SLA.
query string no Free text across case summary and id.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

get_hr_case

Get HR case — read-only

One case in full, with its chronological notes.

Touches: hr_case, hr_case_note

Argument Type Required Description
case_id string yes Case id, e.g. CASE-0000097-0.
include_internal_notes boolean no Include notes marked HR-only. Defaults to true.

open_hr_case

Open HR case — writes data

Open an employee-relations case: a conduct concern, grievance, accommodation request, safety report or policy question.

What it changes: Creates an open case in this instance's overlay with an SLA due date derived from the case type, and records an audit entry.

Touches: hr_case, audit_log

Argument Type Required Description
case_type_code string yes Case type code, e.g. CONDUCT, ACCOM, SAFETY, GRIEV.
summary string yes What the case is about.
subject_employee_id string no Employee the case concerns. Omit for an anonymous report.
severity low | medium | high | critical no Assessed severity. Defaults to the type default.
assigned_to_id string no HR partner to assign the case to.
anonymous boolean no Whether the report was made anonymously.

add_case_note

Add case note — writes data

Record a note against an employee-relations case.

What it changes: Appends a note to the case in this instance's overlay, increments the case note count, and records an audit entry.

Touches: hr_case_note, hr_case, audit_log

Argument Type Required Description
case_id string yes Case id.
body string yes Note text.
author_id string no Employee id of the author.
internal boolean no Mark the note HR-only. Defaults to true.

resolve_hr_case

Resolve HR case — writes data

Move a case forward: investigating, pending review, resolved or closed.

What it changes: Sets the case status and resolution, stamps the closed date when closing, and records an audit entry.

Touches: hr_case, audit_log

Argument Type Required Description
case_id string yes Case id.
status open | investigating | pending_review | resolved | closed yes New case status.
resolution string no Outcome and any corrective action taken.

Analytics

get_attrition_report

Get attrition report — read-only

Leavers broken down by reason and whether the departure was voluntary, with attrition rate against the current roster, optionally scoped to a department.

Touches: employee

Argument Type Required Description
department_code string no Restrict to one department.

get_diversity_report

Get diversity report — read-only

Representation by gender or ethnicity, optionally cut by career level, so you can see how representation changes as seniority increases. Mock data only.

Touches: employee

Argument Type Required Description
dimension gender | ethnicity no Dimension to report on. Defaults to gender.
by_level boolean no Break the result down by career level as well.
department_code string no Restrict to one department.

get_compliance_training_status

Get compliance training status — read-only

Completion state for mandatory compliance training, by course, with the number overdue. The report an auditor asks for.

Touches: training_record, training_course

Arguments: none.

search_policies

Search HR policies — read-only

Search the HR policy library and return full policy text, so a question about leave, pay, conduct or accommodations can be answered from source rather than paraphrased.

Touches: policy_document

Argument Type Required Description
query string no Free text matched against policy title, summary and body.
category string no Policy category, e.g. Time off.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

list_recent_changes

List recent changes — read-only

Everything any MCP tool has written to this instance, newest first. A freshly provisioned endpoint has exactly one entry: its own creation.

Touches: audit_log

Argument Type Required Description
entity string no Restrict to one entity, e.g. employee.
entity_id string no Restrict to one record.
tool string no Restrict to one tool name.
limit integer no Maximum rows to return. Default 25, maximum 200.
offset integer no Rows to skip, for paging through a large result.

Reference

describe_hris_schema

Describe HRIS schema — read-only

The complete data dictionary for this endpoint: every entity, every column with its type and meaning, row counts for this instance, and which tools read or write each one. Call this first to understand what is available before querying.

Touches: employee, compensation_event, time_off_request, performance_review, goal, benefit_enrollment, training_record, hr_case, hr_case_note, job_requisition, candidate, payslip, time_off_balance, audit_log, department, location, job, benefit_plan, training_course, policy_document, payroll_run

Argument Type Required Description
entity string no Describe one entity in full. Omit for the whole schema summary.

get_instance_info

Get instance info — read-only

What this endpoint is: the company it represents, its roster size, when it was provisioned, how many writes it has taken, and where to browse or document it.

Touches: employee

Arguments: none.

Connecting

Add this endpoint as a custom MCP connector. No token, header or sign-in is required.

https://hr-safe-space.cheek.org/i/load-j1yko-0039/mcp

Claude Code:

claude mcp add --transport http load-j1yko-0039 https://hr-safe-space.cheek.org/i/load-j1yko-0039/mcp

Any MCP client that speaks Streamable HTTP, as JSON configuration:

{
  "mcpServers": {
    "load-j1yko-0039": {
      "type": "http",
      "url": "https://hr-safe-space.cheek.org/i/load-j1yko-0039/mcp"
    }
  }
}

Pick any new key to get a different company:

https://hr-safe-space.cheek.org/i/<your-key>/mcp

Valid keys are 4–64 characters of lowercase letters, digits and single hyphens.