Convert and compare dates and times across any timezone with flexible, locale-aware formatting. Adβ¦
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Inspect callable tools, capabilities, and parameters exposed to AI agents by JMoak Chrono Mcp.
addAdd duration to a datetime
subtractSubtract duration from a datetime
diffCalculate simple difference in various units
duration_betweenDetailed duration breakdown between two times
statsStatistical analysis of time series and durations (up to **100,000** timestamps per call)
sortSort timestamps chronologically
The MCP server for time math at scale. Batch-crunch up to 100,000 timestamps in a single tool call, speak the industry's temporal interchange standards (RFC 9557 IXDTF, RFC 5545 RRULE, ISO 8601 repeating intervals), and give your agent a passive sense of passing time on every response. Powered by Luxon, DST-correct by construction, and every limit is benchmark-backed.
Configure your MCP client to launch chrono-mcp via npx. Below are client-specific examples.
Ask Claude! Here's the configuration:
Reference: Cursor MCP docs
LLMs are famously bad at time: they miscount weekdays, lose track of elapsed time between turns, and fall apart on DST math. chrono-mcp fixes all three β and does it at bulk scale, in the formats the rest of the industry already speaks.
stats, which returns pure aggregates. Every cap is proven by a benchmark you can run yourself (npm run bench) β per-item ops finish in under 100ms at the cap, 100k-item stats in ~460ms2026-08-09T15:00:00-04:00[America/New_York]) with Temporal-compatible offset-consistency validation, plus an ixdtf output format β the serialization standard of the JS Temporal APIexpand turns RFC 5545 RRULEs (the format Google Calendar, Outlook, and Apple Calendar store) and ISO 8601 repeating intervals into concrete occurrences β DST-correct, window-bounded, with explicit truncation reportinginvalid_count + samples), never silently droppedGet current time or convert times across timezones with flexible formatting.
Parameters:
datetime (string, optional): ISO datetime string. Defaults to current timetimezones (array, optional): List of timezone names for conversionsformats (array, optional): Output formats (iso, rfc2822, sql, local, localeString, short, medium, long, full)locale (string, optional): Locale for formatting (e.g., en-US, fr-FR, ja-JP)includeOffsets (boolean, optional): Include UTC offsets in outputExample:
Input
Output
Perform time arithmetic at any scale β single conversions to 100k-item batch analysis.
Operations:
add - Add duration to a datetimesubtract - Subtract duration from a datetimediff - Calculate simple difference in various unitsduration_between - Detailed duration breakdown between two timesstats - Statistical analysis of time series and durations (up to 100,000 timestamps per call)sort - Sort timestamps chronologicallyexpand - Expand an RFC 5545 RRULE or ISO 8601 repeating interval into occurrencesEvery operation accepts arrays as well as single values, with interaction_mode controlling how base and compare arrays combine (pairwise, cross_product, single_to_many, β¦). Invalid entries in a batch are skipped and reported β never silently dropped, never fatal.
Expand example:
Input
Output (result excerpt β note the wall-clock time held across the DST transition)
Also accepts ISO 8601 repeating intervals (R5/2026-03-01T14:00:00Z/P1D), window_start/window_end bounds, and max_occurrences caps (default 100, max 10,000) with explicit truncated reporting.
Bulk stats example β hand it your entire event log; the response stays tiny no matter how many timestamps go in (up to 100,000):
Output (aggregates only β real excerpt from a 100,000-timestamp call that ran in ~500ms)
Parameters:
operation (required): Type of calculationinteraction_mode (optional): auto_detect | single_to_many | many_to_single | pairwise | cross_product | aggregate. Defaults to auto_detect.base_time (optional): Base ISO datetime(s). String or array. Defaults to current time.compare_time (optional): Compare ISO datetime(s) for diff/duration_between. String or array.timezone (optional): Timezone for base_timecompare_time_timezone (optional): Timezone for compare_timeyears, months, days, hours, minutes, seconds (optional): Duration valuesExample:
Input
Output
Every tool response includes a second content block β a single ~20-token line giving the calling agent passive time-awareness:
LLMs have no innate sense of elapsed time between turns; the envelope makes time passage visible on every interaction with the server β including the weekday, which models frequently miscompute. Disable it by setting CHRONO_ENVELOPE=off in the server environment.
npm test β Vitest unit tests for tool handlersnpm run bench β Vitest benchmarks proving every batch operation at the MAX_OPERATIONS cap (10,000 items) completes in well under 100msnpm run test:mcp β Vibrissa (npm: @jmoak/vibrissa) MCP protocol cases (requires npm run build first; no Python)tests/contracts/*.tdd and emit to tests/integration/vibrissa/cases/ via tdd-dsl locally (npm run contracts:emit if tdd-dsl is on your PATH). CI runs only the committed JSON with vib run.Visit http://localhost:6274 for the web inspector UI.
Supports all IANA timezone identifiers including:
America/New_York, America/Los_Angeles, America/Toronto, etc.Europe/London, Europe/Paris, Europe/Berlin, etc.Asia/Tokyo, Asia/Shanghai, Asia/Dubai, etc.Australia/Sydney, Australia/Melbourne, etc.This project is powered by Luxon, the excellent DateTime library that provides robust timezone handling and date arithmetic. We're grateful to the Luxon team for creating such a reliable foundation for temporal operations.
MIT License - see the LICENSE file for details.
See GitHub Releases for detailed changes.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/jmoak-chrono-mcp)<a href="https://allmcps.com/mcp/jmoak-chrono-mcp"><img src="https://allmcps.com/api/badge/jmoak-chrono-mcp?style=directory" alt="JMoak Chrono Mcp on AllMCPs" /></a>