@@ -41,6 +41,7 @@ import {
4141 McpUiAppCapabilities ,
4242 McpUiUpdateContextRequest ,
4343 McpUiUpdateContextRequestSchema ,
44+ McpUiUpdateContextResult ,
4445 McpUiHostCapabilities ,
4546 McpUiHostContext ,
4647 McpUiHostContextChangedNotification ,
@@ -512,30 +513,46 @@ export class AppBridge extends Protocol<Request, Notification, Result> {
512513 * future reasoning. Unlike logging messages, context updates are intended to be
513514 * available to the agent for decision making.
514515 *
515- * @param callback - Handler that receives context update params
516+ * @param callback - Handler that receives context update params and returns a result
516517 * - params.role - Message role (currently only "user")
517518 * - params.content - Content blocks (text, image, etc.)
519+ * - extra - Request metadata (abort signal, session info)
520+ * - Returns: Promise<McpUiUpdateContextResult> with optional isError flag
518521 *
519522 * @example
520523 * ```typescript
521- * bridge.oncontext = ({ role, content }) => {
522- * // Store context update for agent reasoning
523- * conversationContext.push({
524- * type: "app_context",
525- * role,
526- * content,
527- * timestamp: Date.now()
528- * });
524+ * bridge.oncontext = async ({ role, content }, extra) => {
525+ * try {
526+ * // Store context update for agent reasoning
527+ * conversationContext.push({
528+ * type: "app_context",
529+ * role,
530+ * content,
531+ * timestamp: Date.now()
532+ * });
533+ * return {};
534+ * } catch (err) {
535+ * // Handle error and signal failure to the app
536+ * return { isError: true };
537+ * }
529538 * };
530539 * ```
540+ *
541+ * @see {@link McpUiUpdateContextRequest } for the request type
542+ * @see {@link McpUiUpdateContextResult } for the result type
531543 */
532544 set oncontext (
533- callback : ( params : McpUiUpdateContextRequest [ "params" ] ) => void ,
545+ callback : (
546+ params : McpUiUpdateContextRequest [ "params" ] ,
547+ extra : RequestHandlerExtra ,
548+ ) => Promise < McpUiUpdateContextResult > ,
534549 ) {
535- this . setRequestHandler ( McpUiUpdateContextRequestSchema , async ( request ) => {
536- callback ( request . params ) ;
537- return { } ;
538- } ) ;
550+ this . setRequestHandler (
551+ McpUiUpdateContextRequestSchema ,
552+ async ( request , extra ) => {
553+ return callback ( request . params , extra ) ;
554+ } ,
555+ ) ;
539556 }
540557
541558 /**
0 commit comments