Passage of Time MCP
扫码查看

为AI模型提供时间感知与计算能力的MCP工具

Passage of Time MCP

综合介绍

"Passage of Time" 是一个模型上下文协议(MCP)服务器,旨在赋予大语言模型(LLM)感知时间流逝和进行精确时间计算的能力。项目的诞生源于一个哲学思考:“AI能否感知时间的流逝?” 开发者在探索中发现,语言模型在处理时间差等数学计算时并不可靠。为了解决这个实际问题,开发者没有仅仅发表一篇论文指出模型的缺陷,而是选择为模型配备一个专用的“时间计算器”。这个工具集是通过人类与AI(特别是Claude模型)协作开发的,证明了在获得合适的时间工具后,模型能够揭示关于对话模式、工作节奏乃至人类时间体验的深刻见解。该项目不仅仅是一个技术工具,更是一次关于教会AI理解人类世界中时间重要性的探索。

功能列表

  • current_datetime(timezone): 获取指定时区的当前日期和时间,这是建立时间感知的基础。
  • time_difference(timestamp1, timestamp2, unit): 计算两个时间戳之间的持续时间,并以易于人类阅读的格式返回结果。
  • timestamp_context(timestamp): 提供关于特定时间戳的背景信息,例如判断该时间是周末、工作时间还是晚餐时间。
  • time_since(timestamp): 计算某个事件发生至今经过了多长时间,并提供如“今天早些时候”这样的上下文描述。
  • parse_timestamp(timestamp): 在不同格式(如ISO 8601、Unix时间戳、人类可读格式)之间转换时间戳,以实现最大兼容性。
  • add_time(timestamp, duration, unit): 对给定的时间戳进行加减运算,并用自然语言描述结果,例如“明天下午2:30”。
  • format_duration(seconds, style): 将秒数格式化为不同风格的文本,如完整格式(2 hours, 30 minutes, 15 seconds)或紧凑格式(2h 30m 15s)。

使用帮助

该工具是一个需要部署在服务器上的Python程序,语言模型客户端(如Claude.ai)通过网络接口调用其功能。以下是详细的安装和使用流程。

先决条件

  • Python: 版本需为 3.12 或更高。
  • pipenv: 建议使用pipenv来管理Python包和虚拟环境,也可以使用pip
  • MCP兼容客户端: 一个支持模型上下文协议(MCP)的客户端,例如网页版的Claude.ai或代码编辑器插件Continue.dev
  • 公网访问: 由于类似Claude.ai的网页客户端无法直接访问你的本地电脑,你需要一个能将本地服务暴露到公网的工具,ngrok是官方推荐的工具之一。

第一步:安装与启动服务

  1. 克隆代码仓库首先,打开你的终端(命令行工具),将项目的源代码从GitHub克隆到你的本地电脑。
    git clone https://github.com/jlumbroso/passage-of-time-mcp.git
    

    然后进入项目目录:

    cd passage-of-time-mcp
    
  2. 安装依赖项项目依赖一些特定的Python库。使用pipenv可以一键安装所有必需的库并创建独立的运行环境。
    pipenv install
    

    如果你不使用pipenv,也可以用pip直接安装:

    pip install fastmcp pytz
    
  3. 运行服务器安装完成后,启动服务器程序。使用pipenv运行:
    pipenv run server
    

    或者直接用Python运行脚本:

    pipenv run python passage_of_time_mcp.py
    

    服务器启动后,你会在终端看到类似信息,表明它正在本地的http://0.0.0.0:8000/sse地址上监听请求。

第二步:暴露本地服务到公网

  1. 安装和配置ngrok如果尚未安装ngrok,请访问其官网下载并根据指引完成安装和账户配置。
  2. 启动ngrok打开一个新的终端窗口,运行以下命令,将本地的8000端口映射到一个公共URL。
    ngrok http 8000
    

    ngrok会生成一个临时的、可公开访问的网址,格式通常为 https://<随机字符>.ngrok-free.app

  3. 获取完整的服务器地址ngrok的输出信息中找到这个Forwarding地址。项目的服务器使用的是SSE(Server-Sent Events)传输方式,因此你需要在ngrok生成的地址末尾加上/sse。最终的服务器URL应为:https://<随机字符>.ngrok-free.app/sse。请复制这个完整的地址。

第三步:连接到Claude.ai

  1. 打开Claude.ai设置在浏览器中登录Claude.ai,进入“设置”(Settings)菜单,找到“集成”(Integrations)选项。
  2. 添加自定义集成点击“添加集成”(Add integration),选择“自定义”(Custom)类型。
  3. 配置服务器URL在URL输入框中,粘贴上一步获取的完整ngrok地址(包含/sse后缀)。
  4. 启用工具保存后,Claude会自动检测到该服务器提供的所有时间相关工具。确保启用这些工具,之后你就可以在与Claude的对话中直接使用它们了。

如何操作功能

连接成功后,语言模型会自动判断何时需要调用这些工具。你也可以通过自然语言指令来引导模型使用它们。

  • 查询当前时间::“现在几点了?”Claude: (自动调用current_datetime工具)“现在是2025年6月17日下午7:45(东部标准时间)。”
  • 分析对话节奏:在一段长时间的对话后,你可以提问::“你注意到我们对话的节奏有什么规律吗?”Claude: (在每次回应时都已调用current_datetime记录时间戳)“通过观察时间戳,我发现您在每次回复之间大约会间隔30秒到2分钟,这表明您在积极参与。在您提出关于实现细节的问题之前,有一次长达3分钟的停顿,这可能意味着您在进行更深入的思考。”
  • 结合上下文提供帮助::(在深夜11:45)“能帮我调试这段代码吗?”Claude: (调用current_datetimetimestamp_context工具)“我看到现在是一个工作日的深夜。考虑到已经接近午夜,为了让您能尽快休息,我会帮您高效地解决问题。这是一个集中的调试方案……”
  • 计算未来时间::“如果一个任务需要48小时,从现在开始,它将在什么时候完成?”Claude: (调用current_datetimeadd_time工具)“从现在开始48小时后,将是后天的同一时间。”

应用场景

  1. 对话节奏分析在与AI进行头脑风暴或深入讨论时,可以通过该工具记录每次交流的时间戳。讨论结束后,可以请求AI分析这些数据,以发现对话的自然节奏、思考停顿的模式,从而优化人机协作的效率。
  2. 智能化任务提醒用户可以在深夜向AI求助,AI通过timestamp_context工具识别出当前已非正常工作时间。基于这个上下文,AI可以优先提供高效、简洁的解决方案,并提醒用户注意休息,使互动更具人性化。
  3. 项目规划与时间估算在进行项目管理时,可以向AI描述任务和预计工时,例如“这个任务需要7天,从下周一开始”。AI可以调用add_timeparse_timestamp等工具,精确计算出任务的截止日期和关键时间节点。
  4. 跨时区协作对于需要和不同时区同事协作的用户,可以直接询问AI:“当纽约是上午9点时,东京是几点?”AI能够利用current_datetime等工具进行精确的时区换算,避免沟通误差。

QA

  1. 什么是MCP(模型上下文协议)?MCP是一种技术标准,允许语言模型(如Claude)安全地连接并使用外部工具或服务。通过这个协议,模型可以将特定任务(如时间计算)“外包”给专门的工具,从而扩展自身的能力。
  2. 这个工具可以在本地离线使用吗?不可以完全离线使用。虽然服务器程序本身可以运行在你的本地电脑上,但像Claude.ai这样的网页客户端需要通过公共互联网访问它。因此,你需要使用ngrok这样的工具创建一个临时的公网链接。
  3. 这个工具支持哪些语言模型?该工具是为任何兼容MCP协议的客户端设计的。目前官方文档中明确提到的客户端包括Claude.ai和开发者工具Continue.dev。理论上,任何支持自定义MCP集成的AI模型或应用都可以使用它。
  4. 为什么不直接让AI自己计算时间?大语言模型虽然知识渊博,但在精确的数学计算(尤其是涉及日期和时间的复杂运算)方面表现并不可靠,容易出错。这个工具将时间计算任务交给传统的、确定性的代码来完成,确保了结果的100%准确性,让AI可以专注于其更擅长的推理和语言任务。
微信微博Email复制链接