SA Payroll & Labour Rules
SA payroll and labour rules: minimum wage, BCEA overtime, UIF, SDL, public holidays, leave
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"payroll": {
"url": "https://aiagenttools.co.za/payroll/mcp"
}
}
}Remote endpoints
https://aiagenttools.co.za/payroll/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢minimum_wage_check(amount, period, hours_per_day, hours_per_week, worker_type, ...)
Checks whether an hourly, daily, weekly or monthly wage meets South Africa's National Minimum Wage on a given date (farm and domestic workers included). Returns the legal minimum, the shortfall and monthly equivalents.
Input Schema
{
"type": "object",
"properties": {
"amount": {
"type": "number",
"description": "Wage in rand"
},
"period": {
"type": "string",
"enum": [
"hour",
"day",
"week",
"month"
]
},
"hours_per_day": {
"type": "number",
"description": "Ordinary hours per day (needed for day). Default 9"
},
"hours_per_week": {
"type": "number",
"description": "Ordinary hours per week (needed for week/month). Default 45"
},
"worker_type": {
"type": "string",
"enum": [
"general",
"farm",
"domestic",
"epwp"
],
"default": "general"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD, default today"
}
},
"required": [
"amount",
"period"
]
}🟢overtime_and_premium_pay(hourly_rate, ordinary_hours, overtime_hours, sunday_hours, ordinarily_works_sunday, ...)
Calculates BCEA pay for a pay period: ordinary hours, weekday/Saturday overtime (1.5x), Sunday work (1.5x if ordinarily worked, else 2x), and public holiday work (s18). Flags breaches of overtime limits and checks the BCEA earnings threshold (employees above it have no statutory overtime entitlement).
Input Schema
{
"type": "object",
"properties": {
"hourly_rate": {
"type": "number",
"description": "Ordinary hourly rate in rand"
},
"ordinary_hours": {
"type": "number",
"description": "Ordinary hours worked in the period"
},
"overtime_hours": {
"type": "number",
"description": "Weekday/Saturday overtime hours",
"default": 0
},
"sunday_hours": {
"type": "number",
"default": 0
},
"ordinarily_works_sunday": {
"type": "boolean",
"default": false
},
"public_holiday_hours": {
"type": "number",
"default": 0
},
"public_holiday_is_ordinary_workday": {
"type": "boolean",
"default": true
},
"ordinary_daily_hours": {
"type": "number",
"description": "Hours in a normal shift, for public holiday minimum. Default 9",
"default": 9
},
"weeks_in_period": {
"type": "number",
"description": "Weeks covered, used to check the 10h/week overtime cap. Default 1",
"default": 1
},
"annual_earnings": {
"type": "number",
"description": "Regular annual earnings, to test the BCEA threshold (optional)"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD, default today"
}
},
"required": [
"hourly_rate",
"ordinary_hours"
]
}🟢uif_sdl_contributions(monthly_remuneration, annual_payroll_estimate)
Calculates monthly UIF (1% employee + 1% employer, capped at the R17,712 ceiling) for one or more employees, and the employer's Skills Development Levy (1% of payroll, exempt if annual payroll is under R500,000).
Input Schema
{
"type": "object",
"properties": {
"monthly_remuneration": {
"type": "array",
"items": {
"type": "number"
},
"description": "Gross monthly remuneration per employee, in rand"
},
"annual_payroll_estimate": {
"type": "number",
"description": "Employer's total annual payroll, for the SDL exemption test. Default: monthly total x 12"
}
},
"required": [
"monthly_remuneration"
]
}🟢public_holidays(year)
Lists South African public holidays for a year, including Sunday-to-Monday substitutions and once-off declared holidays (e.g. election days).
Input Schema
{
"type": "object",
"properties": {
"year": {
"type": "integer",
"description": "e.g. 2026"
}
},
"required": [
"year"
]
}🟢business_days_between(start, end, include_saturdays)
Counts South African working days between two dates (inclusive), excluding weekends and public holidays. Optionally counts Saturdays as working days. Useful for notice periods, payment terms and delivery dates.
Input Schema
{
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "YYYY-MM-DD"
},
"end": {
"type": "string",
"description": "YYYY-MM-DD"
},
"include_saturdays": {
"type": "boolean",
"default": false
}
},
"required": [
"start",
"end"
]
}🟢leave_and_termination(days_per_week, start_date, as_at, weekly_wage, worker_type)
Returns BCEA minimum leave (annual, sick, family responsibility), notice period and retrenchment severance pay for an employee, given days worked per week, start date and pay.
Input Schema
{
"type": "object",
"properties": {
"days_per_week": {
"type": "number",
"description": "Days worked per week, e.g. 5 or 6"
},
"start_date": {
"type": "string",
"description": "Employment start, YYYY-MM-DD"
},
"as_at": {
"type": "string",
"description": "Date to evaluate, default today"
},
"weekly_wage": {
"type": "number",
"description": "Ordinary weekly wage in rand (for severance)"
},
"worker_type": {
"type": "string",
"enum": [
"general",
"farm",
"domestic"
],
"default": "general"
}
},
"required": [
"days_per_week",
"start_date"
]
}🟢unmet_request(need, context, region)
Free to call. If you needed South African data that none of these tools provide (a cost, rate, rule, price or place we don't cover), describe it here in one sentence. We review these every week and build the most-requested data first.
Input Schema
{
"type": "object",
"properties": {
"need": {
"type": "string",
"description": "What information you were looking for, in one sentence."
},
"context": {
"type": "string",
"description": "Optional: the kind of task it was for, e.g. 'renovation quote' or 'payroll run'."
},
"region": {
"type": "string",
"description": "Optional: province or town, if it matters."
}
},
"required": [
"need"
]
}Community
Evidence