@@ -41,6 +41,7 @@ public async Task Create_Should_Initialize_With_Valid_Parameters()
4141
4242 // Assert
4343 Assert . NotNull ( server ) ;
44+ Assert . Null ( server . NegotiatedProtocolVersion ) ;
4445 }
4546
4647 [ Fact ]
@@ -232,7 +233,7 @@ await Can_Handle_Requests(
232233 serverCapabilities : null ,
233234 method : RequestMethods . Ping ,
234235 configureOptions : null ,
235- assertResult : response =>
236+ assertResult : ( _ , response ) =>
236237 {
237238 JsonObject jObj = Assert . IsType < JsonObject > ( response ) ;
238239 Assert . Empty ( jObj ) ;
@@ -247,13 +248,14 @@ await Can_Handle_Requests(
247248 serverCapabilities : null ,
248249 method : RequestMethods . Initialize ,
249250 configureOptions : null ,
250- assertResult : response =>
251+ assertResult : ( server , response ) =>
251252 {
252253 var result = JsonSerializer . Deserialize < InitializeResult > ( response , McpJsonUtilities . DefaultOptions ) ;
253254 Assert . NotNull ( result ) ;
254255 Assert . Equal ( expectedAssemblyName . Name , result . ServerInfo . Name ) ;
255256 Assert . Equal ( expectedAssemblyName . Version ? . ToString ( ) ?? "1.0.0" , result . ServerInfo . Version ) ;
256257 Assert . Equal ( "2024" , result . ProtocolVersion ) ;
258+ Assert . Equal ( "2024" , server . NegotiatedProtocolVersion ) ;
257259 } ) ;
258260 }
259261
@@ -279,7 +281,7 @@ await Can_Handle_Requests(
279281 } ,
280282 method : RequestMethods . CompletionComplete ,
281283 configureOptions : null ,
282- assertResult : response =>
284+ assertResult : ( _ , response ) =>
283285 {
284286 var result = JsonSerializer . Deserialize < CompleteResult > ( response , McpJsonUtilities . DefaultOptions ) ;
285287 Assert . NotNull ( result ? . Completion ) ;
@@ -316,7 +318,7 @@ await Can_Handle_Requests(
316318 } ,
317319 RequestMethods . ResourcesTemplatesList ,
318320 configureOptions : null ,
319- assertResult : response =>
321+ assertResult : ( _ , response ) =>
320322 {
321323 var result = JsonSerializer . Deserialize < ListResourceTemplatesResult > ( response , McpJsonUtilities . DefaultOptions ) ;
322324 Assert . NotNull ( result ? . ResourceTemplates ) ;
@@ -345,7 +347,7 @@ await Can_Handle_Requests(
345347 } ,
346348 RequestMethods . ResourcesList ,
347349 configureOptions : null ,
348- assertResult : response =>
350+ assertResult : ( _ , response ) =>
349351 {
350352 var result = JsonSerializer . Deserialize < ListResourcesResult > ( response , McpJsonUtilities . DefaultOptions ) ;
351353 Assert . NotNull ( result ? . Resources ) ;
@@ -380,7 +382,7 @@ await Can_Handle_Requests(
380382 } ,
381383 method : RequestMethods . ResourcesRead ,
382384 configureOptions : null ,
383- assertResult : response =>
385+ assertResult : ( _ , response ) =>
384386 {
385387 var result = JsonSerializer . Deserialize < ReadResourceResult > ( response , McpJsonUtilities . DefaultOptions ) ;
386388 Assert . NotNull ( result ? . Contents ) ;
@@ -417,7 +419,7 @@ await Can_Handle_Requests(
417419 } ,
418420 method : RequestMethods . PromptsList ,
419421 configureOptions : null ,
420- assertResult : response =>
422+ assertResult : ( _ , response ) =>
421423 {
422424 var result = JsonSerializer . Deserialize < ListPromptsResult > ( response , McpJsonUtilities . DefaultOptions ) ;
423425 Assert . NotNull ( result ? . Prompts ) ;
@@ -446,7 +448,7 @@ await Can_Handle_Requests(
446448 } ,
447449 method : RequestMethods . PromptsGet ,
448450 configureOptions : null ,
449- assertResult : response =>
451+ assertResult : ( _ , response ) =>
450452 {
451453 var result = JsonSerializer . Deserialize < GetPromptResult > ( response , McpJsonUtilities . DefaultOptions ) ;
452454 Assert . NotNull ( result ) ;
@@ -480,7 +482,7 @@ await Can_Handle_Requests(
480482 } ,
481483 method : RequestMethods . ToolsList ,
482484 configureOptions : null ,
483- assertResult : response =>
485+ assertResult : ( _ , response ) =>
484486 {
485487 var result = JsonSerializer . Deserialize < ListToolsResult > ( response , McpJsonUtilities . DefaultOptions ) ;
486488 Assert . NotNull ( result ) ;
@@ -515,7 +517,7 @@ await Can_Handle_Requests(
515517 } ,
516518 method : RequestMethods . ToolsCall ,
517519 configureOptions : null ,
518- assertResult : response =>
520+ assertResult : ( _ , response ) =>
519521 {
520522 var result = JsonSerializer . Deserialize < CallToolResult > ( response , McpJsonUtilities . DefaultOptions ) ;
521523 Assert . NotNull ( result ) ;
@@ -530,7 +532,7 @@ public async Task Can_Handle_Call_Tool_Requests_Throws_Exception_If_No_Handler_A
530532 await Succeeds_Even_If_No_Handler_Assigned ( new ServerCapabilities { Tools = new ( ) } , RequestMethods . ToolsCall , "CallTool handler not configured" ) ;
531533 }
532534
533- private async Task Can_Handle_Requests ( ServerCapabilities ? serverCapabilities , string method , Action < McpServerOptions > ? configureOptions , Action < JsonNode ? > assertResult )
535+ private async Task Can_Handle_Requests ( ServerCapabilities ? serverCapabilities , string method , Action < McpServerOptions > ? configureOptions , Action < McpServer , JsonNode ? > assertResult )
534536 {
535537 await using var transport = new TestServerTransport ( ) ;
536538 var options = CreateOptions ( serverCapabilities ) ;
@@ -559,7 +561,7 @@ await transport.SendMessageAsync(
559561 var response = await receivedMessage . Task . WaitAsync ( TimeSpan . FromSeconds ( 5 ) ) ;
560562 Assert . NotNull ( response ) ;
561563
562- assertResult ( response . Result ) ;
564+ assertResult ( server , response . Result ) ;
563565
564566 await transport . DisposeAsync ( ) ;
565567 await runTask ;
@@ -682,6 +684,7 @@ public override Task<JsonRpcResponse> SendRequestAsync(JsonRpcRequest request, C
682684 public override ValueTask DisposeAsync ( ) => default ;
683685
684686 public override string ? SessionId => throw new NotImplementedException ( ) ;
687+ public override string ? NegotiatedProtocolVersion => throw new NotImplementedException ( ) ;
685688 public override Implementation ? ClientInfo => throw new NotImplementedException ( ) ;
686689 public override IServiceProvider ? Services => throw new NotImplementedException ( ) ;
687690 public override LoggingLevel ? LoggingLevel => throw new NotImplementedException ( ) ;
0 commit comments