Properties
auth
inputResponses
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
Methods
alert()
Parameters
message
string
loggerName?
string
Returns
Promise<void>
critical()
Parameters
message
string
loggerName?
string
Returns
Promise<void>
debug()
Parameters
message
string
loggerName?
string
Returns
Promise<void>
deleteState()
Parameters
key
string
Returns
void
elicit()
elicitation capability.
Parameters
message
string
schema
ElicitationSchema
Returns
Promise<ElicitationResult>
Deprecated
Throws a clear error naming the replacement when called on a modern (2026-07-28) request — returninputRequired({ inputRequests: { id: inputRequired.elicit({...}) } }) instead (see ctx.sample’s docs; the same
write-once, serve-both-eras guidance applies).
emergency()
Parameters
message
string
loggerName?
string
Returns
Promise<void>
error()
Parameters
message
string
loggerName?
string
Returns
Promise<void>
getState()
Parameters
key
string
Returns
unknown
info()
Parameters
message
string
loggerName?
string
Returns
Promise<void>
listRoots()
roots capability.
Returns
Promise<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 naminginputRequired(...) as the multi-round-trip
replacement when called on a modern request (see ctx.sample’s docs).
log()
Parameters
level
LogLevel
message
string
loggerName?
string
Returns
Promise<void>
mintRequestState()
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()
Parameters
message
string
loggerName?
string
Returns
Promise<void>
onClose()
Parameters
callback
() =>void
Returns
void
reportProgress()
progressToken in its _meta.
Parameters
progress
number
total?
number
message?
string
Returns
Promise<void>
requestState()
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()
Parameters
name
string
Returns
string
sample()
sampling capability.
Parameters
params
SamplingParams
Returns
Promise<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 (returninputRequired({ 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()
Parameters
key
string
value
unknown
Returns
void
warning()
Parameters
message
string
loggerName?
string
Returns
Promise<void>