HR & Payroll Rules Oracle
Server Details
UAE and Saudi gratuity, leave, notice, overtime and sick-pay arithmetic with cited articles.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Each tool targets a clearly distinct HR/payroll calculation or rule-retrieval purpose: leave, gratuity, notice, overtime, probation, sick pay, wage breakdown, and rule listing. Although wage_breakdown is a supporting utility, its purpose is unambiguous and does not overlap with the entitlement calculators.
All tool names use snake_case and are descriptively domain-specific, which makes them predictable. The only minor deviation is that list_rules uses a verb_noun form while the other seven tools use noun-phrase names.
Eight tools is well within the appropriate range for an HR and payroll rules oracle. Each tool covers a distinct, meaningful calculation or reference function, so the surface does not feel padded or thin.
The set covers the core payroll and employment-law calculations for UAE and Saudi Arabia, including leave, end-of-service, notice, overtime, probation, sick pay, and wage bases. Some adjacent entitlements such as maternity/paternity leave or public-holiday rules are not explicitly represented, but list_rules partly mitigates this gap.
Available Tools
8 toolsannual_leave_entitlementAnnual leave accrued, balance and encashmentARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). | |
| as_of_date | Yes | Date to compute the accrual at (e.g. today or the last working day). | |
| start_date | Yes | First day of service. | |
| taken_days | No | Annual-leave days already taken/paid in the period. | |
| basic_monthly_wage | No | For encashment value (UAE uses basic). | |
| total_monthly_wage | No | For encashment value where total wage applies (SA). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context beyond them: it defines data_confidence levels (high = official text, medium = translation or recent amendment), flags estimated_items, sources, warnings, and a not-legal-advice disclaimer. That disclosure of confidence and caveats is exactly the extra value the description should carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core computation and legal basis, then the example, then the response shape — a sensible order with no filler sentences. It is dense, with heavy nested parentheticals, but each clause carries substantive information rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the response enumeration is partly redundant, but the description still supplies what the schema cannot: which legal articles drive the numbers and what data_confidence means. Nothing critical for correct invocation is missing for a six-parameter, two-jurisdiction calculation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters and the AE/SA enum. The description still adds value with a fully worked parameter example ('AE', '2024-01-15', '2026-10-31', 20, 6000) that shows realistic values and the interaction between taken_days and basic_monthly_wage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and three concrete computations: accrued leave at a date, balance after days taken, and encashment value at the legal basis wage. It is clearly distinct from siblings like sick_leave_pay or end_of_service by jurisdiction-specific annual-leave articles (UAE Art. 29, Saudi Art. 109), though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the AE/SA legal citations and the worked example make it obvious this is for annual-leave accrual in those two jurisdictions, but there is no explicit 'use this when…' or 'for sick leave / gratuity use X instead' routing. An agent must infer the boundary from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_of_serviceEnd-of-service gratuity / awardARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). | |
| end_date | Yes | Last day of service, YYYY-MM-DD. | |
| start_date | Yes | First day of service, YYYY-MM-DD. | |
| termination | No | How the contract ended; affects Saudi Art. 85 fractions. | termination |
| special_case | No | Saudi Art. 87 full-award cases on resignation. | |
| unpaid_leave_days | No | Days of unpaid absence to exclude from service (UAE Art. 51(4)). | |
| basic_monthly_wage | Yes | Last basic monthly wage (UAE gratuity base). | |
| total_monthly_wage | No | Last total monthly wage incl. regular allowances (Saudi award base). Omit if unknown. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent behavior. The description adds substantial beyond that: step-by-step output, legal_basis, explanation steps, data_confidence levels, estimated_items, sources, data_version, warnings, and a not-legal-advice disclaimer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the core computation and legal rules, then gives an example and response shape. It is dense but mostly earns its space, though the formula detail is lengthy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given eight parameters, two enums, an output schema, and annotations, the description supplies the legal framework, jurisdiction distinction, example, confidence model, and output caveats. Nothing essential for correct invocation appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters thoroughly. The description adds an example and mentions resignation fractions and unpaid-day exclusion, but most parameter meaning is already carried by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: compute UAE end-of-service gratuity or Saudi award, with the governing articles named. It is clearly distinct from sibling HR calculators such as annual_leave_entitlement or notice_period.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It makes clear when to use the tool: UAE Art. 51 gratuity or Saudi Art. 84/85/87 award, with an example call. It does not explicitly exclude cases or compare against sibling tools, but the end-of-service scope is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rulesRule tables with articles and sourcesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Omit to list covered countries; give a code for its full rule table with articles and sources. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description earns credit on top of that by interpreting data_confidence (high = official text; medium = translation or recent amendment via secondary source), disclosing provenance via sources[] and data_version, and noting 'Free.' Those are genuinely useful traits not derivable from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scoping distinction is front-loaded and the parenthetical field lists are dense but purposeful, with zero filler sentences. The trailing 'Response:' block is the weakest part since it duplicates an output schema, but it is compact enough not to be wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with full schema coverage, annotations and an output schema, the description is more than sufficient and even over-delivers on return-value detail. The only material omission is guidance on its relationship to the sibling calculators, which is a usage issue rather than a completeness one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema description coverage, the schema already explains the omit-vs-supply-code behavior fully. The description adds only the enumeration of what the rule table contains (articles, figures, dates, scope notes, URLs), which is table content rather than argument semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description makes clear this returns either the covered countries or a single country's full rule table, enumerated as articles, figures, effective dates, scope notes and source URLs. That is a recognizable verb-less but specific resource statement, and it is clearly distinct in spirit from the calculator siblings (end_of_service, notice_period, etc.). However, it never explicitly contrasts itself with those siblings or states the complementarity, so an agent must infer that this is the reference/coverage lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Free.' signals a no-cost lookup, and the two usage modes (omit country vs. supply a code) are implied by the opening clause. But the actual omit/give instruction lives in the schema, and the description never says when to reach for this tool instead of the sibling entitlement calculators or whether it should be called first to obtain legal_basis. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notice_periodNotice period and pay in lieuARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| party | Yes | Who is terminating. | |
| country | Yes | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). | |
| on_date | No | Date notice is served (YYYY-MM-DD); default today. Decides which Saudi rule version applies. | |
| contract | No | indefinite | |
| agreed_days | No | Notice period written in the contract, if any. | |
| in_probation | No | ||
| monthly_wage | No | Total monthly wage, to compute pay in lieu of notice. | |
| employee_leaving_country | No | UAE probation: employee leaving the UAE (14 days) vs moving to another UAE employer (30 days). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description's added value lies in disclosing the response contract: legal_basis article, explanation steps, data_confidence semantics ('high = official text; medium = translation or recent amendment'), sources URLs, warnings, and the not-legal-advice disclaimer. It also notes that on_date decides which Saudi rule version applies. This goes well beyond the annotations, though it does not discuss failure modes or unsupported countries beyond the enum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, followed by statute references and a concrete example, then the response shape. The parenthetical statute list and dense example are information-rich, but the single overloaded opening sentence strains readability slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description correctly need not re-derive return values, yet it still summarizes the key fields (legal_basis, data_confidence, sources, warnings, disclaimer). The main residual gap is that the 'contract' and 'in_probation' parameters — which materially affect notice period — are left largely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds meaning for parameters the schema only partially documents — it explains that on_date selects the applicable Saudi rule version and that monthly_wage is used to compute pay in lieu. Some parameters (contract, in_probation) have empty schema descriptions and are only indirectly addressed via the probation/notice wording, so it stops just short of full compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — computing the legal notice period, its end date, and pay in lieu — and anchors it to concrete statutes (UAE Art. 43/9, Saudi Art. 75). It is clearly distinct from siblings like end_of_service and probation_rules because it centers on the notice period rather than entitlement calculations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The worked example ('country SA', party 'employee', on_date '2026-11-01', monthly_wage 9000) implies the intended use case, which is helpful. However, there is no explicit statement of when to use this tool versus alternatives such as probation_rules or end_of_service, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overtime_payOvertime payARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | normal | night (UAE 22:00–04:00) | rest_day (weekly rest day). | normal |
| hours | Yes | ||
| country | Yes | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). | |
| basic_monthly_wage | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, and the description adds genuinely new context: legal_basis attribution, data_confidence semantics (official text vs translation/secondary source), warnings, and a not-legal-advice disclaimer. That's real disclosure beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and legal rates are front-loaded, the example follows, and the response listing closes it out with no filler. The packing is dense (legal citations, enums, and output fields in one block), which borders on run-on but stays scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-country statutory calculator with an output schema and full annotations, the definition covers the essential context: jurisdictions, rates, response shape, confidence levels and disclaimer. It falls short only on currency assumption and the precise meaning of the 'hours' input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% — 'hours' and 'basic_monthly_wage' have empty descriptions — but the example clarifies their use and the uplift percentages (+25%, +50% night/rest day) explain how 'kind' changes the computation. The one remaining ambiguity is that the currency/units of the wage and whether 'hours' means overtime hours only are never stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (overtime pay at the legal uplift on the basic hourly wage) with the legal bases for both supported jurisdictions, and the example invocation pins down the calculation domain. It is unmistakably distinct from siblings like annual_leave_entitlement, end_of_service or wage_breakdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The worked example ('country AE', basic_monthly_wage 6000, hours 10, kind 'night') implies the usage context but the description never states when to pick this tool over a sibling or what conditions make it inapplicable. Usage is inferred rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
probation_rulesProbation end date and noticesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). | |
| start_date | Yes | First day of work. | |
| agreed_days | No | Probation length in the contract; default = legal maximum. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world, non-destructive behavior, so the description is not burdened with safety disclosure. It does add genuinely useful behavioral context beyond annotations: the meaning of data_confidence (official text vs. translation/secondary source), the presence of warnings and sources, and a not-legal-advice disclaimer, plus the 19 Feb 2025 amendment boundary for Saudi.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and jurisdictions are correctly front-loaded, but the description then enumerates the full response shape (result, legal_basis, explanation[], data_confidence, estimated_items[], sources[], data_version, warnings[], disclaimer) even though an output schema exists, making roughly half the text redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety, a complete input schema, and an output schema, the remaining description burden is light, and the definition covers jurisdiction scope, confidence semantics, and legal caveats. The one gap is routing guidance against the notice_period sibling for post-probation questions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the enum values and the 'agreed_days defaults to legal maximum' note, so the schema already carries parameter meaning. The description's worked example ('AE', '2026-11-01', 90) illustrates format and defaults but adds little semantic detail the schema does not already state. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States precisely what it computes: probation length limits per jurisdiction, the derived end date, and the notice rules inside probation, citing the exact governing articles (UAE Art. 9, Saudi Art. 53). An agent can distinguish it from siblings like notice_period or end_of_service without opening the schema because it is scoped to the probation window.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The example invocation implies the intended call pattern, but there is no explicit when-to-use guidance and no mention of the near-neighbor sibling notice_period, which also deals with notice rules. The boundary between 'notice rules inside probation' and a general notice-period tool is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sick_leave_paySick-leave pay by tierARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Sick days in the current year of service. | |
| country | Yes | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). | |
| in_probation | No | ||
| monthly_wage | Yes | Total monthly wage. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, yet the description still adds real substance: what data_confidence levels mean, that sources are law URLs with a data_version, and that output carries a not-legal-advice disclaimer. Minor gap: it does not clarify how in_probation changes the computation, though the UAE rules summary hints at it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose, rules, example, and response contract are front-loaded in a tight sequence with no filler. The response-field enumeration is slightly dense but each item (legal_basis, data_confidence semantics, warnings) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations and an output schema present, the description need not restate safety or return structure, and it still summarizes both. The single remaining hole is in_probation, which neither the schema nor the description explains, keeping it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema already documents country (with law versions), days, and monthly_wage; the example confirms their shape. However, in_probation has an empty schema description and is not mentioned in the description at all, leaving both channels silent on a parameter that materially affects the result (none paid during probation in UAE).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific act (pay for N sick days) plus the governing tiered rule set for each country, naming the exact articles. An agent can distinguish it from annual_leave_entitlement, end_of_service, or overtime_pay without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The worked example (country 'AE', days 40, monthly_wage 9000) makes the intended invocation concrete and implies the domain boundaries. It does not explicitly say when to prefer a sibling or exclude cases (e.g., sick leave spanning employment termination), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wage_breakdownDaily and hourly wage conventionsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | country: 'AE' (UAE private sector, Decree-Law 33/2021) or 'SA' (Saudi Labor Law M/51 incl. 2025 amendments). | |
| basic_monthly_wage | Yes | ||
| total_monthly_wage | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description still adds real context: the data_confidence rubric (high = official text, medium = translation/recent amendment), warnings, sources, and a not-legal-advice disclaimer. That is meaningful disclosure beyond structured fields, though it omits any country-coverage caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the computational rule front-loaded and the example immediately after. The return-field enumeration is somewhat list-like but each item carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return-value detail is arguably redundant, but the data_confidence semantics and disclaimer are still useful. The main gap is the undocumented optional wage parameter, which neither schema nor description clarifies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% — basic_monthly_wage and total_monthly_wage have empty descriptions. The description partially compensates with a worked example ('AE', 6000, 10000) and the ÷30/÷8 convention, but it never explains what total_monthly_wage is for or whether it is optional/derived.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete operation — converting monthly figures into daily and hourly basic/total wages using the country convention (÷30, ÷8) — plus the legal-basis note it returns. The resource is clearly distinct from siblings like overtime_pay or end_of_service, though the description never explicitly routes against them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: it computes wage conversions for AE/SA and attaches the basis each entitlement uses. There is no explicit 'use this when...' or exclusion against overtime_pay/end_of_service, which also deal with pay figures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- First observed
annual_leave_entitlement - First observed
end_of_service - First observed
list_rules - First observed
notice_period - First observed
overtime_pay - First observed
probation_rules - First observed
sick_leave_pay - First observed
wage_breakdown
Related MCP Connectors
Jordan & GCC labour-law, tax and finance calculators for AI agents — 36 deterministic tools.
Mid-East govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 9 countries; UAE free.
Read-only UAE legal information: official routes, practical guides, free tools and FAQs.
Search and cite UAE law (federal, Dubai, Abu Dhabi, DIFC, ADGM) with verifiable citations.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceCalculates end-of-service gratuity/severance for multiple countries (AE, SA, QA, etc.) via a stateless JSON API and MCP tool.-
- AlicenseNot gradedqualityBmaintenanceComputes Japanese payroll, social insurance, and labour law obligations—such as premiums, withholding tax, and minimum wage—citing the statute each answer relies on, enabling auditable calculations through an AI assistant.2MIT
- AlicenseAqualityAmaintenanceTaiwan statutory payroll calculation — labor & health insurance, labor pension, 2nd-gen NHI supplementary premium, income-tax withholding, and old-age benefits. Sourced from official gazettes, verified against official sample data.92MIT
- AlicenseAqualityBmaintenanceEnables calculating Malaysian statutory payroll deductions—EPF, SOCSO, EIS and MTD/PCB—for a resident employee's fixed monthly salary, citing the official rate table or rule behind each figure.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.