Skip to main content
Glama
TakanariShimbo

DateTime MCP Server

English | 日本語 | README

DateTime MCP Server

A Model Context Protocol (MCP) server that provides tools to get the current date and time in various formats. This is a TypeScript implementation of the datetime MCP server, demonstrating how to build MCP servers using the TypeScript SDK.

Features

  • Get current date and time in multiple formats (ISO, Unix timestamp, human-readable, etc.)

  • Configurable output format via environment variables

  • Timezone support

  • Custom date format support

  • Simple tool: get_current_time

Related MCP server: Time MCP Server

Usage

Choose one of these examples based on your needs:

Basic usage (ISO format):

{
  "mcpServers": {
    "datetime": {
      "command": "npx",
      "args": ["-y", "@takanarishimbo/datetime-mcp-server"]
    }
  }
}

Human-readable format with timezone:

{
  "mcpServers": {
    "datetime": {
      "command": "npx",
      "args": ["-y", "@takanarishimbo/datetime-mcp-server"],
      "env": {
        "DATETIME_FORMAT": "human",
        "TIMEZONE": "America/New_York"
      }
    }
  }
}

Unix timestamp format:

{
  "mcpServers": {
    "datetime": {
      "command": "npx",
      "args": ["-y", "@takanarishimbo/datetime-mcp-server"],
      "env": {
        "DATETIME_FORMAT": "unix",
        "TIMEZONE": "UTC"
      }
    }
  }
}

Custom format:

{
  "mcpServers": {
    "datetime": {
      "command": "npx",
      "args": ["-y", "@takanarishimbo/datetime-mcp-server"],
      "env": {
        "DATETIME_FORMAT": "custom",
        "DATE_FORMAT_STRING": "YYYY/MM/DD HH:mm",
        "TIMEZONE": "Asia/Tokyo"
      }
    }
  }
}

Configuration

The server can be configured using environment variables:

DATETIME_FORMAT

Controls the default output format of the datetime (default: "iso")

Supported formats:

  • iso: ISO 8601 format (2024-01-01T12:00:00.000Z)

  • unix: Unix timestamp in seconds

  • unix_ms: Unix timestamp in milliseconds

  • human: Human-readable format (Mon, Jan 1, 2024 12:00:00 PM)

  • date: Date only (2024-01-01)

  • time: Time only (12:00:00)

  • custom: Custom format using DATE_FORMAT_STRING environment variable

DATE_FORMAT_STRING

Custom date format string (only used when DATETIME_FORMAT="custom") Default: "YYYY-MM-DD HH:mm:ss"

Supported tokens:

  • YYYY: 4-digit year

  • YY: 2-digit year

  • MM: 2-digit month

  • DD: 2-digit day

  • HH: 2-digit hour (24-hour)

  • mm: 2-digit minute

  • ss: 2-digit second

TIMEZONE

Timezone to use (default: system timezone) Examples: "UTC", "America/New_York", "Asia/Tokyo"

Available Tools

get_current_time

Get the current date and time

Parameters:

  • format (optional): Output format, overrides DATETIME_FORMAT env var

  • timezone (optional): Timezone to use, overrides TIMEZONE env var

Development

  1. Clone this repository

    git clone https://github.com/TakanariShimbo/npx-datetime-mcp-server.git
    cd npx-datetime-mcp-server
  2. Install dependencies

    npm ci
  3. Build the project

    npm run build
  4. Test with MCP Inspector (optional)

    npx @modelcontextprotocol/inspector node dist/index.js

Publishing to NPM

This project includes automated NPM publishing via GitHub Actions. To set up publishing:

1. Create NPM Access Token

  1. Log in to NPM (create account if needed)

    npm login
  2. Create Access Token

2. Add Token to GitHub Repository

  1. Navigate to Repository Settings

    • Go to your GitHub repository

    • Click "Settings" tab

    • Go to "Secrets and variables" → "Actions"

  2. Add NPM Token

    • Click "New repository secret"

    • Name: NPM_TOKEN

    • Value: Paste your NPM token from step 1

    • Click "Add secret"

3. Setup GitHub Personal Access Token (for release script)

The release script needs to push to GitHub, so you'll need a GitHub token:

  1. Create GitHub Personal Access Token

    • Go to https://github.com/settings/tokens

    • Click "Generate new token" → "Generate new token (classic)"

    • Set expiration (recommended: 90 days or custom)

    • Select scopes:

      • repo (Full control of private repositories)

    • Click "Generate token"

    • Copy the generated token (starts with ghp_)

  2. Configure Git with Token

    # Option 1: Use GitHub CLI (recommended)
    gh auth login
    
    # Option 2: Configure git to use token
    git config --global credential.helper store
    # Then when prompted for password, use your token instead

4. Release New Version

Use the included release script to automatically version, tag, and trigger publishing:

# Increment patch version (0.1.0 → 0.1.1)
npm run release patch

# Increment minor version (0.1.0 → 0.2.0)
npm run release minor

# Increment major version (0.1.0 → 1.0.0)
npm run release major

# Set specific version
npm run release 1.2.3

5. Verify Publication

  1. Check GitHub Actions

    • Go to "Actions" tab in your repository

    • Verify the "Publish to npm" workflow completed successfully

  2. Verify NPM Package

Release Process Flow

  1. release.sh script updates version in all files

  2. Creates git commit and tag

  3. Pushes to GitHub

  4. GitHub Actions workflow triggers on new tag

  5. Workflow builds project and publishes to NPM

  6. Package becomes available globally via npm install

Creating Desktop Extension (DXT)

Desktop Extensions (.dxt) enable one-click installation of MCP servers in Claude Desktop. To create a DXT file for this server:

1. Initialize DXT Manifest

Run this command in the project root directory:

npx @anthropic-ai/dxt init

This will guide you through creating a manifest.json file. Here are the answers for this project:

✔ Extension name: @takanarishimbo/datetime-mcp-server
✔ Author name: TakanariShimbo
✔ Display name (optional): datetime
✔ Version: 0.3.0
✔ Description: A Model Context Protocol server that returns the current date and time
✔ Add a detailed long description? no
✔ Author email (optional): 
✔ Author URL (optional): 
✔ Homepage URL (optional): https://github.com/TakanariShimbo/npx-datetime-mcp-server
✔ Documentation URL (optional): https://github.com/TakanariShimbo/npx-datetime-mcp-server
✔ Support URL (optional): https://github.com/TakanariShimbo/npx-datetime-mcp-server
✔ Icon file path (optional, relative to manifest): icon.png
✔ Add screenshots? no
✔ Server type: Node.js
✔ Entry point: dist/index.js
✔ Does your MCP Server provide tools you want to advertise (optional)? yes
✔ Tool name: get_current_time
✔ Tool description (optional): Get the current date and time in various formats
✔ Add another tool? no
✔ Does your server generate additional tools at runtime? no
✔ Does your MCP Server provide prompts you want to advertise (optional)? no
✔ Add compatibility constraints? no
✔ Add user-configurable options? no
✔ Keywords (comma-separated, optional): datetime
✔ License: MIT
✔ Add repository information? yes
✔ Repository URL: git+https://github.com/TakanariShimbo/npx-datetime-mcp-server.git

2. Create DXT Package

npx @anthropic-ai/dxt pack

This creates a .dxt file that users can install in Claude Desktop with a single click.

Project Structure

npx-datetime-mcp-server/
├── src/
│   └── index.ts          # Main server implementation
├── package.json          # Package configuration
├── package-lock.json     # Dependency lock file
├── tsconfig.json         # TypeScript configuration
├── scripts/
│   └── release.sh        # Release automation script
├── .github/
│   └── workflows/
│       └── npm-publish.yml   # NPM publish workflow
├── manifest.json         # MCP server manifest for DXT file
├── icon.png              # icon for DXT file
├── datetime.dxt          # DXT file
├── .gitignore            # Git ignore file
├── docs/
    ├── README.md         # English documentation
    └── README_ja.md      # Japanese documentation

License

MIT

Available Tools

1 tool
get_current_timeB

Get the current date and time in various formats

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format for the datetime (optional, defaults to "iso" from env)
timezoneNoTimezone to use (optional, defaults to "UTC" from env)

TDQS

B3.1/5.0
Behavior2/5

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 mentions the tool returns data in 'various formats' but doesn't specify what those formats are, whether there are rate limits, authentication requirements, or how errors are handled. This leaves significant behavioral gaps for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's core functionality without any wasted words. It's appropriately sized and front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (simple time retrieval with 2 optional parameters) and 100% schema coverage, the description is minimally adequate. However, with no output schema and no annotations, it should ideally provide more context about return values and behavioral constraints to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already fully documents both parameters (format with enum values and timezone). The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current date and time'), and mentions the key capability of providing 'various formats'. However, it doesn't distinguish from siblings since there are none, so it can't achieve the full 5-point differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, prerequisites, or specific use cases. It simply states what the tool does without contextual usage information.

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.

  1. 1 tool update
    • First observedget_current_time

TDQS

B3.2/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clear and distinct purpose.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The naming follows a clear verb_noun pattern.

Tool Count2/5

A single tool for a DateTime server feels thin and under-scoped. While it covers the basic function of getting the current time, it lacks other common date/time operations like parsing, formatting, or calculations, making the server incomplete for typical use cases.

Completeness2/5

The server is severely incomplete for a DateTime domain. It only provides current time retrieval, missing essential operations such as date parsing, timezone conversions, date arithmetic, or formatting options beyond 'various formats', which limits its utility.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A 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.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    The 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 back
    184
    25
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    A Model Context Protocol server that provides current time in ISO8601 format with timezone support.
    1
    20
    MIT

Latest Blog Posts

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/TakanariShimbo/npx-datetime-mcp-server'

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