Skip to main content
Glama

Time

by TheoBrigitte
MIT License
6
  • Linux
  • Apple
README.md6.56 kB
<p align="center"> <img src="assets/mcp-time.png" alt="MCP time logo" height="100px"> </p> <div align="center"> <a href="https://github.com/TheoBrigitte/mcp-time/releases"><img src="https://img.shields.io/github/release/TheoBrigitte/mcp-time.svg" alt="Github release"></a> <a href="https://github.com/TheoBrigitte/mcp-time/actions/workflows/go.yaml"><img src="https://github.com/TheoBrigitte/mcp-time/actions/workflows/go.yaml/badge.svg?branch=main" alt="Github action"></a> <a href="https://pkg.go.dev/github.com/TheoBrigitte/mcp-time"><img src="https://pkg.go.dev/badge/github.com/TheoBrigitte/mcp-time.svg)](https://pkg.go.dev/github.com/TheoBrigitte/mcp-time"></a> <strong>Time MCP Server</strong> *A Model Context Protocol server that enables AI assistants to interact with time* </div> ## Overview The Time MCP Server is a [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol) 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 backend, allowing for complex time manipulations through natural language interactions. ## Features - **Time Manipulation**: Get current time, convert between timezones, and add or subtract durations. - **Natural Language Parsing**: Understands relative time expressions like "yesterday" or "next month". - **Time Comparison**: Compare two different times. - **Flexible Formatting**: Supports a wide variety of predefined and custom time formats. - **MCP Compliance**: Fully compatible with the Model Context Protocol standard. - **Multiple Transports**: Can be run using `stdio` for simple integrations or as an `HTTP stream` server for network access. ## Installation This MCP server can be integrated with various AI assistants that support the Model Context Protocol. ### On Cursor Use the link below to install directly in [Cursor](https://cursor.com). <a href="cursor://anysphere.cursor-deeplink/mcp/install?name=time&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCJ0aGVvMDEvbWNwLXRpbWU6bGF0ZXN0Il19"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/deeplink/mcp-install-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://cursor.com/deeplink/mcp-install-light.svg"> <img alt="Add to Cursor" src="https://cursor.com/deeplink/mcp-install-light.svg" width="200"> </picture> </a> ### Using Docker Copy the following JSON configuration into your MCP client to run the server using Docker: ```json { "mcpServers": { "time": { "command": "docker", "args": [ "run", "--rm", "-i", "theo01/mcp-time:latest" ] } } } ``` ### Using binary Copy the following JSON configuration into your MCP client to run the server using the binary: ```json { "mcpServers": { "time": { "command": "mcp-time" } } } ``` You need to install the `mcp-time` binary on your system. You can do this in several ways: #### Install from releases You can download the latest binary from the [releases page](https://github.com/TheoBrigitte/mcp-time/releases). ```bash # Replace OS-ARCH with your operating system and architecture (e.g., linux-amd64, darwin-arm64) curl -Lo mcp-time https://github.com/TheoBrigitte/mcp-time/releases/latest/download/mcp-time.OS-ARCH install -D -m 755 ./mcp-time ~/.local/bin/mcp-time ``` #### Install with Go ```bash go install github.com/TheoBrigitte/mcp-time/cmd/mcp-time@latest ``` This will install the `mcp-time` binary in your `$GOPATH/bin` directory. #### Building from Source ```bash git clone https://github.com/TheoBrigitte/mcp-time.git cd mcp-time make install ``` This will build and install the `mcp-time` binary in the `~/.local/bin` directory. ## Usage ### Basic Usage Start the MCP server with the default `stdio` transport: ```bash mcp-time ``` Start the MCP server with the `stream` transport: ```bash mcp-time --transport stream --address "http://localhost:8080/mcp" ``` ### Advanced Usage The server supports several command-line options for more advanced configurations: ``` $ mcp-time --help An MCP (Model Context Protocol) server which provides utilities to work with time and dates. Usage: mcp-time [flags] Flags: --address string Listen address for Stream HTTP Server (only for --transport stream) (default "http://localhost:8080/mcp") -h, --help help for mcp-time --log-file string Path to log file (logs is disabled if not specified) -t, --transport string Transport layer: stdio, stream. (default "stdio") --version Print version information and exit ``` ## Available Tools ### `relative_time` Get a time based on a relative natural language expression. **Parameters:** - `text` (required): The natural language expression (e.g., `yesterday`, `5 minutes ago`, `next month`). - `time` (optional): A reference time for the relative expression. Defaults to current time. - `timezone` (optional): The target timezone for the output. - `format` (optional): The output format for the time. ### `convert_timezone` Convert a given time between timezones. **Parameters:** - `time` (required): The input time string. It can be in various formats. - `input_timezone` (optional): The timezone of the input time. - `output_timezone` (optional): The target timezone for the output. - `format` (optional): The output format for the time. ### `current_time` Get the current time. **Parameters:** - `format` (optional): The output format for the time. Can be a predefined format (e.g., `RFC3339`, `Kitchen`) or a custom Go layout. - `timezone` (optional): The target timezone in IANA format (e.g., `America/New_York`). Defaults to UTC. ### `add_time` Add or subtract a duration to a given time. **Parameters:** - `time` (required): The input time string. - `duration` (required): The duration to add or subtract (e.g., `2h30m`, `-1h`). - `timezone` (optional): The target timezone for the output. - `format` (optional): The output format for the time. ### `compare_time` Compare two times. **Parameters:** - `time_a` (required): The first time to compare. - `time_b` (required): The second time to compare. **Returns:** - `-1` if `time_a` is before `time_b`. - `0` if `time_a` is equal to `time_b`. - `1` if `time_a` is after `time_b`. ## Credits - https://github.com/araddon/dateparse - https://github.com/tj/go-naturaldate - https://github.com/mark3labs/mcp-go

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/TheoBrigitte/mcp-time'

If you have feedback or need assistance with the MCP directory API, please join our Discord server