> ## 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.

# Middleware

Defined in: [server/middleware.ts:24](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L24)

A middleware hook. Either call `next()` and return (optionally transforming) its
result, or short-circuit by returning your own result without calling `next()`.
The return is typed `Promise<unknown>` because a hook can substitute any result
shape for the method it intercepts; the framework resolves the concrete type at
the call boundary.

## Methods

### onCallTool()?

```ts theme={null}
optional onCallTool(ctx, next): Promise<unknown>;
```

Defined in: [server/middleware.ts:32](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L32)

#### Parameters

##### ctx

[`MiddlewareContext`](/api/server/interfaces/MiddlewareContext)

##### next

[`Next`](/api/server/type-aliases/Next)

#### Returns

`Promise`\<`unknown`>

***

### onGetPrompt()?

```ts theme={null}
optional onGetPrompt(ctx, next): Promise<unknown>;
```

Defined in: [server/middleware.ts:37](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L37)

#### Parameters

##### ctx

[`MiddlewareContext`](/api/server/interfaces/MiddlewareContext)

##### next

[`Next`](/api/server/type-aliases/Next)

#### Returns

`Promise`\<`unknown`>

***

### onListPrompts()?

```ts theme={null}
optional onListPrompts(ctx, next): Promise<unknown>;
```

Defined in: [server/middleware.ts:38](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L38)

#### Parameters

##### ctx

[`MiddlewareContext`](/api/server/interfaces/MiddlewareContext)

##### next

[`Next`](/api/server/type-aliases/Next)

#### Returns

`Promise`\<`unknown`>

***

### onListResources()?

```ts theme={null}
optional onListResources(ctx, next): Promise<unknown>;
```

Defined in: [server/middleware.ts:35](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L35)

#### Parameters

##### ctx

[`MiddlewareContext`](/api/server/interfaces/MiddlewareContext)

##### next

[`Next`](/api/server/type-aliases/Next)

#### Returns

`Promise`\<`unknown`>

***

### onListResourceTemplates()?

```ts theme={null}
optional onListResourceTemplates(ctx, next): Promise<unknown>;
```

Defined in: [server/middleware.ts:36](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L36)

#### Parameters

##### ctx

[`MiddlewareContext`](/api/server/interfaces/MiddlewareContext)

##### next

[`Next`](/api/server/type-aliases/Next)

#### Returns

`Promise`\<`unknown`>

***

### onListTools()?

```ts theme={null}
optional onListTools(ctx, next): Promise<unknown>;
```

Defined in: [server/middleware.ts:33](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L33)

#### Parameters

##### ctx

[`MiddlewareContext`](/api/server/interfaces/MiddlewareContext)

##### next

[`Next`](/api/server/type-aliases/Next)

#### Returns

`Promise`\<`unknown`>

***

### onReadResource()?

```ts theme={null}
optional onReadResource(ctx, next): Promise<unknown>;
```

Defined in: [server/middleware.ts:34](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L34)

#### Parameters

##### ctx

[`MiddlewareContext`](/api/server/interfaces/MiddlewareContext)

##### next

[`Next`](/api/server/type-aliases/Next)

#### Returns

`Promise`\<`unknown`>

***

### onRequest()?

```ts theme={null}
optional onRequest(ctx, next): Promise<unknown>;
```

Defined in: [server/middleware.ts:29](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L29)

#### Parameters

##### ctx

[`MiddlewareContext`](/api/server/interfaces/MiddlewareContext)

##### next

[`Next`](/api/server/type-aliases/Next)

#### Returns

`Promise`\<`unknown`>

***

### setup()?

```ts theme={null}
optional setup(server): void;
```

Defined in: [server/middleware.ts:26](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/middleware.ts#L26)

Called once per Server instance. Use to register notification handlers or other server-level setup.

#### Parameters

##### server

`Server`

#### Returns

`void`
