@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 ADDED
@@ -0,0 +1,225 @@
1
+ # Temporal.io MCP Server
2
+
3
+ ![Temporal MCP Banner](https://raw.githubusercontent.com/alisaitteke/temporal-mcp/refs/heads/master/temporal-mcp.jpg)
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
+ [![Contributors](https://img.shields.io/github/contributors/alisaitteke/temporal-mcp?style=flat-square)](https://github.com/alisaitteke/temporal-mcp/graphs/contributors)
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import('../dist/index.js').catch((err) => {
3
+ console.error('Failed to start Temporal MCP Server:', err);
4
+ process.exit(1);
5
+ });
@@ -0,0 +1,2 @@
1
+
2
+ export { }