MCP Time Server logo

MCP Time Server

by MCP-Mirror

The MCP Time Server is a Python-based microservice providing advanced time-related utilities across different timezones. It offers functionality for retrieving current times and converting times between various global timezones.

View on GitHub

Last updated: N/A

MCP Time Server

Overview

The MCP Time Server is a sophisticated Python-based microservice designed to provide advanced time-related utilities across different timezones. It offers robust functionality for retrieving current times and converting times between various global timezones.

Project Details

  • Version: 0.1.1
  • Python Compatibility: Python 3.11+

Features

  • Current Time Retrieval: Get the current time for any IANA timezone
  • Time Zone Conversion: Convert times between different time zones
  • Comprehensive Validation: Robust input validation using Pydantic models
  • Async Server Architecture: Built with asyncio for efficient performance
  • Flexible Configuration: Configurable through environment variables and config files

Dependencies

Core dependencies:

  • mcp (>=1.6.0)
  • pydantic (>=2.11.2)
  • PyYAML (>=6.0.2)
  • pyz (>=0.4.3)

Development dependencies:

  • pytest (>=8.3.5)

Installation

Prerequisites

  • Python 3.11 or higher
  • pip
  • (Optional) Virtual environment recommended

Install from PyPI

pip install chuk-mcp-time-server

Install from Source

  1. Clone the repository:
git clone <repository-url>
cd chuk-mcp-time-server
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
  1. Install the package:
pip install .  # Installs the package in editable mode

Development Installation

To set up for development:

pip install .[dev]  # Installs package with development dependencies

Running the Server

Command-Line Interface

chuk-mcp-time-server

Programmatic Usage

from chuk_mcp_time_server.main import main

if __name__ == "__main__":
    main()

Environment Variables

  • NO_BOOTSTRAP: Set to disable component bootstrapping
  • Other configuration options can be set in the configuration files

Available Tools

1. Get Current Time

Input:

  • timezone: IANA timezone name (e.g., 'America/New_York')

Example:

get_current_time('Europe/London')

Returns:

  • Current time in the specified timezone
  • Timezone details
  • Daylight Saving Time (DST) status

2. Convert Time

Input:

  • source_timezone: Source timezone (IANA format)
  • time: Time in HH:MM (24-hour) format
  • target_timezone: Target timezone (IANA format)

Example:

convert_time('America/New_York', '14:30', 'Europe/Paris')

Returns:

  • Source time details
  • Target time details
  • Time difference between zones

Development

Code Formatting

  • Black is used for code formatting
  • isort is used for import sorting
  • Line length is set to 88 characters

Running Tests

pytest

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Ensure code passes formatting and testing
  4. Commit your changes (git commit -m 'Add some AmazingFeature')
  5. Push to the branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request

License

MIT License