From cf363f2fec641a55592c5e1ce1bc79035f268716 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Sat, 4 Apr 2026 11:51:09 -0400 Subject: [PATCH] Update dependencies and adapt to MCP SDK 1.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump ModelContextProtocol 1.1.0→1.2.0, Microsoft.Extensions.DependencyInjection and Hosting 10.0.3→10.0.5, Spectre.Console 0.54.0→0.55.0, Meziantou.Analyzer 3.0.15→3.0.44, Microsoft.SourceLink.GitHub 10.0.103→10.0.201, and Microsoft.Extensions.TimeProvider.Testing 10.3.0→10.4.0. Replace nullable Params access (request.Params?.) with direct access (request.Params.) following the non-nullable Params change in MCP SDK 1.2.0. --- src/Directory.Packages.props | 14 +++++++------- src/Repl.Mcp/McpServerHandler.cs | 10 +++++----- src/Repl.Mcp/ReplMcpServerPrompt.cs | 2 +- src/Repl.Mcp/ReplMcpServerResource.cs | 2 +- src/Repl.Mcp/ReplMcpServerTool.cs | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 6dd5253..e77b507 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -4,22 +4,22 @@ - - + + - - - - + + + + - + diff --git a/src/Repl.Mcp/McpServerHandler.cs b/src/Repl.Mcp/McpServerHandler.cs index cb46faa..2773f7d 100644 --- a/src/Repl.Mcp/McpServerHandler.cs +++ b/src/Repl.Mcp/McpServerHandler.cs @@ -183,9 +183,9 @@ private async ValueTask CallToolAsync( { AttachServer(request.Server); var snapshot = await GetSnapshotAsync(request.Server, cancellationToken).ConfigureAwait(false); - IDictionary arguments = request.Params?.Arguments ?? EmptyArguments; - var toolName = request.Params?.Name ?? string.Empty; - var progressToken = request.Params?.ProgressToken; + IDictionary arguments = request.Params.Arguments ?? EmptyArguments; + var toolName = request.Params.Name ?? string.Empty; + var progressToken = request.Params.ProgressToken; if (_options.DynamicToolCompatibility == DynamicToolCompatibilityMode.DiscoverAndCallShim) { @@ -249,7 +249,7 @@ private async ValueTask ReadResourceAsync( { AttachServer(request.Server); var snapshot = await GetSnapshotAsync(request.Server, cancellationToken).ConfigureAwait(false); - var uri = request.Params?.Uri ?? string.Empty; + var uri = request.Params.Uri ?? string.Empty; var resource = snapshot.Resources.FirstOrDefault(candidate => candidate.IsMatch(uri)); if (resource is null) { @@ -277,7 +277,7 @@ private async ValueTask GetPromptAsync( { AttachServer(request.Server); var snapshot = await GetSnapshotAsync(request.Server, cancellationToken).ConfigureAwait(false); - var promptName = request.Params?.Name ?? string.Empty; + var promptName = request.Params.Name ?? string.Empty; var prompt = snapshot.Prompts.FirstOrDefault(candidate => string.Equals(candidate.ProtocolPrompt.Name, promptName, StringComparison.OrdinalIgnoreCase)); if (prompt is null) diff --git a/src/Repl.Mcp/ReplMcpServerPrompt.cs b/src/Repl.Mcp/ReplMcpServerPrompt.cs index 8c6a147..ba9a45b 100644 --- a/src/Repl.Mcp/ReplMcpServerPrompt.cs +++ b/src/Repl.Mcp/ReplMcpServerPrompt.cs @@ -65,7 +65,7 @@ public override async ValueTask GetAsync( CancellationToken cancellationToken = default) { // Prompt arguments are already JsonElement — pass through directly. - var jsonArgs = request.Params?.Arguments is { } args + var jsonArgs = request.Params.Arguments is { } args ? new Dictionary(args, StringComparer.Ordinal) : new Dictionary(StringComparer.Ordinal); diff --git a/src/Repl.Mcp/ReplMcpServerResource.cs b/src/Repl.Mcp/ReplMcpServerResource.cs index f3c8273..da0b7a9 100644 --- a/src/Repl.Mcp/ReplMcpServerResource.cs +++ b/src/Repl.Mcp/ReplMcpServerResource.cs @@ -64,7 +64,7 @@ public override async ValueTask ReadAsync( RequestContext request, CancellationToken cancellationToken = default) { - var arguments = ExtractArguments(request.Params!.Uri); + var arguments = ExtractArguments(request.Params.Uri); var result = await _adapter.InvokeAsync( _resourceName, arguments, request.Server, progressToken: null, cancellationToken) diff --git a/src/Repl.Mcp/ReplMcpServerTool.cs b/src/Repl.Mcp/ReplMcpServerTool.cs index 2029a92..ae9ec44 100644 --- a/src/Repl.Mcp/ReplMcpServerTool.cs +++ b/src/Repl.Mcp/ReplMcpServerTool.cs @@ -48,9 +48,9 @@ public override async ValueTask InvokeAsync( RequestContext request, CancellationToken cancellationToken = default) { - var arguments = request.Params?.Arguments + var arguments = request.Params.Arguments ?? new Dictionary(StringComparer.Ordinal); - var progressToken = request.Params?.ProgressToken; + var progressToken = request.Params.ProgressToken; return await _adapter.InvokeAsync( _protocolTool.Name, arguments, request.Server, progressToken, cancellationToken)