@alisaitteke/temporal-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +225 -0
- package/bin/temporal-mcp.js +5 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2254 -0
- package/dist/index.js.map +1 -0
- package/mcp.json +13 -0
- package/package.json +49 -0
package/README.md
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# Temporal.io MCP Server
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
MCP server for the [Temporal](https://temporal.io) HTTP API. Manage workflows, namespaces, schedules, and more directly from Cursor, Claude Code, or any MCP-compatible IDE.
|
|
6
|
+
|
|
7
|
+
> **Disclaimer:** This is an independent, community-built MCP server and is not affiliated with, endorsed by, or officially supported by [Temporal Technologies, Inc.](https://temporal.io)
|
|
8
|
+
|
|
9
|
+
**36 tools** covering the full Temporal HTTP API surface. By default, only the 11 most essential tools are exposed to keep the LLM context lean — see [Tool tiers](#tool-tiers).
|
|
10
|
+
|
|
11
|
+
## Tools
|
|
12
|
+
|
|
13
|
+
### Cluster
|
|
14
|
+
| Tool | What it does |
|
|
15
|
+
|---|---|
|
|
16
|
+
| `get_cluster_info` | Server version, cluster ID, and enabled capabilities |
|
|
17
|
+
|
|
18
|
+
### Namespaces
|
|
19
|
+
| Tool | What it does |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `list_namespaces` | List all namespaces in the cluster |
|
|
22
|
+
| `describe_namespace` | Config, retention period, replication info |
|
|
23
|
+
|
|
24
|
+
### Workflows
|
|
25
|
+
| Tool | What it does |
|
|
26
|
+
|---|---|
|
|
27
|
+
| `count_workflows` | Count executions matching a visibility query |
|
|
28
|
+
| `list_workflows` | List or search executions using visibility query syntax |
|
|
29
|
+
| `describe_workflow` | Status, type, task queue, start/close time |
|
|
30
|
+
| `start_workflow` | Start a new workflow execution |
|
|
31
|
+
| `signal_workflow` | Send a signal to a running workflow |
|
|
32
|
+
| `signal_with_start_workflow` | Start + signal in one atomic call (or signal if already running) |
|
|
33
|
+
| `query_workflow` | Query workflow state via a registered query handler |
|
|
34
|
+
| `cancel_workflow` | Request graceful cancellation |
|
|
35
|
+
| `terminate_workflow` | Force-terminate immediately (no cleanup) |
|
|
36
|
+
| `pause_workflow` | Pause execution (stops scheduling new tasks) |
|
|
37
|
+
| `unpause_workflow` | Resume a paused workflow |
|
|
38
|
+
| `get_workflow_history` | Event history with human-readable summaries |
|
|
39
|
+
|
|
40
|
+
### Schedules
|
|
41
|
+
| Tool | What it does |
|
|
42
|
+
|---|---|
|
|
43
|
+
| `list_schedules` | List all schedules in a namespace |
|
|
44
|
+
| `describe_schedule` | Spec, state, recent actions, next run times |
|
|
45
|
+
| `create_schedule` | Create a cron or interval-based schedule |
|
|
46
|
+
| `delete_schedule` | Delete a schedule |
|
|
47
|
+
|
|
48
|
+
### Activities
|
|
49
|
+
| Tool | What it does |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `list_activities` | List activity executions (filter by workflow, type, status) |
|
|
52
|
+
| `describe_activity` | State, attempt count, heartbeat, failure details |
|
|
53
|
+
|
|
54
|
+
### Batch Operations
|
|
55
|
+
| Tool | What it does |
|
|
56
|
+
|---|---|
|
|
57
|
+
| `list_batch_operations` | List bulk signal/cancel/terminate jobs |
|
|
58
|
+
| `describe_batch_operation` | Progress, state, success/failure counts |
|
|
59
|
+
| `stop_batch_operation` | Stop a running batch job |
|
|
60
|
+
|
|
61
|
+
### Worker Deployments
|
|
62
|
+
| Tool | What it does |
|
|
63
|
+
|---|---|
|
|
64
|
+
| `list_worker_deployments` | List all versioned worker deployments |
|
|
65
|
+
| `describe_worker_deployment` | Current/ramping version, version history |
|
|
66
|
+
|
|
67
|
+
### Nexus Endpoints
|
|
68
|
+
| Tool | What it does |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `list_nexus_endpoints` | List all Nexus endpoints in the cluster |
|
|
71
|
+
| `get_nexus_endpoint` | Endpoint target namespace and task queue |
|
|
72
|
+
| `create_nexus_endpoint` | Register a new Nexus endpoint |
|
|
73
|
+
| `delete_nexus_endpoint` | Remove a Nexus endpoint |
|
|
74
|
+
|
|
75
|
+
### Workflow Rules
|
|
76
|
+
| Tool | What it does |
|
|
77
|
+
|---|---|
|
|
78
|
+
| `list_workflow_rules` | List auto-action rules for matching workflows |
|
|
79
|
+
| `describe_workflow_rule` | Rule query, action, and creation time |
|
|
80
|
+
| `create_workflow_rule` | Create a TERMINATE or PAUSE rule with a visibility query |
|
|
81
|
+
| `delete_workflow_rule` | Delete a rule |
|
|
82
|
+
|
|
83
|
+
### Task Queues & Search Attributes
|
|
84
|
+
| Tool | What it does |
|
|
85
|
+
|---|---|
|
|
86
|
+
| `describe_task_queue` | Active pollers, task ID block |
|
|
87
|
+
| `list_search_attributes` | Custom and system search attributes |
|
|
88
|
+
|
|
89
|
+
## Requirements
|
|
90
|
+
|
|
91
|
+
- Node.js >= 18
|
|
92
|
+
- A running Temporal server (local or remote)
|
|
93
|
+
|
|
94
|
+
## Add to Cursor
|
|
95
|
+
|
|
96
|
+
Open or create `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json` for global):
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"mcpServers": {
|
|
101
|
+
"temporal": {
|
|
102
|
+
"command": "npx",
|
|
103
|
+
"args": ["-y", "@alisaitteke/temporal-mcp"],
|
|
104
|
+
"env": {
|
|
105
|
+
"TEMPORAL_ADDRESS": "http://localhost:8080",
|
|
106
|
+
"TEMPORAL_NAMESPACE": "default",
|
|
107
|
+
"TEMPORAL_TOOLS": "essential"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Restart Cursor. The Temporal tools will appear in the MCP tool list.
|
|
115
|
+
|
|
116
|
+
## Add to Claude Desktop
|
|
117
|
+
|
|
118
|
+
Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"mcpServers": {
|
|
123
|
+
"temporal": {
|
|
124
|
+
"command": "npx",
|
|
125
|
+
"args": ["-y", "@alisaitteke/temporal-mcp"],
|
|
126
|
+
"env": {
|
|
127
|
+
"TEMPORAL_ADDRESS": "http://localhost:8080",
|
|
128
|
+
"TEMPORAL_NAMESPACE": "default",
|
|
129
|
+
"TEMPORAL_TOOLS": "essential"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Restart Claude Desktop.
|
|
137
|
+
|
|
138
|
+
## Add to Claude Code
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
claude mcp add temporal \
|
|
142
|
+
--command "npx" \
|
|
143
|
+
--args "-y,@alisaitteke/temporal-mcp" \
|
|
144
|
+
--env "TEMPORAL_ADDRESS=http://localhost:8080" \
|
|
145
|
+
--env "TEMPORAL_NAMESPACE=default" \
|
|
146
|
+
--env "TEMPORAL_TOOLS=essential"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Environment Variables
|
|
150
|
+
|
|
151
|
+
| Variable | Required | Default | Description |
|
|
152
|
+
|---|---|---|---|
|
|
153
|
+
| `TEMPORAL_ADDRESS` | Yes | — | Temporal server base URL |
|
|
154
|
+
| `TEMPORAL_NAMESPACE` | No | `default` | Default namespace for all tools |
|
|
155
|
+
| `TEMPORAL_API_KEY` | No | — | Bearer token for authenticated clusters |
|
|
156
|
+
| `TEMPORAL_TOOLS` | No | `essential` | Tool set: `essential`, `standard`, or `all` |
|
|
157
|
+
|
|
158
|
+
### Tool tiers
|
|
159
|
+
|
|
160
|
+
| `TEMPORAL_TOOLS` | # | Role |
|
|
161
|
+
|---|---:|---|
|
|
162
|
+
| `essential` | 11 | **Default.** Cluster + namespaces + everyday workflow run/debug (list, describe, start, signal, query, cancel, terminate, history). Smallest tool list for the LLM. |
|
|
163
|
+
| `standard` | 23 | **essential** plus counts, pause/unpause, signal-with-start, schedules, activities, task queue description, and search attributes. |
|
|
164
|
+
| `all` | 36 | **standard** plus batch operations, worker deployments, Nexus endpoints, and workflow rules. |
|
|
165
|
+
|
|
166
|
+
| Set | Tools |
|
|
167
|
+
|---|---|
|
|
168
|
+
| `essential` only (11) | `get_cluster_info`, `list_namespaces`, `describe_namespace`, `list_workflows`, `describe_workflow`, `start_workflow`, `signal_workflow`, `query_workflow`, `cancel_workflow`, `terminate_workflow`, `get_workflow_history` |
|
|
169
|
+
| Also enabled with `standard` (+12, 23 total with essential) | `count_workflows`, `pause_workflow`, `unpause_workflow`, `signal_with_start_workflow`, `list_schedules`, `describe_schedule`, `create_schedule`, `delete_schedule`, `list_activities`, `describe_activity`, `describe_task_queue`, `list_search_attributes` |
|
|
170
|
+
| Also enabled with `all` (+13, 36 total with standard) | `list_batch_operations`, `describe_batch_operation`, `stop_batch_operation`, `list_worker_deployments`, `describe_worker_deployment`, `list_nexus_endpoints`, `get_nexus_endpoint`, `create_nexus_endpoint`, `delete_nexus_endpoint`, `list_workflow_rules`, `describe_workflow_rule`, `create_workflow_rule`, `delete_workflow_rule` |
|
|
171
|
+
|
|
172
|
+
## Structured Output
|
|
173
|
+
|
|
174
|
+
Key tools return both a human-readable text summary and a machine-readable `structuredContent` JSON object. Clients that support MCP structured output (e.g. Claude) can use the structured data for further processing without parsing text.
|
|
175
|
+
|
|
176
|
+
Tools with structured output: `get_cluster_info`, `list_namespaces`, `list_workflows`, `describe_workflow`, `count_workflows`, `list_schedules`, `list_activities`.
|
|
177
|
+
|
|
178
|
+
## Local Development
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
git clone https://github.com/alisaitteke/temporal-mcp
|
|
182
|
+
cd temporal-mcp
|
|
183
|
+
npm install
|
|
184
|
+
npm run build
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Use local path instead of npx:
|
|
188
|
+
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"mcpServers": {
|
|
192
|
+
"temporal": {
|
|
193
|
+
"command": "node",
|
|
194
|
+
"args": ["/path/to/temporal-mcp/bin/temporal-mcp.js"],
|
|
195
|
+
"env": {
|
|
196
|
+
"TEMPORAL_ADDRESS": "http://localhost:8080"
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## License
|
|
204
|
+
|
|
205
|
+
MIT
|
|
206
|
+
|
|
207
|
+
## Contributors
|
|
208
|
+
|
|
209
|
+
<table>
|
|
210
|
+
<tr>
|
|
211
|
+
<td align="center">
|
|
212
|
+
<a href="https://github.com/alisaitteke">
|
|
213
|
+
<img src="https://github.com/alisaitteke.png" width="100px;" alt="Ali Sait Teke"/>
|
|
214
|
+
<br />
|
|
215
|
+
<sub><b>Ali Sait Teke</b></sub>
|
|
216
|
+
</a>
|
|
217
|
+
<br />
|
|
218
|
+
<sub>Creator & Maintainer</sub>
|
|
219
|
+
</td>
|
|
220
|
+
</tr>
|
|
221
|
+
</table>
|
|
222
|
+
|
|
223
|
+
Thanks to everyone who helps improve this project!
|
|
224
|
+
|
|
225
|
+
[](https://github.com/alisaitteke/temporal-mcp/graphs/contributors)
|
package/dist/index.d.ts
ADDED