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
是官方推荐的工具之一。
第一步:安装与启动服务
- 克隆代码仓库首先,打开你的终端(命令行工具),将项目的源代码从GitHub克隆到你的本地电脑。
git clone https://github.com/jlumbroso/passage-of-time-mcp.git
然后进入项目目录:
cd passage-of-time-mcp
- 安装依赖项项目依赖一些特定的Python库。使用
pipenv
可以一键安装所有必需的库并创建独立的运行环境。pipenv install
如果你不使用
pipenv
,也可以用pip
直接安装:pip install fastmcp pytz
- 运行服务器安装完成后,启动服务器程序。使用
pipenv
运行:pipenv run server
或者直接用Python运行脚本:
pipenv run python passage_of_time_mcp.py
服务器启动后,你会在终端看到类似信息,表明它正在本地的
http://0.0.0.0:8000/sse
地址上监听请求。
第二步:暴露本地服务到公网
- 安装和配置ngrok如果尚未安装
ngrok
,请访问其官网下载并根据指引完成安装和账户配置。 - 启动ngrok打开一个新的终端窗口,运行以下命令,将本地的8000端口映射到一个公共URL。
ngrok http 8000
ngrok
会生成一个临时的、可公开访问的网址,格式通常为https://<随机字符>.ngrok-free.app
。 - 获取完整的服务器地址在
ngrok
的输出信息中找到这个Forwarding
地址。项目的服务器使用的是SSE(Server-Sent Events)传输方式,因此你需要在ngrok
生成的地址末尾加上/sse
。最终的服务器URL应为:https://<随机字符>.ngrok-free.app/sse
。请复制这个完整的地址。
第三步:连接到Claude.ai
- 打开Claude.ai设置在浏览器中登录
Claude.ai
,进入“设置”(Settings)菜单,找到“集成”(Integrations)选项。 - 添加自定义集成点击“添加集成”(Add integration),选择“自定义”(Custom)类型。
- 配置服务器URL在URL输入框中,粘贴上一步获取的完整
ngrok
地址(包含/sse
后缀)。 - 启用工具保存后,Claude会自动检测到该服务器提供的所有时间相关工具。确保启用这些工具,之后你就可以在与Claude的对话中直接使用它们了。
如何操作功能
连接成功后,语言模型会自动判断何时需要调用这些工具。你也可以通过自然语言指令来引导模型使用它们。
- 查询当前时间:你:“现在几点了?”Claude: (自动调用
current_datetime
工具)“现在是2025年6月17日下午7:45(东部标准时间)。” - 分析对话节奏:在一段长时间的对话后,你可以提问:你:“你注意到我们对话的节奏有什么规律吗?”Claude: (在每次回应时都已调用
current_datetime
记录时间戳)“通过观察时间戳,我发现您在每次回复之间大约会间隔30秒到2分钟,这表明您在积极参与。在您提出关于实现细节的问题之前,有一次长达3分钟的停顿,这可能意味着您在进行更深入的思考。” - 结合上下文提供帮助:你:(在深夜11:45)“能帮我调试这段代码吗?”Claude: (调用
current_datetime
和timestamp_context
工具)“我看到现在是一个工作日的深夜。考虑到已经接近午夜,为了让您能尽快休息,我会帮您高效地解决问题。这是一个集中的调试方案……” - 计算未来时间:你:“如果一个任务需要48小时,从现在开始,它将在什么时候完成?”Claude: (调用
current_datetime
和add_time
工具)“从现在开始48小时后,将是后天的同一时间。”
应用场景
- 对话节奏分析在与AI进行头脑风暴或深入讨论时,可以通过该工具记录每次交流的时间戳。讨论结束后,可以请求AI分析这些数据,以发现对话的自然节奏、思考停顿的模式,从而优化人机协作的效率。
- 智能化任务提醒用户可以在深夜向AI求助,AI通过
timestamp_context
工具识别出当前已非正常工作时间。基于这个上下文,AI可以优先提供高效、简洁的解决方案,并提醒用户注意休息,使互动更具人性化。 - 项目规划与时间估算在进行项目管理时,可以向AI描述任务和预计工时,例如“这个任务需要7天,从下周一开始”。AI可以调用
add_time
和parse_timestamp
等工具,精确计算出任务的截止日期和关键时间节点。 - 跨时区协作对于需要和不同时区同事协作的用户,可以直接询问AI:“当纽约是上午9点时,东京是几点?”AI能够利用
current_datetime
等工具进行精确的时区换算,避免沟通误差。
QA
- 什么是MCP(模型上下文协议)?MCP是一种技术标准,允许语言模型(如Claude)安全地连接并使用外部工具或服务。通过这个协议,模型可以将特定任务(如时间计算)“外包”给专门的工具,从而扩展自身的能力。
- 这个工具可以在本地离线使用吗?不可以完全离线使用。虽然服务器程序本身可以运行在你的本地电脑上,但像Claude.ai这样的网页客户端需要通过公共互联网访问它。因此,你需要使用
ngrok
这样的工具创建一个临时的公网链接。 - 这个工具支持哪些语言模型?该工具是为任何兼容MCP协议的客户端设计的。目前官方文档中明确提到的客户端包括
Claude.ai
和开发者工具Continue.dev
。理论上,任何支持自定义MCP集成的AI模型或应用都可以使用它。 - 为什么不直接让AI自己计算时间?大语言模型虽然知识渊博,但在精确的数学计算(尤其是涉及日期和时间的复杂运算)方面表现并不可靠,容易出错。这个工具将时间计算任务交给传统的、确定性的代码来完成,确保了结果的100%准确性,让AI可以专注于其更擅长的推理和语言任务。