UAE and Saudi gratuity, leave, notice, overtime and sick-pay arithmetic with cited articles.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
API key from [email protected] (catalogue and free tools work without it)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Accrued annual leave at a date (UAE Art. 29: 30 days/year, 2 days/month between 6 and 12 months; Saudi Art. 109: 21 days, 30 after 5 years), balance after days taken, and encashment value at the legal basis wage. Example: country 'AE', start_date '2024-01-15', as_of_date '2026-10-31', taken_days 20, basic_monthly_wage 6000. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments).
Date to compute the accrual at (e.g. today or the last working day).
First day of service.
Annual-leave days already taken/paid in the period.
For encashment value (UAE uses basic).
For encashment value where total wage applies (SA).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http hr-payroll-oracle https://hr.noahsarch.tech/mcp
Headers
X-API-Key (optional, not in the config above): API key from [email protected] (catalogue and free tools work without it)Accrued annual leave at a date (UAE Art. 29: 30 days/year, 2 days/month between 6 and 12 months; Saudi Art. 109: 21 days, 30 after 5 years), balance after days taken, and encashment value at the legal basis wage. Example: country 'AE', start_date '2024-01-15', as_of_date '2026-10-31', taken_days 20, basic_monthly_wage 6000. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
| Argument | Type | Description |
|---|---|---|
| country* | string | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). |
| as_of_date* | string | Date to compute the accrual at (e.g. today or the last working day). |
| start_date* | string | First day of service. |
| taken_days | number | Annual-leave days already taken/paid in the period. |
| basic_monthly_wage | any | For encashment value (UAE uses basic). |
| total_monthly_wage | any | For encashment value where total wage applies (SA). |
{
"type": "object",
"title": "annual_leave_entitlementArguments",
"required": [
"country",
"start_date",
"as_of_date"
],
"properties": {
"country": {
"enum": [
"AE",
"SA"
],
"type": "string",
"title": "Country",
"description": "country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments)."
},
"as_of_date": {
"type": "string",
"title": "As Of Date",
"description": "Date to compute the accrual at (e.g. today or the last working day)."
},
"start_date": {
"type": "string",
"title": "Start Date",
"description": "First day of service."
},
"taken_days": {
"type": "number",
"title": "Taken Days",
"default": 0,
"description": "Annual-leave days already taken/paid in the period."
},
"basic_monthly_wage": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Basic Monthly Wage",
"default": null,
"description": "For encashment value (UAE uses basic)."
},
"total_monthly_wage": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Total Monthly Wage",
"default": null,
"description": "For encashment value where total wage applies (SA)."
}
}
}Compute the end-of-service gratuity (UAE Art. 51: 21 days' basic wage per year for 5 years then 30, capped at 2 years' wage, pro rata, unpaid days excluded) or the Saudi award (Art. 84/85/87: half a month's actual wage per year for 5 years then a full month, resignation fractions ⅓/⅔/full). Returns the step-by-step computation. Example: country 'AE', start_date '2019-03-01', end_date '2026-10-31', basic_monthly_wage 8000, termination 'resignation'. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
| Argument | Type | Description |
|---|---|---|
| country* | string | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). |
| end_date* | string | Last day of service, YYYY-MM-DD. |
| start_date* | string | First day of service, YYYY-MM-DD. |
| termination | string | How the contract ended; affects Saudi Art. 85 fractions. |
| special_case | any | Saudi Art. 87 full-award cases on resignation. |
| unpaid_leave_days | integer |
The covered countries, or one country's full rule table (articles, figures, effective dates, scope notes, official source URLs). Free. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
| Argument | Type | Description |
|---|---|---|
| country | any | Omit to list covered countries; give a code for its full rule table with articles and sources. |
{
"type": "object",
"title": "list_rulesArguments",
"properties": {
"country": {
"anyOf": [
{
"enum": [
"AE",
"SA"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Country",
"default": null,
"description": "Omit to list covered countries; give a code for its full rule table with articles and sources."
}
}
}Legal notice period for a termination (UAE Art. 43: 30–90 days as agreed; probation Art. 9: 14 days employer / 30 or 14 days employee; Saudi Art. 75: 60 days employer, 30 days employee from 19 Feb 2025), the date notice ends, and pay in lieu. Example: country 'SA', party 'employee', on_date '2026-11-01', monthly_wage 9000. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
| Argument | Type | Description |
|---|---|---|
| party* | string | Who is terminating. |
| country* | string | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). |
| on_date | any | Date notice is served (YYYY-MM-DD); default today. Decides which Saudi rule version applies. |
| contract | string | |
| agreed_days | any | Notice period written in the contract, if any. |
| in_probation | boolean | |
| monthly_wage | any |
Overtime at the legal uplift on the basic hourly wage (UAE Art. 19: +25%, +50% at night 22:00–04:00 or on the rest day; Saudi Art. 107: +50%). Example: country 'AE', basic_monthly_wage 6000, hours 10, kind 'night'. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
| Argument | Type | Description |
|---|---|---|
| kind | string | normal | night (UAE 22:00–04:00) | rest_day (weekly rest day). |
| hours* | number | |
| country* | string | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). |
| basic_monthly_wage* | number |
{
"type": "object",
"title": "overtime_payArguments",
"required": [
"country",
"basic_monthly_wage",
"hours"
],
"properties": {
"kind": {
"enum": [
"normal",
"night",
"rest_day"
],
"type": "string",
"title": "Kind",
"default": "normal",
"description": "normal | night (UAE 22:00–04:00) | rest_day (weekly rest day)."
},
"hours": {
"type": "number",
"title": "Hours",
"description": ""
},
"country": {
"enum": [
"AE",
"SA"
],
"type": "string",
"title": "Country",
"description": "country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments)."
},
"basic_monthly_wage": {
"type": "number",
"title": "Basic Monthly Wage",
"description": ""
}
}
}Probation length allowed (UAE Art. 9: up to 6 months; Saudi Art. 53: up to 180 days from 19 Feb 2025, 90 before), its end date and the notice rules that apply inside it. Example: country 'AE', start_date '2026-11-01', agreed_days 90. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
| Argument | Type | Description |
|---|---|---|
| country* | string | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). |
| start_date* | string | First day of work. |
| agreed_days | any | Probation length in the contract; default = legal maximum. |
{
"type": "object",
"title": "probation_rulesArguments",
"required": [
"country",
"start_date"
],
"properties": {
"country": {
"enum": [
"AE",
"SA"
],
"type": "string",
"title": "Country",
"description": "country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments)."
},
"start_date": {
"type": "string",
"title": "Start Date",
"description": "First day of work."
},
"agreed_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Agreed Days",
"default": null,
"description": "Probation length in the contract; default = legal maximum."
}
}
}Pay for a number of sick days under the tiered rules (UAE Art. 31: 15 full, 30 half, 45 unpaid, none during probation; Saudi Art. 117: 30 full, 60 at 75%, 30 unpaid). Example: country 'AE', days 40, monthly_wage 9000. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
| Argument | Type | Description |
|---|---|---|
| days* | integer | Sick days in the current year of service. |
| country* | string | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). |
| in_probation | boolean | |
| monthly_wage* | number | Total monthly wage. |
{
"type": "object",
"title": "sick_leave_payArguments",
"required": [
"country",
"days",
"monthly_wage"
],
"properties": {
"days": {
"type": "integer",
"title": "Days",
"description": "Sick days in the current year of service."
},
"country": {
"enum": [
"AE",
"SA"
],
"type": "string",
"title": "Country",
"description": "country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments)."
},
"in_probation": {
"type": "boolean",
"title": "In Probation",
"default": false,
"description": ""
},
"monthly_wage": {
"type": "number",
"title": "Monthly Wage",
"description": "Total monthly wage."
}
}
}Daily and hourly basic/total wages under the country's convention (monthly ÷ 30, ÷ 8 hours) with a note on which basis each entitlement uses. Example: country 'AE', basic_monthly_wage 6000, total_monthly_wage 10000. Response: result with legal_basis (article) and explanation[] steps, data_confidence (high = official text; medium = translation or recent amendment via secondary source), estimated_items[], sources[] (law URLs), data_version, warnings[] and a not-legal-advice disclaimer.
| Argument | Type | Description |
|---|---|---|
| country* | string | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). |
| basic_monthly_wage* | number | |
| total_monthly_wage | any |
{
"type": "object",
"title": "wage_breakdownArguments",
"required": [
"country",
"basic_monthly_wage"
],
"properties": {
"country": {
"enum": [
"AE",
"SA"
],
"type": "string",
"title": "Country",
"description": "country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments)."
},
"basic_monthly_wage": {
"type": "number",
"title": "Basic Monthly Wage",
"description": ""
},
"total_monthly_wage": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Total Monthly Wage",
"default": null,
"description": ""
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 31, 2026.
| Days of unpaid absence to exclude from service (UAE Art. 51(4)). |
| basic_monthly_wage* | number | Last basic monthly wage (UAE gratuity base). |
| total_monthly_wage | any | Last total monthly wage incl. regular allowances (Saudi award base). Omit if unknown. |
{
"type": "object",
"title": "end_of_serviceArguments",
"required": [
"country",
"start_date",
"end_date",
"basic_monthly_wage"
],
"properties": {
"country": {
"enum": [
"AE",
"SA"
],
"type": "string",
"title": "Country",
"description": "country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments)."
},
"end_date": {
"type": "string",
"title": "End Date",
"description": "Last day of service, YYYY-MM-DD."
},
"start_date": {
"type": "string",
"title": "Start Date",
"description": "First day of service, YYYY-MM-DD."
},
"termination": {
"enum": [
"resignation",
"termination",
"contract_expiry",
"mutual",
"death",
"force_majeure"
],
"type": "string",
"title": "Termination",
"default": "termination",
"description": "How the contract ended; affects Saudi Art. 85 fractions."
},
"special_case": {
"anyOf": [
{
"enum": [
"force_majeure",
"female_resigning_within_6_months_of_marriage",
"female_resigning_within_3_months_of_childbirth"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Special Case",
"default": null,
"description": "Saudi Art. 87 full-award cases on resignation."
},
"unpaid_leave_days": {
"type": "integer",
"title": "Unpaid Leave Days",
"default": 0,
"description": "Days of unpaid absence to exclude from service (UAE Art. 51(4))."
},
"basic_monthly_wage": {
"type": "number",
"title": "Basic Monthly Wage",
"description": "Last basic monthly wage (UAE gratuity base)."
},
"total_monthly_wage": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Total Monthly Wage",
"default": null,
"description": "Last total monthly wage incl. regular allowances (Saudi award base). Omit if unknown."
}
}
}| Total monthly wage, to compute pay in lieu of notice. |
| employee_leaving_country | boolean | UAE probation: employee leaving the UAE (14 days) vs moving to another UAE employer (30 days). |
{
"type": "object",
"title": "notice_periodArguments",
"required": [
"country",
"party"
],
"properties": {
"party": {
"enum": [
"employer",
"employee"
],
"type": "string",
"title": "Party",
"description": "Who is terminating."
},
"country": {
"enum": [
"AE",
"SA"
],
"type": "string",
"title": "Country",
"description": "country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments)."
},
"on_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "On Date",
"default": null,
"description": "Date notice is served (YYYY-MM-DD); default today. Decides which Saudi rule version applies."
},
"contract": {
"enum": [
"indefinite",
"fixed"
],
"type": "string",
"title": "Contract",
"default": "indefinite",
"description": ""
},
"agreed_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Agreed Days",
"default": null,
"description": "Notice period written in the contract, if any."
},
"in_probation": {
"type": "boolean",
"title": "In Probation",
"default": false,
"description": ""
},
"monthly_wage": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Monthly Wage",
"default": null,
"description": "Total monthly wage, to compute pay in lieu of notice."
},
"employee_leaving_country": {
"type": "boolean",
"title": "Employee Leaving Country",
"default": false,
"description": "UAE probation: employee leaving the UAE (14 days) vs moving to another UAE employer (30 days)."
}
}
}