The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Currentdt MCP listing page.
Real-time date and time access for AI assistants via Model Context Protocol (MCP)
Built for AI, Built with AI - Enhancing AI assistant capabilities through intelligent tooling
@strix-ai/currentdt-mcp is an MCP server that provides AI assistants with instant access to current date and time information. Essential for generating timestamped code, migration files, and dated documentation.
Requires Node.js 18 or newer.
timezone: "Asia/Tokyo" on the current time, and a
convert_timezone tool that is DST-correct for the date in questionYYYY-MM-DD HH:mm Z)structuredContent with a declared schema, plus plain text for older clientsnpx -y and go; Node 18+Every client below uses the same server entry. npx -y fetches the package on first
use and suppresses the install prompt, so nothing needs to be installed beforehand.
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json in a project:
One-click: download currentdt-mcp.mcpb from the
latest release and
open it -- Claude Desktop installs it as an extension. No Node, npm or config file needed.
Or by config: edit claude_desktop_config.json -- on macOS at
~/Library/Application Support/Claude/, on Windows at %APPDATA%\Claude\:
Add to .vscode/mcp.json in a workspace, or under "mcp" in user settings.json:
Add to ~/.codeium/windsurf/mcp_config.json, same mcpServers shape as Cursor.
If you prefer a fixed install over npx, run npm install -g @strix-ai/currentdt-mcp
and use "command": "currentdt-mcp" with no args in any of the configs above.
User: "Create a migration to add user preferences table"
Result: Migration file named 2025-08-26-143000_add_user_preferences.sql with current timestamp
MCP Tool Call Example:
User: "Generate a logger that includes timestamps"
Result: Logger implementation with current ISO datetime format
User: "Update the changelog with today's date"
Result: Changelog entry with current date: ## [Unreleased] - 2026-09-16
get_current_datetimeParameters:
format (optional): "iso" (default) or a token pattern like "YYYY-MM-DD HH:mm:ss"timezone (optional): IANA name, e.g. "Asia/Tokyo". Sets the zone for local,
offset, timezone and any token format. Defaults to the host's zone. iso/utc
are always UTC regardless.provider (optional): "local" (default) or "remote"Returns: the formatted string as text content, plus structuredContent stating the
same instant from every clock -- so there is never any doubt whether a value is UTC or local:
Invalid input (a token-less format, an unknown timezone, a failed provider) comes
back as a tool error (isError: true) with a message written to be read by the model.
convert_timezoneRe-states a time in another zone, DST-correct for the date -- the case where a remembered offset is most likely wrong.
Parameters:
time (required): ISO 8601. With an offset ("2026-03-29T01:30:00+01:00", "...Z")
it pins an instant. Without one it is a wall-clock reading and from is required.from (optional): IANA zone the wall-clock time was read in.to (required): IANA zone to convert into.format (optional): token pattern for the text result, rendered in to.Returns: the same structured shape as above (minus provider), plus from and
dstTransition -- true when the instant is within an hour of a DST changeover in to.
Result: local: "2026-07-15T15:00:00.000+02:00". The same call for a January date yields
+01:00, because the offset follows the calendar, not a constant.
A wall-clock time that never exists (the spring-forward gap) resolves to the instant
after the gap; one that exists twice (the autumn repeat) resolves to the first. An
offset-less time with no from is refused rather than guessed.
Example:
Create currentdt-config.json for custom settings:
Environment variables override the file: CURRENTDT_FORMAT, CURRENTDT_PROVIDER,
CURRENTDT_DEBUG, CURRENTDT_CONFIG.
Timezone:
"iso"returns UTC. Every token pattern renders the wall clock intimezone(default: the host's zone). Add theZtoken to emit the real UTC offset -- never write a literalZinto a pattern, since that would label local digits as UTC.
For timezone: "Europe/Berlin" (UTC+02:00 in summer), at the instant 2025-08-26T14:30:00.123Z:
| format | output | zone |
|---|---|---|
"iso" | 2025-08-26T14:30:00.123Z | UTC |
"YYYY-MM-DD" | 2025-08-26 | local |
"YYYY-MM-DD HH:mm:ss" | 2025-08-26 16:30:00 | local |
"MM/DD/YYYY" | 08/26/2025 | local |
"YYYY-MM-DD-HHmmss" | 2025-08-26-163000 | local |
"YYYY-MM-DDTHH:mm:ss.SSSZ" | 2025-08-26T16:30:00.123+02:00 | local + offset |
Tokens: YYYY MM DD HH mm ss SSS Z (+02:00) ZZ (+0200).
Named patterns: filename, logdate, simple.
A pattern must contain at least one token. Free text such as "what time is it" is
rejected rather than echoed back.
npm run build - Build TypeScriptnpm test - Run all testsnpm run lint - ESLint checknpm run format - Prettier formatgit checkout -b feature/amazing-featuregit commit -m 'Add amazing feature'git push origin feature/amazing-featureMIT License - see LICENSE file for details.
Made with ❤️ by Biswajit Panday