# Temporal

```json
{
  "name": "Temporal",
  "slug": "temporal",
  "url": "https://composio.dev/toolkits/temporal",
  "markdown_url": "https://composio.dev/toolkits/temporal.md",
  "logo_url": "https://logos.composio.dev/api/temporal",
  "categories": [
    "workflow automation"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-12T14:19:18.464Z"
}
```

![Temporal logo](https://logos.composio.dev/api/temporal)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Temporal MCP or direct API to start workflows, query workflow state, signal executions, and cancel workflows through natural language.

## Summary

Temporal is a cloud-native workflow orchestration platform for building reliable distributed applications.
It ensures workflows run reliably, scale automatically, and recover from failures.

## Categories

- workflow automation

## Toolkit Details

- Tools: 63

## Images

- Logo: https://logos.composio.dev/api/temporal

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Temporal.
  - Setup:
    - Configure Api Key credentials for Temporal.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Start Temporal workflow to process order 12345
- List running workflows for customer ACME Corp
- Cancel workflow execution with workflowId abc-789

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `TEMPORAL_BATCH_CANCEL_WORKFLOWS` | Batch Cancel Workflows | Request cancellation of selected Temporal Workflows. Cancellation is cooperative: Workflow code can perform cleanup and external side effects before closing. Preview the exact Visibility query with COUNT_WORKFLOWS and obtain approval for the observed scope; its approximate count is not a hard upper bound because matches can change. Use explicit target_executions when a fixed cardinality bound is required. A stable job_id identifies this operation but does not make retries idempotently successful. After an ambiguous timeout, a retry may return 409 because Temporal rejects duplicate job IDs. Call DESCRIBE_BATCH_OPERATION with the same namespace_id and job_id to reconcile before creating any other batch operation. Requires Namespace Write access. |
| `TEMPORAL_BATCH_DELETE_WORKFLOWS` | Batch Delete Workflows | WARNING: Permanently delete selected Temporal Workflow Executions and their Event Histories. This cannot be undone. Preview the exact Visibility query with COUNT_WORKFLOWS and obtain approval for the observed scope; its approximate count is not a hard upper bound because matches can change. Use explicit target_executions when a fixed cardinality bound is required. A stable job_id identifies this operation but does not make retries idempotently successful. After an ambiguous timeout, a retry may return 409 because Temporal rejects duplicate job IDs. Call DESCRIBE_BATCH_OPERATION with the same namespace_id and job_id to reconcile before creating any other batch operation. Requires Namespace Write access. |
| `TEMPORAL_BATCH_RESET_WORKFLOWS` | Batch Reset Workflows | WARNING: Irreversibly reset selected Temporal Workflows. Each successful reset terminates the current run and creates a new run; replay and reapplied events can repeat application code and external side effects. Preview the exact Visibility query with COUNT_WORKFLOWS and obtain approval for the observed scope; its approximate count is not a hard upper bound because matches can change. Use explicit target_executions when a fixed cardinality bound is required. A stable job_id identifies this operation but does not make retries idempotently successful. After an ambiguous timeout, a retry may return 409 because Temporal rejects duplicate job IDs. Call DESCRIBE_BATCH_OPERATION with the same namespace_id and job_id to reconcile before creating any other batch operation. Requires Namespace Write access. |
| `TEMPORAL_BATCH_SIGNAL_WORKFLOWS` | Batch Signal Workflows | Send a named Signal to selected Temporal Workflows. Signal handlers run application code and can cause arbitrary, non-idempotent external side effects. Preview the exact Visibility query with COUNT_WORKFLOWS and obtain approval for the observed scope; its approximate count is not a hard upper bound because matches can change. Use explicit target_executions when a fixed cardinality bound is required. A stable job_id identifies this operation but does not make retries idempotently successful. After an ambiguous timeout, a retry may return 409 because Temporal rejects duplicate job IDs. Call DESCRIBE_BATCH_OPERATION with the same namespace_id and job_id to reconcile before creating any other batch operation. Requires Namespace Write access. |
| `TEMPORAL_BATCH_TERMINATE_WORKFLOWS` | Batch Terminate Workflows | WARNING: Irreversibly terminate selected Temporal Workflows immediately; Workflow cleanup code does not run. Preview the exact Visibility query with COUNT_WORKFLOWS and obtain approval for the observed scope; its approximate count is not a hard upper bound because matches can change. Use explicit target_executions when a fixed cardinality bound is required. A stable job_id identifies this operation but does not make retries idempotently successful. After an ambiguous timeout, a retry may return 409 because Temporal rejects duplicate job IDs. Call DESCRIBE_BATCH_OPERATION with the same namespace_id and job_id to reconcile before creating any other batch operation. Requires Namespace Write access. |
| `TEMPORAL_BATCH_UPDATE_WORKFLOW_OPTIONS` | Batch Update Workflow Options | Update typed execution options on selected Temporal Workflows. Worker routing, task priority, and virtual-time changes can cause application and external side effects. Preview the exact Visibility query with COUNT_WORKFLOWS and obtain approval for the observed scope; its approximate count is not a hard upper bound because matches can change. Use explicit target_executions when a fixed cardinality bound is required. A stable job_id identifies this operation but does not make retries idempotently successful. After an ambiguous timeout, a retry may return 409 because Temporal rejects duplicate job IDs. Call DESCRIBE_BATCH_OPERATION with the same namespace_id and job_id to reconcile before creating any other batch operation. Requires Namespace Write access. |
| `TEMPORAL_CANCEL_WORKFLOW` | Cancel Workflow | Irreversibly request cooperative cancellation of a running Temporal Workflow Execution. Temporal records a cancellation-requested event and schedules a Workflow Task, but the Workflow may delay or ignore cancellation depending on its code. A request for an already-closed Workflow succeeds. Requires Namespace Write access. |
| `TEMPORAL_COUNT_SCHEDULES` | Count Schedules | Return an approximate count of Temporal Schedules matching a Schedule Visibility query, including grouped counts when requested. Requires Namespace Read access. |
| `TEMPORAL_COUNT_WORKFLOWS` | Count Workflows | Return an approximate count of Workflow Executions matching a Temporal Visibility query, including supported grouped counts. Requires Namespace Read access. |
| `TEMPORAL_CREATE_AND_APPLY_WORKFLOW_RULE` | Create and Apply Workflow Rule | Create a Namespace-wide Temporal Workflow Rule and immediately start a batch job applying it to matching currently running Workflows. This may pause Activities across many executions and cause irreversible operational effects. Use request_id for idempotent retries. Requires Namespace Write access. |
| `TEMPORAL_CREATE_EXPORT_SINK` | Create Export Sink | Create a persistent Temporal Cloud Workflow History export sink asynchronously. Requires Namespace Admin access. Warning: an enabled sink writes closed Workflow Histories to external storage on an ongoing schedule and may incur storage costs. Validate the destination first, use a disposable sink for testing, and arrange teardown. |
| `TEMPORAL_CREATE_SCHEDULE` | Create Schedule | Create a Temporal Schedule that starts a configured Workflow on cron, interval, calendar, or structured-calendar times. The Workflow may perform arbitrary application side effects. Use request_id for idempotent retries. Requires Namespace Write access. |
| `TEMPORAL_CREATE_WORKFLOW_RULE` | Create Workflow Rule | Create a Namespace-wide Temporal Workflow Rule that can pause matching Activities when its trigger occurs. This does not scan currently running Workflows; use Create and Apply Workflow Rule for that separate intent. Use request_id for idempotent retries. Requires Namespace Write access. |
| `TEMPORAL_DELETE_EXPORT_SINK` | Delete Export Sink | Delete a Temporal Cloud Workflow History export sink asynchronously. Requires Namespace Admin access. WARNING: this irreversibly stops future exports from the sink. Files already exported to external storage remain there and must be managed separately. Confirm the Namespace, sink name, and current resource version before calling. |
| `TEMPORAL_DELETE_NAMESPACE` | Delete Namespace | Permanently and irreversibly delete a Temporal Cloud Namespace and all of its Workflow data asynchronously. WARNING: there is no recovery or undo. Use only for a verified disposable Namespace after confirming its full ID, contents, latest resource version, and that deletion protection is disabled. |
| `TEMPORAL_DELETE_SCHEDULE` | Delete Schedule | Permanently delete one Temporal Schedule from a Namespace. WARNING: schedule deletion cannot be undone, but it does not terminate or otherwise affect Workflow Executions the Schedule already started. Confirm the Namespace and Schedule ID before calling. Requires Namespace Write access. |
| `TEMPORAL_DELETE_WORKFLOW_RULE` | Delete Workflow Rule | Permanently delete one configured Temporal Workflow Rule from a Namespace. WARNING: deletion cannot be undone; after deletion the rule no longer applies to new triggering events. Confirm the Namespace and rule ID before calling. Requires Namespace Write access. |
| `TEMPORAL_DESCRIBE_BATCH_OPERATION` | Describe Batch Operation | Return progress, state, selection query, type, and failure counts for one batch operation in an authorized Temporal Cloud Namespace. Requires Namespace Read access. |
| `TEMPORAL_DESCRIBE_NAMESPACE` | Describe Namespace | Return one Temporal Cloud Namespace's configuration, resource version, routing endpoints, state, limits, and capacity. Requires Namespace Read access. |
| `TEMPORAL_DESCRIBE_SCHEDULE` | Describe Schedule | Return the complete current definition, state, execution information, Memo, Search Attributes, and conflict token for one Temporal Schedule. Use this before a full replacement update to preserve intended fields and guard against concurrent changes. Requires Namespace Read access. |
| `TEMPORAL_DESCRIBE_WORKFLOW` | Describe Workflow | Return configuration, status, pending work, callbacks, and child state for one Workflow Execution in an authorized Temporal Cloud Namespace. Omit run_id to describe the current run. Requires Namespace Read access. |
| `TEMPORAL_DESCRIBE_WORKFLOW_RULE` | Describe Workflow Rule | Return one configured Temporal Workflow Rule, including its trigger, Visibility query, actions, expiration, creation metadata, and description. Requires Namespace Read access. |
| `TEMPORAL_FAILOVER_NAMESPACE_REGION` | Fail Over Namespace Region | Switch a multi-region Temporal Cloud Namespace's active region asynchronously. WARNING: This operation disrupts current Namespace routing while failover completes. Require explicit approval and a documented rollback or failback plan before calling it. |
| `TEMPORAL_GET_ASYNC_OPERATION` | Get Async Operation | Return the current state and failure details of a Temporal Cloud asynchronous operation. |
| `TEMPORAL_GET_EXPORT_SINK` | Get Export Sink | Return one Temporal Cloud Workflow History export sink, including its resource version, destination configuration, state, and health. Requires Namespace Read access. |
| `TEMPORAL_GET_NAMESPACE_CAPACITY` | Get Namespace Capacity | Return a Temporal Cloud Namespace's capacity mode, available limits, and seven-day actions-per-second statistics. Requires Namespace Read access. |
| `TEMPORAL_GET_REGION` | Get Cloud Region | Return details for one Temporal Cloud region, including its cloud provider, provider-specific identifier, and human-readable location. |
| `TEMPORAL_GET_WORKFLOW_HISTORY` | Get Workflow History | Return one page of a Temporal Workflow Execution's Event History in forward or reverse order. Requires Namespace Read access. |
| `TEMPORAL_LIST_ARCHIVED_WORKFLOWS` | List Archived Workflows | Return one page of archived Workflow Executions matching an exact Temporal Visibility query. Requires Namespace Read access and a Namespace deployment with archival visibility configured and available; the probed Namespace returned HTTP 403 even with inherited Namespace Admin access. |
| `TEMPORAL_LIST_BATCH_OPERATIONS` | List Batch Operations | Return one page of batch operations in an authorized Temporal Cloud Namespace. Requires Namespace Read access. |
| `TEMPORAL_LIST_EXPORT_SINKS` | List Export Sinks | Return one page of Workflow History export sinks configured on a Temporal Cloud Namespace. Requires Namespace Read access. |
| `TEMPORAL_LIST_NAMESPACE_ASSIGNMENTS` | List Namespace Assignments | Return one page of users, User Groups, or Service Accounts assigned to a Temporal Cloud Namespace. Requires Namespace Read access. |
| `TEMPORAL_LIST_NAMESPACES` | List Namespaces | Return one page of Temporal Cloud Namespaces visible to the API-key identity, optionally filtered by name or Project. |
| `TEMPORAL_LIST_REGIONS` | List Cloud Regions | List currently available Temporal Cloud regions for Namespace placement. |
| `TEMPORAL_LIST_SCHEDULE_MATCHING_TIMES` | List Schedule Matching Times | List times within a required start-to-end range that match one Temporal Schedule's timing specification. Requires Namespace Read access. |
| `TEMPORAL_LIST_SCHEDULES` | List Schedules | Return one filtered page of Temporal Schedules in an authorized Temporal Cloud Namespace. Requires Namespace Read access. |
| `TEMPORAL_LIST_WORKFLOW_RULES` | List Workflow Rules | Return one page of Workflow Rules configured for an authorized Temporal Cloud Namespace. Requires Namespace Read access. |
| `TEMPORAL_LIST_WORKFLOWS` | List Workflows | Search one page of Workflow Executions in an authorized Temporal Cloud Namespace using Temporal Visibility query syntax. Requires Namespace Read access. |
| `TEMPORAL_MOVE_NAMESPACE_TO_PROJECT` | Move Namespace To Project | Move a Temporal Cloud Namespace to another Project asynchronously. WARNING: this disruptive operation can change inherited access and connectivity. Verify the source and destination Projects, preserve required connectivity rules, and obtain explicit approval before calling it. |
| `TEMPORAL_PATCH_SCHEDULE` | Patch Schedule | Apply targeted changes to a Temporal Schedule without replacing its definition: pause or unpause it, trigger one immediate action, or backfill historical times. Immediate and backfill operations start application Workflows and may cause arbitrary external side effects. Use request_id for idempotent retries. Requires Namespace Write access. |
| `TEMPORAL_PAUSE_WORKFLOW` | Pause Workflow | Pause one Temporal Workflow Execution. Temporal changes its status to PAUSED, records a WORKFLOW_EXECUTION_PAUSED event, stops dispatching new Workflow and Activity Tasks, pauses executing Activities, and rejects Queries and Updates; an executing Workflow Task may still complete and server-side events continue. This operational side effect can halt business processing. Always call UNPAUSE_WORKFLOW during teardown, even if a later step fails. Requires Namespace Write access. This Temporal API is experimental. |
| `TEMPORAL_QUERY_WORKFLOW` | Query Workflow | Run a synchronous, read-only Query handler against one Temporal Workflow Execution. The handler runs in Workflow context but cannot mutate Workflow state. Requires Namespace Read access. |
| `TEMPORAL_REGISTER_NAMESPACE` | Register Namespace | Create a billable, persistent Temporal Cloud Namespace asynchronously and return its full Namespace ID and operation ID. The name and replicas are immutable, and custom Search Attributes cannot be deleted. Use a unique disposable name for testing and arrange teardown only after creation completes. |
| `TEMPORAL_REMOVE_NAMESPACE_ACCESS` | Remove Namespace Access | Remove one user's, user group's, or service account's direct permission on a Temporal Cloud Namespace by setting PERMISSION_UNSPECIFIED. Requires Namespace Admin. WARNING: this can immediately remove access or lock out the selected identity; verify inherited access and never remove the caller's or sole administrator's access. |
| `TEMPORAL_RENAME_CUSTOM_SEARCH_ATTRIBUTE` | Rename Custom Search Attribute | Rename one custom Search Attribute in a Temporal Cloud Namespace asynchronously. This is a potentially breaking schema mutation: Temporal does not rewrite application Visibility queries or dashboards that reference the old name. Verify all consumers and use the latest Namespace resource version before starting the rename. |
| `TEMPORAL_REPLACE_WORKFLOW` | Replace Workflow | Replace a running Workflow Execution with a new execution using the same Workflow ID. WARNING: if that ID is running, Temporal irreversibly terminates the existing execution before starting the replacement. This may interrupt in-flight work, and the new Workflow may cause arbitrary external side effects. Use only when termination is explicitly intended, and use request_id for idempotent retries. Requires Namespace Write access. |
| `TEMPORAL_RESET_WORKFLOW` | Reset Workflow | WARNING: Irreversibly reset a Temporal Workflow to a selected Workflow Task event. Temporal terminates the current run and creates a new run; replay and reapplied events can repeat application code and external side effects. Verify the source run, event ID, and reapply policy before calling. |
| `TEMPORAL_SET_NAMESPACE_ACCESS` | Set Namespace Access | Set one user's, user group's, or service account's direct ADMIN, WRITE, or READ permission on a Temporal Cloud Namespace. The new permission replaces that principal's current direct access; setting a lower permission may lock out the caller or the Namespace's sole admin. Requires Namespace Admin. |
| `TEMPORAL_SIGNAL_WITH_START_WORKFLOW` | Signal With Start Workflow | Atomically signal a running Temporal Workflow or start and signal it when absent. This may run application code and trigger external side effects; use a stable request_id when retrying the same intent. The TERMINATE_EXISTING conflict policy and deprecated TERMINATE_IF_RUNNING reuse policy can terminate a running execution before starting and signaling its replacement. |
| `TEMPORAL_SIGNAL_WORKFLOW` | Signal Workflow | Send an asynchronous Signal to one running Temporal Workflow Execution. This records a history event, schedules Workflow code, and may trigger arbitrary external business side effects. Temporal's successful response only confirms acceptance, not handler completion. Use request_id to make retries idempotent. Requires Namespace Write access. |
| `TEMPORAL_START_OR_GET_WORKFLOW` | Start or Get Workflow | Start a Workflow Execution, or return the already-running execution when the Workflow ID conflicts. This action never replaces the running execution. The response has started=false when it returns the existing execution. Starting a Workflow dispatches application code and may cause arbitrary external side effects. Use request_id for idempotent retries. Requires Namespace Write access. |
| `TEMPORAL_START_WORKFLOW` | Start Workflow | Start a new Workflow Execution in an authorized Temporal Cloud Namespace. The request fails if the Workflow ID is already running; use Start or Get Workflow or Replace Workflow only when those different conflict semantics are intended. This dispatches application code and may cause arbitrary external side effects. Use request_id for idempotent retries. Requires Namespace Write access. |
| `TEMPORAL_STOP_BATCH_OPERATION` | Stop Batch Operation | Request that Temporal stop an in-progress batch operation. This does not roll back Workflows already processed by the batch: their cancellations, terminations, signals, deletions, resets, or option changes remain in effect. Requires Namespace Write access. |
| `TEMPORAL_TERMINATE_WORKFLOW` | Terminate Workflow | Immediately and irreversibly terminate one Temporal Workflow Execution. WARNING: termination bypasses cooperative cancellation and Workflow cleanup logic, so finally blocks, compensation, and pending work may not run. Use cancellation instead when the Workflow can clean up safely. Requires Namespace Write access. |
| `TEMPORAL_TRIGGER_WORKFLOW_RULE` | Trigger Workflow Rule | Trigger an existing configured Temporal Workflow Rule against one Workflow Execution. This irreversible request evaluates the rule and, when its conditions match, may run configured actions with destructive or arbitrary external side effects. Verify the Workflow and rule before calling; do not test against production or an unknown rule. A successful request can return applied=false when the rule conditions do not match. Requires Namespace Write access. |
| `TEMPORAL_UNPAUSE_WORKFLOW` | Unpause Workflow | Resume a paused Temporal Workflow Execution. Unpausing changes its status to running, records an unpaused history event, and resumes application code in Workflow and Activity Tasks, which may produce external side effects. Use request_id for idempotent retries. This Temporal API is experimental and requires Namespace Write access. |
| `TEMPORAL_UPDATE_EXPORT_SINK` | Update Export Sink | Update an existing Temporal Cloud Workflow History export sink asynchronously using optimistic concurrency. WARNING: this replaces the sink's destination configuration or enabled state for future exports and may redirect or stop Workflow History delivery; already exported files are not moved or undone. Confirm the complete current specification, destination, and resourceVersion before calling. |
| `TEMPORAL_UPDATE_NAMESPACE` | Update Namespace | Update a Temporal Cloud Namespace specification asynchronously using the latest resource version for optimistic concurrency. WARNING: this full-spec replacement can change retention, regions, capacity, authentication, deletion protection, and high-availability behavior; newly added custom Search Attributes cannot be deleted. Preserve every unchanged field and verify API-key access and deletion protection before calling. Requires Namespace Admin access. |
| `TEMPORAL_UPDATE_NAMESPACE_TAGS` | Update Namespace Tags | Upsert or permanently remove tags on a Temporal Cloud Namespace asynchronously; removed tags no longer exist on the Namespace. At least one of tags_to_upsert or tags_to_remove must be non-empty, and the same key cannot appear in both. The API-key owner must be a Global Admin or Account Owner; Namespace Admin access alone is insufficient. |
| `TEMPORAL_UPDATE_SCHEDULE` | Update Schedule | Fully replace an existing Temporal Schedule's spec, Workflow-start action, policies, and state. Omitted values in those structures are not preserved; supply the complete desired replacement configuration. The replacement can change when application Workflows run and may cause irreversible external side effects. Supply conflict_token to reject a stale update. Requires Namespace Write access. |
| `TEMPORAL_UPDATE_WORKFLOW` | Update Workflow | Send a durable Update to one Temporal Workflow Execution and wait for the requested lifecycle stage. The Workflow handler may mutate state and cause arbitrary external business side effects. Reuse update_id only when retrying the same intended Update. An admitted or accepted response can omit outcome; the returned update_ref identifies the still-running Update. Requires Namespace Write access. |
| `TEMPORAL_UPDATE_WORKFLOW_OPTIONS` | Update Workflow Options | Update selected options on one Temporal Workflow Execution using an exact protobuf FieldMask. This mutation can reroute Workflow Tasks to different Workers, change task priority, or alter virtual-time behavior and thereby cause application side effects. Use only on an intended execution, capture the prior options, and restore them when testing. Requires Namespace Write access. |
| `TEMPORAL_VALIDATE_EXPORT_SINK` | Validate Export Sink | Validate a Temporal Cloud Workflow History export sink configuration. WARNING: this is not read-only; Temporal writes an empty test object to the configured external bucket or container. Use only an owner-approved disposable bucket or container. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Temporal Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Temporal actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'YOUR_SPECIFIC_PROMPT_HERE'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for Temporal
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Temporal tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('YOUR_SPECIFIC_PROMPT_HERE')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Temporal Integration

- Supports both Temporal MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Temporal data

### 2. Managed Auth

- Built-in API key handling with secure storage
- Central place to manage, scope, and revoke Temporal access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Temporal
- Scoped, least privilege access to Temporal resources
- Full audit trail of agent actions to support review and compliance

## Use Temporal with any AI Agent Framework

Choose a framework you want to connect Temporal with:

- [ChatGPT](https://composio.dev/toolkits/temporal/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/temporal/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/temporal/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/temporal/framework/atomic-agent)

## Related Toolkits

- [0CodeKit](https://composio.dev/toolkits/0codekit) - 0CodeKit is a utility API platform for AI, document, image, and data workflows. Use it to convert, validate, generate, store, and automate data without custom backend code.
- [Airtop](https://composio.dev/toolkits/airtop) - Airtop is a cloud browser platform for AI-powered web automation. Use it to navigate sites, extract data, and run reusable browser workflows.
- [Apify MCP](https://composio.dev/toolkits/apify_mcp) - Apify MCP is the official MCP server for Apify's web scraping and browser automation platform. Use it to run actors, collect structured web data, and automate crawling workflows.
- [Apilio](https://composio.dev/toolkits/apilio) - Apilio is a home automation platform that lets you connect and control smart devices from different brands. It helps you build flexible automations with complex conditions, schedules, and integrations.
- [Basin](https://composio.dev/toolkits/basin) - Basin is a no-code form backend for quickly setting up reliable contact forms. It lets you collect and manage form submissions without writing any server-side code.
- [Bika.ai](https://composio.dev/toolkits/bika) - Bika.ai is an AI automation database platform for managing spaces, teams, records, automations, and outgoing webhooks. It helps teams organize structured data and automate database-driven workflows in one place.
- [Botster](https://composio.dev/toolkits/botster) - Botster is a web automation service for running configurable data collection bots. Use it to collect structured web data without building and maintaining scrapers yourself.
- [Bouncer](https://composio.dev/toolkits/bouncer) - Bouncer is an email validation platform that verifies the authenticity of email addresses in real-time and batch. It helps boost deliverability and reduce bounce rates for your communications.
- [BrowserAct](https://composio.dev/toolkits/browseract) - BrowserAct is a hosted browser-automation service for running web workflows. Use it to execute repeatable browser tasks with templates, proxies, and APIs.
- [Celigo](https://composio.dev/toolkits/celigo) - Celigo is an integration platform as a service for connecting apps, data, and business workflows. It helps teams automate cross-system processes without building every integration from scratch.
- [CheckFlow](https://composio.dev/toolkits/checkflow) - CheckFlow is a workflow and checklist platform for repeatable processes, tasks, templates, teams, data sets, and automation. Use it to standardize operations, track process execution, and keep teams aligned.
- [Conveyor](https://composio.dev/toolkits/conveyor) - Conveyor is a platform that automates security reviews with a Trust Center and AI-driven questionnaire automation. It streamlines compliance and vendor security processes for faster, hassle-free reviews.
- [CrewAI](https://composio.dev/toolkits/crew_ai) - CrewAI is a platform for running deployed automations and managing AMP control-plane resources. Use it to automate workflows and centrally control SaaS automation resources.
- [Cronfree Time Scheduler](https://composio.dev/toolkits/cronfree_time_scheduler) - Cronfree Time Scheduler is an API-based scheduler for recurring webhook calls. Use it to create and remove timezone-aware schedules without running cron.
- [Crowdin](https://composio.dev/toolkits/crowdin) - Crowdin is a localization management platform that streamlines translation workflows and collaboration. It helps teams centralize multilingual content, boost productivity, and automate translation processes.
- [Databox](https://composio.dev/toolkits/databox) - Databox is a business analytics platform that connects your data from any tool and device. It helps you track KPIs, build dashboards, and discover actionable insights.
- [Detrack](https://composio.dev/toolkits/detrack) - Detrack is a delivery management platform for real-time tracking and proof of delivery. It helps businesses automate notifications and keep customers updated every step of the way.
- [Dify](https://composio.dev/toolkits/dify) - Dify is a platform for running and managing published workflow apps via a Service API. Use it to execute workflows and inspect configuration and run history quickly.
- [Digital Humani](https://composio.dev/toolkits/digital_humani) - Digital Humani is a reforestation API for browsing planting projects, submitting tree requests, and tracking planted trees. It helps teams connect climate action directly to products, campaigns, and customer experiences.
- [Dnsfilter](https://composio.dev/toolkits/dnsfilter) - Dnsfilter is a cloud-based DNS security and content filtering solution. It helps organizations block online threats and manage safe internet access with ease.

## Frequently Asked Questions

### Do I need my own developer credentials to use Temporal with Composio?

Yes, Temporal requires you to configure your own API key credentials. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
