An open API service indexing awesome lists of open source software.

https://github.com/odgrim/mcp-datetime


https://github.com/odgrim/mcp-datetime

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

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