Provides date and time manipulation tools powered by the date-fns library, enabling operations like formatting, adding/subtracting durations, calculating differences, and comparing dates
Date Operations MCP
Lightweight Model Context Protocol (MCP) server exposing common date/time operations powered by date-fns. Built on fastmcp with an HTTP stream transport.
Features
now: Current timestamp in ISO 8601
format: Format a date using Unicode tokens (UTS #35)
add / subtract: Add or subtract a duration from a date
difference: Compute difference between two dates in a chosen unit
check: Compare two dates (after, before, equal)
Requirements
Node.js 18+ (or 20+ recommended)
Install
Run (dev)
Build & Run (prod)
Client integration (MCP over HTTP stream)
This server uses fastmcp with transportType: "httpStream" on port 3000. Point your MCP-capable client at http://localhost:3000.
Claude Desktop / Cursor: Configure an MCP HTTP server pointing to
http://localhost:3000. Refer to your client's MCP HTTP configuration docs and set the URL accordingly.
Note: The server exposes an HTTP stream suitable for MCP-aware clients. It is not a conventional REST API.
Tools
now
Description: Get the current date/time.
Parameters: none
Returns: ISO 8601 string
Example result:
format
Description: Format a date.
Parameters:
date(string, ISO 8601)format(string, Unicode tokens per date-fns v4)
Returns: formatted string
Example call payload (conceptual):
add
Description: Add a duration to a date.
Parameters:
date(string, ISO 8601)duration(object) — all numeric fields are required; pass0if unusedyears,months,weeks,days,hours,minutes,seconds
Returns: ISO 8601 string (result date)
Example:
subtract
Description: Subtract a duration from a date.
Parameters: same shape as
addReturns: ISO 8601 string (result date)
difference
Description: Difference between two dates in a given unit.
Parameters:
dateFrom(string, ISO 8601)dateTo(string, ISO 8601)unit(enum):seconds | minutes | hours | days | weeks | months | years
Returns: human-readable string with the numeric difference and unit
Example:
check
Description: Compare two dates.
Parameters:
firstDate(string, ISO 8601)secondDate(string, ISO 8601)operator(enum):after | before | equal
Returns: human-readable string indicating the boolean result
Example:
Notes and assumptions
Dates are expected as ISO 8601 strings (UTC recommended).
formatuses Unicode tokens (UTS #35) as in date-fns v4.For
add/subtract, provide all duration fields; use0when not needed.
Project scripts
dev:
tsx index.tsbuild:
tsc→ emitsdist/start:
node dist/index.jstest:
vitest --coverage
License
MIT © Denny Pradipta
This server cannot be installed