# UAE Calendar Oracle (remote · oracle.noahsarch.tech)

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

- Trust score: 69/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `oracle.noahsarch.tech`: 69/100 (this document), [markdown](https://verifymcp.io/servers/tech-noahsarch-uae-calendar-oracle/oracle.md), [page](https://verifymcp.io/servers/tech-noahsarch-uae-calendar-oracle/oracle)

## Channel facts

- Endpoint: `https://oracle.noahsarch.tech/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 406, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 76/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3134 tokens (~261/item across 12 items; 10 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the UAE Calendar Oracle MCP server?

UAE Calendar Oracle is a hosted endpoint at https://oracle.noahsarch.tech/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http tech-noahsarch-uae-calendar-oracle 'https://oracle.noahsarch.tech/mcp'
```

### Cursor

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

### VS Code

```json
{
  "servers": {
    "tech-noahsarch-uae-calendar-oracle": {
      "type": "http",
      "url": "https://oracle.noahsarch.tech/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.tech-noahsarch-uae-calendar-oracle]
url = "https://oracle.noahsarch.tech/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tech-noahsarch-uae-calendar-oracle": {
      "type": "remote",
      "url": "https://oracle.noahsarch.tech/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add tech-noahsarch-uae-calendar-oracle --url 'https://oracle.noahsarch.tech/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  tech-noahsarch-uae-calendar-oracle:
    url: "https://oracle.noahsarch.tech/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "tech-noahsarch-uae-calendar-oracle": {
      "Transport": "http",
      "Url": "https://oracle.noahsarch.tech/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add tech-noahsarch-uae-calendar-oracle -t streamable-http -u 'https://oracle.noahsarch.tech/mcp'
```

### Other

```json
{
  "mcpServers": {
    "tech-noahsarch-uae-calendar-oracle": {
      "type": "http",
      "url": "https://oracle.noahsarch.tech/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 67, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-31 (score 67)

First indexed and scored.

## MCP tools (10)

### `is_working_day` (~358 tokens)

Is this a UAE working day?

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.

Input parameters:

- `apply_optional_overlays` (boolean): Apply optional entity-level schedules such as Dubai's summer 4-day week. Default false.
- `date` (string, required): ISO date 'YYYY-MM-DD' (or ISO datetime; converted to Asia/Dubai).
- `emirate` (string): 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 S…
- `sector` (string): 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).

### `add_working_days` (~337 tokens)

Add or subtract UAE working days

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.

Input parameters:

- `count_start_day` (boolean): If true and start_date is a working day, it counts as day 1. Default false (start the day after).
- `days` (integer, required): Working days to add. Negative counts backwards.
- `emirate` (string): 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 S…
- `sector` (string): 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).
- `start_date` (string, required): ISO date to count from.

### `working_days_between` (~317 tokens)

Count UAE working days between two dates

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.

Input parameters:

- `emirate` (string): 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 S…
- `end_date` (string, required): ISO date. May be before start_date (result is negative).
- `inclusive` (string): Which endpoints to count: both (default) | start | end | none.
- `sector` (string): 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).
- `start_date` (string, required): ISO date.

### `compute_deadline` (~421 tokens)

Compute a deadline with explicit counting rules

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.

Input parameters:

- `emirate` (string): 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 S…
- `period` (integer, required): Length of the period in `unit`. Negative counts backwards.
- `rules`: Counting conventions. Pass what the contract/rule says; defaults are the common convention.
- `sector` (string): 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).
- `start_date` (string, required): ISO date the period starts from (e.g. date of notification).
- `unit` (string, required): calendar_days | working_days | months (Gregorian) | hijri_months.

### `list_holidays` (~300 tokens)

List UAE public holidays for a year

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.

Input parameters:

- `emirate` (string): 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 S…
- `include_estimated` (boolean): Include not-yet-announced holidays with status 'estimated' (default true).
- `sector` (string): 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).
- `year` (integer, required): Gregorian year, e.g. 2026.

### `next_holiday` (~281 tokens)

Next UAE public holiday

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.

Input parameters:

- `emirate` (string): 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 S…
- `from_date` (string, required): ISO date to search from (inclusive). Usually today.
- `sector` (string): 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).

### `gregorian_to_hijri` (~177 tokens)

Convert Gregorian → Hijri (computed)

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.

Input parameters:

- `date` (string, required): ISO Gregorian date 'YYYY-MM-DD' between 1924-08-01 and 2077-11-16.

### `hijri_to_gregorian` (~165 tokens)

Convert Hijri → Gregorian (computed)

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.

Input parameters:

- `hijri_date` (string, required): Hijri date 'YYYY-MM-DD', e.g. '1448-01-01' (year 1343–1500 AH).

### `ramadan_info` (~318 tokens)

Ramadan dates and official working hours

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.

Input parameters:

- `emirate` (string): 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 S…
- `sector` (string): 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).
- `year` (integer, required): Gregorian year, e.g. 2027.

### `working_hours` (~340 tokens)

Is this time within UAE working hours?

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.

Input parameters:

- `datetime` (string, required): ISO datetime, e.g. '2026-03-05T13:00:00+04:00'. Naive values are read as Asia/Dubai; 'Z' is UTC.
- `emirate` (string): 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 S…
- `sector` (string): 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).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/tech-noahsarch-uae-calendar-oracle/oracle#diagnostics

## Score history

- 2026-11-05: 69
- 2026-11-04: 69
- 2026-11-03: 68
- 2026-11-02: 68
- 2026-11-01: 67
- 2026-10-31: 67

## Common questions

### What is the UAE Calendar Oracle MCP server?

UAE Calendar Oracle is an MCP server listed in the public MCP registry as tech.noahsarch/uae-calendar-oracle. UAE working days, holidays with confirmation status, Hijri dates, Ramadan hours, deadlines. This page covers its hosted endpoint (https://oracle.noahsarch.tech/mcp).

### Is the UAE Calendar Oracle MCP server safe to use?

UAE Calendar Oracle scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the UAE Calendar Oracle MCP server expose?

UAE Calendar Oracle exposes 10 tools: is_working_day, add_working_days, working_days_between, compute_deadline, list_holidays, and 5 more. Their descriptions and schemas cost roughly 3,014 tokens of context every time the server is loaded.

### Does the UAE Calendar Oracle MCP server require authentication?

No. We connected to UAE Calendar Oracle without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the UAE Calendar Oracle MCP server still maintained?

UAE Calendar Oracle is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://oracle.noahsarch.tech/mcp
- Website: https://agents.noahsarch.tech/
- Changelog RSS feed: https://verifymcp.io/servers/tech-noahsarch-uae-calendar-oracle/oracle.xml
- Changelog JSON feed: https://verifymcp.io/servers/tech-noahsarch-uae-calendar-oracle/oracle.json
- HTML version of this page: https://verifymcp.io/servers/tech-noahsarch-uae-calendar-oracle/oracle
