Temporal MCP 是一个连接 AI 助手(如 Claude)和 Temporal 工作流的 MCP 服务器。它将复杂的后端编排转换成简单的聊天驱动命令。想象一下,无需编写任何粘合代码就能触发有状态的过程。Temporal-MCP 让这一切成为可能。
让 Claude(或其他启用 MCP 的 AI 助手)与你的工作流进行通信只需五个简单步骤:
git clone https://github.com/Mocksi/temporal-mcp.git
cd temporal-mcp
make build
config.yml 中
示例配置(config.sample.yml)旨在与 Temporal 资金转移演示配合使用:workflows:
AccountTransferWorkflow:
purpose: "在验证和通知的情况下,在账户之间转账。处理所有预期正常工作的场景。"
input:
type: "TransferInput"
fields:
- from_account: "源账户ID"
- to_account: "目标账户ID"
- amount: "要转账的金额"
output:
type: "TransferOutput"
description: "带有收费ID的转账确认"
taskQueue: "account-transfer-queue"
AccountTransferWorkflowScenarios:
purpose: "扩展的账户转账工作流,包括各种场景,如人工审批、可恢复失败和高级可见性功能。"
input:
type: "TransferInput"
fields:
- from_account: "源账户ID"
- to_account: "目标账户ID"
- amount: "要转账的金额"
- scenario_type: "要执行的场景类型(human_approval, recoverable_failure, advanced_visibility)"
output:
type: "TransferOutput"
description: "带有收费ID的转账确认"
taskQueue: "account-transfer-queue"
cd examples
./generate_claude_config.sh
cp examples/claude_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
现在是神奇的部分!通过 Claude 使用自然语言与你的工作流进行对话:
💬 "Claude,你能从账户ABC123向账户XYZ789转账100美元吗?"
💬 "有哪些可用的转账场景可以测试?"
💬 "执行一个需要人工审批的500美元转账,账户为ABC123和XYZ789"
💬 "转账工作流已经完成了吗?"
💬 "运行一个具有可恢复失败的转账场景来测试错误处理"
幕后,Temporal MCP 将这些自然语言请求转化为正确格式的工作流执行——不再需要复杂的API调用或参数格式化!
灯光、摄像、行动——捕捉你第一个由AI驱动的工作流的动态。分享这一刻。激励他人看到Temporal MCP的实际应用。
./
├── cmd/ # 可执行程序的入口点
├── internal/ # 内部包代码
│ ├── api/ # MCP API 实现
│ ├── cache/ # 缓存层
│ ├── config/ # 配置管理
│ └── temporal/ # Temporal 客户端集成
├── examples/ # 示例配置和脚本
└── docs/ # 文档
| 命令 | 描述 |
|---|---|
make build | 在 ./bin 构建二进制文件 |
make test | 运行所有单元测试 |
make fmt | 根据 Go 标准格式化代码 |
make run | 构建并运行服务器 |
make clean | 移除构建产物 |
连接被拒绝
工作流未找到
Claude 无法看到工作流
Temporal MCP 的核心是其配置文件,该文件将你的 AI 助手连接到你的工作流引擎:
你的 config.yml 包含三个关键部分:
示例配置旨在与 Temporal 资金转移演示配合使用:
# Temporal 服务器连接详情
temporal:
hostPort: "localhost:7233" # 你的 Temporal 服务器地址
namespace: "default" # Temporal 命名空间
environment: "local" # "local" 或 "remote"
defaultTaskQueue: "account-transfer-queue" # 工作流的默认任务队列
# 微调连接行为
timeout: "5s" # 连接超时
retryOptions: # 坚固的重试设置
initialInterval: "100ms" # 从快速重试开始
maximumInterval: "10s" # 重试之间的最大等待时间
maximumAttempts: 5 # 不要永远尝试
backoffCoefficient: 2.0 # 指数退避
# 定义 AI 可发现的工作流
workflows:
AccountTransferWorkflow:
purpose: "在验证和通知的情况下,在账户之间转账。处理所有预期正常工作的场景。"
workflowIDRecipe: "transfer_{{.from_account}}_{{.to_account}}_{{.amount}}"
input:
type: "TransferInput"
fields:
- from_account: "源账户ID"
- to_account: "目标账户ID"
- amount: "要转账的金额"
output:
type: "TransferOutput"
description: "带有收费ID的转账确认"
taskQueue: "account-transfer-queue"
activities:
- name: "validate"
timeout: "5s"
- name: "withdraw"
timeout: "5s"
- name: "deposit"
timeout: "5s"
- name: "sendNotification"
timeout: "5s"
- name: "undoWithdraw"
timeout: "5s"
💡 专业提示: 示例配置已预配置为与 Temporal 资金转移演示配合使用。将其作为你自己的工作流起点。
purpose 字段是你的 AI 助手理解每个工作流功能的窗口。让它发挥作用!
之前: "获取关于文件的信息。"
之后: "检索关于文件或目录的详细元数据,包括大小、创建时间、最后修改时间、权限和类型。执行访问验证以确保请求的文件在允许的目录内。返回包含所有属性的格式化JSON或适当的错误信息。"
| 项目 | 约定 | 示例 |
|---|---|---|
| 工作流ID | PascalCase | AccountTransferWorkflow |
| 参数名称 | snake_case | from_account, to_account |
| 带单位的参数 | 包括单位 | timeout_seconds, amount |
⚠️ 重要安全注意事项:
💡 提示: 为开发和生产环境创建不同的配置
我们共同建设这个项目。
让我们一起释放AI和Temporal的力量!
本项目根据MIT许可发布 - 查看LICENSE文件了解详情。 欢迎贡献!