Skip to main content
Glama
kelli930

ChronoGuard

ChronoGuard

Deterministic date, time, timezone, holiday, and business-day arithmetic for AI agents via MCP.

LLMs are good at language. They should not have to guess whether a deadline lands on a holiday, whether five business days crosses a weekend, or what a timestamp means across a daylight-saving transition. ChronoGuard moves that work into a small deterministic tool with a stable contract.

Why ChronoGuard exists

AI agents are good at language, but they should not have to guess deterministic time logic.

Instead of asking a model:

What is 5 US business days after September 11, 2026?

have the agent call ChronoGuard:

{ "operation": "business_day_offset", "timezone": "America/Chicago", "reference_timestamp": "2026-09-11T10:00:00", "value": 5, "country_code": "US" }

ChronoGuard returns the deterministic result:

{ "resolved_datetime_iso": "2026-09-18T10:00:00-05:00", "day_of_week": "Friday", "is_business_day": true, "is_holiday": false }

This removes date arithmetic, holiday logic, timezone conversion, and DST edge cases from the LLM's reasoning path.

Related MCP server: Chrono MCP

Free vs Paid Use

ChronoGuard is free for evaluation and non-production use.

You may use ChronoGuard for free for personal projects, education, research, demos, prototypes, proof-of-concept work, internal evaluation, and non-production development and testing.

A paid commercial license is required for production business use.

This includes using ChronoGuard:

in a live business workflow in a production application or service to support paying customers inside software you sell inside a SaaS product as a hosted or managed service for ongoing commercial operations

Production use means use in a live system, workflow, product, service, or operational process that supports a business, organization, customer, or revenue-generating activity.

Redistribution, resale, commercial bundling, or offering ChronoGuard as a paid hosted service is not permitted without a separate commercial agreement.

Commercial licensing options will be announced separately.

Status

v0.1.1 — public validation prototype

Validated in Replit on September 11, 2026 with:

  • 28 automated tests passing

  • FastMCP 4.0.3

  • MCP 2.2.0

  • Real holidays package integration

  • Successful real stdio MCP client discovery of chronoguard_resolve_time

  • Successful end-to-end MCP tool invocation through the stdio server

  • Successful FastMCP inspector discovery

ChronoGuard is ready for developer testing, but it is not yet positioned as production-grade global business-calendar infrastructure.

What ChronoGuard solves

ChronoGuard gives an agent a deterministic answer for temporal questions that are easy for an LLM to get subtly wrong.

Example workflows:

  1. SLA deadlines — “What is 4 US business days after this support ticket opened?”

  2. Billing and finance cutoffs — “What is the previous business day before month-end?”

  3. Rolling data windows — “Give me the exact timestamps for the last 30 days.”

  4. Timezone-safe scheduling — “Convert this timestamp to America/Chicago and preserve the correct date.”

  5. Holiday-aware automation — “What date is 5 business days after Friday, September 11, 2026?”

Supported operations

The MCP tool is named:

chronoguard_resolve_time

Supported operations:

  • current_time

  • add_duration

  • subtract_duration

  • business_day_offset

  • calculate_span

Supported units:

  • minutes

  • hours

  • days

  • weeks

  • business_days

Other inputs:

  • IANA timezone such as America/Chicago or UTC

  • ISO-8601 reference timestamp

  • Country code such as US

  • Optional holiday-calendar subdivision such as a state or region when supported by the holidays package

Temporal semantics

ChronoGuard deliberately distinguishes different meanings of “add time”:

  • Minutes / hours: elapsed-time arithmetic. Calculation happens through UTC and converts back to the requested timezone.

  • Days / weeks: local calendar arithmetic, preserving wall-clock time across DST changes.

  • Business days: local calendar arithmetic that skips weekends and supported official holidays.

  • Naive local timestamps: accepted only when they map to one unambiguous real instant. Nonexistent spring-forward times and ambiguous fall-back times are rejected unless an explicit UTC offset is supplied.

Important v0.1 limitation

ChronoGuard currently assumes Saturday and Sunday are weekends for business-day calculations.

The holidays dependency supports many countries and subdivisions, but that does not mean v0.1 correctly models every country's weekend convention, banking calendar, exchange calendar, or company-specific business calendar.

Do not describe v0.1 as universally correct for global business calendars.

Install

Requires Python 3.11+.

python -m pip install -r requirements.txt

Run the tests

From the project root:

python -m pytest -v

Expected result for this release:

28 passed

Inspect the MCP server

fastmcp inspect server.py

A successful inspection should show one registered tool.

Run locally over stdio

python server.py

ChronoGuard currently uses MCP stdio transport for local clients.

Example MCP client call

import asyncio
from fastmcp import Client
from server import mcp


async def main():
    async with Client(mcp) as client:
        result = await client.call_tool(
            "chronoguard_resolve_time",
            {
                "operation": "business_day_offset",
                "timezone": "America/Chicago",
                "reference_timestamp": "2026-09-11T10:00:00",
                "value": 5,
                "country_code": "US",
            },
        )
        print(result.data)


asyncio.run(main())

Expected resolved date:

2026-09-18

Example MCP configuration

For an MCP client that launches local stdio servers, use a configuration shaped like this and replace the path with the absolute location of server.py on your machine:

{
  "mcpServers": {
    "chronoguard": {
      "command": "python",
      "args": ["/absolute/path/to/server.py"]
    }
  }
}

Depending on the client and Python environment, you may need to use the absolute path to the Python executable for the environment where ChronoGuard's dependencies are installed.

Example response

A successful business-day call returns structured data such as:

{
  "resolved_datetime_iso": "2026-09-18T10:00:00-05:00",
  "timezone": "America/Chicago",
  "day_of_week": "Friday",
  "is_business_day": true,
  "is_holiday": false,
  "holiday_name": null,
  "date_range": null
}

Error behavior

ChronoGuard fails explicitly rather than silently guessing when it encounters inputs such as:

  • Invalid IANA timezone names

  • Invalid ISO timestamps

  • Unsupported holiday calendars

  • Nonexistent DST-local times

  • Ambiguous DST-local times without an explicit offset

That behavior is intentional: a deterministic agent tool should prefer a clear error to a plausible but wrong date.

What is not in v0.1

Not yet supported:

  • Non-Saturday/Sunday weekend conventions

  • NYSE or other exchange calendars

  • Federal Reserve settlement calendars

  • Custom company holiday calendars

  • Remote HTTP transport

  • Authentication or rate limiting

  • Hosted commercial API

  • Billing or usage metering

Those should be added only after developer demand justifies them.

Why this exists

The experiment behind ChronoGuard is simple:

When an AI workflow has a narrow deterministic failure mode, move that task out of LLM reasoning and into a small tool with a strict contract.

ChronoGuard is the first test of that idea.

Feedback wanted

This release is intentionally small. Useful feedback includes:

  • Where your agent currently gets date/time logic wrong

  • Which calendar rules you actually need

  • Whether local stdio is enough or remote HTTP matters

  • Which operations you expected but did not find

  • Whether you would adopt a shared temporal utility instead of maintaining date logic inside each agent

Available Tools

1 tool
chronoguard_resolve_timeChronoguard Resolve TimeB

Deterministic temporal resolution and business-date arithmetic. Use for current time, elapsed or calendar offsets, rolling spans, business-day offsets, SLAs, and financial cutoffs. v0.1 business-day calendars assume a Saturday/Sunday weekend.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNo
valueNo
timezoneNoUTC
operationYes
subdivisionNo
country_codeNoUS
reference_timestampNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose a meaningful behavioral limitation ('v0.1 business-day calendars assume a Saturday/Sunday weekend') and asserts determinism, but says nothing about output shape, timezone handling, or failure behavior. One good disclosure against several missing traits.

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, front-loading the what before the when and the caveat. No filler, no repetition of the title or schema. Every sentence earns its place.

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

Completeness2/5

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

A 7-parameter, complex temporal tool with 0% schema coverage and no annotations requires strong parameter guidance, which is absent. The output schema does relieve the description of explaining return values, and the use-case list helps route intent, but an agent still cannot tell from this text how timezone, reference_timestamp, subdivision, or value/unit interact per operation.

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

Parameters2/5

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

Schema description coverage is 0% across 7 parameters, so the description must compensate and it largely does not. The listed use cases loosely hint at the operation values, but unit, value, timezone, reference_timestamp, subdivision, and country_code are never explained. The one sentence about S/S weekends only faintly implies the country_code/calendar dimension.

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 domain and capability: 'temporal resolution and business-date arithmetic' with concrete coverage of current time, offsets, spans, business days, SLAs, and cutoffs. The verb is abstract ('resolve') but the resource and scope are clear. No siblings exist, so no differentiation is needed.

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 second sentence enumerates the situations the tool is for (current time, elapsed/calendar offsets, rolling spans, business-day offsets, SLAs, financial cutoffs), which maps well onto the operation enum. It gives clear context but no explicit exclusions or conditions under which it is wrong to use, and there are no alternatives to route to.

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. 1 tool updatev0.1.1
    • First observedchronoguard_resolve_time

TDQS

A3.6/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of overlap or misselection. The single tool has a clearly stated purpose (deterministic temporal resolution and business-date arithmetic).

Naming Consistency5/5

The lone name follows a clean snake_case server-prefixed convention (chronoguard_resolve_time). No mixing of styles is possible, so consistency is trivially satisfied.

Tool Count3/5

A single tool for an entire temporal domain is borderline thin; a server covering current time, offsets, spans, business days, and SLAs could reasonably expose separate operations. It is not trivial, so it is not an extreme mismatch, but the surface is minimal.

Completeness3/5

The tool claims broad coverage (current time, elapsed/calendar offsets, rolling spans, business-day offsets, SLAs, financial cutoffs), but notable gaps remain: no timezone conversion, no date parsing/formatting, and business-day calendars are hardcoded to Sat/Sun weekends with no holiday calendar support.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides comprehensive time manipulation capabilities including timezone conversions, date arithmetic, business day calculations, duration calculations, and recurring event handling. Enables natural language time queries with high performance and intelligent caching.
    11
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides comprehensive date, time, timezone, and calendar operations powered by Luxon, enabling AI agents to perform time calculations, timezone conversions, and temporal data handling across 400+ IANA timezones.
    2
    6 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables timezone conversion, astronomical calculations, and date utilities through natural language, supporting sunrise/sunset, moon phases, business days, and more.
    9
    153 npm
    1
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    MCP server providing 10 date and time tools including timezone conversion, date math, cron explanation, business days calculation, and more, enabling LLMs to handle datetime operations.
    10
    12 npm
    MIT