@@ -16,6 +16,7 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
1616import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js' ;
1717import { ITokenValidator } from '../../interfaces/auth-validator.js' ;
1818import { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js' ;
19+ import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js' ;
1920
2021// Import createServer from each example package (compiled JS)
2122// All packages are published on the public npm registry
@@ -115,6 +116,24 @@ export class ExampleAppsModule {
115116 }
116117
117118 try {
119+ // Log initialization requests to inspect client capabilities/extensions
120+ if ( isInitializeRequest ( req . body ) ) {
121+ const initParams = req . body ?. params ;
122+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
123+ const capabilities = initParams ?. capabilities as Record < string , any > | undefined ;
124+ console . log ( JSON . stringify ( {
125+ severity : 'INFO' ,
126+ message : `=== MCP INITIALIZE REQUEST (${ slug } ) ===` ,
127+ timestamp : new Date ( ) . toISOString ( ) ,
128+ slug,
129+ clientInfo : initParams ?. clientInfo ,
130+ protocolVersion : initParams ?. protocolVersion ,
131+ capabilities,
132+ hasExtensions : ! ! capabilities ?. extensions ,
133+ extensions : capabilities ?. extensions ,
134+ } ) ) ;
135+ }
136+
118137 // Create fresh server and transport for each request (stateless mode)
119138 const server = createServer ( ) ;
120139 const transport = new StreamableHTTPServerTransport ( {
0 commit comments