Skip to content

McpClient

Defined in: src/mcp/client.ts:319

MCP client using SDK v2, including legacy task execution.

const client = new McpClient({ url: 'https://example.com/mcp', tasksConfig: {} })
const agent = new Agent({ tools: [client] })
new McpClient(args): McpClient;

Defined in: src/mcp/client.ts:401

ParameterType
argsMcpClientConfig

McpClient

readonly static DEFAULT_TTL: 60000 = 60000;

Defined in: src/mcp/client.ts:325

Default task lifecycle request timeout in milliseconds.

Use McpClient.DEFAULT_REQUEST_TIMEOUT.


readonly static DEFAULT_POLL_TIMEOUT: 300000 = 300000;

Defined in: src/mcp/client.ts:328

Default overall task operation deadline in milliseconds.


readonly static DEFAULT_REQUEST_TIMEOUT: 60000 = 60000;

Defined in: src/mcp/client.ts:331

Default task lifecycle request timeout in milliseconds.


readonly static DEFAULT_POLL_INTERVAL_MS: 1000 = 1000;

Defined in: src/mcp/client.ts:334

Default polling interval when a legacy task response omits pollInterval.

get client(): Client;

Defined in: src/mcp/client.ts:511

Client


get serverCapabilities(): any;

Defined in: src/mcp/client.ts:515

any


get serverVersion(): any;

Defined in: src/mcp/client.ts:519

any


get serverInstructions(): string;

Defined in: src/mcp/client.ts:523

string


get connectionState(): McpConnectionState;

Defined in: src/mcp/client.ts:527

McpConnectionState


get clientName(): string;

Defined in: src/mcp/client.ts:531

string


get continueOnError(): boolean;

Defined in: src/mcp/client.ts:535

boolean


set onToolsChanged(callback): void;

Defined in: src/mcp/client.ts:753

Sets a callback invoked when the MCP server’s tool list changes at runtime.

ParameterTypeDescription
callback(oldTools, newTools) => voidHandler receiving the previous tool names and the refreshed tool instances, or undefined to remove the callback.

void

static loadServers(
config,
defaults?,
options?
): Promise<McpClient[]>;

Defined in: src/mcp/client.ts:344

Parses an MCP servers config (file path or object) and returns McpClient instances.

ParameterTypeDescription
config| string | Record<string, McpServerConfig>A file path to a JSON config, or a flat server map object.
defaults?McpClientOptionsOptions applied to all clients unless overridden per-server.
options?McpLoadServersOptionsLoader behavior, such as prefixing tools with the server name.

Promise<McpClient[]>

An array of McpClient instances ready to be passed to an Agent.


connect(reconnect?, options?): Promise<void>;

Defined in: src/mcp/client.ts:569

Connects the MCP client to the server.

Called lazily before any operation that requires a connection. When continueOnError is true, connection failures are swallowed and the client enters a 'failed' state. Subsequent calls are then no-ops until connect(true) is called explicitly to retry.

A client configured with url retries on a fresh transport and connection. A client configured with a transport instance reuses it, so the retry only works when that transport can be started again (a StreamableHTTPClientTransport cannot, so construct a new McpClient instead).

ParameterTypeDefault valueDescription
reconnectbooleanfalseWhen true, forces a reconnect even if already connected or failed.
options?{ signal?: AbortSignal; }undefinedOptional abort signal that stops this caller’s wait. The connection attempt itself continues for other callers awaiting it.
options.signal?AbortSignalundefined-

Promise<void>

A promise that resolves when the connection is established.


disconnect(): Promise<void>;

Defined in: src/mcp/client.ts:652

Disconnects the MCP client from the server and cleans up resources.

Promise<void>

A promise that resolves when the disconnection is complete.


asyncDispose: Promise<void>;

Defined in: src/mcp/client.ts:669

Enables the await using pattern for automatic resource cleanup. Delegates to McpClient.disconnect.

Promise<void>


listTools(options?): Promise<McpTool[]>;

Defined in: src/mcp/client.ts:685

Lists the tools available on the server and returns them as executable McpTool instances.

A prefix renames tools for the agent only; tools are always invoked, and matched by string and RegExp filters, under their server-side name. Overlong prefixed names are skipped with a warning when continueOnError is true; otherwise, listing throws. Unprefixed names are not length-checked.

ParameterTypeDescription
options?McpListToolsOptionsOverrides for the prefix and filters set on the client. An omitted field uses the client’s value; an explicit empty string or empty object disables it.

Promise<McpTool[]>

A promise that resolves with an array of McpTool instances.

ToolValidationError When a prefixed name exceeds the registry limit and continueOnError is false.


listPrompts(options?): Promise<ListPromptsResult>;

Defined in: src/mcp/client.ts:791

Lists the prompts available on the server.

Without a paginationToken the client aggregates every page into one result with no nextCursor, and throws ListPaginationExceeded when the server pages past listMaxPages (64 unless configured). With a token it fetches a single page whose nextCursor feeds the next call.

ParameterTypeDescription
options?McpListOptionsPagination options.

Promise<ListPromptsResult>

A promise that resolves with the raw MCP list prompts result.

Error when an earlier connect attempt failed with continueOnError set. Call connect(true) to retry.


getPrompt(promptId, args?): Promise<GetPromptResult>;

Defined in: src/mcp/client.ts:804

Retrieves a prompt from the server by name.

ParameterTypeDescription
promptIdstringThe name of the prompt to retrieve.
args?Record<string, string>Arguments for the prompt’s template substitution.

Promise<GetPromptResult>

A promise that resolves with the raw MCP prompt result.

Error when an earlier connect attempt failed with continueOnError set. Call connect(true) to retry.


listResources(options?): Promise<ListResourcesResult>;

Defined in: src/mcp/client.ts:821

Lists the resources available on the server.

Without a paginationToken the client aggregates every page into one result with no nextCursor, and throws ListPaginationExceeded when the server pages past listMaxPages (64 unless configured). With a token it fetches a single page whose nextCursor feeds the next call.

ParameterTypeDescription
options?McpListOptionsPagination options.

Promise<ListResourcesResult>

A promise that resolves with the raw MCP list resources result.

Error when an earlier connect attempt failed with continueOnError set. Call connect(true) to retry.


readResource(uri): Promise<ReadResourceResult>;

Defined in: src/mcp/client.ts:833

Reads a resource from the server.

ParameterTypeDescription
uristring | URLThe URI of the resource to read.

Promise<ReadResourceResult>

A promise that resolves with the raw MCP resource content.

Error when an earlier connect attempt failed with continueOnError set. Call connect(true) to retry.


listResourceTemplates(options?): Promise<ListResourceTemplatesResult>;

Defined in: src/mcp/client.ts:850

Lists the resource templates available on the server.

Without a paginationToken the client aggregates every page into one result with no nextCursor, and throws ListPaginationExceeded when the server pages past listMaxPages (64 unless configured). With a token it fetches a single page whose nextCursor feeds the next call.

ParameterTypeDescription
options?McpListOptionsPagination options.

Promise<ListResourceTemplatesResult>

A promise that resolves with the raw MCP list resource templates result.

Error when an earlier connect attempt failed with continueOnError set. Call connect(true) to retry.


callTool(
tool,
args,
options?
): Promise<JSONValue>;

Defined in: src/mcp/client.ts:869

Invoke a tool on the connected MCP server using an McpTool instance.

When tasksConfig is set, task-backed execution is completed automatically on both server generations: SEP-2663 tasks on servers that advertise the tasks extension, and the legacy 2025-11-25 task protocol. Direct tool results are returned unchanged.

ParameterTypeDescription
toolMcpToolThe McpTool instance to invoke.
argsJSONValueThe arguments to pass to the tool.
options?McpCallToolOptionsOptional settings for the request.

Promise<JSONValue>

The final tool result.

McpTaskCancelledError When the server reports a cancelled task.

McpTaskFailedError When the server reports a failed task.


submitTool(
tool,
args,
options?
): Promise<any>;

Defined in: src/mcp/client.ts:912

Invokes a tool once and returns either its direct result or a server-created task handle.

This operation never polls or consumes a returned task handle. Task creation is controlled by the server; the client only advertises support when tasksConfig is configured.

ParameterTypeDescription
toolMcpToolThe McpTool instance to invoke.
argsJSONValueThe arguments to pass to the tool.
options?McpCallToolOptionsOptional settings for the request.

Promise<any>

The direct tool result or task handle returned by the server.


getTask(taskId, options?): Promise<McpGetTaskResult>;

Defined in: src/mcp/client.ts:961

Retrieves the current state of a SEP-2663 task.

ParameterTypeDescription
taskIdstringServer-issued task identifier.
options?McpTaskRequestOptionsOptional lifecycle request settings.

Promise<McpGetTaskResult>

The validated task state, including terminal result or error data when present.


updateTask(
taskId,
inputResponses,
options?
): Promise<McpUpdateTaskResult>;

Defined in: src/mcp/client.ts:982

Supplies one or more responses to outstanding task input requests.

Partial response sets are supported; the server may keep the task in input_required until every outstanding request has been answered.

ParameterTypeDescription
taskIdstringServer-issued task identifier.
inputResponsesMcpInputResponsesResponses keyed by the corresponding input request key.
options?McpTaskRequestOptionsOptional lifecycle request settings.

Promise<McpUpdateTaskResult>

The server’s validated acknowledgement.


cancelTask(taskId, options?): Promise<McpCancelTaskResult>;

Defined in: src/mcp/client.ts:1011

Requests cooperative cancellation of a SEP-2663 task.

A successful acknowledgement does not guarantee that the server stopped the work or that the task will eventually report cancelled.

ParameterTypeDescription
taskIdstringServer-issued task identifier.
options?McpTaskRequestOptionsOptional lifecycle request settings.

Promise<McpCancelTaskResult>

The server’s validated acknowledgement.