Skip to main content
Glama

Server Details

Deterministic date arithmetic with auditable receipts: business days, due dates, holidays.

Ownership verified
Status
Healthy
Uptime
100.0% over 40 days
Last Tested
Transport
Streamable HTTP ยท MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: calendar arithmetic, business-day arithmetic, date differences, holiday lookup, due dates, next occurrences, natural language parsing, and explanation. Cross-references in descriptions actively reduce any potential confusion between overlapping operations.

Naming Consistency4/5

All names are lowercase snake_case and highly descriptive, but the pattern is not uniformly verb_noun: add_days and subtract_days are verb-first, while business_days, days_between, holidays, invoice_due, and next_occurrence are noun-first. This is a minor inconsistency rather than a serious problem.

Tool Count5/5

Nine tools is a well-scoped size for a date engine. Each tool covers a distinct operation needed for calendar, business-day, holiday, and payment-due-date calculations, and none feel redundant.

Completeness4/5

The tool surface covers core date workflows: calendar day add/subtract/difference, business days, holidays, invoice due dates, next occurrences, and query parsing. Minor gaps remain, such as direct weekday-of-date lookup, month/year arithmetic, or timezone conversion, but these do not break the primary use cases.

Available Tools

9 tools
add_daysAdd calendar days to a dateA
Read-onlyIdempotent
Inspect

The date N whole calendar days after a date (exclusive counting: the start date is day 0). Omit date for today in tz. For working days use business_days; for the gap between two dates use days_between.

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone that defines "today" (e.g. Africa/Kampala). Default UTC.UTC
dateNoISO date YYYY-MM-DD, or "today" (resolved in tz)today
daysYesWhole calendar days to add. Negative counts backwards.

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYesThe calculated answer (kind-discriminated)
receiptYesAuditable receipt: inputs, timezone, convention, workweek, holiday calendar, exclusions, versions, stable result ID

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: the exclusive counting convention (start date is day 0), the 'today' resolution in tz, and the negative-days behavior implied by the schema. It doesn't describe return format, but the output schema exists and the operation is a pure calculation, so the added context is sufficient.

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, each earning its place: the core operation and counting rule, the 'today' behavior, and sibling routing. The most important semantic detail (exclusive counting) is front-loaded. No wasted words.

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 pure read-only date calculation with full schema coverage, an output schema, and annotations covering safety, the description is complete. It explains the counting convention, the 'today' resolution, and routes to alternatives. An agent has everything needed to select and invoke this tool correctly.

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 the schema already documents all three parameters (tz, date, days) with types, defaults, and constraints. The description adds the key semantic detail that counting is exclusive (start date is day 0), which clarifies the 'days' parameter's meaning. However, it doesn't add much beyond that because the schema already carries the parameter documentation. 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?

The description states a specific verb ('add') and resource ('calendar days to a date'), and immediately clarifies the counting convention ('exclusive counting: the start date is day 0'). It also distinguishes itself from siblings by naming business_days and days_between as alternatives. This is a clear, specific purpose statement.

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

Usage Guidelines5/5

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

The description explicitly says when to use this tool vs alternatives: 'For working days use business_days; for the gap between two dates use days_between.' It also explains the 'today' behavior in tz. This is explicit routing guidance, leaving nothing to inference.

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

business_daysBusiness-day calculationsA
Read-onlyIdempotent
Inspect

Span mode (from+to): business days between two dates, exclusive of the start day, inclusive of the end day. Add mode (days, optional date): the date N business days away. Optional holiday jurisdiction or custom calendar, and a selectable working week.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoISO date YYYY-MM-DD, or "today" (resolved in tz)
tzNoIANA timezone that defines "today" (e.g. Africa/Kampala). Default UTC.UTC
dateNoISO date YYYY-MM-DD, or "today" (resolved in tz)
daysNoAdd mode: business days to move. Negative counts backwards.
fromNoISO date YYYY-MM-DD, or "today" (resolved in tz)
workweekNoWorking week. Default mon-fri (Sat+Sun weekend).
jurisdictionNoHoliday jurisdiction id: US, GB, GB-SCT, GB-NIR, IE, FR, CA, AU, UG (alias UK for GB). No default: omit for no holiday calendar.
customHolidaysNoCustom organizational holiday calendar as ISO dates (mutually exclusive with jurisdiction)

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYesThe calculated answer (kind-discriminated)
receiptYesAuditable receipt: inputs, timezone, convention, workweek, holiday calendar, exclusions, versions, stable result ID

TDQS

A3.7/5.0
Behavior4/5

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

The description discloses important behavioral specifics: the span mode is 'exclusive of the start day, inclusive of the end day', and add mode returns 'the date N business days away'. It also notes the optional holiday jurisdiction/custom calendar and selectable working week. These go beyond the readOnlyHint and idempotentHint annotations, which already indicate safety, so the description adds value without contradiction.

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 with zero filler. The first sentence front-loads the two primary modes and their boundary rules, the second covers optional configurations. Every clause contributes meaning, making it highly efficient and easy to parse.

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 the tool's complexity (8 parameters, two modes, output schema present), the description covers the key operational aspects: boundary inclusivity, mode selection, and optional holiday/workweek handling. It doesn't explain return values, but the output schema handles that. Timezone handling is in the schema, so nothing critical is missing for a read-only 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 100%, so the baseline is 3. The description adds semantic grouping by explicitly defining two modes (span via 'from' and 'to', add via 'days' and optional 'date') and mentions the optional holiday/workweek parameters. This helps the agent understand parameter relationships beyond the schema's individual descriptions.

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 two modes (span and add) with specific behaviors: 'business days between two dates' and 'date N business days away'. It also mentions optional holiday/workweek options. However, it does not explicitly distinguish itself from siblings like days_between or add_days, which could overlap, so it loses a point for not addressing sibling differentiation.

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

Usage Guidelines2/5

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

The description implies usage through its mode descriptions but provides no explicit guidance on when to choose this tool over alternatives. It never mentions days_between, add_days, or other siblings, nor any conditions for when not to use it. The absence of any routing or exclusions leaves the agent to infer context.

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

days_betweenDays between two datesA
Read-onlyIdempotent
Inspect

Signed whole calendar days from one date to another, midnight to midnight, endpoints exclusive (the gap).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesISO date YYYY-MM-DD, or "today" (resolved in tz)
tzNoIANA timezone that defines "today" (e.g. Africa/Kampala). Default UTC.UTC
fromYesISO date YYYY-MM-DD, or "today" (resolved in tz)

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYesThe calculated answer (kind-discriminated)
receiptYesAuditable receipt: inputs, timezone, convention, workweek, holiday calendar, exclusions, versions, stable result ID

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the tool is safe to call. The description adds meaningful behavioral detail: signed result, midnight-to-midnight boundary, and endpoint exclusivity. This clarifies the exact calculation semantics beyond what annotations provide, though it doesn't discuss edge cases like DST, which is acceptable given the schema covers timezone handling.

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?

One sentence, zero filler, and the core semantics are front-loaded. The description is extremely efficient and earns every word.

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 read-only, idempotent date calculation with a full schema and output schema, the description fully specifies the behavior. No critical details are missing; an agent can correctly invoke it without needing additional context.

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?

The schema describes all three parameters with formats and the meaning of tz. The description's mention of 'from one date to another' aligns with the from/to parameters but adds no new detail beyond the schema. Since schema coverage is 100%, a baseline of 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?

The description states a specific computation: signed whole calendar days between two dates, with clear semantics (midnight-to-midnight, endpoints exclusive). This clearly differentiates it from siblings like add_days/subtract_days (which modify dates) and business_days (which count business days). The verb is implicit but the resource and operation are unambiguous.

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 description implies this is for calendar day gaps but does not explicitly direct the agent away from business_days or other sibling tools. Given the sibling list includes business_days, explicit routing would improve clarity, but the context is clear enough that an agent can infer when to use it.

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

explainExplain a calculation step by stepA
Read-onlyIdempotent
Inspect

Runs any operation and returns the receipt plus human-readable derivation steps. Set op, then pass the fields that operation's own tool takes. Use it when the user asks how an answer was reached.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYesOperation to explain. holiday_lookup is the holidays tool; the others share their tool's name.
toNoISO date YYYY-MM-DD, or "today" (resolved in tz)
tzNoIANA timezone that defines "today" (e.g. Africa/Kampala). Default UTC.UTC
netNoNet-N payment terms in calendar days (Net 30 = 30).
dateNoISO date YYYY-MM-DD, or "today" (resolved in tz)
daysNoDay count for add_days, subtract_days and business_days add mode.
fromNoISO date YYYY-MM-DD, or "today" (resolved in tz)
rollNoRoll a weekend or holiday due date forward to the next business day. Default false.
yearNoCalendar year for holiday_lookup, e.g. 2027
eventNoEvent slug (e.g. christmas). Exactly one of event/weekday.
weekdayNo0 = Sunday .. 6 = Saturday. Exactly one of event/weekday.
workweekNoWorking week. Default mon-fri (Sat+Sun weekend).
invoiceDateNoISO date YYYY-MM-DD, or "today" (resolved in tz)
jurisdictionNoHoliday jurisdiction id: US, GB, GB-SCT, GB-NIR, IE, FR, CA, AU, UG (alias UK for GB). No default: omit for no holiday calendar.
customHolidaysNoCustom organizational holiday calendar as ISO dates (mutually exclusive with jurisdiction)

Output Schema

ParametersJSON Schema
NameRequiredDescription
stepsYesHuman-readable derivation, identical to the REST /api/v1/explain output
receiptYesAuditable receipt for the operation

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true, and non-destructive. The description adds useful behavioral context beyond that: the tool delegates to another operation, the op parameter selects which one, and the result is a receipt plus derivation steps. No contradiction with annotations.

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 compact sentences front-load the core function and output, then give the invocation pattern and intended use case. Every sentence earns its place with no redundant wording.

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 15-parameter meta-tool with an output schema and safety annotations, the description is sufficient: it defines the routing via op and points to the operation-specific tools for parameter details. It doesn't enumerate each op's parameter mapping, but the sibling tools and schema descriptions fill that gap.

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 covers 100% of parameters, so baseline is 3. The description adds the crucial meta-instruction that op selects the operation and the remaining fields should be the ones that operation's own tool takes, which is not obvious from the flat schema. This helps the agent identify the relevant parameter subset.

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 names a concrete verb and deliverable: it runs an operation and returns a receipt plus human-readable derivation steps. It also distinguishes itself from the computational sibling tools by stating it is for explaining how an answer was reached, not merely computing it.

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 explicit guidance: 'Use it when the user asks how an answer was reached.' It also explains the invocation pattern (set op, pass the target operation's fields). It doesn't explicitly say when not to use it or name alternative tools, but the delegation pattern implies a direct sibling-tool alternative.

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

holidaysPublic holidays for a jurisdiction and yearA
Read-onlyIdempotent
Inspect

Observed public holidays with the nominal (legal) date and status: rule (statutory) or declared (officially declared for that year). Declared-only holidays are omitted for undeclared years, with a holiday_data_incomplete warning.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesCalendar year to list, e.g. 2027
jurisdictionYesHoliday jurisdiction id: US, GB, GB-SCT, GB-NIR, IE, FR, CA, AU, UG (alias UK for GB).

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYesThe calculated answer (kind-discriminated)
receiptYesAuditable receipt: inputs, timezone, convention, workweek, holiday calendar, exclusions, versions, stable result ID

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses two important behaviors: holidays carry a nominal legal date plus a rule/declared status, and declared-only holidays are omitted for undeclared years with a holiday_data_incomplete warning. This lets the agent predict missing data and interpret response fields without calling the tool.

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-load the core result and then cover the important edge case (undeclared years). Every clause earns its place, with no redundant restatement of the schema or annotations.

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?

Given the small parameter set, robust read-only annotations, full schema descriptions, and the declared output schema, this description answers all the behavioral questions an agent needs: status semantics, omission behavior, and warning. No significant context 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%, with jurisdiction and year both described in the schema. The description adds no additional parameter detail, so the baseline 3 is appropriate; it does not hurt, but it also does not improve on 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 title and description clearly identify the resource (public holidays) and the jurisdiction/year scope, and the description adds the status distinction (rule vs declared) that separates this from a trivial date list. It uses a noun phrase rather than an explicit 'returns/lists' verb, and it doesn't explicitly contrast with sibling tools, though none of the date-utility siblings are direct 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?

Usage is implied by the title and description: call this when you need public holidays for a jurisdiction and year. There is no explicit when-to-use, when-not-to-use, or mention of alternatives such as business_days, so the agent must infer the appropriate context.

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

invoice_dueInvoice due date from net termsA
Read-onlyIdempotent
Inspect

Due date for Net-N payment terms (calendar days, invoice date = day 0). Optional roll-forward past weekends and, with a jurisdiction or custom calendar, public holidays.

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone that defines "today" (e.g. Africa/Kampala). Default UTC.UTC
netYesNet-N payment terms in calendar days (Net 30 = 30).
rollNoRoll a weekend or holiday due date forward to the next business day. Default false.
workweekNoWorking week. Default mon-fri (Sat+Sun weekend).
invoiceDateNoISO date YYYY-MM-DD, or "today" (resolved in tz)today
jurisdictionNoHoliday jurisdiction id: US, GB, GB-SCT, GB-NIR, IE, FR, CA, AU, UG (alias UK for GB). No default: omit for no holiday calendar.
customHolidaysNoCustom organizational holiday calendar as ISO dates (mutually exclusive with jurisdiction)

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYesThe calculated answer (kind-discriminated)
receiptYesAuditable receipt: inputs, timezone, convention, workweek, holiday calendar, exclusions, versions, stable result ID

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds valuable behavioral context: the day-0 convention and the optional roll-forward past weekends/holidays. This goes beyond what annotations state and clarifies computation semantics without contradiction.

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?

The description is two concise sentences that front-load the core purpose and then add optional behavior. There is zero filler, and every word contributes to understanding the tool's function.

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 7 parameters (only 1 required) and an output schema present, the description covers the main behavior adequately. It explains the core computation and optional roll-forward. Minor omissions like the mutual exclusivity of jurisdiction and customHolidays are handled in the schema, so the description is complete for an agent to correctly invoke the 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 100%, so the baseline is 3. The description adds the 'invoice date = day 0' clarification and the concept of roll-forward, which are not explicitly in the schema's net or roll descriptions. However, this is modest added value since the schema already explains parameters well.

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 clearly states the tool computes a due date for Net-N payment terms, specifying the base (calendar days, invoice date = day 0) and the optional roll-forward behavior. This distinguishes it from sibling tools like add_days or business_days, which handle different date arithmetic. The verb 'Due date' and resource 'Net-N payment terms' are specific and unambiguous.

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 description implies a use case for payment terms with optional roll-forward, but does not explicitly state when to use this tool versus alternatives like business_days or add_days. There are no exclusions or explicit routing to siblings, leaving the agent to infer context from the Net-N terminology.

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

next_occurrenceNext occurrence of an event or weekdayA
Read-onlyIdempotent
Inspect

The next occurrence strictly after the base date (default today) of either a tracked event slug (e.g. "christmas") or a weekday (0 = Sunday .. 6 = Saturday). Provide exactly one of event/weekday.

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone that defines "today" (e.g. Africa/Kampala). Default UTC.UTC
fromNoISO date YYYY-MM-DD, or "today" (resolved in tz)
eventNoEvent slug (e.g. christmas). Exactly one of event/weekday.
weekdayNo0 = Sunday .. 6 = Saturday. Exactly one of event/weekday.

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYesThe calculated answer (kind-discriminated)
receiptYesAuditable receipt: inputs, timezone, convention, workweek, holiday calendar, exclusions, versions, stable result ID

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds useful behavioral context: 'strictly after' (exclusive of base date), 'default today', and 'exactly one of event/weekday'. It does not contradict annotations, but it omits edge-case behavior (e.g., unknown event slug, both provided) โ€“ though the output schema may cover errors. This is adequate but not rich.

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?

The description is two concise sentences, front-loaded with the core purpose. It efficiently communicates the primary function and the one-of constraint without any filler. Every clause earns its place.

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 the tool's simplicity (4 params, 0 required, output schema present), the description covers the essential behavior: what it returns, the base date default, and the exclusivity. It does not discuss error handling or timezone implications beyond the schema, but the output schema and annotations compensate. The description is adequate for an agent to call the tool correctly in most scenarios.

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 the baseline is 3. The description adds little beyond the schema: it reiterates 'exactly one' and mentions the default base date, but does not elaborate on the tz semantics or the event slug format beyond examples. The schema already documents all parameters, so the description adds marginal value.

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 clearly states the tool computes the next occurrence of a tracked event slug or a weekday, strictly after a base date. It distinguishes itself from siblings like holidays or business_days by explicitly covering event slugs and weekdays, and even specifies the weekday numbering. The verb and resource are implicit but unambiguous.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus the siblings (e.g., holidays, business_days). It only mentions the one-of constraint between event and weekday, which is parameter usage, not tool selection. There are no exclusions or alternative recommendations, so an agent must infer the appropriate context.

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

parse_date_queryParse a natural-language date questionA
Read-onlyIdempotent
Inspect

Parses queries like "90 business days from today in uganda" into a normalized operation, answers it, and returns the auditable receipt. Ambiguous dates (03/04/2027) return needsClarification instead of a guess.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesThe date question in plain language. Pass the user's wording rather than a date you computed.
tzNoIANA timezone that defines "today" (e.g. Africa/Kampala). Default UTC.UTC
localeNoResolves ambiguous slash dates; omit to receive clarification choices

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerNoThe calculated answer, absent when parsed is null
parsedYesNormalized operation, or null when the query could not be understood confidently
receiptNoAuditable receipt, absent when parsed is null
warningsYesMachine-readable notes, e.g. unsupported_unit or time_ignored
confidenceYes1.0 is a clean grammar hit; below 0.5 the query is refused rather than guessed
canonicalUrlNotilwhen page that answers this query, to cite; null when no page covers it
needsClarificationNoPresent when the query is genuinely ambiguous (e.g. 03/04/2027); offers explicit choices instead of a guess

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark the tool read-only and idempotent, and the description adds meaningful behavior beyond that: it answers the question, returns an auditable receipt, and returns needsClarification for ambiguous dates instead of guessing. No contradiction with annotations.

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, and every clause contributes information. No redundant restatement of the title or schema.

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?

Given the output schema exists and annotations cover the safety profile, the description supplies the remaining decision-relevant behavior: it answers, receipts, and clarifies ambiguous input. Nothing essential is missing for a correct call.

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 covers all three parameters at 100%, so the baseline is 3. The example query hints at q and tz usage, but the description does not materially expand on the schema's parameter documentation.

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?

Description states a clear verb and resource: it parses natural-language date questions into a normalized operation, answers them, and returns an auditable receipt. It also distinguishes itself from arithmetic siblings by explicitly covering ambiguity handling (needsClarification) and natural-language input.

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?

Usage context is clear: this tool is for natural-language date questions, with a concrete example and explicit ambiguity behavior. However, it never says when not to use it or names alternatives like business_days or days_between, so it lacks full routing guidance.

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

subtract_daysSubtract calendar days from a dateA
Read-onlyIdempotent
Inspect

The date N whole calendar days before a date (exclusive counting: the start date is day 0). Omit date for today in tz. For working days use business_days; for the gap between two dates use days_between.

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone that defines "today" (e.g. Africa/Kampala). Default UTC.UTC
dateNoISO date YYYY-MM-DD, or "today" (resolved in tz)today
daysYesWhole calendar days to subtract. Negative counts forwards.

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYesThe calculated answer (kind-discriminated)
receiptYesAuditable receipt: inputs, timezone, convention, workweek, holiday calendar, exclusions, versions, stable result ID

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds the crucial exclusive-counting rule ('start date is day 0') and clarifies that 'today' is resolved in tz, which are behavioral details beyond the structured fields and not contained in annotations.

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 tight sentences with no filler; the core counting rule is front-loaded, followed by usage defaults and sibling alternatives. Every clause earns its place.

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 pure computation tool, the description plus schema fully covers inputs, defaults, edge semantics, and alternative tools. The presence of an output schema means return-value details do not need to be restated, and nothing essential is missing for correct invocation.

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 parameter names and defaults are already documented. The description adds meaning beyond the schema by defining the exact day-count convention and explaining how to omit the date parameter to use today in a timezone, which refines the semantics of both 'days' and 'date'.

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?

Description states a specific operation: returns the date N whole calendar days before a given date, with explicit exclusive-counting semantics. It also differentiates itself from sibling tools by naming business_days and days_between, clarifying that this is the calendar-day subtraction tool.

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

Usage Guidelines5/5

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

Provides clear when-to-use guidance: 'Omit date for today in tz' tells users how to default the main input, and explicitly routes working-day and date-gap use cases to business_days and days_between respectively. No ambiguity remains about which sibling to choose.

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. 9 tool updates
    • Changedadd_days1 field changed
      • addedInput schema / properties / days / description
        Added value: +"Whole calendar days to add. Negative counts backwards."
    • Changedbusiness_days7 fields changed
      • removedInput schema / properties / date / $ref
        Removed value: -"#/properties/from"
      • addedInput schema / properties / date / pattern
        Added value: +"^(\\d{4}-\\d{2}-\\d{2}|today)$"
      • addedInput schema / properties / date / type
        Added value: +"string"
      • addedInput schema / properties / days / description
        Added value: +"Add mode: business days to move. Negative counts backwards."
      • removedInput schema / properties / to / $ref
        Removed value: -"#/properties/from"
      • addedInput schema / properties / to / pattern
        Added value: +"^(\\d{4}-\\d{2}-\\d{2}|today)$"
      • addedInput schema / properties / to / type
        Added value: +"string"
    • Changeddays_between4 fields changed
      • removedInput schema / properties / to / $ref
        Removed value: -"#/properties/from"
      • addedInput schema / properties / to / description
        Added value: +"ISO date YYYY-MM-DD, or \"today\" (resolved in tz)"
      • addedInput schema / properties / to / pattern
        Added value: +"^(\\d{4}-\\d{2}-\\d{2}|today)$"
      • addedInput schema / properties / to / type
        Added value: +"string"
    • Changedexplain16 fields changed
      • addedInput schema / properties / days / description
        Added value: +"Day count for add_days, subtract_days and business_days add mode."
      • addedInput schema / properties / event / description
        Added value: +"Event slug (e.g. christmas). Exactly one of event/weekday."
      • removedInput schema / properties / from / $ref
        Removed value: -"#/properties/date"
      • addedInput schema / properties / from / pattern
        Added value: +"^(\\d{4}-\\d{2}-\\d{2}|today)$"
      • addedInput schema / properties / from / type
        Added value: +"string"
      • removedInput schema / properties / invoiceDate / $ref
        Removed value: -"#/properties/date"
      • addedInput schema / properties / invoiceDate / pattern
        Added value: +"^(\\d{4}-\\d{2}-\\d{2}|today)$"
      • addedInput schema / properties / invoiceDate / type
        Added value: +"string"
      • addedInput schema / properties / net / description
        Added value: +"Net-N payment terms in calendar days (Net 30 = 30)."
      • addedInput schema / properties / op / description
        Added value: +"Operation to explain. holiday_lookup is the holidays tool; the others share their tool's name."
      • addedInput schema / properties / roll / description
        Added value: +"Roll a weekend or holiday due date forward to the next business day. Default false."
      • removedInput schema / properties / to / $ref
        Removed value: -"#/properties/date"
      • addedInput schema / properties / to / pattern
        Added value: +"^(\\d{4}-\\d{2}-\\d{2}|today)$"
      • addedInput schema / properties / to / type
        Added value: +"string"
      • addedInput schema / properties / weekday / description
        Added value: +"0 = Sunday .. 6 = Saturday. Exactly one of event/weekday."
      • addedInput schema / properties / year / description
        Added value: +"Calendar year for holiday_lookup, e.g. 2027"
    • Changedholidays2 fields changed
      • changedInput schema / properties / jurisdiction / description
        Previous value: -"US, GB, GB-SCT, GB-NIR, CA, AU, UG (alias UK)"New value: +"Holiday jurisdiction id: US, GB, GB-SCT, GB-NIR, IE, FR, CA, AU, UG (alias UK for GB)."
      • addedInput schema / properties / year / description
        Added value: +"Calendar year to list, e.g. 2027"
    • Changedinvoice_due2 fields changed
      • addedInput schema / properties / net / description
        Added value: +"Net-N payment terms in calendar days (Net 30 = 30)."
      • addedInput schema / properties / roll / description
        Added value: +"Roll a weekend or holiday due date forward to the next business day. Default false."
    • Changednext_occurrence2 fields changed
      • addedInput schema / properties / event / description
        Added value: +"Event slug (e.g. christmas). Exactly one of event/weekday."
      • addedInput schema / properties / weekday / description
        Added value: +"0 = Sunday .. 6 = Saturday. Exactly one of event/weekday."
    • Changedparse_date_query1 field changed
      • addedInput schema / properties / q / description
        Added value: +"The date question in plain language. Pass the user's wording rather than a date you computed."
    • Changedsubtract_days1 field changed
      • addedInput schema / properties / days / description
        Added value: +"Whole calendar days to subtract. Negative counts forwards."
  2. 9 tool updates
    • First observedadd_days
    • First observedbusiness_days
    • First observeddays_between
    • First observedexplain
    • First observedholidays
    • First observedinvoice_due
    • First observednext_occurrence
    • First observedparse_date_query
    • First observedsubtract_days

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides deterministic business-day calculations for AI agents, correctly handling country-specific weekends and public holidays.
    6
    34 npm
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A zero-signup business-day date arithmetic API that allows adding/subtracting working days, counting business days between two dates, and testing if a date is a business day, with custom holidays.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides correct trading day and settlement date calculations for multiple exchanges, with no external API calls.
    6
    5 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources