# Business-Day Oracle (remote · bizday.noahsarch.tech)

Working days, ISDA conventions and deadlines for 250 countries and 30 financial markets.

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

## Components

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

## Channel facts

- Endpoint: `https://bizday.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. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - 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**: 72/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 4056 tokens (~405/item across 10 items; 8 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 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 10 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 Business-Day Oracle MCP server?

Business-Day Oracle is a hosted endpoint at https://bizday.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-business-day-oracle 'https://bizday.noahsarch.tech/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "tech-noahsarch-business-day-oracle": {
      "url": "https://bizday.noahsarch.tech/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "tech-noahsarch-business-day-oracle": {
      "type": "http",
      "url": "https://bizday.noahsarch.tech/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.tech-noahsarch-business-day-oracle]
url = "https://bizday.noahsarch.tech/mcp"
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add tech-noahsarch-business-day-oracle --url 'https://bizday.noahsarch.tech/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  tech-noahsarch-business-day-oracle:
    url: "https://bizday.noahsarch.tech/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "tech-noahsarch-business-day-oracle": {
      "Transport": "http",
      "Url": "https://bizday.noahsarch.tech/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add tech-noahsarch-business-day-oracle -t streamable-http -u 'https://bizday.noahsarch.tech/mcp'
```

### Other

```json
{
  "mcpServers": {
    "tech-noahsarch-business-day-oracle": {
      "type": "http",
      "url": "https://bizday.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-05 (score 69, +1)

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

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

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

### 2026-11-01 (score 67, +1)

- [functional improvement] Stability: unverified → 0.03

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

First indexed and scored.

## MCP tools (8)

### `is_working_day` (~469 tokens)

Is this date a working day?

Say whether a date is a working day in a country/subdivision or market, and why not (weekend, holiday name, holiday observed, projected lunar holiday). Example: date '2027-03-10', country 'SA'. Calendar selection: country (ISO 3166-1 alpha-2, e.g. 'SA', 'DE', 'US') or market (MIC, e.g. 'XNYS', 'XLON'); optional subdivision (state/province/emirate code from list_calendars), categories (e.g. ['public','bank']), weekend override (['FRI','SAT']), extra_holidays (company/contract dates). Weekend defaults to the country's legal weekend. Response: result plus data_confidence (high = fixed-date calendar; medium = a lunar/moon-sighted or projected holiday is involved, or the caller overrode the weekend), estimated_items[] naming each projected date, sources[] (public references behind the calendar), data_version and warnings[].

Input parameters:

- `categories`: Holiday categories to count as non-working; default ['public']. Others per country: bank, government, school, optional, half_day, catholic…
- `country`: ISO 3166-1 alpha-2 country code. Required unless market is given.
- `date` (string, required): ISO date YYYY-MM-DD.
- `extra_holidays`: Additional non-working ISO dates (company closures, contract-specific days).
- `include_estimated_holidays` (boolean): Count projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).
- `language`: Language for holiday names where available (e.g. 'ar', 'de', 'en_US'). Default: the country's own.
- `market`: Financial market MIC (XNYS, XLON, XETR, XHKG, XJPX, XSAU…) — trading/settlement calendar instead of a country.
- `subdivision`: Sub-national code (US 'CA', DE 'BY', AE 'DU', CA 'ON', AU 'NSW', IN 'KA'…). See list_calendars.
- `weekend`: Override the weekend, e.g. ['FRI','SAT'] or ['SUN']. Default: the country's legal weekend.

### `add_working_days` (~530 tokens)

Add or subtract working days

Move N working days from a date, skipping weekends and holidays; returns the end date and every skipped day with its reason. Delivery promises, SLA clocks, payment terms in business days. Example: start_date '2026-12-23', days 5, country 'DE', subdivision 'BY'. Calendar selection: country (ISO 3166-1 alpha-2, e.g. 'SA', 'DE', 'US') or market (MIC, e.g. 'XNYS', 'XLON'); optional subdivision (state/province/emirate code from list_calendars), categories (e.g. ['public','bank']), weekend override (['FRI','SAT']), extra_holidays (company/contract dates). Weekend defaults to the country's legal weekend. Response: result plus data_confidence (high = fixed-date calendar; medium = a lunar/moon-sighted or projected holiday is involved, or the caller overrode the weekend), estimated_items[] naming each projected date, sources[] (public references behind the calendar), data_version and warnings[].

Input parameters:

- `categories`: Holiday categories to count as non-working; default ['public']. Others per country: bank, government, school, optional, half_day, catholic…
- `count_start_day` (boolean): If true and start_date is a working day it counts as day 1. Default false (start the day after).
- `country`: ISO 3166-1 alpha-2 country code. Required unless market is given.
- `days` (integer, required): Working days to add; negative counts backwards.
- `extra_holidays`: Additional non-working ISO dates (company closures, contract-specific days).
- `include_estimated_holidays` (boolean): Count projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).
- `language`: Language for holiday names where available (e.g. 'ar', 'de', 'en_US'). Default: the country's own.
- `market`: Financial market MIC (XNYS, XLON, XETR, XHKG, XJPX, XSAU…) — trading/settlement calendar instead of a country.
- `start_date` (string, required): ISO date to count from.
- `subdivision`: Sub-national code (US 'CA', DE 'BY', AE 'DU', CA 'ON', AU 'NSW', IN 'KA'…). See list_calendars.
- `weekend`: Override the weekend, e.g. ['FRI','SAT'] or ['SUN']. Default: the country's legal weekend.

### `working_days_between` (~511 tokens)

Count working days between two dates

Count working days between two dates with endpoint control; lists the non-working days. Leave cost, lateness, elapsed business days. Example: '2026-05-18' → '2026-06-05', country 'AE', inclusive 'both'. Calendar selection: country (ISO 3166-1 alpha-2, e.g. 'SA', 'DE', 'US') or market (MIC, e.g. 'XNYS', 'XLON'); optional subdivision (state/province/emirate code from list_calendars), categories (e.g. ['public','bank']), weekend override (['FRI','SAT']), extra_holidays (company/contract dates). Weekend defaults to the country's legal weekend. Response: result plus data_confidence (high = fixed-date calendar; medium = a lunar/moon-sighted or projected holiday is involved, or the caller overrode the weekend), estimated_items[] naming each projected date, sources[] (public references behind the calendar), data_version and warnings[].

Input parameters:

- `categories`: Holiday categories to count as non-working; default ['public']. Others per country: bank, government, school, optional, half_day, catholic…
- `country`: ISO 3166-1 alpha-2 country code. Required unless market is given.
- `end_date` (string, required): ISO date; may be before start_date (negative result).
- `extra_holidays`: Additional non-working ISO dates (company closures, contract-specific days).
- `include_estimated_holidays` (boolean): Count projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).
- `inclusive` (string): Which endpoints count: both (default) | start | end | none.
- `language`: Language for holiday names where available (e.g. 'ar', 'de', 'en_US'). Default: the country's own.
- `market`: Financial market MIC (XNYS, XLON, XETR, XHKG, XJPX, XSAU…) — trading/settlement calendar instead of a country.
- `start_date` (string, required): ISO date.
- `subdivision`: Sub-national code (US 'CA', DE 'BY', AE 'DU', CA 'ON', AU 'NSW', IN 'KA'…). See list_calendars.
- `weekend`: Override the weekend, e.g. ['FRI','SAT'] or ['SUN']. Default: the country's legal weekend.

### `roll_date` (~515 tokens)

Adjust a date by business-day convention

Apply a business-day convention (following, modified following, preceding, modified preceding) to a date on a country or market calendar — payment dates, coupon dates, settlement, SLA due dates. Example: date '2026-05-31', convention 'modified_following', market 'XLON'. Calendar selection: country (ISO 3166-1 alpha-2, e.g. 'SA', 'DE', 'US') or market (MIC, e.g. 'XNYS', 'XLON'); optional subdivision (state/province/emirate code from list_calendars), categories (e.g. ['public','bank']), weekend override (['FRI','SAT']), extra_holidays (company/contract dates). Weekend defaults to the country's legal weekend. Response: result plus data_confidence (high = fixed-date calendar; medium = a lunar/moon-sighted or projected holiday is involved, or the caller overrode the weekend), estimated_items[] naming each projected date, sources[] (public references behind the calendar), data_version and warnings[].

Input parameters:

- `categories`: Holiday categories to count as non-working; default ['public']. Others per country: bank, government, school, optional, half_day, catholic…
- `convention` (string): Business-day convention: following | modified_following (ISDA: forward unless it crosses month end, then back) | preceding | modified_preceding.
- `country`: ISO 3166-1 alpha-2 country code. Required unless market is given.
- `date` (string, required): ISO date to adjust.
- `extra_holidays`: Additional non-working ISO dates (company closures, contract-specific days).
- `include_estimated_holidays` (boolean): Count projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).
- `language`: Language for holiday names where available (e.g. 'ar', 'de', 'en_US'). Default: the country's own.
- `market`: Financial market MIC (XNYS, XLON, XETR, XHKG, XJPX, XSAU…) — trading/settlement calendar instead of a country.
- `subdivision`: Sub-national code (US 'CA', DE 'BY', AE 'DU', CA 'ON', AU 'NSW', IN 'KA'…). See list_calendars.
- `weekend`: Override the weekend, e.g. ['FRI','SAT'] or ['SUN']. Default: the country's legal weekend.

### `compute_deadline` (~667 tokens)

Compute a deadline with an explanation trail

Compute the end of a period ('within 30 calendar days', '10 working days', '3 months') from a start date under explicit counting rules, roll it by the chosen convention when it lands on a non-working day, and return raw vs final deadline, skipped days and a step-by-step explanation plus a disclaimer. Pass the rules the contract/law states; defaults are the common ones. Example: start_date '2026-11-26', period 7, unit 'calendar_days', country 'GB'. Calendar selection: country (ISO 3166-1 alpha-2, e.g. 'SA', 'DE', 'US') or market (MIC, e.g. 'XNYS', 'XLON'); optional subdivision (state/province/emirate code from list_calendars), categories (e.g. ['public','bank']), weekend override (['FRI','SAT']), extra_holidays (company/contract dates). Weekend defaults to the country's legal weekend. Response: result plus data_confidence (high = fixed-date calendar; medium = a lunar/moon-sighted or projected holiday is involved, or the caller overrode the weekend), estimated_items[] naming each projected date, sources[] (public references behind the calendar), data_version and warnings[].

Input parameters:

- `categories`: Holiday categories to count as non-working; default ['public']. Others per country: bank, government, school, optional, half_day, catholic…
- `convention` (string): What to do when the raw deadline lands on a non-working day. Default following (roll to the next working day); 'none' leaves it.
- `country`: ISO 3166-1 alpha-2 country code. Required unless market is given.
- `exclude_start_day` (boolean): Day 1 is the day after start_date (true, the common convention) or start_date itself (false).
- `extra_holidays`: Additional non-working ISO dates (company closures, contract-specific days).
- `include_estimated_holidays` (boolean): Count projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).
- `language`: Language for holiday names where available (e.g. 'ar', 'de', 'en_US'). Default: the country's own.
- `market`: Financial market MIC (XNYS, XLON, XETR, XHKG, XJPX, XSAU…) — trading/settlement calendar instead of a country.
- `month_end_clamp` (boolean): For months: clamp 31 Jan + 1 month to 28/29 Feb (true) or overflow into March (false).
- `period` (integer, required): Length of the period; negative counts backwards.
- `start_date` (string, required): ISO date the period runs from (service, invoice, filing date…).
- `subdivision`: Sub-national code (US 'CA', DE 'BY', AE 'DU', CA 'ON', AU 'NSW', IN 'KA'…). See list_calendars.
- `unit` (string, required): calendar_days | working_days | months.
- `weekend`: Override the weekend, e.g. ['FRI','SAT'] or ['SUN']. Default: the country's legal weekend.

### `list_holidays` (~479 tokens)

List holidays for a year

All holidays of a year for a country/subdivision/categories or a market, each with local and English names, whether it is observed/shifted, projected (lunar), on a weekend, and whether it counts as non-working. Example: year 2027, country 'IN', subdivision 'KA'. Calendar selection: country (ISO 3166-1 alpha-2, e.g. 'SA', 'DE', 'US') or market (MIC, e.g. 'XNYS', 'XLON'); optional subdivision (state/province/emirate code from list_calendars), categories (e.g. ['public','bank']), weekend override (['FRI','SAT']), extra_holidays (company/contract dates). Weekend defaults to the country's legal weekend. Response: result plus data_confidence (high = fixed-date calendar; medium = a lunar/moon-sighted or projected holiday is involved, or the caller overrode the weekend), estimated_items[] naming each projected date, sources[] (public references behind the calendar), data_version and warnings[].

Input parameters:

- `categories`: Holiday categories to count as non-working; default ['public']. Others per country: bank, government, school, optional, half_day, catholic…
- `country`: ISO 3166-1 alpha-2 country code. Required unless market is given.
- `extra_holidays`: Additional non-working ISO dates (company closures, contract-specific days).
- `include_estimated_holidays` (boolean): Count projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).
- `language`: Language for holiday names where available (e.g. 'ar', 'de', 'en_US'). Default: the country's own.
- `market`: Financial market MIC (XNYS, XLON, XETR, XHKG, XJPX, XSAU…) — trading/settlement calendar instead of a country.
- `subdivision`: Sub-national code (US 'CA', DE 'BY', AE 'DU', CA 'ON', AU 'NSW', IN 'KA'…). See list_calendars.
- `weekend`: Override the weekend, e.g. ['FRI','SAT'] or ['SUN']. Default: the country's legal weekend.
- `year` (integer, required): Calendar year.

### `next_holiday` (~472 tokens)

Next holiday(s) from a date

The next N holidays on or after a date with days_until and projection flags. Example: from_date '2026-11-01', country 'JP', count 3. Calendar selection: country (ISO 3166-1 alpha-2, e.g. 'SA', 'DE', 'US') or market (MIC, e.g. 'XNYS', 'XLON'); optional subdivision (state/province/emirate code from list_calendars), categories (e.g. ['public','bank']), weekend override (['FRI','SAT']), extra_holidays (company/contract dates). Weekend defaults to the country's legal weekend. Response: result plus data_confidence (high = fixed-date calendar; medium = a lunar/moon-sighted or projected holiday is involved, or the caller overrode the weekend), estimated_items[] naming each projected date, sources[] (public references behind the calendar), data_version and warnings[].

Input parameters:

- `categories`: Holiday categories to count as non-working; default ['public']. Others per country: bank, government, school, optional, half_day, catholic…
- `count` (integer): How many upcoming holidays to return.
- `country`: ISO 3166-1 alpha-2 country code. Required unless market is given.
- `extra_holidays`: Additional non-working ISO dates (company closures, contract-specific days).
- `from_date` (string, required): ISO date to search from (inclusive).
- `include_estimated_holidays` (boolean): Count projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).
- `language`: Language for holiday names where available (e.g. 'ar', 'de', 'en_US'). Default: the country's own.
- `market`: Financial market MIC (XNYS, XLON, XETR, XHKG, XJPX, XSAU…) — trading/settlement calendar instead of a country.
- `subdivision`: Sub-national code (US 'CA', DE 'BY', AE 'DU', CA 'ON', AU 'NSW', IN 'KA'…). See list_calendars.
- `weekend`: Override the weekend, e.g. ['FRI','SAT'] or ['SUN']. Default: the country's legal weekend.

### `list_calendars` (~151 tokens)

Supported countries, markets, subdivisions, weekends

Discover calendars: without arguments, all 250 countries and 30 markets; with a country code, its legal weekend, subdivision codes, holiday categories, languages, year range and public sources. Free. Example: country 'US'. Response: result plus data_confidence (high = fixed-date calendar; medium = a lunar/moon-sighted or projected holiday is involved, or the caller overrode the weekend), estimated_items[] naming each projected date, sources[] (public references behind the calendar), data_version and warnings[].

Input parameters:

- `country`: Country code or market MIC for details (weekend, subdivisions, categories, languages, sources). Omit to list all 250 countries and 30 markets.

## Diagnostics

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

## Score history

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

## Common questions

### What is the Business-Day Oracle MCP server?

Business-Day Oracle is an MCP server listed in the public MCP registry as tech.noahsarch/business-day-oracle. Working days, ISDA conventions and deadlines for 250 countries and 30 financial markets. This page covers its hosted endpoint (https://bizday.noahsarch.tech/mcp).

### Is the Business-Day Oracle MCP server safe to use?

Business-Day 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 Business-Day Oracle MCP server expose?

Business-Day Oracle exposes 8 tools: is_working_day, add_working_days, working_days_between, roll_date, compute_deadline, and 3 more. Their descriptions and schemas cost roughly 3,794 tokens of context every time the server is loaded.

### Does the Business-Day Oracle MCP server require authentication?

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

### Is the Business-Day Oracle MCP server still maintained?

Business-Day 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.

### What did VerifyMCP test on the Business-Day Oracle MCP server?

VerifyMCP ran 12 checks on Business-Day Oracle, covering TLS certificate, Authorization, HSTS header, DNSSEC and 8 more. One item could not be completed, a gap on our side rather than a finding about Business-Day Oracle: HTTPS. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://bizday.noahsarch.tech/mcp
- Website: https://agents.noahsarch.tech/
- Changelog RSS feed: https://verifymcp.io/servers/tech-noahsarch-business-day-oracle/bizday.xml
- Changelog JSON feed: https://verifymcp.io/servers/tech-noahsarch-business-day-oracle/bizday/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/tech-noahsarch-business-day-oracle/bizday.json
- HTML version of this page: https://verifymcp.io/servers/tech-noahsarch-business-day-oracle/bizday
