Skip to main content

McpOperationContext

@webda/mcp


Class: McpOperationContext

Defined in: packages/mcp/src/invoke.ts:24

Operation context used for MCP calls: collects AsyncGenerator chunks instead of concatenating them into the output, and stops on cancellation.

Extends​

  • SimpleOperationContext

Properties​

_body​

protected _body: string

Defined in: packages/core/lib/contexts/operationcontext.d.ts:32

Output

Inherited from​

SimpleOperationContext._body


_promises​

_promises: Promise<any>[]

Defined in: packages/core/lib/contexts/icontext.d.ts:29

Contain all registered promises to this context

Inherited from​

SimpleOperationContext._promises


_sanitized​

protected _sanitized: any

Defined in: packages/core/lib/contexts/operationcontext.d.ts:28

Contain the sanitized request body if computed

Inherited from​

SimpleOperationContext._sanitized


_stream​

_stream: Writable

Defined in: packages/core/lib/contexts/operationcontext.d.ts:51

Output stream

Inherited from​

SimpleOperationContext._stream


caches​

caches: any

Defined in: packages/core/lib/contexts/icontext.d.ts:15

Get the caches linked to the context

Inherited from​

SimpleOperationContext.caches


chunks​

chunks: unknown[] = []

Defined in: packages/mcp/src/invoke.ts:28

Chunks yielded by a streaming operation


extensions​

protected extensions: object

Defined in: packages/core/lib/contexts/icontext.d.ts:19

Allow extensions

Index Signature​

[key: string]: any

Inherited from​

SimpleOperationContext.extensions


flushed​

protected flushed: boolean

Defined in: packages/core/lib/contexts/icontext.d.ts:33

If the headers were flushed

Inherited from​

SimpleOperationContext.flushed


input​

input: Buffer

Defined in: packages/core/lib/contexts/simplecontext.d.ts:7

Inherited from​

SimpleOperationContext.input


onChunk?​

optional onChunk?: (chunk, index) => void

Defined in: packages/mcp/src/invoke.ts:36

Called for every streamed chunk with its 1-based index

Parameters​

chunk​

unknown

index​

number

Returns​

void


parameters​

parameters: any

Defined in: packages/core/lib/contexts/operationcontext.d.ts:37

Inherited from​

SimpleOperationContext.parameters


session​

protected session: Session

Defined in: packages/core/lib/contexts/operationcontext.d.ts:24

Session

Inherited from​

SimpleOperationContext.session


signal?​

optional signal?: AbortSignal

Defined in: packages/mcp/src/invoke.ts:32

Abort signal of the MCP request

Methods​

addAsyncRequest()​

addAsyncRequest(promise): void

Defined in: packages/core/lib/contexts/operationcontext.d.ts:86

Register a promise with the context

Parameters​

promise​

any

the promise to add

Returns​

void

Inherited from​

SimpleOperationContext.addAsyncRequest


clearInput()​

clearInput(): void

Defined in: packages/core/lib/contexts/operationcontext.d.ts:99

Remove the input

Returns​

void

Inherited from​

SimpleOperationContext.clearInput


createStream()​

createStream(): void

Defined in: packages/core/lib/contexts/operationcontext.d.ts:147

Create a buffer stream

Returns​

void

Inherited from​

SimpleOperationContext.createStream


end()​

end(): Promise<void>

Defined in: packages/core/lib/contexts/operationcontext.d.ts:95

Ensure the whole execution is finished

Returns​

Promise<void>

Inherited from​

SimpleOperationContext.end


flushHeaders()​

flushHeaders(): Promise<void>

Defined in: packages/core/lib/contexts/icontext.d.ts:100

Send the headers to the client

Returns​

Promise<void>

Inherited from​

SimpleOperationContext.flushHeaders


getCurrentUser()​

getCurrentUser<K>(refresh?): Promise<K>

Defined in: packages/core/lib/contexts/operationcontext.d.ts:172

Get the current user from session

Type Parameters​

K​

K extends IUser

Parameters​

refresh?​

boolean

whether to refresh

Returns​

Promise<K>

the result

Inherited from​

SimpleOperationContext.getCurrentUser


getCurrentUserId()​

getCurrentUserId(): string

Defined in: packages/core/lib/contexts/operationcontext.d.ts:180

Get the current user id from session

A session waiting for its second factor (mfa: "pending") is not logged: it has no current user. Code that needs the pending user reads getSession().userId.

Returns​

string

the result

Inherited from​

SimpleOperationContext.getCurrentUserId


getExtension()​

getExtension<K>(name): K

Defined in: packages/core/lib/contexts/operationcontext.d.ts:57

Get an extension of the context

Type Parameters​

K​

K = any

Parameters​

name​

string

of the extension

Returns​

K

extension object

Inherited from​

SimpleOperationContext.getExtension


getInput()​

getInput(sanitizedOptions?): Promise<any>

Defined in: packages/core/lib/contexts/operationcontext.d.ts:105

Get the sanitized input body, caching the result after the first call

Parameters​

sanitizedOptions?​

IOptions & object

the sanitized options

Returns​

Promise<any>

the result

Inherited from​

SimpleOperationContext.getInput


getOutput()​

getOutput(): string

Defined in: packages/core/lib/contexts/operationcontext.d.ts:91

Get output as string, if a OutputStream is provided it will returned null

Returns​

string

the result string

Inherited from​

SimpleOperationContext.getOutput


getOutputStream()​

getOutputStream(): Promise<Writable>

Defined in: packages/core/lib/contexts/operationcontext.d.ts:129

Get the HTTP stream to output raw data

Returns​

Promise<Writable>

the result

Inherited from​

SimpleOperationContext.getOutputStream


getParameters()​

getParameters(): any

Defined in: packages/core/lib/contexts/operationcontext.d.ts:69

Get the parameters

Returns​

any

the result

Inherited from​

SimpleOperationContext.getParameters


getRawInput()​

getRawInput(limit?, _timeout?): Promise<Buffer<ArrayBufferLike>>

Defined in: packages/core/lib/contexts/simplecontext.d.ts:29

Parameters​

limit?​

number

_timeout?​

number

Returns​

Promise<Buffer<ArrayBufferLike>>

Inherited from​

SimpleOperationContext.getRawInput


getRawInputAsString()​

getRawInputAsString(limit?, timeout?, encoding?): Promise<string>

Defined in: packages/core/lib/contexts/operationcontext.d.ts:116

By default empty

Parameters​

limit?​

number

the maximum count

timeout?​

number

the timeout in milliseconds

encoding?​

BufferEncoding

the encoding to use

Returns​

Promise<string>

the result string

Inherited from​

SimpleOperationContext.getRawInputAsString


getRawStream()​

getRawStream(): Readable

Defined in: packages/core/lib/contexts/operationcontext.d.ts:124

Returns​

Readable

Inherited from​

SimpleOperationContext.getRawStream


getResponseHeaders()​

getResponseHeaders(): any

Defined in: packages/core/lib/contexts/icontext.d.ts:96

Get current response headers

Returns​

any

the result

Inherited from​

SimpleOperationContext.getResponseHeaders


getSession()​

getSession<K>(): K

Defined in: packages/core/lib/contexts/operationcontext.d.ts:134

Get linked session

Type Parameters​

K​

K = Session

Returns​

K

the result

Inherited from​

SimpleOperationContext.getSession


init()​

init(): Promise<McpOperationContext>

Defined in: packages/core/lib/contexts/operationcontext.d.ts:166

Initialize the operation context

Returns​

Promise<McpOperationContext>

this for chaining

Inherited from​

SimpleOperationContext.init


isGlobalContext()​

isGlobalContext(): boolean

Defined in: packages/core/lib/contexts/icontext.d.ts:38

Whether this is the global (non-request-scoped) context

Returns​

boolean

true if the condition is met

Inherited from​

SimpleOperationContext.isGlobalContext


newSession()​

newSession(): Session

Defined in: packages/core/lib/contexts/operationcontext.d.ts:139

Create and assign a new empty session

Returns​

Session

the result

Inherited from​

SimpleOperationContext.newSession


parameter()​

parameter(name, defaultValue?): any

Defined in: packages/core/lib/contexts/operationcontext.d.ts:64

Get one parameter

Parameters​

name​

string

the name to use

defaultValue?​

any

the default value

Returns​

any

the result

Inherited from​

SimpleOperationContext.parameter


pipeline()​

pipeline(stream1, ...streams): Promise<void>

Defined in: packages/core/lib/contexts/icontext.d.ts:108

Pipeline streams into the output stream

Parameters​

stream1​

ReadableStream

the first stream

streams​

...(ReadWriteStream | PipelineOptions)[]

additional streams

Returns​

Promise<void>

See​

https://nodejs.org/api/stream.html#streampipelinestreams-options

Inherited from​

SimpleOperationContext.pipeline


registerPromise()​

registerPromise(promise): void

Defined in: packages/core/lib/contexts/icontext.d.ts:47

Register a promise with the context

Parameters​

promise​

any

the promise to add

Returns​

void

Inherited from​

SimpleOperationContext.registerPromise


reinit()​

reinit(): void

Defined in: packages/core/lib/contexts/operationcontext.d.ts:143

Remove sanitized body

Returns​

void

Inherited from​

SimpleOperationContext.reinit


resetResponse()​

resetResponse(): void

Defined in: packages/core/lib/contexts/operationcontext.d.ts:151

Remove everything that was about to be sent

Returns​

void

Inherited from​

SimpleOperationContext.resetResponse


setExtension()​

setExtension(name, extension): this

Defined in: packages/core/lib/contexts/operationcontext.d.ts:81

Parameters​

name​

string

to add

extension​

any

object to store

Returns​

this

this for chaining

Inherited from​

SimpleOperationContext.setExtension


setHeader()​

setHeader(name, value): void

Defined in: packages/core/lib/contexts/icontext.d.ts:83

Set a header in the response

Parameters​

name​

string

the name to use

value​

string | number | string[]

the value to set

Returns​

void

Inherited from​

SimpleOperationContext.setHeader


setInput()​

setInput(input): this

Defined in: packages/core/lib/contexts/simplecontext.d.ts:19

Set the input

Parameters​

input​

Buffer

the input

Returns​

this

this for chaining

Inherited from​

SimpleOperationContext.setInput


setParameters()​

setParameters(params): void

Defined in: packages/core/lib/contexts/operationcontext.d.ts:74

Set the parameters

Parameters​

params​

any

the service parameters

Returns​

void

Inherited from​

SimpleOperationContext.setParameters


setSession()​

setSession(session): this

Defined in: packages/core/lib/contexts/simplecontext.d.ts:25

Set the session

Parameters​

session​

Session

the session object

Returns​

this

this for chaining

Inherited from​

SimpleOperationContext.setSession


write()​

write(output, encoding?, cb?): boolean

Defined in: packages/mcp/src/invoke.ts:44

Parameters​

output​

any

chunk or result

encoding?​

any

unused for chunks

cb?​

any

unused for chunks

Returns​

boolean

true

Overrides​

SimpleOperationContext.write


writeHead()​

writeHead(_code, headers): void

Defined in: packages/core/lib/contexts/icontext.d.ts:89

For easier compatibility with WebContext On OperationContext this call is simply ignored

Parameters​

_code​

number

the status code

headers​

Returns​

void

Inherited from​

SimpleOperationContext.writeHead


fromContext()​

static fromContext(context): Promise<SimpleOperationContext>

Defined in: packages/core/lib/contexts/simplecontext.d.ts:13

Create another context from an existing one

Parameters​

context​

OperationContext

the execution context

Returns​

Promise<SimpleOperationContext>

the result

Inherited from​

SimpleOperationContext.fromContext