Business-Day Oracle

tech.noahsarchPublished by noahsarch.techOfficial publisherv0.1.1Updated Nov 1, 2026

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

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinance

Overview

AI-generated overview

Remote MCP server for working-day and holiday arithmetic across 250 countries and 30 financial markets, including ISDA date conventions and deadline…

What you can do
  • Check whether a date is a working day and why not (weekend, holiday, observed or projected lunar holiday)
  • Add or count working days between dates, listing every skipped day and its reason
  • Roll dates by business-day conventions such as following, modified following, preceding and modified preceding
  • Compute period deadlines from rules like 'within 30 calendar days' or '10 working days', with a step-by-step explanation
  • List a year's holidays or the next upcoming holidays for a country, subdivision or market
  • Discover available calendars, weekend rules, subdivision codes and year ranges
When to use it
Useful when an assistant has to answer date questions that depend on real holiday calendars: delivery promises, SLA clocks, payment and coupon dates, settlement, leave cost or lateness in business days, across many countries or exchange calendars.
Requirements
A remote streamable HTTP endpoint; nothing to install locally. An API key sent in the X-API-Key header is available on request by email, but the catalogue and free tools work without it.
Before you install
Lunar and moon-sighted holidays are projections until officially announced, so results carry a data_confidence flag and estimated items that should be relayed rather than treated as final. The server returns a disclaimer with deadline calculations. No write actions are described.

Installation

In SourceWeft

  1. Open Business-Day Oracle in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/tech.noahsarch%2Fbusiness-day-oracle/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

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

Tools

8

is_working_day

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[].

Parametersdaterequiredmarketcountryweekendlanguagecategoriessubdivisionextra_holidaysinclude_estimated_holidays

add_working_days

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[].

Parametersdaysrequiredmarketcountryweekendlanguagecategoriesstart_daterequiredsubdivisionextra_holidayscount_start_dayinclude_estimated_holidays

working_days_between

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[].

Parametersmarketcountryweekendend_daterequiredlanguageinclusivecategoriesstart_daterequiredsubdivisionextra_holidaysinclude_estimated_holidays

roll_date

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[].

Parametersdaterequiredmarketcountryweekendlanguagecategoriesconventionsubdivisionextra_holidaysinclude_estimated_holidays

compute_deadline

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[].

Parametersunitrequiredmarketperiodrequiredcountryweekendlanguagecategoriesconventionstart_daterequiredsubdivisionextra_holidaysmonth_end_clamp+2 more

list_holidays

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[].

Parametersyearrequiredmarketcountryweekendlanguagecategoriessubdivisionextra_holidaysinclude_estimated_holidays

next_holiday

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[].

Parameterscountmarketcountryweekendlanguagefrom_daterequiredcategoriessubdivisionextra_holidaysinclude_estimated_holidays

list_calendars

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[].

Parameterscountry

Version history

1
  1. v0.1.1LatestNov 1, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.

Other Noahsarch integrations