MCP DateTime
The MCP DateTime server provides datetime and timezone information through the Model Context Protocol (MCP). You can:
Get the current time in the system's local timezone
Get the current system timezone
Get the current time in any specified timezone (e.g., "America/New_York")
List all available timezones
Access information via resource URIs like
datetime://{timezone}ordatetime://listRun in Server-Sent Events (SSE) mode for HTTP-based communication
Integrate with AI systems that support MCP for timezone and datetime data
Provides a Node.js runtime environment for the MCP server, enabling it to deliver datetime and timezone information to AI systems.
Allows installation and distribution of the MCP DateTime server through the npm package registry.
Implements the MCP server using TypeScript for type safety and modern JavaScript features.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP DateTimewhat time is it in Tokyo right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP DateTime
A TypeScript implementation of a Model Context Protocol (MCP) server that provides datetime and timezone information to agentic systems and chat REPLs.
Overview
MCP DateTime is a simple server that implements the Model Context Protocol to provide datetime and timezone information to AI agents and chat interfaces. It allows AI systems to:
Get the current time in the local system timezone
Get the current time in any valid timezone
List all available timezones
Access timezone information through URI resources
Related MCP server: Time Tools MCP Server
Installation
From npm
npm install -g mcp-datetimeFrom source
git clone https://github.com/odgrmi/mcp-datetime.git
cd mcp-datetime
npm install
npm run buildUsage
Command Line
MCP DateTime can be run in two modes:
1. Standard I/O Mode (Default)
This mode is ideal for integrating with AI systems that support the MCP protocol through standard input/output:
mcp-datetime2. Server-Sent Events (SSE) Mode
This mode starts an HTTP server that provides SSE transport for the MCP protocol:
mcp-datetime --sseYou can also specify a custom port and URI prefix:
mcp-datetime --sse --port=8080 --prefix=/api/datetimeEnvironment Variables
PORT: Sets the port for SSE mode (default: 3000)URI_PREFIX: Sets the URI prefix for SSE mode (default: none)
Available Tools
MCP DateTime provides the following tools:
get-current-time
Returns the current time in the system's local timezone.
get-current-timezone
Returns the current system timezone.
get-time-in-timezone
Returns the current time in a specified timezone.
Parameters:
timezone: The timezone to get the current time for (e.g., "America/New_York")
list-timezones
Returns a list of all available timezones.
Resource URIs
MCP DateTime also provides access to timezone information through resource URIs:
datetime://{timezone}
Returns the current time in the specified timezone.
Example: datetime://America/New_York
datetime://list
Returns a list of all available timezones.
Common Timezones
The following common timezones are always available:
UTC
Europe/London
Europe/Paris
Europe/Berlin
America/New_York
America/Chicago
America/Denver
America/Los_Angeles
Asia/Tokyo
Asia/Shanghai
Asia/Kolkata
Australia/Sydney
Pacific/Auckland
SSE Endpoints
When running in SSE mode, the following endpoints are available:
/sse: SSE connection endpoint/message: Message endpoint for client-to-server communication/info: Basic server information
If a URI prefix is specified, it will be prepended to all endpoints.
Integration with AI Systems
MCP DateTime can be integrated with AI systems that support the Model Context Protocol. This allows AI agents to access accurate timezone and datetime information.
Development
Prerequisites
Node.js 14.16 or higher
npm
Setup
git clone https://github.com/odgrim/mcp-datetime.git
cd mcp-datetime
npm installBuild
npm run buildRun in Development Mode
npm run dev # Standard I/O mode
npm run dev:sse # SSE modeLicense
This project is licensed under the Mozilla Public License 2.0 - see the LICENSE file for details.
Available Tools
4 toolsget-current-timeB
Get the current time in the configured local timezone
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool gets current time but doesn't disclose behavioral traits like whether it's read-only, requires permissions, has rate limits, or what the output format is. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose with zero waste. Every word earns its place, making it appropriately sized for this simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema), the description is minimally adequate but lacks details on behavioral aspects like output format or usage context. It doesn't fully compensate for the absence of annotations and output schema, leaving gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline is 4. The description adds no parameter information, which is acceptable since there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('current time'), specifying it returns time in the configured local timezone. It distinguishes from siblings like get-time-in-timezone by focusing on local time, but doesn't explicitly contrast with get-current-timezone or list-timezones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like get-current-timezone or get-time-in-timezone. The description implies usage for local time retrieval but lacks context on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-current-timezoneB
Get the current system timezone
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does without behavioral details. It doesn't disclose whether this is a read-only operation, if it requires permissions, how it handles errors, or what format the timezone is returned in (e.g., IANA code, offset).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently conveys the essential information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that returns data. It doesn't specify what the output looks like (e.g., timezone name, offset, or structured object), which is critical for an agent to use the tool effectively. The simplicity of the tool mitigates this somewhat, but key behavioral context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't mention parameters, aligning with the schema. A baseline of 4 is applied since no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('current system timezone'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-current-time' or 'list-timezones', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get-current-time' (which might return time without timezone) or 'list-timezones' (which lists available timezones). The description lacks context about use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-time-in-timezoneC
Get the current time in a specific timezone
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | Yes | The timezone to get the current time for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves—for example, it doesn't mention error handling for invalid timezones, whether it returns formatted time or raw data, or any rate limits. This leaves significant gaps in understanding the tool's operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that performs a read operation. It doesn't explain what the return value looks like (e.g., formatted string, timestamp), error conditions, or how to handle invalid inputs. This leaves the agent with insufficient context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'timezone' fully documented in the schema. The description adds no additional meaning beyond what the schema provides, such as examples of valid timezone formats (e.g., 'America/New_York') or constraints. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'current time in a specific timezone', making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-current-time' (which might return time without timezone specification) or 'list-timezones' (which lists available timezones rather than getting time for one).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It doesn't mention alternatives like 'get-current-time' for time without timezone or 'list-timezones' for browsing timezones, nor does it specify prerequisites such as needing a valid timezone identifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-timezonesB
List all available timezones
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('List') but doesn't describe return format, pagination, rate limits, or error handling. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the return value looks like (e.g., list format, timezone identifiers), which is critical for a tool that lists data. This gap reduces usability for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, earning a high baseline score for not adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all available timezones'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get-current-timezone' or 'get-time-in-timezone', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get-current-timezone' or 'get-time-in-timezone'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from tool names alone.
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. Dates show when Glama detected each change.
4 tool updates
v1.0.0- Added
get-current-time - Added
get-current-timezone - Added
get-time-in-timezone - Added
list-timezones
TDQS
Every tool has a clearly distinct purpose with no ambiguity: get-current-time retrieves local time, get-current-timezone returns the system timezone, get-time-in-timezone fetches time for a specified zone, and list-timezones enumerates available zones. The descriptions make it impossible to confuse these tools.
All tool names follow a consistent verb_noun pattern with hyphens (e.g., get-current-time, list-timezones). This predictable naming scheme enhances readability and agent usability without any deviations.
With 4 tools, the server is well-scoped for handling date/time operations. Each tool earns its place by covering core functionalities: retrieving time, managing timezones, and listing options, making the count appropriate for the domain.
The tool surface provides complete coverage for basic date/time operations: it supports getting current time (locally and in specific zones), accessing timezone information, and listing all available zones. There are no obvious gaps for this focused purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Current time, timezone conversion & date math for AI agents. On Cloudflare Workers.
A real clock for AI agents: current time, timezone conversion, and DST facts from the IANA tzdb.
A time server that keeps your AI honest about time. Real clock + drift guard, zero dependencies.
Timezone MCP — wraps WorldTimeAPI (free, no auth)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA TypeScript server that provides time-related tools through the Model Context Protocol, allowing users to get current time in various timezones and convert times between different IANA timezones.MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server for time manipulation tasks, enabling AI models to get the current date/time and calculate duration between timestamps.72MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides time and timezone conversion capabilities, enabling LLMs to get current time information and perform timezone conversions using IANA timezone names.2MIT
- AlicenseNot gradedqualityCmaintenanceThe Time MCP Server is a Model Context Protocol (MCP) server that provides AI assistants and other MCP clients with standardized tools to perform time and date-related operations. This server acts as a bridge between AI tools and a robust time-handling back18425MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/odgrim/mcp-datetime'
If you have feedback or need assistance with the MCP directory API, please join our Discord server