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

# McpContext

Defined in: [server/context.ts:80](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L80)

## Properties

### auth

```ts theme={null}
auth: AccessToken | undefined;
```

Defined in: [server/context.ts:82](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L82)

Auth token for the current request, if any.

***

### inputResponses

```ts theme={null}
inputResponses: InputResponses | undefined;
```

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

The current round's embedded input responses, when this request is a retry of an
earlier `inputRequired(...)` return. `undefined` on the flow's first call (no
prior round to respond to). Read with the SDK's `acceptedContent(ctx.inputResponses,
key)` / `inputResponse(ctx.inputResponses, key)` (re-exported from
`fastmcp-ts/server`) rather than indexing this object directly — those readers
validate shape and, for `acceptedContent`, optionally the content against a schema.

***

### requestId

```ts theme={null}
requestId: string | undefined;
```

Defined in: [server/context.ts:84](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L84)

The MCP request ID for the current call.

## Methods

### alert()

```ts theme={null}
alert(message, loggerName?): Promise<void>;
```

Defined in: [server/context.ts:96](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L96)

#### Parameters

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>

***

### critical()

```ts theme={null}
critical(message, loggerName?): Promise<void>;
```

Defined in: [server/context.ts:95](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L95)

#### Parameters

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>

***

### debug()

```ts theme={null}
debug(message, loggerName?): Promise<void>;
```

Defined in: [server/context.ts:90](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L90)

#### Parameters

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>

***

### deleteState()

```ts theme={null}
deleteState(key): void;
```

Defined in: [server/context.ts:187](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L187)

Remove a value from session-scoped state.

#### Parameters

##### key

`string`

#### Returns

`void`

***

### ~~elicit()~~

```ts theme={null}
elicit(message, schema): Promise<ElicitationResult>;
```

Defined in: [server/context.ts:135](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L135)

Ask the client to collect input from the user via a form dialog.
Throws if the client has not advertised the `elicitation` capability.

#### Parameters

##### message

`string`

##### schema

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

#### Returns

`Promise`\<[`ElicitationResult`](/api/server/interfaces/ElicitationResult)>

#### Deprecated

Throws a clear error naming the replacement when called on a modern
(2026-07-28) request — return `inputRequired({ inputRequests: { id:
inputRequired.elicit({...}) } })` instead (see `ctx.sample`'s docs; the same
write-once, serve-both-eras guidance applies).

***

### emergency()

```ts theme={null}
emergency(message, loggerName?): Promise<void>;
```

Defined in: [server/context.ts:97](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L97)

#### Parameters

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>

***

### error()

```ts theme={null}
error(message, loggerName?): Promise<void>;
```

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

#### Parameters

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>

***

### getState()

```ts theme={null}
getState(key): unknown;
```

Defined in: [server/context.ts:183](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L183)

Retrieve a value from session-scoped state. Returns undefined if not set.

#### Parameters

##### key

`string`

#### Returns

`unknown`

***

### info()

```ts theme={null}
info(message, loggerName?): Promise<void>;
```

Defined in: [server/context.ts:91](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L91)

#### Parameters

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>

***

### ~~listRoots()~~

```ts theme={null}
listRoots(): Promise<Root[]>;
```

Defined in: [server/context.ts:148](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L148)

Request the list of filesystem roots the client has declared.
Throws if the client has not advertised the `roots` capability.

#### Returns

`Promise`\<[`Root`](/api/server/interfaces/Root)\[]>

#### Deprecated

Roots is deprecated as of protocol revision 2026-07-28 (SEP-2577) —
prefer passing paths via tool parameters, resource URIs, or server configuration.
Throws a clear error naming `inputRequired(...)` as the multi-round-trip
replacement when called on a modern request (see `ctx.sample`'s docs).

***

### log()

```ts theme={null}
log(
   level, 
   message, 
   loggerName?): Promise<void>;
```

Defined in: [server/context.ts:89](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L89)

Send a log message to the client at the specified RFC 5424 severity level.

#### Parameters

##### level

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

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>

***

### mintRequestState()

```ts theme={null}
mintRequestState<T>(payload): Promise<string>;
```

Defined in: [server/context.ts:178](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L178)

Seals `payload` into the opaque `requestState` string to return from
`inputRequired({ requestState })`. HMAC-signed via `FastMCPOptions.requestState`
when configured; otherwise a plain `JSON.stringify(payload)` with a console
warning — the resulting state is unsigned and MUST NOT be trusted for
anything that influences authorization, resource access, or business logic (the
client can read and tamper with it) unless `FastMCPOptions.requestState` is set.

#### Type Parameters

##### T

`T` = `unknown`

#### Parameters

##### payload

`T`

#### Returns

`Promise`\<`string`>

***

### notice()

```ts theme={null}
notice(message, loggerName?): Promise<void>;
```

Defined in: [server/context.ts:92](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L92)

#### Parameters

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>

***

### onClose()

```ts theme={null}
onClose(callback): void;
```

Defined in: [server/context.ts:205](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L205)

Register a callback that runs when the current session closes.
Useful for releasing per-session resources (e.g. uploaded files).
No-op if called outside an active HTTP session.

#### Parameters

##### callback

() => `void`

#### Returns

`void`

***

### reportProgress()

```ts theme={null}
reportProgress(
   progress, 
   total?, 
   message?): Promise<void>;
```

Defined in: [server/context.ts:105](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L105)

Send a progress notification to the client.
No-op if the request did not include a `progressToken` in its `_meta`.

#### Parameters

##### progress

`number`

##### total?

`number`

##### message?

`string`

#### Returns

`Promise`\<`void`>

***

### requestState()

```ts theme={null}
requestState<T>(): T | undefined;
```

Defined in: [server/context.ts:168](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L168)

Reads the current round's `requestState`, already verified and decoded when
`FastMCPOptions.requestState` is configured (the payload `verify` resolved with);
the raw, unverified wire string when it is not configured — treat that case as
attacker-controlled input. `undefined` when the round carried no state.

#### Type Parameters

##### T

`T` = `unknown`

#### Returns

`T` | `undefined`

***

### resolveToolName()

```ts theme={null}
resolveToolName(name): string;
```

Defined in: [server/context.ts:196](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L196)

Resolve a logical tool name to its current external name, accounting for
any namespace prefix applied when the owning FastMCPApp was mounted.
Returns the name unchanged when called outside a mounted context.

#### Parameters

##### name

`string`

#### Returns

`string`

***

### ~~sample()~~

```ts theme={null}
sample(params): Promise<SamplingResult>;
```

Defined in: [server/context.ts:122](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L122)

Ask the client to perform an LLM inference call and return the result.
Throws if the client has not advertised the `sampling` capability.

#### Parameters

##### params

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

#### Returns

`Promise`\<[`SamplingResult`](/api/server/interfaces/SamplingResult)>

#### Deprecated

Sampling is deprecated as of protocol revision 2026-07-28 (SEP-2577)
and this push-style call only works on a legacy (2025-era) connection — calling it
on a modern request throws a clear error naming the replacement (return
`inputRequired({ inputRequests: { id: inputRequired.createMessage({...}) } })` from
the handler instead; see `fastmcp-ts/server`'s re-exported `inputRequired`). A
handler written the `inputRequired` way serves both eras unchanged — the SDK's
legacy shim fulfils it via a real server→client request on 2025-era connections, so
there is rarely a reason to keep calling `ctx.sample()` directly in new code.

***

### setState()

```ts theme={null}
setState(key, value): void;
```

Defined in: [server/context.ts:185](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L185)

Store a value in session-scoped state. Persists for the lifetime of the session.

#### Parameters

##### key

`string`

##### value

`unknown`

#### Returns

`void`

***

### warning()

```ts theme={null}
warning(message, loggerName?): Promise<void>;
```

Defined in: [server/context.ts:93](https://github.com/PrefectHQ/fastmcp-ts/blob/e4b6038f642b529f601463a576229747afebe9a4/src/server/context.ts#L93)

#### Parameters

##### message

`string`

##### loggerName?

`string`

#### Returns

`Promise`\<`void`>
