> ## Documentation Index
> Fetch the complete documentation index at: https://fastmcp-ts.docs.prefect.io/llms.txt
> Use this file to discover all available pages before exploring further.

# MultiServerClient

Defined in: [client/multi-server.ts:47](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L47)

## Implements

* [`IClient`](/api/client/interfaces/IClient)

## Constructors

### Constructor

```ts theme={null}
new MultiServerClient(config, options?): MultiServerClient;
```

Defined in: [client/multi-server.ts:77](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L77)

#### Parameters

##### config

[`McpConfig`](/api/client/type-aliases/McpConfig)

##### options?

[`MultiServerOptions`](/api/client/interfaces/MultiServerOptions)

#### Returns

`MultiServerClient`

## Methods

### \[asyncDispose]\()

```ts theme={null}
asyncDispose: Promise<void>;
```

Defined in: [client/multi-server.ts:156](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L156)

#### Returns

`Promise`\<`void`>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`[asyncDispose]`](/api/client/interfaces/IClient#asyncdispose)

***

### callTool()

```ts theme={null}
callTool<TData>(
   name, 
   args?, 
   options?): Promise<CallToolResult<TData>>;
```

Defined in: [client/multi-server.ts:222](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L222)

#### Type Parameters

##### TData

`TData` = `unknown`

#### Parameters

##### name

`string`

##### args?

`Record`\<`string`, `unknown`>

##### options?

[`CallToolOptions`](/api/client/interfaces/CallToolOptions)

#### Returns

`Promise`\<[`CallToolResult`](/api/client/type-aliases/CallToolResult)\<`TData`>>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`callTool`](/api/client/interfaces/IClient#calltool)

***

### callToolRaw()

```ts theme={null}
callToolRaw<TData>(
   name, 
   args?, 
   options?): Promise<CallToolResult<TData>>;
```

Defined in: [client/multi-server.ts:239](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L239)

#### Type Parameters

##### TData

`TData` = `unknown`

#### Parameters

##### name

`string`

##### args?

`Record`\<`string`, `unknown`>

##### options?

[`CallToolOptions`](/api/client/interfaces/CallToolOptions)

#### Returns

`Promise`\<[`CallToolResult`](/api/client/type-aliases/CallToolResult)\<`TData`>>

***

### close()

```ts theme={null}
close(): Promise<void>;
```

Defined in: [client/multi-server.ts:142](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L142)

#### Returns

`Promise`\<`void`>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`close`](/api/client/interfaces/IClient#close)

***

### complete()

```ts theme={null}
complete(
   ref, 
   argument, 
   context?, 
   options?): Promise<CompletionResult>;
```

Defined in: [client/multi-server.ts:480](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L480)

#### Parameters

##### ref

\| \{
`name`: `string`;
`type`: `"ref/prompt"`;
}
\| \{
`type`: `"ref/resource"`;
`uri`: `string`;
}

##### argument

###### name

`string`

###### value

`string`

##### context?

###### arguments?

`Record`\<`string`, `string`>

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<[`CompletionResult`](/api/client/type-aliases/CompletionResult)>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`complete`](/api/client/interfaces/IClient#complete)

***

### connect()

```ts theme={null}
connect(): Promise<void>;
```

Defined in: [client/multi-server.ts:94](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L94)

#### Returns

`Promise`\<`void`>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`connect`](/api/client/interfaces/IClient#connect)

***

### getPrompt()

```ts theme={null}
getPrompt(
   name, 
   args?, 
   options?): Promise<{
[key: string]: unknown;
}>;
```

Defined in: [client/multi-server.ts:361](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L361)

#### Parameters

##### name

`string`

##### args?

`Record`\<`string`, `string`>

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<\{
\[`key`: `string`]: `unknown`;
}>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`getPrompt`](/api/client/interfaces/IClient#getprompt)

***

### getProtocolEra()

```ts theme={null}
getProtocolEra(serverName): ProtocolEra | undefined;
```

Defined in: [client/multi-server.ts:186](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L186)

The protocol era negotiated with a specific named server: `'modern'` for
2026-07-28, `'legacy'` for 2025-11-25 and earlier, `undefined` if the
server name is unknown or not yet connected. See
`MultiServerOptions.versionNegotiation` — the same mode is requested of
every server, but each negotiates (and may land on) its own era
independently, so this is necessarily per-server rather than a single
client-wide value.

#### Parameters

##### serverName

`string`

#### Returns

`ProtocolEra` | `undefined`

***

### isConnected()

```ts theme={null}
isConnected(): boolean;
```

Defined in: [client/multi-server.ts:160](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L160)

#### Returns

`boolean`

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`isConnected`](/api/client/interfaces/IClient#isconnected)

***

### listPrompts()

```ts theme={null}
listPrompts(options?): Promise<{
}[]>;
```

Defined in: [client/multi-server.ts:347](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L347)

#### Parameters

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<\{
}\[]>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`listPrompts`](/api/client/interfaces/IClient#listprompts)

***

### listResources()

```ts theme={null}
listResources(options?): Promise<{
}[]>;
```

Defined in: [client/multi-server.ts:266](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L266)

#### Parameters

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<\{
}\[]>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`listResources`](/api/client/interfaces/IClient#listresources)

***

### listResourceTemplates()

```ts theme={null}
listResourceTemplates(options?): Promise<{
}[]>;
```

Defined in: [client/multi-server.ts:287](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L287)

#### Parameters

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<\{
}\[]>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`listResourceTemplates`](/api/client/interfaces/IClient#listresourcetemplates)

***

### listTools()

```ts theme={null}
listTools(options?): Promise<{
}[]>;
```

Defined in: [client/multi-server.ts:208](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L208)

#### Parameters

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<\{
}\[]>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`listTools`](/api/client/interfaces/IClient#listtools)

***

### ping()

```ts theme={null}
ping(options?): Promise<boolean>;
```

Defined in: [client/multi-server.ts:192](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L192)

See Client.ping's docs — the same era-routing applies here, per server,
since each connected server negotiates its own era independently.

#### Parameters

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<`boolean`>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`ping`](/api/client/interfaces/IClient#ping)

***

### readResource()

```ts theme={null}
readResource(uri, options?): Promise<(
  | {
}
  | {
})[]>;
```

Defined in: [client/multi-server.ts:308](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L308)

#### Parameters

##### uri

`string`

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<(
\| \{
}
\| \{
})\[]>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`readResource`](/api/client/interfaces/IClient#readresource)

***

### setLogLevel()

```ts theme={null}
setLogLevel(level, options?): Promise<void>;
```

Defined in: [client/multi-server.ts:537](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L537)

See Client.setLogLevel's docs — the same era-routing applies here, per
server: legacy sends the real `logging/setLevel` RPC; modern records the
level and threads it into `_meta` on that server's subsequent requests via
`_metaParamsFor`, since `logging/setLevel` is absent from the modern wire
registry (SEP-2577).

#### Parameters

##### level

`LoggingLevel`

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<`void`>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`setLogLevel`](/api/client/interfaces/IClient#setloglevel)

***

### subscribeResource()

```ts theme={null}
subscribeResource(
   uri, 
   handler, 
   options?): Promise<void>;
```

Defined in: [client/multi-server.ts:381](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L381)

See Client.subscribeResource's docs — the same era-routing applies here,
per server, since each connected server negotiates its own era.

#### Parameters

##### uri

`string`

##### handler

[`ResourceUpdateHandler`](/api/client/type-aliases/ResourceUpdateHandler)

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<`void`>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`subscribeResource`](/api/client/interfaces/IClient#subscriberesource)

***

### unsubscribeResource()

```ts theme={null}
unsubscribeResource(uri, options?): Promise<void>;
```

Defined in: [client/multi-server.ts:423](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L423)

#### Parameters

##### uri

`string`

##### options?

[`RequestOptions`](/api/client/interfaces/RequestOptions)

#### Returns

`Promise`\<`void`>

#### Implementation of

[`IClient`](/api/client/interfaces/IClient).[`unsubscribeResource`](/api/client/interfaces/IClient#unsubscriberesource)

***

### connect()

```ts theme={null}
static connect(config, options?): Promise<MultiServerClient>;
```

Defined in: [client/multi-server.ts:164](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/client/multi-server.ts#L164)

#### Parameters

##### config

[`McpConfig`](/api/client/type-aliases/McpConfig)

##### options?

[`MultiServerOptions`](/api/client/interfaces/MultiServerOptions)

#### Returns

`Promise`\<`MultiServerClient`>
