Skip to main content
Glama

Business-Day Oracle

Is this date a working day?

is_working_day
Read-onlyIdempotent

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 Schema

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

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this is a safe, idempotent, closed-world read; the description goes well beyond them by disclosing the confidence model (high = fixed-date calendar, medium = lunar/moon-sighted or caller-overridden weekend), the presence of estimated_items[], sources[], data_version and warnings[]. That is exactly the kind of uncertainty disclosure an agent needs before trusting the boolean result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and example are front-loaded, and the dense semicolon-separated clauses each carry information (calendar selection, defaults, response contract). It is on the long side for a single-tool description, but nearly every clause earns its place; the packed formatting costs it a point rather than any real waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema existing, the description still summarizes the response contract (result, data_confidence, estimated_items, sources, warnings) so an agent can decide how much to trust the answer. With 1 required parameter out of 9 and full schema coverage, nothing needed to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter; the description still adds meaning the schema lacks, notably that market means a trading/settlement calendar rather than a country, that overriding the weekend degrades data_confidence, and that extra_holidays covers company/contract dates. Only include_estimated_holidays is left to the schema alone, so this is above the baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('say whether a date is a working day') and adds the crucial 'why not' output framing (weekend, holiday name, observed, projected lunar). The country/subdivision-or-market scoping distinguishes it clearly from siblings like working_days_between or next_holiday, and a concrete example ('2027-03-10', 'SA') makes the call shape obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit calendar-selection guidance (use country OR market, optional subdivision pulled from list_calendars) and explains what the weekend override and categories mean, which is real routing/parameterization context. It stops short of stating when to prefer a sibling such as list_holidays or next_holiday instead, so it is clear but not fully comparative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources