Class: TemporalMCPClient
strands.TemporalMCPClient
Workflow-side handle to an MCP server registered on the worker.
The transport factory and tool discovery live worker-side via
StrandsPlugin({ mcpClients: { server: () => new McpClient(...) } }).
This handle only carries the server name (which selects the registered
factory) and the per-call activity options.
Extends McpClient so it can be passed directly in an
AgentConfig.tools | Agent.tools array (Strands' flattenTools
dispatches on instanceof McpClient). connect() and disconnect()
are no-ops; listTools() returns lightweight TemporalMCPTool
wrappers whose stream() dispatches to the per-server {server}-callTool
activity registered by StrandsPlugin.
Hierarchy
-
McpClient↳
TemporalMCPClient
Constructors
constructor
• new TemporalMCPClient(options): TemporalMCPClient
Parameters
| Name | Type |
|---|---|
options | TemporalMCPClientOptions |
Returns
Overrides
McpClient.constructor
Properties
cacheTools
• Readonly cacheTools: boolean
Whether the agent lists this server's tools once or re-lists each turn.
DEFAULT_POLL_TIMEOUT
▪ Static Readonly DEFAULT_POLL_TIMEOUT: 300000
Default poll timeout for task completion in milliseconds (5 minutes).
Inherited from
McpClient.DEFAULT_POLL_TIMEOUT
DEFAULT_TTL
▪ Static Readonly DEFAULT_TTL: 60000
Default TTL for task polling in milliseconds (60 seconds).
Inherited from
McpClient.DEFAULT_TTL
Accessors
client
• get client(): Client<{ method: string ; params?: { _meta?: { io.modelcontextprotocol/related-task?: { taskId: string } ; progressToken?: string | number } } }, { method: string ; params?: { _meta?: { io.modelcontextprotocol/related-task?: { taskId: string } ; progressToken?: string | number } } }, { _meta?: { io.modelcontextprotocol/related-task?: { taskId: string } ; progressToken?: string | number } }>
Returns
Client<{ method: string ; params?: { _meta?: { io.modelcontextprotocol/related-task?: { taskId: string } ; progressToken?: string | number } } }, { method: string ; params?: { _meta?: { io.modelcontextprotocol/related-task?: { taskId: string } ; progressToken?: string | number } } }, { _meta?: { io.modelcontextprotocol/related-task?: { taskId: string } ; progressToken?: string | number } }>
Inherited from
McpClient.client
clientName
• get clientName(): string
Returns
string
Inherited from
McpClient.clientName
connectionState
• get connectionState(): McpConnectionState
Returns
McpConnectionState
Inherited from
McpClient.connectionState
continueOnError
• get continueOnError(): boolean
Returns
boolean
Inherited from
McpClient.continueOnError
onToolsChanged
• set onToolsChanged(callback): void
Sets a callback invoked when the MCP server's tool list changes at runtime.
Parameters
| Name | Type | Description |
|---|---|---|
callback | undefined | (oldTools: string[], newTools: McpTool[]) => void | Handler receiving the previous tool names and the refreshed tool instances, or undefined to remove the callback. |
Returns
void
Inherited from
McpClient.onToolsChanged
serverCapabilities
• get serverCapabilities(): undefined | { completions?: object ; experimental?: {} ; logging?: object ; prompts?: { listChanged?: boolean } ; resources?: { listChanged?: boolean ; subscribe?: boolean } ; tasks?: { cancel?: object ; list?: object ; requests?: { tools?: { call?: object } } } ; tools?: { listChanged?: boolean } }
Returns
undefined | { completions?: object ; experimental?: {} ; logging?: object ; prompts?: { listChanged?: boolean } ; resources?: { listChanged?: boolean ; subscribe?: boolean } ; tasks?: { cancel?: object ; list?: object ; requests?: { tools?: { call?: object } } } ; tools?: { listChanged?: boolean } }
Inherited from
McpClient.serverCapabilities
serverInstructions
• get serverInstructions(): undefined | string
Returns
undefined | string
Inherited from
McpClient.serverInstructions
serverVersion
• get serverVersion(): undefined | { description?: string ; icons?: { mimeType?: string ; sizes?: string[] ; src: string ; theme?: "light" | "dark" }[] ; name: string ; title?: string ; version: string ; websiteUrl?: string }
Returns
undefined | { description?: string ; icons?: { mimeType?: string ; sizes?: string[] ; src: string ; theme?: "light" | "dark" }[] ; name: string ; title?: string ; version: string ; websiteUrl?: string }
Inherited from
McpClient.serverVersion
Methods
[asyncDispose]
▸ [asyncDispose](): Promise<void>
Enables the await using pattern for automatic resource cleanup.
Delegates to McpClient.disconnect.
Returns
Promise<void>
Inherited from
McpClient.[asyncDispose]
callTool
▸ callTool(tool, args, options?): Promise<JSONValue>
Invoke a tool on the connected MCP server using an McpTool instance.
When tasksConfig was provided to the client constructor, uses experimental
task-based invocation which supports long-running tools with progress tracking.
Otherwise, calls tools directly without task management.
Parameters
| Name | Type | Description |
|---|---|---|
tool | McpTool | The McpTool instance to invoke. |
args | JSONValue | The arguments to pass to the tool. |
options? | McpCallToolOptions | Optional settings for the request. |
Returns
Promise<JSONValue>
A promise that resolves with the result of the tool invocation.
Inherited from
McpClient.callTool
connect
▸ connect(): Promise<void>
Returns
Promise<void>
Overrides
McpClient.connect
disconnect
▸ disconnect(): Promise<void>
Returns
Promise<void>
Overrides
McpClient.disconnect
listTools
▸ listTools(): Promise<never[]>
Returns
Promise<never[]>
Overrides
McpClient.listTools
refreshTools
▸ refreshTools(registry): Promise<void>
Re-list this server's tools and reconcile them into the agent's tool
registry, dropping tools that no longer exist and adding new ones.
TemporalAgent calls this on each agent turn when cacheTools is
false so a mid-workflow MCP-server restart is reflected in the next call.
Parameters
| Name | Type |
|---|---|
registry | ToolRegistryView |
Returns
Promise<void>