{"_id":"@alisaitteke/temporal-mcp","name":"@alisaitteke/temporal-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@alisaitteke/temporal-mcp","version":"0.1.0","description":"MCP server for the Temporal HTTP API — manage workflows, namespaces, and schedules from any MCP-compatible IDE","type":"module","main":"dist/index.js","bin":{"temporal-mcp":"bin/temporal-mcp.js"},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit"},"engines":{"node":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/alisaitteke/temporal-mcp.git"},"keywords":["temporal","mcp","model-context-protocol","workflow","cursor","claude"],"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.25.3","zod":"^3.23.8"},"devDependencies":{"@types/node":"^22.0.0","tsup":"^8.5.1","typescript":"^5.5.0","vitest":"^2.1.0"},"_id":"@alisaitteke/temporal-mcp@0.1.0","gitHead":"9f9b3fd01466776f8e37f932f6633762c7178548","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/alisaitteke/temporal-mcp/issues"},"homepage":"https://github.com/alisaitteke/temporal-mcp#readme","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-y+4DilSLjYS6ootrNTvdn3HOxNVcLg52TE6DLK2klrX7FGr8qq3BVvkMMIMeHnpGSyJNgkoOEQJCmJ11tWaRsA==","shasum":"141977e793ef33cde644830ee0441eab0a3a1d18","tarball":"https://registry.npmjs.org/@alisaitteke/temporal-mcp/-/temporal-mcp-0.1.0.tgz","fileCount":7,"unpackedSize":288649,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC5LhOxu37DavPTWF4TPCB/y3suzNLC10/OIprZmI4/1AiEAyIbfRjm46+Z5YEalLiHE+zLEtaESBi6F9NDEcUCYSLU="}]},"_npmUser":{"name":"axee","email":"alisaitt@gmail.com"},"directories":{},"maintainers":[{"name":"axee","email":"alisaitt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/temporal-mcp_0.1.0_1774016646800_0.8094971053994282"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T14:24:06.682Z","0.1.0":"2026-03-20T14:24:06.934Z","modified":"2026-03-20T14:24:07.214Z"},"maintainers":[{"name":"axee","email":"alisaitt@gmail.com"}],"description":"MCP server for the Temporal HTTP API — manage workflows, namespaces, and schedules from any MCP-compatible IDE","homepage":"https://github.com/alisaitteke/temporal-mcp#readme","keywords":["temporal","mcp","model-context-protocol","workflow","cursor","claude"],"repository":{"type":"git","url":"git+https://github.com/alisaitteke/temporal-mcp.git"},"bugs":{"url":"https://github.com/alisaitteke/temporal-mcp/issues"},"license":"MIT","readme":"# Temporal.io MCP Server\n\n![Temporal MCP Banner](https://raw.githubusercontent.com/alisaitteke/temporal-mcp/refs/heads/master/temporal-mcp.jpg)\n\nMCP 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.\n\n> **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)\n\n**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).\n\n## Tools\n\n### Cluster\n| Tool | What it does |\n|---|---|\n| `get_cluster_info` | Server version, cluster ID, and enabled capabilities |\n\n### Namespaces\n| Tool | What it does |\n|---|---|\n| `list_namespaces` | List all namespaces in the cluster |\n| `describe_namespace` | Config, retention period, replication info |\n\n### Workflows\n| Tool | What it does |\n|---|---|\n| `count_workflows` | Count executions matching a visibility query |\n| `list_workflows` | List or search executions using visibility query syntax |\n| `describe_workflow` | Status, type, task queue, start/close time |\n| `start_workflow` | Start a new workflow execution |\n| `signal_workflow` | Send a signal to a running workflow |\n| `signal_with_start_workflow` | Start + signal in one atomic call (or signal if already running) |\n| `query_workflow` | Query workflow state via a registered query handler |\n| `cancel_workflow` | Request graceful cancellation |\n| `terminate_workflow` | Force-terminate immediately (no cleanup) |\n| `pause_workflow` | Pause execution (stops scheduling new tasks) |\n| `unpause_workflow` | Resume a paused workflow |\n| `get_workflow_history` | Event history with human-readable summaries |\n\n### Schedules\n| Tool | What it does |\n|---|---|\n| `list_schedules` | List all schedules in a namespace |\n| `describe_schedule` | Spec, state, recent actions, next run times |\n| `create_schedule` | Create a cron or interval-based schedule |\n| `delete_schedule` | Delete a schedule |\n\n### Activities\n| Tool | What it does |\n|---|---|\n| `list_activities` | List activity executions (filter by workflow, type, status) |\n| `describe_activity` | State, attempt count, heartbeat, failure details |\n\n### Batch Operations\n| Tool | What it does |\n|---|---|\n| `list_batch_operations` | List bulk signal/cancel/terminate jobs |\n| `describe_batch_operation` | Progress, state, success/failure counts |\n| `stop_batch_operation` | Stop a running batch job |\n\n### Worker Deployments\n| Tool | What it does |\n|---|---|\n| `list_worker_deployments` | List all versioned worker deployments |\n| `describe_worker_deployment` | Current/ramping version, version history |\n\n### Nexus Endpoints\n| Tool | What it does |\n|---|---|\n| `list_nexus_endpoints` | List all Nexus endpoints in the cluster |\n| `get_nexus_endpoint` | Endpoint target namespace and task queue |\n| `create_nexus_endpoint` | Register a new Nexus endpoint |\n| `delete_nexus_endpoint` | Remove a Nexus endpoint |\n\n### Workflow Rules\n| Tool | What it does |\n|---|---|\n| `list_workflow_rules` | List auto-action rules for matching workflows |\n| `describe_workflow_rule` | Rule query, action, and creation time |\n| `create_workflow_rule` | Create a TERMINATE or PAUSE rule with a visibility query |\n| `delete_workflow_rule` | Delete a rule |\n\n### Task Queues & Search Attributes\n| Tool | What it does |\n|---|---|\n| `describe_task_queue` | Active pollers, task ID block |\n| `list_search_attributes` | Custom and system search attributes |\n\n## Requirements\n\n- Node.js >= 18\n- A running Temporal server (local or remote)\n\n## Add to Cursor\n\nOpen or create `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json` for global):\n\n```json\n{\n  \"mcpServers\": {\n    \"temporal\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alisaitteke/temporal-mcp\"],\n      \"env\": {\n        \"TEMPORAL_ADDRESS\": \"http://localhost:8080\",\n        \"TEMPORAL_NAMESPACE\": \"default\",\n        \"TEMPORAL_TOOLS\": \"essential\"\n      }\n    }\n  }\n}\n```\n\nRestart Cursor. The Temporal tools will appear in the MCP tool list.\n\n## Add to Claude Desktop\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"temporal\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alisaitteke/temporal-mcp\"],\n      \"env\": {\n        \"TEMPORAL_ADDRESS\": \"http://localhost:8080\",\n        \"TEMPORAL_NAMESPACE\": \"default\",\n        \"TEMPORAL_TOOLS\": \"essential\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop.\n\n## Add to Claude Code\n\n```bash\nclaude mcp add temporal \\\n  --command \"npx\" \\\n  --args \"-y,@alisaitteke/temporal-mcp\" \\\n  --env \"TEMPORAL_ADDRESS=http://localhost:8080\" \\\n  --env \"TEMPORAL_NAMESPACE=default\" \\\n  --env \"TEMPORAL_TOOLS=essential\"\n```\n\n## Environment Variables\n\n| Variable | Required | Default | Description |\n|---|---|---|---|\n| `TEMPORAL_ADDRESS` | Yes | — | Temporal server base URL |\n| `TEMPORAL_NAMESPACE` | No | `default` | Default namespace for all tools |\n| `TEMPORAL_API_KEY` | No | — | Bearer token for authenticated clusters |\n| `TEMPORAL_TOOLS` | No | `essential` | Tool set: `essential`, `standard`, or `all` |\n\n### Tool tiers\n\n| `TEMPORAL_TOOLS` | # | Role |\n|---|---:|---|\n| `essential` | 11 | **Default.** Cluster + namespaces + everyday workflow run/debug (list, describe, start, signal, query, cancel, terminate, history). Smallest tool list for the LLM. |\n| `standard` | 23 | **essential** plus counts, pause/unpause, signal-with-start, schedules, activities, task queue description, and search attributes. |\n| `all` | 36 | **standard** plus batch operations, worker deployments, Nexus endpoints, and workflow rules. |\n\n| Set | Tools |\n|---|---|\n| `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` |\n| 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` |\n| 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` |\n\n## Structured Output\n\nKey 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.\n\nTools with structured output: `get_cluster_info`, `list_namespaces`, `list_workflows`, `describe_workflow`, `count_workflows`, `list_schedules`, `list_activities`.\n\n## Local Development\n\n```bash\ngit clone https://github.com/alisaitteke/temporal-mcp\ncd temporal-mcp\nnpm install\nnpm run build\n```\n\nUse local path instead of npx:\n\n```json\n{\n  \"mcpServers\": {\n    \"temporal\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/temporal-mcp/bin/temporal-mcp.js\"],\n      \"env\": {\n        \"TEMPORAL_ADDRESS\": \"http://localhost:8080\"\n      }\n    }\n  }\n}\n```\n\n## License\n\nMIT\n\n## Contributors\n\n<table>\n  <tr>\n    <td align=\"center\">\n      <a href=\"https://github.com/alisaitteke\">\n        <img src=\"https://github.com/alisaitteke.png\" width=\"100px;\" alt=\"Ali Sait Teke\"/>\n        <br />\n        <sub><b>Ali Sait Teke</b></sub>\n      </a>\n      <br />\n      <sub>Creator & Maintainer</sub>\n    </td>\n  </tr>\n</table>\n\nThanks to everyone who helps improve this project!\n\n[![Contributors](https://img.shields.io/github/contributors/alisaitteke/temporal-mcp?style=flat-square)](https://github.com/alisaitteke/temporal-mcp/graphs/contributors)\n","readmeFilename":"README.md","_rev":"1-3827513c35be7e47fe2ea260501686ab"}