Skip to main content
Glama

Business-Day Oracle

Add or subtract working days

add_working_days
Read-onlyIdempotent

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 Schema

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

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?

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources