UAE Calendar Oracle

UAE working days, holidays with confirmation status, Hijri dates, Ramadan hours, deadlines.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
100%
命名质量
88%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,785token 数(工具定义)
~3.3 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.74%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "uae-calendar-oracle": {
      "url": "https://oracle.noahsarch.tech/mcp"
    }
  }
}

远程端点

https://oracle.noahsarch.tech/mcpstreamable-http

它能做什么

工具清单

工具(10)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢is_working_day(date, emirate, sector, apply_optional_overlays)

Tell whether a date is a working day in the UAE for a given emirate and sector, and why not (weekend, named public holiday with its status, or Friday half day). Call this before scheduling, promising delivery, booking, or filing anything on a UAE date. Islamic holidays depend on moon sighting: the result says whether the holiday is 'estimated' (not yet announced) or 'confirmed'. Example: {date:'2026-05-25', emirate:'federal', sector:'public'} → is_working_day=false, reason 'Eid Al Adha (extended federal break)', status confirmed; the same date for sector 'private' → true. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "date": {
      "description": "ISO date 'YYYY-MM-DD' (or ISO datetime; converted to Asia/Dubai).",
      "title": "Date",
      "type": "string"
    },
    "emirate": {
      "default": "federal",
      "description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.",
      "enum": [
        "federal",
        "abu_dhabi",
        "dubai",
        "sharjah",
        "ajman",
        "umm_al_quwain",
        "ras_al_khaimah",
        "fujairah"
      ],
      "title": "Emirate",
      "type": "string"
    },
    "sector": {
      "default": "public",
      "description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).",
      "enum": [
        "public",
        "private"
      ],
      "title": "Sector",
      "type": "string"
    },
    "apply_optional_overlays": {
      "default": false,
      "description": "Apply optional entity-level schedules such as Dubai's summer 4-day week. Default false.",
      "title": "Apply Optional Overlays",
      "type": "boolean"
    }
  },
  "required": [
    "date"
  ],
  "title": "is_working_dayArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "is_working_dayDictOutput"
}
🟢add_working_days(start_date, days, emirate, sector, count_start_day)

Compute the date N working days after (or before, if N is negative) a start date for a UAE emirate/sector, skipping weekends and public holidays, and list every skipped day with its reason. Use for SLAs, delivery promises, HR processing times and 'within X business days' wording. Example: {start_date:'2026-05-21', days:3, emirate:'federal', sector:'public'} → end_date 2026-06-02 (Eid Al Adha week skipped). Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "start_date": {
      "description": "ISO date to count from.",
      "title": "Start Date",
      "type": "string"
    },
    "days": {
      "description": "Working days to add. Negative counts backwards.",
      "maximum": 10000,
      "minimum": -10000,
      "title": "Days",
      "type": "integer"
    },
    "emirate": {
      "default": "federal",
      "description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.",
      "enum": [
        "federal",
        "abu_dhabi",
        "dubai",
        "sharjah",
        "ajman",
        "umm_al_quwain",
        "ras_al_khaimah",
        "fujairah"
      ],
      "title": "Emirate",
      "type": "string"
    },
    "sector": {
      "default": "public",
      "description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).",
      "enum": [
        "public",
        "private"
      ],
      "title": "Sector",
      "type": "string"
    },
    "count_start_day": {
      "default": false,
      "description": "If true and start_date is a working day, it counts as day 1. Default false (start the day after).",
      "title": "Count Start Day",
      "type": "boolean"
    }
  },
  "required": [
    "start_date",
    "days"
  ],
  "title": "add_working_daysArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "add_working_daysDictOutput"
}
🟢working_days_between(start_date, end_date, emirate, sector, inclusive)

Count working days between two dates for a UAE emirate/sector (choose which endpoints to include), with the number of Friday half days and the list of non-working days in the range. Use for leave calculations, payroll, project durations and lateness. Example: {start_date:'2026-05-18', end_date:'2026-06-05', emirate:'federal', sector:'public'} → working_days 10, of_which_half_days 2. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "start_date": {
      "description": "ISO date.",
      "title": "Start Date",
      "type": "string"
    },
    "end_date": {
      "description": "ISO date. May be before start_date (result is negative).",
      "title": "End Date",
      "type": "string"
    },
    "emirate": {
      "default": "federal",
      "description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.",
      "enum": [
        "federal",
        "abu_dhabi",
        "dubai",
        "sharjah",
        "ajman",
        "umm_al_quwain",
        "ras_al_khaimah",
        "fujairah"
      ],
      "title": "Emirate",
      "type": "string"
    },
    "sector": {
      "default": "public",
      "description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).",
      "enum": [
        "public",
        "private"
      ],
      "title": "Sector",
      "type": "string"
    },
    "inclusive": {
      "default": "both",
      "description": "Which endpoints to count: both (default) | start | end | none.",
      "enum": [
        "both",
        "start",
        "end",
        "none"
      ],
      "title": "Inclusive",
      "type": "string"
    }
  },
  "required": [
    "start_date",
    "end_date"
  ],
  "title": "working_days_betweenArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "working_days_betweenDictOutput"
}
🟢compute_deadline(start_date, period, unit, emirate, sector, ...)

Compute a deadline from a start date and a period in calendar days, working days, Gregorian months or Hijri months, applying the counting rules YOU specify (exclude start day, extend past weekends/holidays, half-day handling, estimated-holiday handling). Returns the deadline, the raw date before extension, every skipped day and a step-by-step explanation. Use when drafting contract, notice, appeal or payment deadlines in the UAE. This is date arithmetic only; it does not state what any law requires, and every response carries a disclaimer field. Example: {start_date:'2026-11-26', period:7, unit:'calendar_days', emirate:'federal', sector:'public'} → raw 2026-12-03 (National Day, estimated) → deadline 2026-12-04, data_confidence 'medium'. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "start_date": {
      "description": "ISO date the period starts from (e.g. date of notification).",
      "title": "Start Date",
      "type": "string"
    },
    "period": {
      "description": "Length of the period in `unit`. Negative counts backwards.",
      "title": "Period",
      "type": "integer"
    },
    "unit": {
      "description": "calendar_days | working_days | months (Gregorian) | hijri_months.",
      "enum": [
        "calendar_days",
        "working_days",
        "months",
        "hijri_months"
      ],
      "title": "Unit",
      "type": "string"
    },
    "emirate": {
      "default": "federal",
      "description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.",
      "enum": [
        "federal",
        "abu_dhabi",
        "dubai",
        "sharjah",
        "ajman",
        "umm_al_quwain",
        "ras_al_khaimah",
        "fujairah"
      ],
      "title": "Emirate",
      "type": "string"
    },
    "sector": {
      "default": "public",
      "description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).",
      "enum": [
        "public",
        "private"
      ],
      "title": "Sector",
      "type": "string"
    },
    "rules": {
      "anyOf": [
        {
          "$ref": "#/$defs/DeadlineRulesIn"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Counting conventions. Pass what the contract/rule says; defaults are the common convention."
    }
  },
  "required": [
    "start_date",
    "period",
    "unit"
  ],
  "$defs": {
    "DeadlineRulesIn": {
      "additionalProperties": false,
      "properties": {
        "exclude_start_day": {
          "default": true,
          "description": "Day 1 is the day after start_date (true, default) or start_date itself.",
          "title": "Exclude Start Day",
          "type": "boolean"
        },
        "extend_if_ends_on_non_working_day": {
          "default": true,
          "description": "Roll a deadline that lands on a weekend/holiday forward to the next working day (default true).",
          "title": "Extend If Ends On Non Working Day",
          "type": "boolean"
        },
        "treat_half_day_as_working": {
          "default": true,
          "description": "Friday half days count as working days (default true).",
          "title": "Treat Half Day As Working",
          "type": "boolean"
        },
        "include_estimated_holidays": {
          "default": true,
          "description": "Count not-yet-announced (estimated) holidays as non-working days (default true).",
          "title": "Include Estimated Holidays",
          "type": "boolean"
        },
        "month_end_clamp": {
          "default": true,
          "description": "For month units: clamp 31 Jan + 1 month to 28/29 Feb (default true).",
          "title": "Month End Clamp",
          "type": "boolean"
        }
      },
      "title": "DeadlineRulesIn",
      "type": "object"
    }
  },
  "title": "compute_deadlineArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "compute_deadlineDictOutput"
}
🟢list_holidays(year, emirate, sector, include_estimated)

List all public holidays for a Gregorian year, emirate and sector, with English and Arabic names, dates, status (estimated | announced | confirmed | moved, with original dates when moved), official source URL and last-checked time. Use for annual planning, HR calendars and to show users which dates are still provisional. Example: {year:2026, emirate:'federal', sector:'private'} → 8 holidays, National Day still 'estimated'. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "year": {
      "description": "Gregorian year, e.g. 2026.",
      "maximum": 2100,
      "minimum": 1900,
      "title": "Year",
      "type": "integer"
    },
    "emirate": {
      "default": "federal",
      "description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.",
      "enum": [
        "federal",
        "abu_dhabi",
        "dubai",
        "sharjah",
        "ajman",
        "umm_al_quwain",
        "ras_al_khaimah",
        "fujairah"
      ],
      "title": "Emirate",
      "type": "string"
    },
    "sector": {
      "default": "public",
      "description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).",
      "enum": [
        "public",
        "private"
      ],
      "title": "Sector",
      "type": "string"
    },
    "include_estimated": {
      "default": true,
      "description": "Include not-yet-announced holidays with status 'estimated' (default true).",
      "title": "Include Estimated",
      "type": "boolean"
    }
  },
  "required": [
    "year"
  ],
  "title": "list_holidaysArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "list_holidaysDictOutput"
}
🟢next_holiday(from_date, emirate, sector)

Return the next public holiday on or after a date for an emirate/sector: names (EN/AR), dates, status, days until, source. Use for 'when is the next long weekend / holiday' questions and to warn about upcoming closures. Example: {from_date:'2026-10-31', emirate:'federal', sector:'public'} → Eid Al Etihad 2–3 Dec 2026, estimated, 32 days away. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "from_date": {
      "description": "ISO date to search from (inclusive). Usually today.",
      "title": "From Date",
      "type": "string"
    },
    "emirate": {
      "default": "federal",
      "description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.",
      "enum": [
        "federal",
        "abu_dhabi",
        "dubai",
        "sharjah",
        "ajman",
        "umm_al_quwain",
        "ras_al_khaimah",
        "fujairah"
      ],
      "title": "Emirate",
      "type": "string"
    },
    "sector": {
      "default": "public",
      "description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).",
      "enum": [
        "public",
        "private"
      ],
      "title": "Sector",
      "type": "string"
    }
  },
  "required": [
    "from_date"
  ],
  "title": "next_holidayArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "next_holidayDictOutput"
}
🟢gregorian_to_hijri(date)

Convert a Gregorian date to the Hijri (Islamic) calendar using the Umm al-Qura tables, with month names in English and Arabic. The result is COMPUTED: the official UAE date is set by moon sighting and may differ by ±1 day, so data_confidence is 'medium'. Use for Hijri-dated documents and to estimate Islamic holidays. Example: {date:'2026-03-20'} → 1 Shawwal 1447 AH. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "date": {
      "description": "ISO Gregorian date 'YYYY-MM-DD' between 1924-08-01 and 2077-11-16.",
      "title": "Date",
      "type": "string"
    }
  },
  "required": [
    "date"
  ],
  "title": "gregorian_to_hijriArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "gregorian_to_hijriDictOutput"
}
🟢hijri_to_gregorian(hijri_date)

Convert a Hijri date 'YYYY-MM-DD' (1343–1500 AH) to Gregorian using the Umm al-Qura tables, with the weekday. COMPUTED, ±1 day versus the moon-sighted UAE date; data_confidence 'medium'. Example: {hijri_date:'1448-01-01'} → 2026-06-16 (Tue). Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "hijri_date": {
      "description": "Hijri date 'YYYY-MM-DD', e.g. '1448-01-01' (year 1343–1500 AH).",
      "title": "Hijri Date",
      "type": "string"
    }
  },
  "required": [
    "hijri_date"
  ],
  "title": "hijri_to_gregorianArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "hijri_to_gregorianDictOutput"
}
🟢ramadan_info(year, emirate, sector)

Return Ramadan start/end for a Gregorian year (observed or estimated) and the officially published reduced working-hour rules for the emirate/sector (e.g. federal 09:00–14:30 Mon–Thu, 09:00–12:00 Fri; private sector −2 hours/day). If no rule has been published for that profile the response says 'not_announced' instead of guessing. Use for scheduling during Ramadan and for HR policy questions. Example: {year:2026, emirate:'federal', sector:'public'} → 18 Feb–19 Mar 2026, confirmed, FAHR Circular 1/2026 hours. Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "year": {
      "description": "Gregorian year, e.g. 2027.",
      "maximum": 2100,
      "minimum": 1900,
      "title": "Year",
      "type": "integer"
    },
    "emirate": {
      "default": "federal",
      "description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.",
      "enum": [
        "federal",
        "abu_dhabi",
        "dubai",
        "sharjah",
        "ajman",
        "umm_al_quwain",
        "ras_al_khaimah",
        "fujairah"
      ],
      "title": "Emirate",
      "type": "string"
    },
    "sector": {
      "default": "public",
      "description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).",
      "enum": [
        "public",
        "private"
      ],
      "title": "Sector",
      "type": "string"
    }
  },
  "required": [
    "year"
  ],
  "title": "ramadan_infoArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "ramadan_infoDictOutput"
}
🟢working_hours(datetime, emirate, sector)

Tell whether a specific datetime falls within standard working hours for an emirate/sector, taking into account weekends, holidays, the federal Friday half day (07:30–12:00) and official Ramadan hours. Private-sector hours are employer-specific; a default schedule is used and flagged. Use before calling a government office, scheduling a meeting or promising same-day action. Example: {datetime:'2026-03-05T13:00:00+04:00', emirate:'federal', sector:'public'} → within_working_hours true, hours_today 09:00–14:30 (Ramadan). Response always includes data_confidence ('high' = all dates officially announced/confirmed, 'medium' = something is estimated), estimated_items[], sources[] (official URLs) and data_version.

输入模式

{
  "type": "object",
  "properties": {
    "datetime": {
      "description": "ISO datetime, e.g. '2026-03-05T13:00:00+04:00'. Naive values are read as Asia/Dubai; 'Z' is UTC.",
      "title": "Datetime",
      "type": "string"
    },
    "emirate": {
      "default": "federal",
      "description": "Calendar profile emirate: federal | abu_dhabi | dubai | sharjah | ajman | umm_al_quwain | ras_al_khaimah | fujairah. Use 'federal' unless the user named an emirate's government. Emirates other than Sharjah currently follow the federal weekend.",
      "enum": [
        "federal",
        "abu_dhabi",
        "dubai",
        "sharjah",
        "ajman",
        "umm_al_quwain",
        "ras_al_khaimah",
        "fujairah"
      ],
      "title": "Emirate",
      "type": "string"
    },
    "sector": {
      "default": "public",
      "description": "Sector: public (government) | private. Government employees, courts and ministries → 'public'. Companies → 'private' (weekend is employer-set; the common Sat–Sun default is used and flagged).",
      "enum": [
        "public",
        "private"
      ],
      "title": "Sector",
      "type": "string"
    }
  },
  "required": [
    "datetime"
  ],
  "title": "working_hoursArguments"
}

输出模式

{
  "type": "object",
  "additionalProperties": true,
  "title": "working_hoursDictOutput"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本10 个工具