关于 Temporal Durable Mcp Weather Sample
这是一个 Python 天气 MCP 服务示例,将工具实现为 Temporal 工作流,供探索持久化工具执行的开发者参考,并利用工作流状态与重试机制。
主要功能
- 01查询天气预警和预报
- 02将 MCP 工具实现为 Temporal 工作流
- 03工作流状态与重试机制
- 04Claude for Desktop 配置示例
适用场景
- 01探索持久化 MCP 工具设计
- 02通过 MCP 客户端查询天气预警
- 03查询指定城市的天气预报
MCP 相关
该服务向 MCP 客户端提供 `get_alerts` 和 `get_forecast` 工具,并将每个工具实现为 Temporal 工作流。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Temporal 与持久化 MCP
本仓库旨在展示如何轻松地将工作流用作 MCP 服务的工具:我们基于 modelcontext.io 的天气示例,将 MCP 工具实现为 Temporal 工作流,从而使其具备持久性。
前提条件:
- Python3+
uv(curl -LsSf https://astral.sh/uv/install.sh | sh)- Temporal 本地设置指南
- Claude 桌面版
开始使用
- 第一步——克隆本仓库
cd temporal-durable-mcp-weather-sampleuv venv(创建虚拟环境)source .venv/bin/activateuv pip install pyproject.toml- 启动 Temporal Server:
temporal server start-dev - 启动 Worker:
python worker.py - 编辑 Claude 桌面版的配置:
- 打开 Claude 桌面版
- 点击工具栏中的
Settings - 点击
Developer - 点击
Edit Config(这会打开一个 Finder 窗口,其中指向名为claude_desktop_config.json的文件) - 使用你选择的编辑器打开上述文件,并将其修改为如下内容
-
{ "mcpServers": { "weather": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/temporal-durable-mcp-weather-sample", "run", "weather.py" ] } } }
-
- 点击 Claude 桌面版聊天框中的滑块图标,确认服务公开的工具(
get_alerts、get_forecast)显示在Search and Tools中
- 询问 Claude 某个城市的天气预警和天气预报——它应该会调用这些工具。如果没有,请再次提示它使用可访问的 MCP 工具。
结果
在这里,我们可以看到 Claude 正在智能地使用工具查询天气预警,并为我获取天气信息:

这有什么特别之处
这展示了如何将 MCP 中的工具实现为工作流,从而增加持久性。 根据 Claude 的说法:
传统 MCP 工具的实现就像一次电话通话——如果通话过程中断,所有内容都会丢失,你必须从头开始。当 AI Agent 执行复杂的多步骤操作时(例如处理大型数据集、协调多个 API 调用,或处理耗时较长的业务流程),链条中任何环节发生一次故障,都会导致整个操作失败。

Temporal 工作流就像一本详细的日志,能准确记住你上次停下的位置。可以把它想象成与一位会认真做笔记的人交谈——即使你们中途被打断,几小时后再继续,也能准确接上之前的进度,不会遗漏任何内容。

这展示了我们所说的“工具即工作流”——将工具实现为 Temporal 工作流,并内置持久性、状态管理和重试功能。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。