日期操作服务

一个轻量级的日期和时间操作服务,提供当前时间戳、日期格式化、日期加减、日期差异计算和日期比较等功能。

  • by dennypradipta
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 dennypradipta/date-operations-mcp

使用说明

日期操作 MCP(注:MCP在此处可能是一个特定上下文中的缩写或术语,根据上下文可能翻译为“多点控制单元”、“管理控制计划”或其他含义,但在此直接保留原样以保持翻译的准确性,具体含义需结合上下文确定)

轻量级模型上下文协议(MCP)服务器,提供由(某技术/平台)支持的通用日期/时间操作接口 date-fns建立在 fastmcp 使用HTTP流传输。

特点/功能

  • 现在ISO 8601格式的当前时间戳
  • 格式使用Unicode技术标准第35号(UTS #35)中的令牌格式化日期
  • 加/减给日期加上或减去一段时间
  • 差异;差别计算两个日期之间以选定单位表示的差异
  • 检查比较两个日期(在之后、在之前、相等)

要求

  • Node.js 18+(或推荐使用 20+)

安装

npm install

运行(开发环境)

npm run dev
# Server listens on http://localhost:3000 (HTTP stream)

构建并运行(生产环境)

npm run build
npm start
# Outputs to dist/ and runs Node on dist/index.js

客户端集成(通过HTTP流的MCP)

这台服务器使用 fastmcp 与……一起;带着;用 transportType: "httpStream" 在港口 3000将您的支持MCP(多客户端协议)的客户端指向 http://localhost:3000。

  • Claude Desktop / Cursor:配置一个指向(指定位置的)MCP HTTP服务器 http://localhost:3000请参考您的客户端MCP HTTP配置文档,并相应地设置URL。

注:服务器提供了一个适合MCP感知客户端的HTTP流。它不是一个传统的REST API。

工具

现在

  • 描述获取当前日期/时间。
  • 参数无
  • 退货ISO 8601 字符串

示例结果:

"2025-01-01T12:34:56.789Z"

格式

  • 描述格式化日期。
  • 参数:
    • date (字符串,ISO 8601)
    • format (字符串,按 date-fns v4 的 Unicode 标记)
  • 退货格式化字符串

示例调用有效载荷(概念性):

{
  "date": "2025-01-01T00:00:00.000Z",
  "format": "yyyy-MM-dd'T'HH:mm:ssXXX"
}

添加

  • 描述给日期加上一个持续时间。
  • 参数:
    • date (字符串,ISO 8601)
    • duration (对象) — 所有数值字段均为必填项;通过 0 如果未使用
      • years, months, weeks, days, hours, minutes, seconds
  • 退货ISO 8601 字符串(结果日期)

示例:

{
  "date": "2025-01-01T00:00:00.000Z",
  "duration": {
    "years": 0,
    "months": 1,
    "weeks": 0,
    "days": 2,
    "hours": 0,
    "minutes": 30,
    "seconds": 0
  }
}

减去

  • 描述从日期中减去一段时间。
  • 参数与……形状相同 add
  • 回报ISO 8601 字符串(结果日期)

差异;不同

  • 描述两个日期之间的差值(以给定单位表示)。
  • 参数:
    • dateFrom (字符串,ISO 8601)
    • dateTo (字符串,ISO 8601)
    • unit (枚举): seconds | minutes | hours | days | weeks | months | years
  • 退货包含数值差异和单位的可读字符串

示例:

{
  "dateFrom": "2025-01-01T00:00:00.000Z",
  "dateTo": "2025-02-01T00:00:00.000Z",
  "unit": "days"
}

检查

  • 描述比较两个日期。
  • 参数:
    • firstDate (字符串,ISO 8601)
    • secondDate (字符串,ISO 8601)
    • operator (枚举类型): after | before | equal
  • 回报表示布尔结果的可读字符串

示例:

{
  "firstDate": "2025-01-02T00:00:00.000Z",
  "secondDate": "2025-01-01T00:00:00.000Z",
  "operator": "after"
}

注释与假设

  • 日期应以ISO 8601格式的字符串表示(推荐使用UTC时间)。
  • format 使用类似于 date-fns v4 中的 Unicode 标记(UTS #35)。
  • 对于 add/subtract提供所有持续时间字段;使用 0 当不需要时。

项目脚本

  • 开发(人员): tsx index.ts
  • 构建;建立: tsc → 发出(或释放) dist/
  • 开始: node dist/index.js
  • 测试: vitest --coverage

许可证

麻省理工学院 © 丹尼·普拉迪普塔