Date-time Tools MCP
日期时间工具 MCP
一个用于日期时间操作和时区转换的模型上下文协议 (MCP) 服务器。
概述
此 MCP 服务器提供了一套用于处理日期时间字符串的工具,包括时区转换、日期变更(算术运算)以及获取当前日期时间和时区。它旨在作为需要稳健、标准化日期时间操作的应用程序或代理的后端实用程序。
在线部署: https://date-time-tools.iabhishek.workers.dev/mcp
Related MCP server: Time MCP Server
架构
此服务器运行在 Cloudflare Workers 上,并使用 Streamable HTTP 传输(同时也暴露了一个传统的 SSE 端点)。会话状态通过 Cloudflare 的 agents McpAgent 包装器由 Durable Object 提供支持。
端点:
POST/GET/DELETE /mcp— Streamable HTTP 传输。会话通过mcp-session-id标头进行跟踪。GET /sse,POST /sse/message— 用于旧版客户端的传统 SSE 传输。
本地开发
npm install
npm run dev # wrangler dev — serves at http://127.0.0.1:8787/mcp部署到 Cloudflare
手动
一次性设置:
npx wrangler login部署:
npm run deployWrangler 会打印公共 URL — 对于本项目,它是 https://date-time-tools.iabhishek.workers.dev/mcp。Workers 免费计划涵盖此服务器(每天 10 万次请求;Durable Objects 免费层级涵盖会话存储)。
自动化 (GitHub Actions)
.github/workflows/deploy.yml 会在每次推送到 main 分支时(以及手动触发 workflow_dispatch 时)进行部署。配置两个存储库密钥:
CLOUDFLARE_API_TOKEN— 在 https://dash.cloudflare.com/profile/api-tokens 使用 Edit Cloudflare Workers 模板创建CLOUDFLARE_ACCOUNT_ID— 在 Workers & Pages 仪表板侧边栏中找到
与 MCP 客户端集成
Claude Code
claude mcp add date-time-tools --transport http https://date-time-tools.iabhishek.workers.dev/mcp添加 --scope user 以将其注册到每个项目,或添加 --scope project 以提交与协作者共享的 .mcp.json。使用 claude mcp list 进行验证;在 Claude Code 中,运行 /mcp 以检查状态和工具。
通用 Streamable HTTP 客户端
将支持 Streamable HTTP 传输的客户端配置为指向已部署的 URL:
{
"mcpServers": {
"date-time-tools": {
"url": "https://date-time-tools.iabhishek.workers.dev/mcp"
}
}
}对于仅支持 stdio 的客户端,请使用 mcp-remote 进行桥接:
{
"mcpServers": {
"date-time-tools": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://date-time-tools.iabhishek.workers.dev/mcp"]
}
}
}可用工具
此 MCP 服务器为 LLM 提供以下工具:
convertTimezones:将日期时间字符串从一个时区转换为另一个时区。mutateDate:从日期时间字符串中添加或减去天、小时、分钟、月或年。currentDateTimeAndTimezone:获取当前的日期、时间和时区。
🧪 使用 MCP Inspector 进行测试
运行 npm run dev,然后在另一个终端中:
npx -y @modelcontextprotocol/inspector选择 Streamable HTTP 传输并使用 http://127.0.0.1:8787/mcp 作为 URL。
功能
时区转换
使用 Luxon 兼容格式将日期时间字符串从一个 IANA 时区转换为另一个时区。日期变更
从日期时间字符串中添加或减去天、小时、分钟、月或年。当前日期时间与时区
检索用户/系统的当前日期、时间和时区。
Available Tools
3 toolsconvertTimezonesA
Converts a date time string from one timezone to another.
The date time string must follow luxon date-time format: yyyy-MM-dd hh:mm:ss a. Example: 2025-06-16 10:00:00 pm.
The timezones must be valid IANA timezones. Example: Asia/Calcutta, America/New_York.
You must first invoke the tool named "currentDateTimeAndTimezone" to get the current date, time and timezone of the user if they don't specify the date or time explicitly or use relative date or time (i.e. in an hour/today/tomorrow/yesterday/next week/next month/next year etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| dateTime | Yes | The date time string to convert. Must follow luxon date-time format: yyyy-MM-dd hh:mm:ss a. Example: 2025-06-16 10:00:00 pm | |
| fromZone | Yes | The IANA timezone of the date time string | |
| toZone | Yes | The IANA timezone to convert the date time string to |
TDQS
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 effectively describes the tool's behavior by specifying required input formats (luxon format, IANA timezones) and the prerequisite tool invocation for certain scenarios. However, it doesn't mention error handling, rate limits, or authentication needs, which would be helpful for a complete behavioral picture.
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 description is appropriately sized and front-loaded with the core purpose in the first sentence. The bullet points efficiently convey important constraints and prerequisites. While every sentence earns its place, the formatting as bullet points (though clear) could be slightly more streamlined for pure text consumption.
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?
Given the tool's moderate complexity (timezone conversion with format constraints), no annotations, and no output schema, the description does well by covering purpose, usage guidelines, and behavioral constraints. However, it doesn't describe the return format or error responses, which would be helpful for completeness since there's no output schema.
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 100%, so the schema already documents all three parameters thoroughly. The description reinforces the format requirements (luxon format, IANA timezones) but doesn't add significant semantic meaning beyond what's in the schema. This meets the baseline expectation when schema coverage is high.
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 clearly states the tool's purpose with specific verb ('converts') and resources ('date time string from one timezone to another'), and it distinguishes from sibling tools by not overlapping with 'currentDateTimeAndTimezone' (which provides current info) or 'mutateDate' (which suggests date manipulation rather than timezone conversion).
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?
The description provides explicit guidance on when to use this tool vs alternatives: it specifies that for relative dates/times or unspecified dates, the agent must first invoke 'currentDateTimeAndTimezone' to get the user's current context. This creates clear prerequisites and distinguishes usage scenarios from the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
currentDateTimeAndTimezoneB
Gets the current date, time and timezone of the user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 that it retrieves the user's current date/time/timezone, which implies a read-only operation, but doesn't specify whether this requires authentication, how frequently it can be called, or what format the data is returned in. This leaves significant gaps for a tool with no annotation coverage.
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 description is a single, efficient sentence that directly states the tool's function without any unnecessary words. It's front-loaded with the core purpose and wastes no space, making it ideal for quick comprehension.
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?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but not fully complete. It explains what the tool does but lacks details on return format, authentication needs, or error handling. For a basic tool, this is minimally viable but leaves room for improvement in behavioral context.
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?
The input schema has 0 parameters with 100% description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it appropriately doesn't mention any parameters, earning a high baseline score for this context.
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 clearly states the tool's purpose with a specific verb ('Gets') and resource ('current date, time and timezone of the user'), making it immediately understandable. However, it doesn't explicitly distinguish itself from sibling tools like 'convertTimezones' or 'mutateDate', which prevents a perfect score.
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?
The description provides no guidance on when to use this tool versus alternatives like 'convertTimezones' (for timezone conversion) or 'mutateDate' (for date manipulation). It states what the tool does but offers no context about appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mutateDateA
Mutates a date time string by adding or subtracting days, hours, minutes, months, or years.
The date time string must follow luxon date-time format: yyyy-MM-dd hh:mm:ss a. Example: 2025-06-16 10:00:00 pm.
The update object must be a valid update object. Example: { days: -1, hours: 2, minutes: 3, months: 4, years: 5 }.
You must first invoke the tool named "currentDateTimeAndTimezone" to get the current date, time and timezone of the user if they don't specify an absolute date or time explicitly (today/tomorrow/yesterday/next week/next month/next year etc. is not absolute date or time).
| Name | Required | Description | Default |
|---|---|---|---|
| dateTime | Yes | The date time string to mutate. Must follow luxon date-time format: yyyy-MM-dd hh:mm:ss a. Example: 2025-06-16 10:00:00 pm | |
| update | Yes | The update object to apply to the date time string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the required date format (luxon format) and provides concrete examples, which is valuable. However, it doesn't mention error handling, whether the operation is reversible, or what happens with invalid inputs. The description adds context about format requirements but lacks comprehensive behavioral details.
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 description is appropriately sized with three bullet points that each serve distinct purposes: purpose statement, format requirements, and usage prerequisites. It's front-loaded with the core functionality. Minor improvement could be made by combining some format details, but overall it's efficient.
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?
Given the tool's moderate complexity (date manipulation with format constraints), no annotations, and no output schema, the description does well by covering format requirements, examples, and workflow dependencies. It could be more complete by mentioning return format or error cases, but it provides sufficient context for basic usage.
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 100%, so the baseline is 3. The description adds value by providing concrete examples of both parameters (date format example and update object example), which enhances understanding beyond the schema's technical definitions. However, it doesn't explain edge cases or parameter interactions.
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 clearly states the tool's purpose with specific verb ('mutates') and resource ('date time string'), and distinguishes it from sibling tools by focusing on date manipulation rather than timezone conversion or current date retrieval. It specifies the exact operations (adding/subtracting days, hours, minutes, months, years).
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?
The description provides explicit guidance on when to use this tool versus alternatives: it instructs to first invoke 'currentDateTimeAndTimezone' when users don't specify absolute dates (e.g., 'today', 'tomorrow'), creating clear workflow dependencies. This directly addresses when to use this tool versus the sibling tool.
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.
3 tool updates
v0.0.7- First observed
convertTimezones - First observed
currentDateTimeAndTimezone - First observed
mutateDate
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: convertTimezones handles timezone conversion, currentDateTimeAndTimezone retrieves current datetime and timezone, and mutateDate performs date arithmetic. There is no overlap or ambiguity between these functions.
Two tools use camelCase (convertTimezones, currentDateTimeAndTimezone) while one uses snake_case (mutateDate), creating a minor inconsistency. However, all names are descriptive and follow a verb_noun pattern, making them readable despite the mixed conventions.
With only 3 tools, the set feels thin for a date-time utility server. While the tools cover core operations, additional functions like parsing, formatting, or comparing dates would enhance completeness. The count is borderline but manageable.
The tools cover conversion, retrieval, and mutation, but there are notable gaps such as date parsing from various formats, date comparison, duration calculation, or formatting. Agents may struggle with tasks requiring these missing operations, though core workflows are supported.
Maintenance
Related MCP Connectors
Time and date math for AI agents: Unix timestamp conversion, DST-correct time zone conversion, durations, epoch arithmetic, cron schedules, and holiday countdowns. Eight tools, no key.
Deterministic time tools for AI agents: timezone conversion, business-day math, cron interpretation.
Current time, timezone conversion & date math for AI agents. On Cloudflare Workers.
Convert and compare dates and times across any timezone with flexible, locale-aware formatting. Ad…
Related MCP Servers
- AlicenseBqualityDmaintenanceGives large language models time awareness capabilities through various time-related functions including current time retrieval, timezone conversion, and relative time calculations.61,756 npmMIT
- AlicenseBqualityDmaintenanceProvides time and timezone functionality for LLMs, enabling them to get current time information across different timezones and convert times between zones.2MIT
- AlicenseAqualityBmaintenanceProvides comprehensive date, time, timezone, and calendar operations powered by Luxon, enabling AI agents to perform time calculations, timezone conversions, and temporal data handling across 400+ IANA timezones.212 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides time and date functionality with support for multiple formats and timezones, enabling users to get current time/date, format timestamps, and retrieve comprehensive datetime information.49 npmMIT