setup notification handlers in App & AppBridge

This commit is contained in:
Olivier Chafik 2025-11-24 14:59:58 +00:00
commit ac3863092a
No known key found for this signature in database

View file

@ -19,6 +19,8 @@ import {
LATEST_PROTOCOL_VERSION,
McpUiAppCapabilities,
McpUiHostCapabilities,
McpUiHostContextChangedNotification,
McpUiHostContextChangedNotificationSchema,
McpUiInitializedNotification,
McpUiInitializeRequest,
McpUiInitializeResultSchema,
@ -27,6 +29,12 @@ import {
McpUiOpenLinkRequest,
McpUiOpenLinkResultSchema,
McpUiSizeChangeNotification,
McpUiToolInputNotification,
McpUiToolInputNotificationSchema,
McpUiToolInputPartialNotification,
McpUiToolInputPartialNotificationSchema,
McpUiToolResultNotification,
McpUiToolResultNotificationSchema,
} from "./types";
import { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
@ -54,6 +62,36 @@ export class App extends Protocol<Request, Notification, Result> {
});
}
set ontoolinput(
callback: (params: McpUiToolInputNotification["params"]) => void,
) {
this.setNotificationHandler(McpUiToolInputNotificationSchema, (n) =>
callback(n.params),
);
}
set ontoolinputpartial(
callback: (params: McpUiToolInputPartialNotification["params"]) => void,
) {
this.setNotificationHandler(McpUiToolInputPartialNotificationSchema, (n) =>
callback(n.params),
);
}
set ontoolresult(
callback: (params: McpUiToolResultNotification["params"]) => void,
) {
this.setNotificationHandler(McpUiToolResultNotificationSchema, (n) =>
callback(n.params),
);
}
set onhostcontextchanged(
callback: (params: McpUiHostContextChangedNotification["params"]) => void,
) {
this.setNotificationHandler(
McpUiHostContextChangedNotificationSchema,
(n) => callback(n.params),
);
}
assertCapabilityForMethod(method: Request["method"]): void {
// TODO
}