RotaCloud MCP by usefulapi

io.usefulapi/rotacloud

Read RotaCloud shifts, attendance, leave, availability and payroll; create shifts and handle leave.

Yes, your AI can use this right now.Answered a live MCP handshake in 182 ms with no sign-in needed and exposes 26 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://rotacloud.usefulapi.io/mcp

26 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
rotacloud_list_accountsread-only

The RotaCloud account(s) this API key belongs to: name, plan, time zone, employee count. GET /accounts.

rotacloud_list_usersread-only

List employees (users) with their level, roles, locations, contact details and pay settings. Use it to map user ids in shifts, leave and attendance to names. GET /users.

rotacloud_get_userread-only

One employee by id. GET /users/{id}.

rotacloud_list_locationsread-only

List locations (sites/branches) with address, time zone and managers. GET /locations.

rotacloud_list_rolesread-only

List job roles (positions) with colour, default break and pay rate. GET /roles.

rotacloud_list_shiftsread-only

List rota shifts in a time range: start/end times (Unix seconds), break, assigned user (null = open shift), location, role, notes, published and acknowledged state. Filter by users, locations, roles, open or published. GET /shifts.

rotacloud_get_shiftread-only

One shift by id. GET /shifts/{id}.

rotacloud_list_swap_requestsread-only

List shift swap requests with their status, the shifts and the users involved. GET /swap_requests.

rotacloud_list_day_notesread-only

List day notes (notices pinned to rota dates, e.g. events or deliveries), optionally for one location. GET /day_notes.

rotacloud_list_attendanceread-only

List time & attendance records (clock-in/out times, breaks, minutes late, hours, approval state) in a time range. GET /attendance.

rotacloud_list_clocked_inread-only

Who is clocked in right now: user, location, role, clock-in time, minutes late and break state. GET /users_clocked_in.

rotacloud_list_leaveread-only

List booked leave (holiday, sickness, etc.) with type, user, dates, hours and status. Filter by date range or leave year, users and leave types; pending/denied/expired requests are excluded unless asked for. GET /leave.

rotacloud_list_leave_requestsread-only

List leave requests awaiting a decision (and past ones): user, leave type, dates, half days, the employee's message. GET /leave_requests.

rotacloud_get_leave_requestread-only

One leave request by id, with the per-day breakdown. GET /leave_requests/{id}.

rotacloud_list_leave_typesread-only

List leave types (Holiday, Sickness, Unpaid, ...) with id, short name and whether employees can request them. GET /leave_types.

rotacloud_list_holiday_allowancesread-only

Every employee's holiday allowance for a leave year (default and custom allowance, unit, carried over). GET /holiday_allowances/{year}.

rotacloud_get_availabilityread-only

Employees' availability per date in a range (available / unavailable times). GET /availability.

rotacloud_list_days_offread-only

Employees' scheduled days off per date in a range. GET /days_off.

rotacloud_list_pay_periodsread-only

List pay periods overlapping a date range (id, name, start/end date, locked). GET /pay_periods.

rotacloud_get_payrollread-only

Payroll for one pay period, per employee: pay settings, attendance worked, paid/unpaid leave, overtime and pay totals. Contains pay data. GET /pay_periods/{id}/payroll.

rotacloud_create_shiftcan modify

WRITE: create a shift on the rota. Leave user_id out for an open shift. Unpublished by default (employees see it once published). POST /shifts.

rotacloud_update_shiftcan modify

WRITE: change a shift's times, assignee, location, role, break, notes or published state. Only the fields you pass change. POST /shifts/{id}.

rotacloud_publish_shiftscan modify

WRITE: publish shifts so the assigned employees see them (and get notified). POST /shifts_published.

rotacloud_create_leave_requestcan modify

WRITE: submit a leave request on behalf of an employee (sent as that user, for a manager to approve). POST /leave_requests with the User header.

rotacloud_approve_leave_requestcan modify

WRITE: approve a pending leave request (it becomes booked leave and the employee is notified). POST /leave_requests/{id}/approve.

rotacloud_deny_leave_requestcan modify

WRITE: deny a pending leave request (the employee is notified). POST /leave_requests/{id}/deny.

Alternatives in Cloud & Infra

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”