IMCPCallbacks

Lifecycle callbacks of an MCP (Model Context Protocol) instance (all optional).

Fire AFTER the corresponding engine effect succeeds, with the raw data the effect was built from — a test registers them to observe what the MCP actually did (rendered snapshot, submitted signal, consumed pending id) without mocking the live machinery. An omitted callback is simply never fired; a callback that throws is logged and does not fail the operation.

onStatus: (mcpName: string, context: IMCPContext, messages: IMCPMessage[]) => void

Fired after getStatus renders the portfolio: the snapshot the renderer received and the messages it produced.

onPositionOpen: (symbol: string, signal: ISignalDto, dto: IMCPPositionOpenCommand) => void

Fired after a position open commit is accepted: the exact signal DTO submitted to the live strategy (moonbag TP/SL levels, cost, note).

onPositionClose: (symbol: string, signalId: string, dto: IMCPPositionCloseCommand) => void

Fired after a close commit is accepted: the id of the pending signal the close was queued for.

onAverageBuy: (symbol: string, signalId: string, dto: IMCPAverageBuyCommand) => void

Fired after a DCA entry commit is accepted: the id of the pending signal the entry was averaged into.

onSignalNotify: (symbol: string, signalId: string, dto: IMCPSignalNotifyCommand) => void

Fired after a signal notification is emitted: the id of the pending signal the note was attached to.