Skip to content

Commit 8f5f27b

Browse files
committed
feat: add onFallbackRequest handler to McpAppRenderer
Add a fallback request handler to gracefully handle unrecognized MCP protocol requests from guest apps (e.g. sampling/createMessage). Changes: - Import RequestHandlerExtra and JSONRPCRequest types - Add handleFallbackRequest callback that logs and returns success - Wire onFallbackRequest prop to AppRenderer Ref: #7039
1 parent 7c253e6 commit 8f5f27b

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

ui/desktop/src/components/McpApps/McpAppRenderer.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
* - "standalone" — Goose-specific mode for dedicated Electron windows
1616
*/
1717

18-
import { AppRenderer } from '@mcp-ui/client';
18+
import { AppRenderer, RequestHandlerExtra } from '@mcp-ui/client';
1919
import type {
2020
McpUiDisplayMode,
2121
McpUiHostContext,
2222
McpUiResourceCsp,
2323
McpUiResourcePermissions,
2424
McpUiSizeChangedNotification,
2525
} from '@modelcontextprotocol/ext-apps/app-bridge';
26-
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
26+
import type { CallToolResult, JSONRPCRequest } from '@modelcontextprotocol/sdk/types.js';
2727
import { useCallback, useEffect, useMemo, useReducer, useState } from 'react';
2828
import { callTool, readResource } from '../../api';
2929
import { AppEvents } from '../../constants/events';
@@ -400,6 +400,15 @@ export default function McpAppRenderer({
400400
[]
401401
);
402402

403+
const handleFallbackRequest = useCallback(
404+
async (request: JSONRPCRequest, _extra: RequestHandlerExtra) => {
405+
console.log('Fallback request:', request.method);
406+
// todo: add `sampling/createMessage` per https://github.com/block/goose/pull/7039
407+
return { status: 'success' as const };
408+
},
409+
[]
410+
);
411+
403412
const handleError = useCallback((err: Error) => {
404413
console.error('[MCP App Error]:', err);
405414
dispatch({ type: 'ERROR', message: errorMessage(err) });
@@ -516,6 +525,7 @@ export default function McpAppRenderer({
516525
onReadResource={handleReadResource}
517526
onLoggingMessage={handleLoggingMessage}
518527
onSizeChanged={handleSizeChanged}
528+
onFallbackRequest={handleFallbackRequest}
519529
onError={handleError}
520530
/>
521531
);

0 commit comments

Comments
 (0)