mcp-datetime
According to the provided schema, the server exposes one tool, get_datetime, for retrieving the current date and time in various predefined formats.
Get the current date in standard (
date), slash (date_slash), or Japanese (date_jp) format.Get the current datetime in standard (
datetime), Japanese (datetime_jp), T-separated (datetime_t), ISO (iso,iso_basic), log (log,log_compact), or compact (compact) formats.Get filename-friendly timestamps (
filename_md,filename_txt,filename_log).Get time-only values (
time,time_jp) or compact date/time parts (compact_date,compact_time).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-datetimewhat's the current date in Japanese format?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-datetime
English | ζ₯ζ¬θͺ
A datetime formatting service implemented as an MCP server for the Claude Desktop Application. Supports generation of datetime strings in various formats.
Note: Day-to-day use is on macOS. Automated tests also run on Linux and Windows.
Prerequisites
Before using mcp-datetime, ensure you have the following tools installed:
uv (provides
uvx). uvx downloads a suitable Python (3.10 or later) if needed.
Related MCP server: DateTime MCP Server
Features
β¨ Support for various datetime formats
π―π΅ Japanese language support, including Japanese era (wareki) and weekday
π§© Custom format patterns that work the same on macOS, Linux and Windows
π Optimized formats for filename generation
π Any IANA timezone (
Asia/Tokyo,UTC,America/New_York, ...)π§ Seamless integration with Claude Desktop App
MCP Server Components
Tools
The server implements four tools:
get_datetime: Get current date and time in various formatsformat(required): a format name (see Supported Formats) or a custom pattern containing%(see Custom Patterns)timezone(optional): an IANA timezone name such asAsia/Tokyo,UTCorAmerica/New_York. When omitted, the local timezone of the machine is usedReturns formatted datetime string based on specified format
convert_time: Convert a time or date-time between timezonestime(required),target_timezone(required),source_timezone(optional, local by default),format(optional,datetimeby default)Returns both sides with timezone, UTC offset and weekday, plus the time difference. Adds a note when the time is skipped or repeated by a daylight saving time change
shift_datetime: Add or subtract time (negative numbers for the past)years,months,weeks,days,hours,minutes,seconds, and optionalbase(now by default),timezone,formatMonths and years keep the end of the month in range (2024-01-31 + 1 month = 2024-02-29). Days keep the wall time; hours are elapsed time
get_datetime_info: Details of a date-time and its difference from anotherOptional
datetime(now by default),reference(now by default),timezoneReturns ISO date-time, timezone, UTC offset, DST, Unix time, weekday (English and Japanese), Japanese era, day of year, ISO week, quarter, leap year, days in the month, and days/seconds from the reference (e.g. "in 15 days")
Date-time input of these tools accepts 2024-12-10, 2024-12-10 14:30, 2024-12-10T14:30:00+09:00, 2024/12/10, 2024εΉ΄12ζ10ζ₯ 14ζ30ε, Japanese era such as 什ε6εΉ΄12ζ10ζ₯ or R6.12.10, and a time only such as 14:30 (today).
Usage with Claude Code
claude mcp add mcp-datetime -- uvx mcp-datetimeUsage with Claude Desktop App
Add the following to your config file:
Config file location (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-datetime": {
"command": "uvx",
"args": ["mcp-datetime"]
}
}
}Updating to the Latest Version
uvx reuses the version it has already cached, so it may keep starting an older version after a new release. To switch to the latest version, clear the cache once and then restart Claude Code or Claude Desktop:
uv cache clean mcp-datetimeThe next start downloads the latest version. To always check for the latest version at every start, use mcp-datetime@latest instead of mcp-datetime in the commands and config above.
About Installation
If you need to install the package directly (e.g., for development or source code inspection), you can use one of these methods:
Install from PyPI
pip install mcp-datetimeInstall from GitHub Source
git clone https://github.com/ZeparHyfar/mcp-datetime.git cd mcp-datetime pip install -e .Example
claude_desktop_config.jsonfor manual installation{ "mcpServers": { "mcp-datetime": { "command": "/path/to/your/python", "args": ["-m", "mcp_datetime"] } } }Replace "/path/to/your/python" with the Python interpreter where you installed the package
e.g., "/usr/local/bin/python3" or "/Users/username/.pyenv/versions/3.13.0/bin/python3"
Run the tests
uv run --group dev pytest
Basic Examples
Command format
# Standard datetime format call datetime-service.get_datetime {"format": "datetime"} # Result: 2024-12-10 00:54:01 # Japanese format call datetime-service.get_datetime {"format": "datetime_jp"} # Result: 2024εΉ΄12ζ10ζ₯ 00ζ54ε01η§ # Filename format call datetime-service.get_datetime {"format": "filename_md"} # Result: 20241210005401.md # Japanese era (wareki) call datetime-service.get_datetime {"format": "date_wareki"} # Result: 什ε6εΉ΄12ζ10ζ₯ # Another timezone call datetime-service.get_datetime {"format": "datetime", "timezone": "America/New_York"} # Result: 2024-12-09 10:54:01 # Custom pattern call datetime-service.get_datetime {"format": "%Y/%-m/%-d (%a)"} # Result: 2024/12/10 (Tue) # Convert between timezones call datetime-service.convert_time {"time": "2024-12-10 14:30", "source_timezone": "Asia/Tokyo", "target_timezone": "America/New_York"} # Result: source 2024-12-10 14:30:00 (+09:00), target 2024-12-10 00:30:00 (-05:00), time_difference -14:00 # One month later, in Japanese era call datetime-service.shift_datetime {"base": "什ε6εΉ΄1ζ31ζ₯", "months": 1, "format": "date_wareki"} # Result: 什ε6εΉ΄2ζ29ζ₯ # Days until a date call datetime-service.get_datetime_info {"datetime": "2024-12-25", "reference": "2024-12-10"} # Result: ... "days_from_reference": 15, "relative": "in 15 days", "relative_jp": "15ζ₯εΎ" ...Claude Desktop App prompt examples
User
Please tell me the current time in date_slash formatClaude
I'll get the current date in date_slash format. The current date is 2024/12/12
Supported Formats
Format Name | Example | Description |
date | 2024-12-10 | Standard date format |
date_slash | 2024/12/10 | Date with slashes |
date_jp | 2024εΉ΄12ζ10ζ₯ | Japanese date format |
datetime | 2024-12-10 00:54:01 | Standard datetime |
datetime_jp | 2024εΉ΄12ζ10ζ₯ 00ζ54ε01η§ | Japanese datetime |
datetime_t | 2024-12-10T00:54:01 | DateTime with T separator |
compact | 20241210005401 | Compact format for IDs |
compact_date | 20241210 | Compact date only |
compact_time | 005401 | Compact time only |
filename_md | 20241210005401.md | Markdown filename |
filename_txt | 20241210005401.txt | Text filename |
filename_log | 20241210005401.log | Log filename |
iso | 2024-12-10T00:54:01+0900 | ISO 8601 format |
iso_basic | 20241210T005401+0900 | Basic ISO format |
log | 2024-12-10 00:54:01.123456 | Log format with microseconds |
log_compact | 20241210_005401 | Compact log format |
time | 00:54:01 | Time only |
time_jp | 00ζ54ε01η§ | Japanese time format |
date_wareki | 什ε6εΉ΄12ζ10ζ₯ | Japanese era date |
datetime_wareki | 什ε6εΉ΄12ζ10ζ₯ 00ζ54ε01η§ | Japanese era datetime |
date_wareki_short | R6.12.10 | Japanese era date, short |
date_jp_weekday | 2024εΉ΄12ζ10ζ₯οΌη«οΌ | Japanese date with weekday |
datetime_jp_weekday | 2024εΉ΄12ζ10ζ₯οΌη«οΌ 00ζ54ε01η§ | Japanese datetime with weekday |
weekday_jp | η«ζζ₯ | Japanese weekday |
Japanese era (wareki) is supported from 1873-01-01, when Japan adopted the Gregorian calendar. The first year of an era is written as ε
εΉ΄ (e.g. 什εε
εΉ΄5ζ1ζ₯), except in date_wareki_short (R1.5.1).
Custom Patterns
If format contains %, it is used as a pattern (up to 200 characters).
Standard strftime directives:
%Y %m %d %H %I %M %S %f %p %a %A %b %B %j %U %W %G %V %u %w %z %Z %c %x %X %%No leading zero (works on Windows too):
%-m %-d %-H %-I %-M %-S %-j %-yJapanese directives:
Directive | Meaning | Example (2019-05-01) |
| Era name | 什ε |
| Era initial | R |
| Era year (ε for year 1) | ε |
| Era year (always a number) | 1 |
| Weekday | ζ°΄ |
| Weekday | ζ°΄ζζ₯ |
Example: %Je%JyεΉ΄%-mζ%-dζ₯οΌ%JaοΌ β 什εε
εΉ΄5ζ1ζ₯οΌζ°΄οΌ
Debugging
Since MCP servers run over stdio, debugging can be challenging. We recommend using the MCP Inspector:
Using PyPI package
npx @modelcontextprotocol/inspector uvx mcp-datetimeUsing downloaded source code from GitHub
git clone https://github.com/ZeparHyfar/mcp-datetime.git npx @modelcontextprotocol/inspector uv --directory ./mcp-datetime run mcp-datetime
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
4 toolsconvert_timeA
Convert a time or date-time from one timezone to another. Returns both sides with their timezone, UTC offset and weekday, and the time difference. A note is added when the time is skipped or repeated by a daylight saving time change. Accepted forms: '2024-12-10', '2024-12-10 14:30', '2024-12-10T14:30:00+09:00', '2024/12/10', '2024εΉ΄12ζ10ζ₯ 14ζ30ε', Japanese era such as '什ε6εΉ΄12ζ10ζ₯' or 'R6.12.10', and a time only such as '14:30' (today).
| Name | Required | Description | Default |
|---|---|---|---|
| time | Yes | Time or date-time to convert, e.g. '14:30' or '2024-12-10 14:30'. | |
| format | No | Output format name or custom pattern, as in get_datetime. | datetime |
| source_timezone | No | IANA timezone of 'time', e.g. 'Asia/Tokyo'. Omit to use the local timezone. An offset written in 'time' (+09:00, Z) takes precedence. | |
| target_timezone | Yes | IANA timezone to convert to, e.g. 'America/New_York'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden and does a solid job: it discloses the return shape (both sides with timezone, UTC offset, weekday, plus the time difference) and the DST edge-case behavior (a note when a time is skipped or repeated). The remaining gap is minor for a pure computation tool β no side effects, no auth or rate-limit concerns are mentioned, though none plausibly apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and the return contract, then the DST caveat, then the input grammar β a sensible order with no filler. The long format enumeration is dense but every item removes a real ambiguity about what will parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still summarizes the return contract and the one non-obvious behavioral wrinkle (DST skip/repeat notes), and it fully covers the two required inputs. Nothing an agent needs in order to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description earns an upgrade by enumerating concrete accepted forms for 'time' β ISO date, space-separated datetime, offset-bearing ISO, slash-separated, Japanese era names such as '什ε6εΉ΄12ζ10ζ₯' and 'R6.12.10', and time-only treated as today β which the schema's one-line example does not convey. It also reinforces that an offset written in the input overrides source_timezone. The 'format' parameter is left to its schema description by reference to get_datetime, so this is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Convert a time or date-time from one timezone to another') and immediately scopes what the result contains. Against siblings get_datetime, shift_datetime and get_datetime_info, the timezone-conversion framing is distinct enough that an agent can route correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: convert when you have a time in one zone and need it in another. There is no explicit when-to-use versus shift_datetime or get_datetime, and no stated exclusions or prerequisites. The accepted-input-forms list indirectly tells the agent this tool is the right one for parsing loose date strings, but that is inference rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datetimeA
Get the current date and time in the given format.
The time is in the local timezone of the machine running the server, unless 'timezone' is given as an IANA name such as 'Asia/Tokyo' or 'UTC'.
'format' is one of the format names below, or a custom pattern containing '%'. Custom patterns accept strftime directives (%Y %m %d %H %M %S %a %A %b %B %z %Z %j ...), %-m %-d %-H %-M %-S %-I %-j %-y for no leading zero, and these Japanese directives: %Je era name (什ε), %JE era initial (R), %Jy era year (ε for year 1), %JY era year (always a number), %Ja weekday (η«), %JA weekday (η«ζζ₯). Example: '%Je%JyεΉ΄%-mζ%-dζ₯οΌ%JaοΌ' -> 什ε6εΉ΄12ζ10ζ₯οΌη«οΌ. Japanese era is supported from 1873-01-01.
Available formats (example: 2024-12-10 00:54:01 JST):
date: 2024-12-10
date_slash: 2024/12/10
date_jp: 2024εΉ΄12ζ10ζ₯
datetime: 2024-12-10 00:54:01
datetime_jp: 2024εΉ΄12ζ10ζ₯ 00ζ54ε01η§
datetime_t: 2024-12-10T00:54:01
compact: 20241210005401
compact_date: 20241210
compact_time: 005401
filename_md: 20241210005401.md
filename_txt: 20241210005401.txt
filename_log: 20241210005401.log
iso: 2024-12-10T00:54:01+0900
iso_basic: 20241210T005401+0900
log: 2024-12-10 00:54:01.123456
log_compact: 20241210_005401
time: 00:54:01
time_jp: 00ζ54ε01η§
date_wareki: 什ε6εΉ΄12ζ10ζ₯
datetime_wareki: 什ε6εΉ΄12ζ10ζ₯ 00ζ54ε01η§
date_wareki_short: R6.12.10
date_jp_weekday: 2024εΉ΄12ζ10ζ₯οΌη«οΌ
datetime_jp_weekday: 2024εΉ΄12ζ10ζ₯οΌη«οΌ 00ζ54ε01η§
weekday_jp: η«ζζ₯
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | Format name such as 'datetime', or a custom pattern containing '%'. See the tool description. | |
| timezone | No | IANA timezone name such as 'Asia/Tokyo', 'UTC' or 'America/New_York'. Omit to use the local timezone of the machine. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses the default timezone source (the server machine's local zone), the IANA override, the full set of supported directives, and a concrete boundary condition (Japanese era supported from 1873-01-01). It says nothing about side effects, cost, or rate limits, though for a pure clock read those gaps are minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose, timezone behavior, then format reference is a sensible front-loaded order. The 25-item format table is long but earns its place because the schema declares no enum, so this is the only place the valid names exist; a slightly tighter grouping of the filename_* and wareki variants would trim it further.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is correctly omitted, and both parameters are fully covered with defaults and fallback behavior. The one missing piece relative to a four-tool family is routing guidance distinguishing this from the conversion, shifting, and info siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, yet the description goes well beyond it by enumerating every accepted format name with a rendered example and by documenting custom strftime patterns and the Japanese %J directives that the schema only alludes to. That is exactly the meaning an agent needs to construct a valid 'format' value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ('Get the current date and time') plus the format scoping. It never mentions the siblings convert_time, shift_datetime, or get_datetime_info, so an agent cannot tell from the description alone that this tool only reads the current instant rather than converting or offsetting one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'current' signals a read of now, and the timezone sentence hints at localization. There is no explicit statement about when to prefer get_datetime_info over this tool, or that this tool is inappropriate for arithmetic on existing timestamps (which the sibling tools cover).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datetime_infoA
Get details of a date-time (default: now): ISO date-time, timezone, UTC offset, daylight saving time, Unix time, weekday in English and Japanese, Japanese era (wareki), day of year, ISO week, quarter, leap year, days in the month, and the difference from a reference date-time (default: now) in days and seconds, e.g. how many days until a date. Accepted forms: '2024-12-10', '2024-12-10 14:30', '2024-12-10T14:30:00+09:00', '2024/12/10', '2024εΉ΄12ζ10ζ₯ 14ζ30ε', Japanese era such as '什ε6εΉ΄12ζ10ζ₯' or 'R6.12.10', and a time only such as '14:30' (today).
| Name | Required | Description | Default |
|---|---|---|---|
| datetime | No | Date-time to inspect. Omit for now. | |
| timezone | No | IANA timezone for reading and showing the date-times. Omit for local. | |
| reference | No | Date-time to compare with. Omit to compare with now. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does: it discloses that everything defaults to now, that a reference date enables a signed day/second delta, and that multiple timezone representations are produced for the same instant. It doesn't discuss error behavior when an input form is unparseable, but the tool is a transparent read-only computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then defaults, then result fields, then accepted formats β a sensible order with no filler sentences. The long field enumeration is dense but each item is informational rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still enumerates key fields, which is mildly redundant but helps the agent decide to call it. Inputs, defaults, comparison semantics, and accepted formats are all present; only sibling routing and parse-failure behavior are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3, but the description adds real value the schema lacks: a concrete list of accepted datetime input formats (ISO, slash-separated, Japanese kanji form, era notations like '什ε6εΉ΄12ζ10ζ₯' and 'R6.12.10', and time-only meaning today). That format guidance is the main practical risk of mis-calling the tool and it is covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get details of a date-time') and then enumerates the exact fields returned (ISO, timezone, wareki, ISO week, quarter, diff from reference), making the scope unambiguous. It doesn't explicitly name the siblings get_datetime/convert_time/shift_datetime, so differentiation is implied by the inspection framing rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the useful defaults (omit for now, reference defaults to now) and gives a concrete use case ('how many days until a date'), which implies when to call it. It never says when to prefer it over convert_time or shift_datetime, so the agent must infer the boundary from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shift_datetimeA
Add or subtract an amount of time to a date-time (default: now). Use negative numbers for the past. Years, months, weeks and days keep the wall time; if the day does not exist in the new month, the last day of that month is used (2024-01-31 + 1 month = 2024-02-29). Hours, minutes and seconds are elapsed time. Accepted forms: '2024-12-10', '2024-12-10 14:30', '2024-12-10T14:30:00+09:00', '2024/12/10', '2024εΉ΄12ζ10ζ₯ 14ζ30ε', Japanese era such as '什ε6εΉ΄12ζ10ζ₯' or 'R6.12.10', and a time only such as '14:30' (today).
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Start date-time. Omit to start from now. | |
| days | No | ||
| hours | No | ||
| weeks | No | ||
| years | No | ||
| format | No | Output format name or custom pattern, as in get_datetime. | datetime |
| months | No | ||
| minutes | No | ||
| seconds | No | ||
| timezone | No | IANA timezone of 'base' and of the result. Omit for local time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does substantial work: it discloses the calendar-vs-elapsed distinction between years/months/weeks/days and hours/minutes/seconds, and the month-end clamping rule with a concrete example (2024-01-31 + 1 month = 2024-02-29). This is non-obvious behavior an agent could not infer from the schema. It does not say what happens on unparseable input or how errors surface, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and default are front-loaded in the first sentence, followed by semantics and then a format list. The long enumeration of accepted forms is dense but each example adds real parsing knowledge rather than restating the schema. It is a single unbroken paragraph, which slightly hurts scannability but not substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, all-optional tool with no annotations, the description covers the defaults, the unit semantics, the month-end edge case, and the full range of accepted input formats. Return values are handled by the existing output schema, so leaving them out is correct. Nothing an agent needs in order to construct a valid call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 30%, so the description must compensate, and it does: the accepted base formats are enumerated in detail (ISO, slash form, Japanese, era notation, time-only) and the six unit parameters are given real meaning via the calendar/elapsed distinction and negative-value rule. The 'format' parameter is left to the schema's reference to get_datetime, and timezone is not discussed in the description, so the compensation is strong but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Add or subtract an amount of time to a date-time (default: now)'. An agent can immediately distinguish this arithmetic tool from get_datetime (read current) and convert_time (timezone conversion) without opening the schema. It stops short of naming those siblings explicitly, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful calling guidance: omit 'base' to start from now, and use negative numbers to shift into the past. However, there is no statement of when to prefer this over convert_time or get_datetime, and no exclusions or error conditions. Usage is implied by the purpose rather than stated against alternatives.
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.
4 tool updates
- Added
convert_time - Changed
get_datetime5 fields changed- changed
Input schema / properties / format / descriptionPrevious value: -"\nAvailable formats:\n- date: 2024-12-10\n- date_slash: 2024/12/10\n- date_jp: 2024εΉ΄12ζ10ζ₯\n- datetime: 2024-12-10 00:54:01\n- datetime_jp: 2024εΉ΄12ζ10ζ₯ 00ζ54ε01η§\n- datetime_t: 2024-12-10T00:54:01\n- compact: 20241210005401\n- compact_date: 20241210\n- compact_time: 005401\n- filename_md: 20241210005401.md\n- filename_txt: 20241210005401.txt\n- filename_log: 20241210005401.log\n- iso: 2024-12-10T00:54:01+0900\n- iso_basic: 20241210T005401+0900\n- log: 2024-12-10 00:54:01.123456\n- log_compact: 20241210_005401\n- time: 00:54:01\n- time_jp: 00ζ54ε01η§\n"New value: +"Format name such as 'datetime', or a custom pattern containing '%'. See the tool description." - added
Input schema / properties / format / titleAdded value: +"Format" - added
Input schema / properties / timezoneAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "IANA timezone name such as 'Asia/Tokyo', 'UTC' or 'America/New_York'. Omit to use the local timezone of the machine.", + "title": "Timezone" +} - added
Input schema / titleAdded value: +"get_datetimeArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "string" + } + }, + "required": [ + "result" + ], + "title": "get_datetimeOutput", + "type": "object" +}
- Added
get_datetime_info - Added
shift_datetime
1 tool update
- First observed
get_datetime
TDQS
Scored across 4 tools
Each tool has a mostly distinct role: current time formatting, detailed datetime inspection, timezone conversion, and datetime shifting. The main potential overlap is between get_datetime and get_datetime_info when used on 'now', but their outputs and intended uses are different enough that an agent can choose correctly.
All tool names use consistent snake_case with a verb_noun pattern: convert_time, get_datetime, get_datetime_info, shift_datetime. The get_datetime_info variant is a predictable extension of get_datetime rather than a convention break.
Four tools is well-scoped for a focused datetime utility server. Each tool covers a clear operation without excessive fragmentation.
The surface covers current time formatting, datetime details, timezone conversion, and arithmetic, which handles most common datetime workflows. A minor gap is that arbitrary datetimes cannot be formatted with the same rich format options as get_datetime, but agents can work around this using the available outputs.
Maintenance
Related MCP Connectors
MCP server providing attendance data queries via the CloudTime API.
MCP server for time in cities around the world, time zones, DST, conversion, and meetings.
Read-only developer, date, finance, and text utilities. Authless remote MCP server by Clean.tools.
Timezone MCP β wraps timeapi.io (free, no auth)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Claude Model Configuration Protocol (MCP) server that provides real-time timezone-aware date and time information.MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides tools to get the current date and time in various formats, supporting different timezones and custom formatting options.115 npm1MIT
- FlicenseAqualityDmaintenanceA general-purpose MCP server providing time-related utilities such as fetching current time, Unix timestamps, and formatting services. It supports both local stdio and remote SSE communication modes for versatile AI client integration.3-
- AlicenseAqualityDmaintenanceA lightweight MCP server providing comprehensive date, time, and day-of-week information. It supports relative time calculations, timezone conversions, and detailed calendar metadata like week numbers and quarters.512 PyPI1MIT