Read RotaCloud shifts, attendance, leave, availability and payroll; create shifts and handle leave. Hosted by usefulapi — connect from Claude, Cursor, or any MCP client.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"rotacloud": {
"url": "https://rotacloud.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
rotacloud_list_accounts | read | List accounts The RotaCloud account(s) this API key belongs to: name, plan, time zone, employee count. GET /accounts. |
rotacloud_list_users | read | List users 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_user | read | Get user One employee by id. GET /users/{id}. |
rotacloud_list_locations | read | List locations List locations (sites/branches) with address, time zone and managers. GET /locations. |
rotacloud_list_roles | read | List roles List job roles (positions) with colour, default break and pay rate. GET /roles. |
rotacloud_list_shifts | read | List shifts 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_shift | read | Get shift One shift by id. GET /shifts/{id}. |
rotacloud_list_swap_requests | read | List shift swap requests List shift swap requests with their status, the shifts and the users involved. GET /swap_requests. |
rotacloud_list_day_notes | read | List day notes List day notes (notices pinned to rota dates, e.g. events or deliveries), optionally for one location. GET /day_notes. |
rotacloud_list_attendance | read | List attendance records List time & attendance records (clock-in/out times, breaks, minutes late, hours, approval state) in a time range. GET /attendance. |
rotacloud_list_clocked_in | read | List clocked-in users Who is clocked in right now: user, location, role, clock-in time, minutes late and break state. GET /users_clocked_in. |
rotacloud_list_leave | read | List leave 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_requests | read | List leave requests 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_request | read | Get leave request One leave request by id, with the per-day breakdown. GET /leave_requests/{id}. |
rotacloud_list_leave_types | read | List leave types List leave types (Holiday, Sickness, Unpaid, ...) with id, short name and whether employees can request them. GET /leave_types. |
rotacloud_list_holiday_allowances | read | List holiday allowances Every employee's holiday allowance for a leave year (default and custom allowance, unit, carried over). GET /holiday_allowances/{year}. |
rotacloud_get_availability | read | Get availability Employees' availability per date in a range (available / unavailable times). GET /availability. |
rotacloud_list_days_off | read | List days off Employees' scheduled days off per date in a range. GET /days_off. |
rotacloud_list_pay_periods | read | List pay periods List pay periods overlapping a date range (id, name, start/end date, locked). GET /pay_periods. |
rotacloud_get_payroll | read | Get payroll for a pay period 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_shift | write | Create shift 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_shift | write | Update shift 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_shifts | write | Publish shifts WRITE: publish shifts so the assigned employees see them (and get notified). POST /shifts_published. |
rotacloud_create_leave_request | write | Request leave 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_request | write | Approve leave request WRITE: approve a pending leave request (it becomes booked leave and the employee is notified). POST /leave_requests/{id}/approve. |
rotacloud_deny_leave_request | write | Deny leave request WRITE: deny a pending leave request (the employee is notified). POST /leave_requests/{id}/deny. |
rotacloud_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
rotacloud_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED RotaCloud tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Does not count against the meter. | |
rotacloud_cancel_subscription | Cancel the Pro subscription Cancel the caller's RotaCloud Pro subscription at the end of the paid period (no refund for the current period; unlimited calls continue until then, then the free tier applies). Requires confirm: true. Run rotacloud_upgrade later to undo the cancel before the period ends. Does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper account | $9/mo · $90/yr | Unlimited |
Pro covers this RotaCloud server only. Subscribe with rotacloud_upgrade (it returns a Stripe Checkout link). Cancel any time with rotacloud_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running rotacloud_upgrade before then undoes the cancel. Or write to [email protected].
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.