Skip to main content
Glama
US Federal Holidays and Business Days MCP

US Federal Holidays and Business Days MCP

US Federal Holidays and Business Days MCP

Exact U.S. federal holidays and business-day math for any date from 1971 to 2100, as an MCP server for Claude, ChatGPT, Cursor and VS Code.

Models often get calendar arithmetic wrong. They forget that New Year's Day 2022 was observed on Friday, December 31, 2021, or that the Federal Reserve stays open on a Friday the government takes off. This server computes those dates exactly, with no network calls.

Hosted endpoint, no token needed:

https://us-federal-holidays-business-days-mcp.lipmichal.workers.dev/mcp

Tools

Tool

What it does

list_federal_holidays

All holidays for a year 1971-2100. Legal date, OPM observed date, Federal Reserve closure date, and Inauguration Day flagged as DC-area only.

is_business_day

Says if a date is a business day on the federal (OPM) or fed_banking (Federal Reserve) calendar. Names the holiday and gives the previous and next business day.

add_business_days

Adds or subtracts N business days. Lists every holiday it skipped.

count_business_days

Counts business days between two dates. Start and end are included by default, like Excel NETWORKDAYS.

invoice_due_date

Due date from an issue date and net terms (Net 30 = 30 calendar days). Rolls a weekend or holiday due date with following, preceding or modified_following.

Every result has structured JSON, a one-paragraph summary, as_of, source (OPM or Federal Reserve) and more.

Related MCP server: marketcal

What it knows that your model does not

  • The observance rule. A Saturday holiday is observed on Friday by federal employees (5 U.S.C. 6103(b)). A Sunday holiday is observed on Monday (E.O. 11582). The Friday can fall in the previous year.

  • The Federal Reserve rule is different. When a holiday falls on Saturday, Reserve Banks are open on Friday (K.8). So 2026-07-03 is a federal holiday but a banking day. Use calendar: "fed_banking" for ACH, wire and settlement dates.

  • The rule history. Juneteenth from 2021. MLK Day from 1986. Veterans Day was the fourth Monday in October from 1971 to 1977.

  • Inauguration Day. It applies only to DC-area federal employees, every four years. It moves to Monday when January 20 is a Sunday and has no substitute day when it is a Saturday (2029).

  • All 212 holiday rows in OPM's published tables for 2011-2030 match this server's output. A test checks this.

Install

Claude.ai custom connector and ChatGPT developer mode

Paste the hosted URL. No token or sign-in is needed.

https://us-federal-holidays-business-days-mcp.lipmichal.workers.dev/mcp

Claude Code

claude mcp add --transport http us-federal-holidays https://us-federal-holidays-business-days-mcp.lipmichal.workers.dev/mcp

Or run it locally over stdio:

claude mcp add us-federal-holidays -- npx -y us-federal-holidays-business-days-mcp

Claude Desktop

Add this to claude_desktop_config.json:

{
  "mcpServers": {
    "us-federal-holidays": {
      "command": "npx",
      "args": ["-y", "us-federal-holidays-business-days-mcp"]
    }
  }
}

Cursor

Add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "us-federal-holidays": {
      "url": "https://us-federal-holidays-business-days-mcp.lipmichal.workers.dev/mcp"
    }
  }
}

VS Code

Add this to .vscode/mcp.json:

{
  "servers": {
    "us-federal-holidays": {
      "type": "http",
      "url": "https://us-federal-holidays-business-days-mcp.lipmichal.workers.dev/mcp"
    }
  }
}

Example prompts

  • "Which federal holidays in 2027 are observed on a different day than the legal date?"

  • "Is July 3, 2026 a banking day? Is it a federal holiday?"

  • "What date is 10 business days after December 20, 2027 for a federal agency?"

  • "How many business days are there in November 2026?"

  • "An invoice was issued on June 3, 2026 on Net 30. When is it due if we roll weekends and bank holidays forward?"

Try it with curl

curl -s https://us-federal-holidays-business-days-mcp.lipmichal.workers.dev/mcp \
  -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"is_business_day","arguments":{"date":"2026-07-03","calendar":"fed_banking"}}}'

Data sources

All fetched on 2026-10-30. Details are in DATA_SOURCES.md.

Limitations

  • One-off closures by executive order are not built in. Examples are Christmas Eve closures and national days of mourning such as 2025-01-09. Pass them in extra_closed_dates.

  • The federal calendar is for employees with a Monday to Friday workweek. Other schedules have different in-lieu-of days.

  • The fed_banking calendar applies the K.8 rule to every year. The Fed publishes tables only for recent years. Before 2022 the Juneteenth rule never changed a banking day, because June 19, 2021 was a Saturday.

  • State holidays, stock market holidays and other countries are not covered.

  • Dates are plain calendar days. There are no time zones or cut-off times.

Zovo MCP back-office bundle

Due dates feed the invoice and dunning servers in the paid Zovo MCP back-office bundle. Those servers handle invoices, payment terms and reminders: https://mcp.zovo.one/?utm_source=github&utm_medium=us-federal-holidays-business-days-mcp

Part of the Zovo MCP collection: https://mcp.zovo.one

Development

npm install
npm run build
npm test
npx wrangler deploy

src/core.ts holds the pure calendar logic. src/stdio.ts is the local entry and src/worker.ts is the Cloudflare Worker entry. Both use the same tool registry in src/tools.ts.

License

MIT

More data servers from the same author

Each one is free, needs no API key and has a hosted URL you can paste into Claude or ChatGPT.

server

tools

hosted URL

cups-to-grams-mcp

convert_ingredient, search_ingredients, scale_recipe, convert_oven_temperature

https://cups-to-grams-mcp.lipmichal.workers.dev/mcp

dscr-loan-calculator-mcp

calculate_dscr, max_loan_for_target_dscr, rent_needed_for_target_dscr, compare_scenarios, amortization_summary

https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcp

gold-price-per-gram-mcp

get_gold_price_per_gram, get_metal_prices, calculate_jewelry_value, convert_gold_units

https://gold-price-per-gram-mcp.lipmichal.workers.dev/mcp

lake-level-mcp

search_lakes, get_lake_level, get_lake_history, compare_lakes

https://lake-level-mcp.lipmichal.workers.dev/mcp

minimum-wage-mcp

get_minimum_wage, list_upcoming_increases, compare_states, annual_income_at_minimum_wage

https://minimum-wage-mcp.lipmichal.workers.dev/mcp

no-tax-on-overtime-mcp

calculate_overtime_deduction, calculate_tips_deduction, calculate_senior_deduction, estimate_tax_savings, explain_eligibility

https://no-tax-on-overtime-mcp.lipmichal.workers.dev/mcp

paycheck-calculator-mcp

calculate_take_home_pay, compare_states_take_home, salary_to_hourly, hourly_to_salary, get_federal_tax_brackets

https://paycheck-calculator-mcp.lipmichal.workers.dev/mcp

uk-income-tax-salary-mcp

calculate_uk_take_home, get_uk_tax_bands, compare_salaries, marginal_rate_at_income

https://uk-income-tax-salary-mcp.lipmichal.workers.dev/mcp

ab-test-sample-size-calculator-mcp

calculate_sample_size, estimate_test_duration, test_ab_significance, fisher_exact_test, check_peeking_risk

https://ab-test-sample-size-calculator-mcp.lipmichal.workers.dev/mcp

aca-premium-tax-credit-calculator-mcp

get_federal_poverty_level, calculate_premium_tax_credit, check_subsidy_cliff, get_aptc_repayment_cap

https://aca-premium-tax-credit-calculator-mcp.lipmichal.workers.dev/mcp

ap-score-distributions-mcp

get_ap_score_distribution, estimate_ap_percentile, compare_ap_exams, list_ap_exams, estimate_ap_score_from_composite

https://ap-score-distributions-mcp.lipmichal.workers.dev/mcp

car-loan-interest-deduction-calculator-mcp

calculate_car_loan_interest_deduction, calculate_salt_deduction, get_tax_brackets_and_standard_deduction, calculate_child_tax_credit

https://car-loan-interest-deduction-calculator-mcp.lipmichal.workers.dev/mcp

estate-gift-tax-exemption-calculator-mcp

get_exemption_amounts, calculate_estate_tax, check_gift, compare_years

https://estate-gift-tax-exemption-calculator-mcp.lipmichal.workers.dev/mcp

recipe-nutrition-calculator-mcp

lookup_ingredient_nutrition, calculate_recipe_nutrition, round_nutrition_label, scale_recipe_nutrition

https://recipe-nutrition-calculator-mcp.lipmichal.workers.dev/mcp

retirement-contribution-limits-2027-mcp

get_contribution_limits, calculate_max_contribution, get_social_security_cola, compare_years

https://retirement-contribution-limits-2027-mcp.lipmichal.workers.dev/mcp

section-179-deduction-calculator-mcp

calculate_section_179, calculate_bonus_depreciation, get_vehicle_depreciation_limits, calculate_asset_loan_payment

https://section-179-deduction-calculator-mcp.lipmichal.workers.dev/mcp

student-loan-repayment-assistance-plan-calculator-mcp

calculate_rap_payment, compare_rap_vs_standard, get_federal_loan_limits, get_plan_transition_dates

https://student-loan-repayment-assistance-plan-calculator-mcp.lipmichal.workers.dev/mcp

subdomain-finder-mcp

find_subdomains, resolve_subdomains, get_certificate_history, summarize_attack_surface

https://subdomain-finder-mcp.lipmichal.workers.dev/mcp

uk-statutory-sick-pay-maternity-pay-calculator-mcp

calculate_statutory_sick_pay, calculate_statutory_maternity_pay, get_minimum_wage_rates, check_eligibility

https://uk-statutory-sick-pay-maternity-pay-calculator-mcp.lipmichal.workers.dev/mcp

The paid back-office collection (invoices, VAT, PDFs, spreadsheets) is at https://mcp.zovo.one

Available Tools

5 tools
add_business_daysAdd or subtract U.S. business daysA
Read-onlyIdempotent
Inspect

Adds (or with a negative number subtracts) N business days to a date, skipping weekends and observed U.S. federal or Federal Reserve holidays exactly. The start date is not counted. With 0, returns the start date if it is a business day, otherwise the next one. Lists every holiday skipped.

NameRequiredDescriptionDefault
calendarNofederal = OPM observance for federal employees (Saturday holiday -> Friday off). fed_banking = Federal Reserve Banks (Saturday holiday -> open Friday; Sunday -> closed Monday). Use fed_banking for ACH, wire and bank settlement dates.federal
start_dateYes
business_daysYesBusiness days to add; negative to go back.
extra_closed_datesNoExtra closed dates to treat as holidays, e.g. a one-off executive order closure such as 2025-01-09.
include_inauguration_dayNofederal calendar only: also close Inauguration Day (DC-area federal employees only, every 4 years).

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavior beyond the read-only/idempotent annotations: exact holiday observance, start date exclusion, zero-day edge case, and the fact that skipped holidays are listed in the result. These are the details an agent needs to predict output without an output schema.

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

Conciseness5/5

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

Three sentences, front-loaded with the core operation, then edge cases. No wasted words and every sentence carries semantic value.

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?

Covers the operation, edge cases, and the fact that skipped holidays are listed, which is important because there is no output schema. It could be slightly more explicit about the exact return shape (e.g., date string plus holiday array), but it is otherwise complete for a computational calendar tool.

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 80% and documents calendar modes and extra closures well. The description adds meaning the schema lacks, notably the zero-day behavior and that the start date is not counted, though it does not further explain calendar or include_inauguration_day beyond 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?

States a specific verb and resource ('Adds ... N business days to a date') and includes the sign convention for reverse movement. It is clearly distinguishable from siblings like count_business_days and is_business_day without needing to open 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?

Provides clear operational context: negative values subtract, zero behaves specially, and the result skips weekends and observed holidays. It does not explicitly route the agent away from alternatives such as count_business_days, so it lacks full when-not guidance.

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

count_business_daysCount U.S. business days between two datesA
Read-onlyIdempotent
Inspect

Counts business days between two dates (1971-2100) on the U.S. federal or Federal Reserve calendar, excluding weekends and observed holidays. include_start and include_end default to true, like Excel NETWORKDAYS. If end is before start the count is negative. Lists the weekday holidays that were excluded.

NameRequiredDescriptionDefault
calendarNofederal = OPM observance for federal employees (Saturday holiday -> Friday off). fed_banking = Federal Reserve Banks (Saturday holiday -> open Friday; Sunday -> closed Monday). Use fed_banking for ACH, wire and bank settlement dates.federal
end_dateYes
start_dateYes
include_endNo
include_startNo
extra_closed_datesNoExtra closed dates to treat as holidays, e.g. a one-off executive order closure such as 2025-01-09.
include_inauguration_dayNofederal calendar only: also close Inauguration Day (DC-area federal employees only, every 4 years).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world behavior, so the safety profile is covered. The description adds genuinely non-schema behavior: the negative count when end precedes start, the supported date range, and that excluded weekday holidays are returned. It does not state error handling for out-of-range or malformed dates, keeping it just short of 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.

Conciseness5/5

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

Three tight sentences, each carrying distinct information: scope and range, inclusivity semantics, and the negative-count and return-content behavior. Nothing is repeated from the schema or wasted.

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 a 7-parameter read-only tool with no output schema, the description covers the important edge cases an agent needs (inclusivity defaults, negative results, listed excluded holidays, date range). Sibling routing and calendar-selection guidance are the remaining gaps.

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 43%, so the description must compensate. It adds real meaning for include_start/include_end via the Excel NETWORKDAYS analogy, clarifying inclusive boundary counting beyond the mere default values. But calendar, extra_closed_dates, and include_inauguration_day are left entirely to the schema, and the date format is undocumented in prose.

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 (counts) and resource (business days) with useful scope limits: the 1971-2100 supported range and the two calendar variants. It implicitly contrasts with add_business_days by emphasizing counting between two dates, but never names the sibling tools, so differentiation relies on inference.

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?

Explains the counting convention (weekends and observed holidays excluded, NETWORKDAYS-style inclusivity), which tells the agent what this tool is for. It never says when to reach for is_business_day, add_business_days, or invoice_due_date instead, and the calendar-selection guidance lives in the schema, not the description.

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

invoice_due_dateInvoice due date from net termsA
Read-onlyIdempotent
Inspect

Computes an invoice due date from an issue date and net terms in calendar days (Net 30 = 30), then optionally rolls a weekend or U.S. holiday due date: following (next business day), preceding, or modified_following (next business day unless it crosses into the next month). Uses exact observed federal or Federal Reserve holidays.

NameRequiredDescriptionDefault
rollNoHow to move a due date that is not a business day.following
calendarNofed_banking (default) matches when banks settle payments; federal uses OPM observance.fed_banking
net_daysYesNet terms in calendar days, e.g. 30 for Net 30.
issue_dateYes
extra_closed_datesNoExtra closed dates to treat as holidays, e.g. a one-off executive order closure such as 2025-01-09.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds real behavioral context beyond them: it specifies which holiday calendar is used ('exact observed federal or Federal Reserve holidays') and clarifies the month-boundary edge case in modified_following. It does not state the return format or how unknown/out-of-range dates are handled.

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

Conciseness5/5

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

A single dense sentence with the core computation front-loaded, followed by the optional rolling and holiday-source detail. Every clause carries information an agent needs; nothing is redundant with the title or annotations.

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?

With five parameters, two enums, and no output schema, the description covers the computation, the roll modes, and the holiday source well enough to call the tool correctly. The main gap is that it never describes the return value (presumably a date string) or confirms what happens when roll='none' and the date falls on a holiday.

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 80%, so the baseline is 3, but the description adds meaning the schema does not: it spells out the semantics of following, preceding, and modified_following in prose and reinforces that net_days is calendar days (Net 30 = 30). extra_closed_dates is left to the schema, and calendar is only partially discussed in the description, keeping it below 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 description opens with a specific verb and resource ('Computes an invoice due date') and names the inputs (issue date, net terms) plus the optional rolling behavior. It is clearly distinct from generic siblings like add_business_days or is_business_day that operate on a date without invoice/net-terms semantics.

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 establishes the context of use (converting net terms to a due date, optionally rolling to a business day) and explains the three roll modes, which is genuine usage guidance. It stops short of explicitly excluding alternatives, e.g. it never says to use add_business_days directly when you already have a computed date rather than net terms.

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

is_business_dayCheck if a date is a U.S. business dayA
Read-onlyIdempotent
Inspect

Says whether a date (1971-2100) is a business day on the U.S. federal (OPM) calendar or the Federal Reserve banking calendar, names the holiday if any, and returns the previous and next business day. The two calendars differ when a holiday falls on Saturday: 2026-07-03 is a federal holiday but a Fed banking day.

NameRequiredDescriptionDefault
dateYes
calendarNofederal = OPM observance for federal employees (Saturday holiday -> Friday off). fed_banking = Federal Reserve Banks (Saturday holiday -> open Friday; Sunday -> closed Monday). Use fed_banking for ACH, wire and bank settlement dates.federal
extra_closed_datesNoExtra closed dates to treat as holidays, e.g. a one-off executive order closure such as 2025-01-09.
include_inauguration_dayNofederal calendar only: also close Inauguration Day (DC-area federal employees only, every 4 years).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world, non-destructive, so safety is covered. The description earns credit by disclosing the supported date window, the return contents, and the Saturday-observance divergence between calendars — real behavioral context beyond the annotations. It is silent on what happens for out-of-range dates, keeping it below 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.

Conciseness5/5

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

Two sentences, front-loaded with the core behavior, followed by the one nuance an agent is most likely to get wrong. No filler.

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?

There is no output schema, and the description compensates by naming exactly what comes back (boolean result, holiday name, adjacent business days). The supported date range is stated. Edge behavior beyond 1971-2100 is unaddressed, which is the only material gap for a 4-parameter predicate tool.

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 75% and the enum parameter already documents both calendars including the Saturday/Sunday observance rules, so the baseline is 3. The description's calendar example largely restates that schema text, and it says nothing about extra_closed_dates or include_inauguration_day, so it adds no meaning beyond the structured fields.

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 ('Says whether a date ... is a business day'), scopes the supported range (1971-2100), and enumerates the returned facts (holiday name, previous and next business day). This clearly separates it from the arithmetic siblings add_business_days/count_business_days, which shift or count rather than test a single date.

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 context for the calendar choice via the 2026-07-03 federal-vs-Fed example, which tells the agent when the two modes diverge. It never routes explicitly against siblings (add_business_days, count_business_days) or states exclusions, 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.

list_federal_holidaysList U.S. federal holidays for a yearA
Read-onlyIdempotent
Inspect

Exact U.S. federal holidays for any year 1971-2100 under 5 U.S.C. 6103: legal date, OPM observed date (Saturday -> Friday, Sunday -> Monday, so New Year's Day 2022 is observed Friday 2021-12-31) and the Federal Reserve closure date (Fed Banks stay OPEN the Friday before a Saturday holiday). Applies the rule history a model tends to get wrong: Juneteenth from 2021, MLK Day from 1986, Veterans Day on the 4th Monday of October 1971-1977, and Inauguration Day (DC area only, flagged optional). No network calls.

NameRequiredDescriptionDefault
yearYesCalendar year, 1971-2100.

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the annotations: explains observed-date shifting rules with a concrete example (New Year's Day 2022 observed 2021-12-31), notes Fed Banks stay open the Friday before a Saturday holiday, and discloses keyed rule history (Juneteenth 2021, MLK 1986, Veterans Day 1971-1977). Also states "No network calls," which the openWorldHint=false hint alone doesn't fully convey.

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-loads the core promise in the first clause and packs in real value, but the second sentence is heavily nested with parentheticals and rule lists, making it denser than it needs to be for reference use.

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 one-parameter lookup with no output schema, the description effectively anticipates the return shape by naming the three date kinds (legal, OPM observed, Fed closure) and the optional Inauguration Day flag. Nothing an agent needs in order 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?

Single required parameter with 100% schema coverage, so the schema already carries the range 1971-2100 with min/max. The description restates the range but adds no new syntactic or semantic detail about the year argument, so baseline 3 applies.

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 ("Exact U.S. federal holidays") plus a hard scope (1971-2100) and the governing statute. This clearly separates it from the sibling tools, which all do business-day arithmetic rather than holiday lookup.

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 use case (get the holiday list for a given year) is implied clearly, but the description never explicitly contrasts itself with siblings like is_business_day or count_business_days, nor says when not to use it. Routing is left to inference.

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. 5 tool updatesv0.1.0
    • First observedadd_business_days
    • First observedcount_business_days
    • First observedinvoice_due_date
    • First observedis_business_day
    • First observedlist_federal_holidays

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a clearly distinct operation: listing holidays, checking a date, adding business days, counting business days, and computing invoice due dates. The boundaries between add_business_days and invoice_due_date are clear because one is a general date arithmetic primitive and the other is a specific business workflow.

Naming Consistency4/5

Four tools follow a predictable snake_case verb_noun pattern (list_federal_holidays, is_business_day, add_business_days, count_business_days). invoice_due_date is a noun phrase rather than verb_noun, but it remains clear and readable within the set.

Tool Count5/5

Five tools is a well-scoped surface for a holiday and business-day calculator: one listing tool, three date-calculation tools, and one workflow tool. Each tool earns its place without redundancy.

Completeness5/5

The tool set covers holiday lookup, business-day validation, forward/backward business-day arithmetic, interval counting, and invoice due-date rolling. These operations form a complete lifecycle for U.S. federal and Federal Reserve calendar use cases, with negative addition handling subtraction.

Related MCP Connectors

Related MCP Servers

  • 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
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides correct trading day and settlement date calculations for multiple exchanges, with no external API calls.
    6
    14 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Japanese business calendar operations such as holiday checking, business day calculations, payment date calculation, fiscal year determination, and deadline tracking, all locally without external API.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides accurate Japanese business day utilities including holiday checks, settlement day calculations, and fiscal period determination, all with embedded holiday data from 2020-2030.
    7
    62 npm
    MIT