Temporal工作流管理服务器

一个基于Model Context Protocol (MCP)的服务器,允许AI助手观察和管理Temporal工作流,适用于自动化流程管理和监控场景。

  • by enzomotta
  • Kotlin
  • 本地部署
  • 更新于
在 GitHub 查看 enzomotta/temporal-mcp-server

使用说明

临时MCP服务器

一个模型上下文协议(MCP)服务器,允许AI助手观察和管理时态工作流。内置Kotlin/JVM,带有Node.js桥,用于快速初始化MCP。

先决条件

  • JDK 17+
  • Node.js(用于MCP桥)
  • 访问临时服务器(本地或临时云)

构建

./gradlew shadowJar

JAR创建于 build/libs/temporal-mcp-server-1.0-SNAPSHOT.jar.

配置

服务器通过以下方式启动 minimal-mcp.js,它处理MCP协议初始化并生成Java进程。

MCP客户端配置

{
  "mcpServers": {
    "temporal": {
      "command": "node",
      "args": [
        "path/to/minimal-mcp.js",
        "--namespace", "my-namespace",
        "--address", "my-host:7233"
      ],
      "env": {
        "TEMPORAL_API_KEY": "your-api-key"
      }
    }
  }
}

命令行参数

参数 必填 描述
--namespace 是 临时命名空间
--address 是 临时服务器地址(例如。, my-ns.abc.tmprl.cloud:7233)

环境变量

变量 描述
TEMPORAL_API_KEY 用于Temporal Cloud身份验证的API密钥
TEMPORAL_CLIENT_CERT_PATH mTLS客户端证书文件的路径
TEMPORAL_CLIENT_KEY_PATH mTLS客户端密钥文件的路径
TEMPORAL_CLIENT_CERT mTLS客户端证书内容(路径的替代方案)
TEMPORAL_CLIENT_KEY mTLS客户端密钥内容(路径的替代方案)

认证

API密钥(Temporal Cloud)

集 TEMPORAL_API_KEY 在 env MCP配置的一部分。密钥作为 Bearer gRPC元数据中的令牌。

mTLS证书

对于mTLS身份验证,请直接提供文件路径或内容:

{
  "mcpServers": {
    "temporal": {
      "command": "node",
      "args": ["path/to/minimal-mcp.js", "--namespace", "my-ns", "--address", "my-host:7233"],
      "env": {
        "TEMPORAL_CLIENT_CERT_PATH": "/path/to/client.pem",
        "TEMPORAL_CLIENT_KEY_PATH": "/path/to/client.key"
      }
    }
  }
}

工具

工作流观察

工具 说明
list_workflows 列出命名空间中的工作流。支持 query 过滤和 pageSize (1-1000,默认值10)。
get_workflow_status 通过以下方式获取特定工作流的状态 workflowId (可选 runId).退货 parentWorkflowId, parentRunId, taskQueue, closeTime, memo,以及 searchAttributes.
get_workflow_history 检索具有完整事件属性的工作流的完整事件历史记录。
query_workflow 对正在运行的工作流执行查询(workflowId, queryType,可选 args).

工作流操作

工具 说明
start_workflow 启动新工作流(workflowId, workflowType, taskQueue,可选 args).
send_signal 向正在运行的工作流发送信号(workflowId, signalName,可选 signalArgs).
reset_workflow 将工作流重置到其历史记录中的特定点,创建新的运行。支持 eventId 或 resetType: "last_workflow_task" 自动检测上一个WorkflowTaskCompleted事件。
terminate_workflow 终止正在运行的工作流(workflowId,可选 reason).

公用事业

工具 说明
wait_for_activity 轮询,直到工作流到达特定活动(workflowId, activityName,可选 timeoutSeconds 1-3600).
send_webhook 发送HTTP POST webhook(webhookUrl, payload,可选 headers).有助于完成异步活动。

发展

运行测试

./gradlew test

建筑

minimal-mcp.js 充当桥梁:它立即对MCP做出响应 initialize 握手,然后在后台生成Java进程。一旦Java准备就绪,所有后续请求都会转发给它。