Skip to main content
Glama

Business-Day Oracle

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation4/5

Each tool maps to a distinct operation (test a day, count between, add days, roll, list holidays, next holidays, list calendars), but add_working_days and compute_deadline substantially overlap — compute_deadline with unit 'working_days' reproduces add_working_days, and roll_date duplicates its roll convention behavior. An agent can pick correctly from the examples, but the boundaries are not razor-sharp.

Naming Consistency4/5

All names are lowercase snake_case with a clear domain vocabulary, and most lead with a verb (add_, compute_, is_, list_, roll_). Minor deviation: next_holiday and working_days_between are noun phrases rather than verb_noun, but they remain predictable and readable.

Tool Count5/5

Eight tools is well within the sweet spot and every one earns its place: discovery, holiday listing, day testing, counting, arithmetic, rolling and deadline computation form a compact, non-redundant set for a calendar engine.

Completeness4/5

The lifecycle is well covered: discovery (list_calendars), reference data (list_holidays, next_holiday), point queries (is_working_day) and computations (working_days_between, add_working_days, roll_date, compute_deadline). Minor gaps remain — no previous_holiday/previous_working_day, no nth-working-day-of-month, and no batch variant for evaluating many dates at once.

Available Tools

8 tools
add_working_daysAdd or subtract working daysA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
daysYesWorking days to add; negative counts backwards.
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…
start_dateYesISO date to count from.
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).
count_start_dayNoIf true and start_date is a working day it counts as day 1. Default false (start the day after).
include_estimated_holidaysNoCount projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that the weekend defaults to the country's legal weekend, that overriding the weekend changes the confidence grade, and the meaning of each confidence tier (fixed-date vs lunar/moon-sighted/projected). It also warns about estimated_items[], sources[], data_version and warnings[] in the response, which is real behavioral context an agent needs before trusting the output.

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?

Front-loaded with purpose and return shape, then usage, then calendar selection, then response details — a sensible order with no filler prose. It is on the long side and repeats some parameter facts the schema already documents (weekend override, categories, extra_holidays), costing a point.

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?

For an 11-parameter, calendar-dependent tool with an output schema, the description supplies everything needed: the semantics of the result, the confidence grading, projected-holiday handling, and where the calendars come from. Nothing material that an agent would need to call it correctly is left implicit.

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 already 100%, so the baseline is 3; the description earns above that by giving concrete value examples for country ('SA', 'DE', 'US'), market ('XNYS', 'XLON'), subdivision ('BY'), weekend (['FRI','SAT']) and extra_holidays (company/contract dates). It does not cover language, count_start_day or include_estimated_holidays, leaving those to the schema's own text.

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: 'Move N working days from a date, skipping weekends and holidays', and names the return ('the end date and every skipped day with its reason'). That scope is unmistakably distinct from working_days_between (counts between two dates) and roll_date (snaps to a working day), so an agent can select it without opening the schema.

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 concrete usage contexts (delivery promises, SLA clocks, payment terms in business days) and a worked example with start_date/days/country/subdivision, plus explicit calendar-selection guidance (country OR market, optional subdivision from list_calendars). It stops short of naming when to prefer a sibling such as roll_date or working_days_between, but the context is clear enough to route correctly.

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

compute_deadlineCompute a deadline with an explanation trailA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
unitYescalendar_days | working_days | months.
marketNoFinancial market MIC (XNYS, XLON, XETR, XHKG, XJPX, XSAU…) — trading/settlement calendar instead of a country.
periodYesLength of the period; negative counts backwards.
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…
conventionNoWhat to do when the raw deadline lands on a non-working day. Default following (roll to the next working day); 'none' leaves it.following
start_dateYesISO date the period runs from (service, invoice, filing date…).
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).
month_end_clampNoFor months: clamp 31 Jan + 1 month to 28/29 Feb (true) or overflow into March (false).
exclude_start_dayNoDay 1 is the day after start_date (true, the common convention) or start_date itself (false).
include_estimated_holidaysNoCount projected lunar/moon-sighted holidays as non-working (true) or ignore them until announced (false).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, and the description still adds substantive behavior: what the response contains (raw vs final deadline, skipped days, explanation trail, disclaimer), the data_confidence levels and what triggers medium confidence, estimated_items, sources and warnings. That is exactly the kind of context annotations cannot carry.

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?

Front-loaded with the purpose and the counting/rolling behavior, then calendar selection, then response shape; every block earns its place for a 14-parameter tool. It is dense and long-winded in places (the response sentence is a run-on), which keeps it from a 5.

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

Completeness4/5

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

Given 14 parameters and an output schema, the description supplies the decision logic (which calendar source, how confidence is derived, what warnings mean) that structured fields do not. Slight redundancy in re-explaining return fields already covered by the output schema, and no negative guidance about sibling tools.

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 baseline is 3; the description still adds cross-field meaning — country OR market selects the calendar, subdivision codes come from list_calendars, weekend defaults to the country's legal weekend, extra_holidays are company/contract dates — plus a worked example. It stops short of explaining exclude_start_day or month_end_clamp, which only the schema covers.

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

Purpose4/5

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

Names a specific verb and resource ('Compute the end of a period ... from a start date') and enumerates the counting, rolling and explanation behaviors, so the operation is unambiguous. It never names a sibling (add_working_days, roll_date, working_days_between) to draw the boundary, so it falls short of full differentiation.

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

Usage Guidelines3/5

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

'Pass the rules the contract/law states; defaults are the common ones' gives a context for use, and the calendar-selection sentence hints at inputs. But there is no explicit when/when-not guidance and no routing to roll_date or add_working_days, so the agent must infer which sibling to call.

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

is_working_dayIs this date a working day?A
Read-onlyIdempotent
Inspect

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

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

NameRequiredDescription

No output parameters

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.

list_calendarsSupported countries, markets, subdivisions, weekendsA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
countryNoCountry code or market MIC for details (weekend, subdivisions, categories, languages, sources). Omit to list all 250 countries and 30 markets.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations (readOnly, idempotent, non-destructive), the description discloses that the tool is free and explains the meaning of data_confidence, estimated_items, sources, data_version, and warnings. This is unusually rich behavioral context that helps an agent interpret results and understand projection uncertainty.

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?

The description is front-loaded with the core behavior and the meaningful distinction between no-argument and country-specific calls. It is dense but largely earns its length; the final response enumeration is somewhat long given that an output schema exists, though the confidence semantics add real value.

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?

For a discovery tool with a simple one-parameter schema, full schema coverage, complete annotations, and an output schema, the description provides everything needed: what the tool returns, how to invoke both modes, and how to interpret confidence and warnings. Nothing critical is missing.

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

Parameters3/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 the country parameter, including its role as country code or market MIC and the omit-to-list-all behavior. The description reinforces this with an example ('US') but does not add syntax or format details beyond what the schema provides, so the baseline 3 is appropriate.

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 ('Discover calendars') and precisely defines scope: no arguments returns all 250 countries and 30 markets, while a country code returns calendar metadata. This clearly distinguishes it from the date-computation siblings like compute_deadline and list_holidays.

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?

The description clearly explains the two usage modes (omit country to list everything, provide country for details), which gives an agent enough to choose the right call pattern. It does not explicitly route the agent to sibling tools or state when to use this versus them, which keeps it from a 5.

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

list_holidaysList holidays for a yearA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
yearYesCalendar year.
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

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, and the description adds genuinely new behavioral context: the weekend defaults to the country's legal weekend, categories default to ['public'], and data_confidence explains how calendar reliability degrades (lunar/projected holidays or an overridden weekend). The response-field enumeration overlaps the output schema, which keeps this from a 5.

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?

Front-loaded: what it returns, then how to select a calendar, then response metadata. Dense and largely waste-free, though the trailing response enumeration partially restates what the output schema already documents.

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?

For a 9-parameter read tool with an output schema, everything an agent needs is present: selector semantics, defaults, the projection/confidence caveat, and sources/warnings signaling. Nothing required to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does add interpretive value for a few parameters — the include_estimated_holidays tradeoff (count projected dates as non-working vs. ignore until announced), the weekend override example, and extra_holidays as company/contract dates — but leaves language and the exact category vocabulary to the schema.

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?

Opening sentence states a specific verb and resource ('All holidays of a year') plus the exact scoping dimensions (country/subdivision/categories or market). This clearly separates it from siblings like next_holiday (single upcoming date) or working_days_between (counting), which an agent can distinguish without opening any schema.

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?

It explains the two mutually exclusive calendar selectors (country vs market MIC) and routes the agent to list_calendars for valid subdivision codes, plus a concrete worked example ('year 2027, country IN, subdivision KA'). It lacks explicit 'use X instead when...' exclusions against siblings such as next_holiday, so it falls short of a 5.

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

next_holidayNext holiday(s) from a dateA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
countNoHow many upcoming holidays to return.
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.
from_dateYesISO date to search from (inclusive).
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

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

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

Beyond the read-only, idempotent annotations, the description explains projection behavior, data_confidence levels, estimated_items, sources, data_version, and warnings. This gives the agent meaningful behavioral context about how uncertainty is surfaced in the response.

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?

The description is front-loaded with the core purpose and then supplies useful invocation and response details. It is somewhat dense, but most sentences carry relevant information and there is no major 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?

For a 10-parameter tool with a full input schema, output schema, and safety annotations, the description provides enough context to call it correctly and interpret projection-related output. No critical completeness gap remains.

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

Parameters3/5

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

Schema description coverage is 100% and the parameter schemas already document country, market, weekend, categories, subdivision, extra_holidays, and include_estimated_holidays thoroughly. The description repeats much of that and adds an example, but does not substantially extend parameter semantics beyond the schema.

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

Purpose4/5

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

The description clearly states a specific verb and resource: returning the next N holidays on or after a date, including supporting fields like days_until and projection flags. It is distinguishable from siblings such as list_holidays or is_working_day, though it does not explicitly name those alternatives.

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

Usage Guidelines3/5

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

The example invocation and calendar-selection notes make the intended usage reasonably implied, but the description never explicitly says when to choose this tool over list_holidays, list_calendars, or other siblings. It provides invocation context rather than selection guidance.

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

roll_dateAdjust a date by business-day conventionA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
dateYesISO date to adjust.
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…
conventionNoBusiness-day convention: following | modified_following (ISDA: forward unless it crosses month end, then back) | preceding | modified_preceding.following
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

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent hints, the definition discloses real behavior: weekend defaults to the country's legal weekend, data_confidence meaning (high for fixed-date calendars, medium for lunar or overridden weekends), estimated_items naming projected dates, sources, data_version and warnings. That is a lot of operational context an agent cannot get from the annotations.

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?

The opening sentence is front-loaded with the verb, the convention list, and the primary use cases, so value comes first. The remainder is one very dense run-on paragraph covering calendar selection and response shape; it is efficient but slightly overstuffed for a single block.

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?

For a 10-parameter, single-required-input tool, the definition covers calendar selection paths (country vs market), subdivision, categories, weekend override, extra holidays, and the confidence semantics, so nothing needed to call it correctly is missing. An output schema exists, yet the brief confidence explanation still adds useful interpretation guidance.

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?

With 100% schema coverage the baseline is 3, and the description genuinely adds meaning on top: it explains ISDA semantics for modified_following, points to list_calendars for subdivision codes, and links include_estimated_holidays to the data_confidence flag. Minor duplication of MIC/ISO examples with the schema keeps it from a 5.

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?

The definition names the exact operation (apply a business-day convention to a date) and the four conventions in parentheses, and it frames the scope with concrete domains (payment, coupon, settlement, SLA dates) plus a worked example. It is unmistakable against is_working_day or add_working_days because it describes shifting a date rather than counting or testing days.

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?

The concrete use cases (payment dates, coupon dates, settlement, SLA due dates) and the 'country or market, optionally subdivided' selection rule give clear context for when the tool applies. However, it never names when to prefer it over siblings such as add_working_days, compute_deadline, or is_working_day, so the agent must infer the boundaries.

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

working_days_betweenCount working days between two datesA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
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.
end_dateYesISO date; may be before start_date (negative result).
languageNoLanguage for holiday names where available (e.g. 'ar', 'de', 'en_US'). Default: the country's own.
inclusiveNoWhich endpoints count: both (default) | start | end | none.both
categoriesNoHoliday categories to count as non-working; default ['public']. Others per country: bank, government, school, optional, half_day, catholic…
start_dateYesISO date.
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

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already carry readOnly/idempotent/non-destructive, and the description goes well beyond them: it discloses the default weekend rule, the data_confidence high/medium semantics tied to lunar or overridden weekends, and the presence of estimated_items, sources, data_version and warnings. This is substantive behavioral context; it stops short of stating rate limits or what happens for invalid/unknown country codes.

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

Conciseness3/5

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

The opening sentence is front-loaded and useful, but the third sentence 'Leave cost, lateness, elapsed business days' is a malformed fragment that adds noise and ambiguity, and the description then becomes a dense run-on of parameter and response detail. Several clauses duplicate schema content that could be trimmed.

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

Completeness4/5

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

For an 11-parameter calendar tool with an output schema and full annotations, the description covers calendar selection, weekend defaults, confidence semantics and returned fields. The only real gap is that the confusing 'Leave cost, lateness...' clause leaves it unclear whether certain cost/lateness concepts are deliberately out of scope.

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

Parameters3/5

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

Schema description coverage is 100%, so country, market, weekend, categories, subdivision, extra_holidays and include_estimated_holidays are already fully documented in the schema. The description largely restates those with an example ('AE', inclusive 'both'), adding modest value such as pointing to list_calendars for subdivision codes — baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb+resource ('Count working days between two dates') with scope qualifier 'with endpoint control' and notes it also lists the non-working days. It is distinguishable from siblings like add_working_days and is_working_day by implication, but it never names them or contrasts the operation explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: calendar selection guidance (country OR market, plus optional subdivision/categories) tells the agent how to pick a calendar, but there is no explicit statement of when to use this versus compute_deadline or roll_date. The garbled fragment 'Leave cost, lateness, elapsed business days' reads like an attempted exclusion list but is too broken to function as guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updates
    • First observedadd_working_days
    • First observedcompute_deadline
    • First observedis_working_day
    • First observedlist_calendars
    • First observedlist_holidays
    • First observednext_holiday
    • First observedroll_date
    • First observedworking_days_between

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides correct trading day and settlement date calculations for multiple exchanges, with no external API calls.
    6
    6 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for business-day arithmetic with country-aware holiday calendars. It offers tools to check, calculate, and list business days and holidays for over 60 countries.
    9
    23 PyPI
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Deterministic day-count and accrued-interest engine. Six ISDA/ICMA conventions, proven exact against QuantLib over 3,600 date pairs. Stops the AI guessing your interest math.
    3
    54 npm
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides deterministic business-day calculations for AI agents, correctly handling country-specific weekends and public holidays.
    6
    30 npm
    1
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources