Skip to content

Commit 35fd9a3

Browse files
Make init callback asynchronous.
1 parent 72a4b87 commit 35fd9a3

File tree

3 files changed

+4
-3
lines changed

3 files changed

+4
-3
lines changed

src/ModelContextProtocol.AspNetCore/StreamableHttpHandler.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,13 +293,14 @@ private void ScheduleStatelessSessionIdWrite(HttpContext context, StreamableHttp
293293
{
294294
var statelessId = new StatelessSessionId
295295
{
296-
ClientInfo = initRequestParams.ClientInfo,
296+
ClientInfo = initRequestParams?.ClientInfo,
297297
UserIdClaim = GetUserIdClaim(context.User),
298298
};
299299

300300
var sessionJson = JsonSerializer.Serialize(statelessId, StatelessSessionIdJsonContext.Default.StatelessSessionId);
301301
transport.SessionId = Protector.Protect(sessionJson);
302302
context.Response.Headers["mcp-session-id"] = transport.SessionId;
303+
return ValueTask.CompletedTask;
303304
};
304305
}
305306

src/ModelContextProtocol/Server/StreamableHttpPostTransport.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ private async ValueTask OnMessageReceivedAsync(JsonRpcMessage? message, Cancella
8585
if (parentTransport.OnInitRequestReceived is { } onInitRequest && request.Method == RequestMethods.Initialize)
8686
{
8787
var initializeRequest = JsonSerializer.Deserialize(request.Params, McpJsonUtilities.JsonContext.Default.InitializeRequestParams);
88-
onInitRequest(initializeRequest!);
88+
await onInitRequest(initializeRequest).ConfigureAwait(false);
8989
}
9090
}
9191

src/ModelContextProtocol/Server/StreamableHttpServerTransport.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public sealed class StreamableHttpServerTransport : ITransport
4848
/// <summary>
4949
/// Gets or sets a callback to be invoked before handling the initialize request.
5050
/// </summary>
51-
public Action<InitializeRequestParams>? OnInitRequestReceived { get; set; }
51+
public Func<InitializeRequestParams?, ValueTask>? OnInitRequestReceived { get; set; }
5252

5353
/// <inheritdoc/>
5454
public ChannelReader<JsonRpcMessage> MessageReader => _incomingChannel.Reader;

0 commit comments

Comments
 (0)