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

# CachingMiddleware

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

TTL-based response cache. The default key is method + auth partition + serialised
request params, so a cached result is served only to the identity that produced it
(anonymous is its own partition; authenticated requests partition by bearer-token
hash). Auth-filtered results (tools/list visibility, resources/read contents,
prompts, completion) therefore never cross identities. Pass a custom `keyFn` to
replace this partitioning — the caller then owns identity partitioning (see
[CacheKeyFn](/api/server/type-aliases/CacheKeyFn)).

## Implements

* [`Middleware`](/api/server/interfaces/Middleware)

## Constructors

### Constructor

```ts theme={null}
new CachingMiddleware(ttl?, _keyFn?): CachingMiddleware;
```

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

#### Parameters

##### ttl?

`number` = `60_000`

##### \_keyFn?

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

#### Returns

`CachingMiddleware`

## Properties

### ttl

```ts theme={null}
readonly ttl: number = 60_000;
```

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

## Methods

### onRequest()

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

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

#### Parameters

##### ctx

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

##### next

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

#### Returns

`Promise`\<`unknown`>

#### Implementation of

[`Middleware`](/api/server/interfaces/Middleware).[`onRequest`](/api/server/interfaces/Middleware#onrequest)
