hris
ShiftCare
Connect ShiftCare to Elaichi and hand every teammate a governed MCP endpoint — 97 tools ready to call from Claude, Cursor, or any MCP client, clamped by roles, restrictions, and an audit log.
AI tools
ShiftCare tools for your AI agents
97 tools are ready to mint as an MCP endpoint the moment you connect ShiftCare — governed by the same roles, restrictions, and audit log as everything else in Elaichi.
list_all_shiftcare_account_locations
List ShiftCare account locations for the current account with optional filtering and sorting. Returns: id, name, address, created_at, updated_at. Access is gated by a feature flag. Max 50 per page.
list_all_shiftcare_areas
List ShiftCare areas for the current account with optional filtering by ID or name and sorting. Returns: id, name, created_at, updated_at. Max 50 items per page.
create_a_shiftcare_client_note
Create a client note attached to a ShiftCare client. Returns: id, category, subject, message, requested_date, private, created_at, updated_at, attachments. Required: client_id. If requested_date is omitted it defaults to the current UTC date, which may differ from the account's local date.
update_a_shiftcare_client_note_by_id
Update an existing client note for a ShiftCare client. Returns: id, category, subject, message, requested_date, private, created_at, updated_at, attachments. Required: client_id, id. The private flag must match the note's type — a mismatch returns 404.
list_all_shiftcare_complaints
List ShiftCare complaints with optional filtering by status, risk level, category, assignee, client, date ranges, and free-text search. Returns: id, reference_number, name, description, status, risk_level, category, client_id, assignee_id, assignee_name, creator_id, creator_name, received_date, due_date, closure_date, is_private, safety_concern, risk_assessment_notes, outcome_summary,…
create_a_shiftcare_complaint
Create a new complaint in ShiftCare. Returns the created complaint including id, reference_number, name, status, risk_level, category, complainant and representative details, and lifecycle timestamps. New complaints default to status 'received' and risk_level 'low'.
get_single_shiftcare_complaint_by_id
Get a single ShiftCare complaint by id. Returns the full complaint object including id, reference_number, name, status, risk_level, category, complainant and representative details, and lifecycle timestamps. Required: id.
update_a_shiftcare_complaint_by_id
Update a ShiftCare complaint by id. Returns the updated complaint including id, reference_number, name, status, risk_level, category, complainant and representative details, and lifecycle timestamps. Required: id. Prefer the update_status method for status transitions.
shiftcare_complaints_bulk_update
Update a ShiftCare complaint's lifecycle status by complaint_id. Returns the updated complaint including id, reference_number, name, status, risk_level, and outcome_summary. Required: complaint_id, status. outcome_summary is required when the target status is 'closed'. 'received' cannot be used as a target status.
shiftcare_leaves_create_external_id
Create an external ID for a specific ShiftCare leave, linking it to an external payroll or HR system. Returns: id, type, organization_id. Required: leave_id, id, type.
create_a_shiftcare_leaf
Create a new leave record in ShiftCare for a staff member. Returns the created leave including id, user_id, title, start_at, end_at, reason, all_day, approved_at, approved_by, declined_at, declined_reason, read_only, hours_daily, and external_ids. Required: user_id, title, start_at, end_at, reason.
list_all_shiftcare_leaves
List leaves in ShiftCare with optional date-range, user, and approval-status filters. Returns: id, user_id, title, start_at, end_at, reason, all_day, approved_at, approved_by, declined_at, declined_reason, read_only, hours_daily, external_ids.
update_a_shiftcare_leaf_by_id
Update an existing leave record. Only the fields provided are changed. Approval or decline status can only be changed via the approval_action field; sending approved_at/declined_at directly is ignored for status changes.
get_single_shiftcare_leaf_by_id
Get a single ShiftCare leave by id. Returns: id, area_id, start_at, end_at, shift_type, published, allowance_ids, clients, staff, tasks, recurrence. Required: id.
shiftcare_external_references_bulk_create
Bulk create external references for supported ShiftCare resources such as staff, clients, allowances, and leaves. Returns: external_references, errors. Required: external_references with resource_type, resource_id, service, and external_id for each entry.
shiftcare_external_references_bulk_update
Bulk update external references for supported resources in ShiftCare. Returns: external_references, errors. Required: external_references with resource_type, resource_id, service, and external_id for each item.
shiftcare_external_references_bulk_destroy
Bulk destroy external references for supported resources in ShiftCare. Returns: external_references, errors. Required: external_references.
get_single_shiftcare_external_reference_by_id
Get a single external reference in ShiftCare by id (external_id). Returns: resource_id, resource_type, service, external_id, organization_id. Required: id.
list_all_shiftcare_facilities
List ShiftCare facilities with optional filtering by ID or name and sorting by ID or name. Returns: id, name, address, account_location_id, facility_type, created_at, updated_at. Max 50 per page.
list_all_shiftcare_teams
List ShiftCare teams for the current account with optional filtering by ID or name and sorting. Returns: id, external_id, name, type_string. Max 50 per page. Access is gated by a feature flag.
list_all_shiftcare_shifts
List shifts in ShiftCare with optional filtering by client IDs, staff IDs, date range, status, and billable flag. Returns: id, area_id, start_at, end_at, shift_type, published, allowance_ids, clients, staff, tasks, recurrence.
create_a_shiftcare_shift
Create a new shift in ShiftCare with associated clients, staff, tasks, and optional recurrence rules. Returns the created shift including id, area_id, start_at, end_at, shift_type, published, clients, staff, tasks, and recurrence. Required: start_at, end_at.
get_single_shiftcare_shift_by_id
Get a single ShiftCare shift by id. Returns the shift object including area_id, start_at, end_at, shift_type, published, allowance_ids, clients, staff, tasks, and recurrence. Required: id.
update_a_shiftcare_shift_by_id
Update an existing shift in ShiftCare by id. Returns the updated shift including area_id, start_at, end_at, shift_type, published, allowance_ids, clients, staff, tasks, and recurrence. Required: id.
delete_a_shiftcare_shift_by_id
Permanently delete a shift in ShiftCare by id. Returns an empty 204 response on success. Invoiced shifts cannot be deleted — the API returns 409 in that case. Required: id.
shiftcare_shifts_cancel
Cancel a shift, either without charge (marks the shift cancelled and unbillable) or with charge (marks each client ratio absent using an NDIS no-show code, keeping the shift billable).
list_all_shiftcare_shift_staffs
List the staff members assigned to a specific shift.
list_all_shiftcare_shift_events
List shift events in ShiftCare. Returns: name, message, user_full_name, user_id, created_at, private.
create_a_shiftcare_shift_event
Create a shift event in ShiftCare with scheduling, client/staff assignments, tasks, and optional recurrence. Returns: id, area_id, start_at, end_at, shift_type, published, allowance_ids, clients, staff, tasks, recurrence, created_at. Required: start_at, end_at.
list_all_shiftcare_invoices
List invoices, optionally filtered by client, payment status, payment type, and date range. Supports including client details and external references.
create_a_shiftcare_invoice_payment
Create a payment for an invoice in ShiftCare. Returns the created payment object with a 201 status on success. Required: invoice_id.
list_all_shiftcare_invoice_payments
List payments recorded against a specific invoice in ShiftCare. Returns: id, amount, reference, payment_date, notes, status, fund_id, void_at, created_at, updated_at. Required: invoice_id. Reversed payments are excluded by default; pass include_reversed=true to include them.
shiftcare_invoice_payments_reverse
Reverse or void a payment recorded against a ShiftCare invoice. Returns an empty 204 response on success. Required: invoice_id, payment_id.
list_all_shiftcare_pay_groups
List pay groups in ShiftCare with pagination. Returns: id, name, created_at, updated_at.
create_a_shiftcare_qualification
Create a new qualification type in ShiftCare. Returns: id, name, category_id, description, require_for_all_carers, require_expiry, require_document, support_need_ids, account_id, created_at, updated_at. Required: name, category_id. The name must be unique within the account (case-insensitive).
get_single_shiftcare_qualification_by_id
Get a single ShiftCare qualification by id. Returns the qualification object including its id, name, category_id, description, require_for_all_carers, require_expiry, require_document, and support_need_ids. Required: id.
list_all_shiftcare_qualification_categories
List qualification categories in ShiftCare. Returns: id, name, account_id, created_at, updated_at.
create_a_shiftcare_staff_qualification
Create a qualification record for a staff member, optionally attaching a document and expiry date.
delete_a_shiftcare_staff_qualification_by_id
Delete a ShiftCare staff qualification by id. Returns an empty 204 response on success. Required: id.
update_a_shiftcare_staff_qualification_by_id
Update a staff qualification record, such as replacing the attached document or changing its expiry date.
list_all_shiftcare_staff_qualifications
List staff qualifications in ShiftCare. Returns: id, created_at, updated_at.
create_a_shiftcare_document
Upload a file to create a document in ShiftCare. The request body is multipart/form-data containing a binary file in the document field. Returns the created document object. Required: document.
list_all_shiftcare_documents
List documents in ShiftCare with optional filtering by user id and category. Returns: id, file, category, account_id, user_id, app_visibility, visibility, no_expiration, expires_at. Max 20 per page.
create_a_shiftcare_webhook
Create a new webhook subscription to receive events at a specified HTTPS URL. The signing secret is returned only in the create response.
list_all_shiftcare_webhooks
List webhook subscriptions in ShiftCare. Returns: public_id, url, event_types, status, description, paused_at, paused_reason, created_at, updated_at, secret.
get_single_shiftcare_webhook_by_id
Retrieve a single webhook subscription by its public ID.
update_a_shiftcare_webhook_by_id
Update an existing webhook subscription's URL, subscribed event types, or description.
delete_a_shiftcare_webhook_by_id
Delete (disable) a webhook subscription in ShiftCare by id. Returns an empty 204 response on success. Required: id.
shiftcare_webhooks_rotate_secret
Rotate the signing secret for a ShiftCare webhook subscription. Returns the updated subscription with its id and the newly generated secret. Required: webhook_id.
shiftcare_webhooks_ping
Send a test ping to a ShiftCare webhook subscription to verify the webhook endpoint is reachable and accepting deliveries. Returns a 201 response on success. Required: webhook_id.
shiftcare_webhooks_resume
Resume a paused webhook subscription in ShiftCare. Returns a 201 response confirming the subscription has been resumed. Required: webhook_id.
list_all_shiftcare_webhook_events
List delivery events for a webhook subscription, in sequence order. Use after_sequence to page through events incrementally.
list_all_shiftcare_webhook_deliveries
List webhook deliveries for a ShiftCare webhook subscription with attempt history. Returns: id, status, attempts_count, final_status_code, completed_at, next_attempt_at, event_id, created_at, updated_at, attempts, request_payload. Required: webhook_id.
get_single_shiftcare_webhook_delivery_by_id
Get a single ShiftCare webhook delivery by id, including full attempt history and request payload. Returns: id, status, attempts_count, final_status_code, completed_at, next_attempt_at, event_id, created_at, updated_at, attempts, request_payload. Required: webhook_id, id.
shiftcare_webhook_deliveries_redeliver
Re-enqueue a ShiftCare webhook delivery for retry, re-sending the original payload to the webhook endpoint. Returns the delivery object including id, status, attempts_count, final_status_code, completed_at, event_id. Required: webhook_id, delivery_id.
list_all_shiftcare_webhook_event_types
List all webhook event types available to subscribe to, along with the resource type and description of each.
list_all_shiftcare_allowances
List allowances for the current ShiftCare account. Returns: id, name, code, unit, external_id, xero_earnings_rate_id, value, external_ids.
get_single_shiftcare_allowance_by_id
Get a single ShiftCare allowance by id. Returns: id, name, code, unit, external_id, xero_earnings_rate_id, value, external_ids. Required: id.
shiftcare_allowances_bulk_create_external_ids
Bulk create external IDs for allowances in ShiftCare, linking each allowance to an external payroll or HR system. Returns: external_ids, errors. Required: external_ids with id, type, and allowance_id per item.
shiftcare_allowances_bulk_destroy_external_ids
Bulk destroy external IDs for allowances in ShiftCare. Returns an empty 200 response on success.
shiftcare_allowances_bulk_update_external_ids
Bulk update external IDs for multiple allowances in ShiftCare via a PUT request. Returns 200 on success with the updated external ID records.
shiftcare_clients_list_funds
List a client's funds in ShiftCare. The Fund entity stores a client's cashflow and can be used for fetching balances and planning services. Returns: id, name, amount, hours, start_at, expires_at. Required: client_id.
shiftcare_clients_get_fund_balance
Get a client's fund's current balance in ShiftCare. Returns the fund's monetary and hours balance. Returns: balance_amount, balance_hours. Required: client_id, fund_id.
shiftcare_clients_delete_external_reference
Delete an external reference from a ShiftCare client. Returns an empty 200 response on success. Required: client_id, external_id.
create_a_shiftcare_client
Create a new client in ShiftCare. Returns the created client object including id, first_name, family_name, dob, email, mobile_number, created_at, and updated_at. Required: first_name, dob.
list_all_shiftcare_clients
List ShiftCare clients with optional filtering by ID or name and sorting by id or name. Returns: id, salutation, first_name, middle_name, family_name, display_name, gender, dob, address, address_unit_no, general_information, phone_number, mobile_number, email, marital_status, nationality, languages, ndis_number, medicare_number, aboriginal_torres_strait_islander, age_care_recipient_id,…
update_a_shiftcare_client_by_id
Update a specific ShiftCare client by id. Returns the updated client object including id, first_name, family_name, dob, email, client_status, created_at, and updated_at. Required: id.
shiftcare_clients_get_by_external_id
Fetch a single ShiftCare client by their external ID. Returns the full client object including id, first_name, family_name, display_name, email, mobile_number, and address. Required: external_id.
get_single_shiftcare_client_by_id
Get a single ShiftCare client by id. Returns the full client profile including id, first_name, family_name, display_name, email, dob, address, phone_number, mobile_number, client_status, created_at, and updated_at. Required: id.
shiftcare_clients_bulk_create
Bulk create multiple clients in ShiftCare in a single request. Returns the created client records including id, first_name, family_name, and dob. Required: a clients array where each item includes first_name and dob (YYYY-MM-DD).
shiftcare_clients_bulk_create_external_ids
Bulk create external IDs for multiple ShiftCare clients in a single request. Returns an external_ids array where each entry contains id, type, and organization_id. Required: external_ids with id, type, and client_id for each entry.
shiftcare_clients_list_external_ids
List external IDs (external references) for a specific ShiftCare client. Returns: id, type, organization_id. Required: client_id.
shiftcare_pay_items_bulk_update_external_ids
Bulk update external IDs for ShiftCare pay items, mapping each pay item to an identifier in an external payroll or HR system. Returns: id, pay_group_id, name, reference_no, xero_earnings_rate_id, external_ids. Required: external_ids array where each entry must include id, type, and pay_item_id.
list_all_shiftcare_pay_items
List pay items in ShiftCare. Returns: id, pay_group_id, name, reference_no, xero_earnings_rate_id, external_ids.
get_single_shiftcare_pay_item_by_id
Get a single ShiftCare pay item by id. The pay item entity stores weekday, weekend, or public holiday payroll information. Returns: id, pay_group_id, name, reference_no, xero_earnings_rate_id, external_ids. Required: id.
list_all_shiftcare_shift_types
List shift types in ShiftCare. The Shift Type entity assigns a specific category or metadata to shifts. Returns: id, external_id, name, type_string. Supports optional filtering by name. Max 50 items per page.
get_single_shiftcare_shift_type_by_id
Get a single ShiftCare shift type by id. Returns: id, area_id, start_at, end_at, shift_type, published, allowance_ids, clients, staff, tasks, recurrence. Required: id.
shiftcare_staff_list_external_ids
List external IDs associated with a ShiftCare staff member. Returns: id, type, organization_id. Required: staff_id.
shiftcare_staff_create_external_id
Create an external ID for a ShiftCare staff member, linking them to an external payroll or CRM system such as ADP, Xero, or QuickBooks. Returns: id, type, organization_id. Required: staff_id, id, type.
shiftcare_staff_delete_external_reference
Delete an external reference (external ID) for a ShiftCare staff member. Returns an empty response on success. Required: staff_id, external_id.
shiftcare_staff_bulk_create_external_ids
Bulk-link external system identifiers to multiple staff members in a single call.
shiftcare_staff_archive
Archive a staff member. Archiving is processed asynchronously: it removes the staff member from future shifts and updates related records in the background.
shiftcare_staff_bulk_create
Bulk create multiple staff members in ShiftCare in a single request. Returns the created staff records including id, name, email, first_name, family_name, role, and created_at. Required: staffs[name], staffs[email].
shiftcare_staff_bulk_update
Bulk-update multiple staff members in a single call, matched by their ShiftCare staff IDs.
create_a_shiftcare_staff
Create a new staff member. Optionally sends a platform invitation email.
list_all_shiftcare_staff
List ShiftCare staff members. Returns: id, salutation, name, first_name, family_name, role, gender, dob, address, phone_number, mobile_number, email, employment_type, job_title, languages, kin_name, kin_relationship, kin_email, kin_phone_number, invitation_accepted_at, joined_at, created_at, updated_at, payroll_email, onboarding_status, external_ids.
update_a_shiftcare_staff_by_id
Update an existing staff member's profile fields.
shiftcare_staff_get_by_external_id
Fetch a single ShiftCare staff member by their external ID. Returns: id, salutation, name, first_name, family_name, role, gender, dob, address, phone_number, mobile_number, email, employment_type, job_title, languages, kin_name, kin_relationship, kin_email, kin_phone_number, invitation_accepted_at, joined_at, created_at, updated_at, payroll_email, onboarding_status, external_ids. Required:…
get_single_shiftcare_staff_by_id
Fetch a single ShiftCare staff member by id. Returns: id, salutation, name, first_name, family_name, role, gender, dob, address, phone_number, mobile_number, email, employment_type, job_title, languages, kin_name, kin_relationship, kin_email, kin_phone_number, invitation_accepted_at, joined_at, created_at, updated_at, payroll_email, onboarding_status, external_ids. Required: id.
list_all_shiftcare_timesheets
List timesheets in ShiftCare for a given date range. Returns: staff_id, date, client_ids, items, shift_id, status, clockin_at, clockout_at, clockin_location, clockout_location, staff. Required: from, to. Max 20 per page.
list_all_shiftcare_forms
List ShiftCare form definitions with optional filtering by status and type. Returns: id, name, description, form_type, status, single_response, component_count, created_at, updated_at, components. Max 100 per page.
get_single_shiftcare_form_by_id
Get a single ShiftCare form definition by id. Returns the full form object including name, form_type, status, single_response, component_count, components, created_at, and updated_at. Required: id.
create_a_shiftcare_form_response
Create a form response in ShiftCare by submitting component values for a specific form and responder. Returns: id, form_id, form_name, responder_type, responder_id, responder_name, status, values, created_at, updated_at. Required: form_id, responder_type, responder_id, values.
list_all_shiftcare_form_responses
List form responses in ShiftCare with optional filtering by form, responder, status, and submission date. Returns: id, form_id, form_name, responder_type, responder_id, responder_name, status, values, created_at, updated_at. Component values are only included when include_values is set to true.
list_all_shiftcare_progress_notes
List progress notes, optionally filtered by shift, staff author, client, category, creation date range, or shift date range.
get_single_shiftcare_progress_note_by_id
Get a single ShiftCare progress note by id. Returns: id, category, message, shift_id, shift_date, client, staff, follow_up, created_at, updated_at. Required: id.
list_all_shiftcare_invoiceable_items
List invoiceable items for a billing period in ShiftCare — priced shift and non-shift line items with tax-exclusive totals, grouped per client. Returns per-client entries with client_id, client_name, fund_id, fund_name, fund_type, payment_type, excluded_count, totals, and line_items. Required: start_date_in_account_time_zone, end_date_in_account_time_zone. A 404 response means the endpoint is not…
How it works
From ShiftCare account to governed MCP endpoint
Connect
Link a ShiftCare account through Elaichi's hosted connect flow. Credentials are vaulted — nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which ShiftCare tools are exposed, rename them, or freeze arguments.
Mint
Mint a personal MCP endpoint on that toolbox and paste it into Claude, Cursor, or any MCP client — governed by roles, restrictions, and audit logs.
Give every teammate a governed MCP server
Start a 14-day Gold trial — connect a product, curate a toolbox, and paste an endpoint into Claude or Cursor in minutes.