Skip to main content
Glama
MCP DateTime

MCP DateTime

by odgrim
README.md
# 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](https://github.com/model-context-protocol/mcp) 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

## Installation

### From npm

```bash
npm install -g mcp-datetime
```

### From source

```bash
git clone https://github.com/odgrmi/mcp-datetime.git
cd mcp-datetime
npm install
npm run build
```

## Usage

### 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:

```bash
mcp-datetime
```

#### 2. Server-Sent Events (SSE) Mode

This mode starts an HTTP server that provides SSE transport for the MCP protocol:

```bash
mcp-datetime --sse
```

You can also specify a custom port and URI prefix:

```bash
mcp-datetime --sse --port=8080 --prefix=/api/datetime
```

### Environment 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

```bash
git clone https://github.com/odgrim/mcp-datetime.git
cd mcp-datetime
npm install
```

### Build

```bash
npm run build
```

### Run in Development Mode

```bash
npm run dev        # Standard I/O mode
npm run dev:sse    # SSE mode
```

## License

This project is licensed under the Mozilla Public License 2.0 - see the [LICENSE](LICENSE) file for details. 

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo recent community issues