Skip to content
Elaichi Elaichi

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.

ShiftCare

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.