⏰🧠 临时MCP服务器
 
Temporal MCP是一个连接AI助手(如Claude)和Temporal工作流的MCP服务器。它将复杂的后端编排转化为简单的聊天驱动命令。想象一下,在不编写一行粘合代码的情况下触发有状态的进程。时间MCP使这成为可能。
为什么选择时态MCP
- 超级AI --人工智能助手获得可靠、长期运行的工作流程超能力
- 会话编排 --通过自然语言触发、监控和管理工作流
- 企业就绪 --利用Temporal的重试、超时和持久性——以明文形式公开
✨ 主要特点
- 🔍 自动发现 --探索可用的工作流程并查看丰富的元数据
- 🏃♂️ 无缝执行 --只需一条聊天消息,即可启动复杂的流程
- 📊 实时监控 --跟踪进度、检查状态并获取实时更新
- ⚡ 性能优化 --智能缓存,提供即时答案
- 🧠 AI友好描述 --为人类和机器编写的目的字段
🏁 入门指南
先决条件
- 转到1.21+ --用于构建和运行MCP服务器
- 临时服务器 --本地或远程运行(请参阅 临时文档)
快速安装
- 运行Temporal服务器和workers
在这个例子中,我们将使用 临时转账演示.
MCP设置
让Claude(或类似的启用MCP的AI助手)通过5个简单步骤与您的工作流程对话:
- 构建服务器
git clone https://github.com/Mocksi/temporal-mcp.git
cd temporal-mcp
make build- 定义您的工作流程 在
config.yml
示例配置(config.sample.yml)设计用于与 临时转账演示:
workflows:
AccountTransferWorkflow:
purpose: "Transfers money between accounts with validation and notification. Handles the happy path scenario where everything works as expected."
input:
type: "TransferInput"
fields:
- from_account: "Source account ID"
- to_account: "Destination account ID"
- amount: "Amount to transfer"
output:
type: "TransferOutput"
description: "Transfer confirmation with charge ID"
taskQueue: "account-transfer-queue"
AccountTransferWorkflowScenarios:
purpose: "Extended account transfer workflow with various scenarios including human approval, recoverable failures, and advanced visibility features."
input:
type: "TransferInput"
fields:
- from_account: "Source account ID"
- to_account: "Destination account ID"
- amount: "Amount to transfer"
- scenario_type: "Type of scenario to execute (human_approval, recoverable_failure, advanced_visibility)"
output:
type: "TransferOutput"
description: "Transfer confirmation with charge ID"
taskQueue: "account-transfer-queue"- 生成Claude的配置
cd examples
./generate_claude_config.sh- 安装配置
cp examples/claude_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json- 启动克劳德 使用此配置
与您的工作流程对话
现在是魔术部分!使用自然语言通过Claude与您的工作流程对话:
💬 克劳德,你能把100美元从ABC123账户转到XYZ789账户吗
💬 “有哪些传输场景可供测试?”
💬 “在账户ABC123和XYZ789之间执行需要人工批准的500美元转账”
💬 “传输工作流是否已完成?”
💬 “运行具有可恢复故障的传输场景,以测试错误处理”
在后台,Temporal MCP将这些自然语言请求转换为正确格式化的工作流执行,而不是更复杂的API调用或参数格式化!
核心价值观
- 清晰度优先 --使用简单、直接的语言。避免使用行话。
- 利益驱动 --以“这对我有什么好处”作为开头。
- 简洁的力量 --少即是多——保持句子紧凑,令人难忘。
- 个性与声音 --大胆的声明,简短的台词,一丝兴奋。
准备展示
灯光、相机、动作——捕捉你的第一个人工智能驱动的工作流程。分享那一刻。激励他人观看Temporal MCP的实际操作。
发展
项目结构
./
├── cmd/ # Entry points for executables
├── internal/ # Internal package code
│ ├── api/ # MCP API implementation
│ ├── cache/ # Caching layer
│ ├── config/ # Configuration management
│ └── temporal/ # Temporal client integration
├── examples/ # Example configurations and scripts
└── docs/ # Documentation常用命令
| 命令 | 描述 |
|---|---|
make build | 在中构建二进制文件 ./bin |
make test | 运行所有单元测试 |
make fmt | 根据Go标准格式化代码 |
make run | 构建并运行服务器 |
make clean | 删除构建工件 |
🔍 故障排除
常见问题
连接被拒绝
- ✓ 检查Temporal服务器是否正在运行
- ✓ 验证config.yml中的hostPort是否正确
未找到工作流
- ✓ 确保工作流已在Temporal中注册
- ✓ 检查config.yml中的命名空间设置
Claude看不到工作流
- ✓ 验证claude_config.json是否在正确的位置
- ✓ 配置更改后重新启动Claude
⚙️ 配置
Temporal MCP的核心是它的配置文件,它将您的AI助手连接到您的工作流引擎:
配置架构
你的 config.yml 由三个关键部分组成:
- 🔌 时间连接 --如何连接到Temporal服务器
- 💾 缓存设置 --工作流结果的性能优化
- 🔧 工作流定义 --您的AI可以发现和使用的工作流程
配置示例
示例配置旨在与Temporal Money Transfer Demo配合使用:
# Temporal server connection details
temporal:
hostPort: "localhost:7233" # Your Temporal server address
namespace: "default" # Temporal namespace
environment: "local" # "local" or "remote"
defaultTaskQueue: "account-transfer-queue" # Default task queue for workflows
# Fine-tune connection behavior
timeout: "5s" # Connection timeout
retryOptions: # Robust retry settings
initialInterval: "100ms" # Start with quick retries
maximumInterval: "10s" # Max wait between retries
maximumAttempts: 5 # Don't try forever
backoffCoefficient: 2.0 # Exponential backoff
# Define AI-discoverable workflows
workflows:
AccountTransferWorkflow:
purpose: "Transfers money between accounts with validation and notification. Handles the happy path scenario where everything works as expected."
workflowIDRecipe: "transfer_{{.from_account}}_{{.to_account}}_{{.amount}}"
input:
type: "TransferInput"
fields:
- from_account: "Source account ID"
- to_account: "Destination account ID"
- amount: "Amount to transfer"
output:
type: "TransferOutput"
description: "Transfer confirmation with charge 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"💡 专业提示: 示例配置已预先配置为与 临时转账演示。将其用作您自己工作流程的起点。
💎 最佳实践
打造完美用途领域
这 purpose 字段是您的AI助手了解每个工作流的窗口。让它有意义!
✅ 这样做
- 编写清晰、详细的功能描述
- 提及关键参数以及它们如何定制行为
- 描述预期输出及其格式
- 注意任何限制或约束
❌ 避免这种情况
- 模糊的描述(“流程数据”)
- 没有解释的技术术语
- 缺少重要参数
- 忽略错误情况或限制
之前和之后
之前: “获取有关文件的信息。”
之后: 检索有关文件或目录的详细元数据,包括大小、创建时间、上次修改时间、权限和类型。执行访问验证以确保请求的文件在允许的目录内。返回带所有属性的格式化JSON或相应的错误消息
命名约定
| 项目 | 惯例 | 示例 |
|---|---|---|
| 工作流ID | PascalCase | AccountTransferWorkflow |
| 参数名称 | snake_case | from_account, to_account |
| 带单位的参数 | 包括单位 | timeout_seconds, amount |
安全指南
⚠️ 重要安全注意事项:
- 将凭据从配置文件中删除
- 对敏感值使用环境变量
- 考虑对包含敏感数据的工作流进行访问控制
- 验证并清理所有工作流输入
💡 提示: 为开发和生产环境创建不同的配置
为什么好的目的字段很重要
- 增强对人工智能的理解 -当Claude和其他人工智能工具充分了解每个组件的功能和局限性时,它们可以提供更准确和更有用的响应
- 错误 -详细的描述减少了人工智能系统错误使用组件的机会
- 改进调试 -清晰的描述有助于在工作流不按预期运行时识别问题
- 更好的开发人员体验 -新团队成员可以更快地了解您的系统
- 文档即代码 -目的字段充当与代码库保持同步的动态文档
贡献与协作
我们正在一起建造这个。
- 共享您自己的工作流配置
- 改进描述
- 在问题中分享您的演示(视频或GIF)
让我们一起释放AI和Temporal的力量!
📜 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。 欢迎投稿!

