Skip to content

ctrl-c doesn't cancel server on mac and linux #221

@mbcrawfo

Description

@mbcrawfo

Describe the bug
After sending Ctrl-C to the console app, the server logs indicate that it is shutting down, but the process never exits requiring it to be killed.

Edit: I'm experiencing this on MacOS with SDK 9.0.100. I haven't tried Windows or .Net 8.

To Reproduce

  1. dotnet new console
  2. dotnet add package ModelContextProtocol --prerelease
  3. dotnet add package Microsoft.Extensions.Hosting
  4. Copy code below into Program.cs and dotnet run
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

var builder = Host.CreateApplicationBuilder(args);
builder.Logging.AddConsole(options => options.LogToStandardErrorThreshold = LogLevel.Trace);
builder.Services.AddMcpServer().WithStdioServerTransport();
await builder.Build().RunAsync();

Expected behavior

The app should completely shut down and exit after receiving a Ctrl-C signal.

Logs

info: ModelContextProtocol.Protocol.Transport.StdioServerTransport[728055718]
      Transport entering read messages loop for Server (stream) (mcp-server-shutdown)
info: ModelContextProtocol.Protocol.Transport.StdioServerTransport[625848173]
      Transport waiting for message for Server (stream) (mcp-server-shutdown)
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /Users/michael/Projects/mcp-server-shutdown
info: Microsoft.Hosting.Lifetime[0]
      Application is shutting down...
info: ModelContextProtocol.Server.McpServer[52599573]
      Endpoint message processing cancelled for Server (mcp-server-shutdown 1.0.0.0)
info: ModelContextProtocol.Server.McpServer[471153486]
      Cleaning up endpoint Server (mcp-server-shutdown 1.0.0.0)
info: ModelContextProtocol.Server.McpServer[883836513]
      Endpoint cleaned up for Server (mcp-server-shutdown 1.0.0.0)
info: ModelContextProtocol.Protocol.Transport.StdioServerTransport[156234308]
      Transport cleaning up for Server (stream) (mcp-server-shutdown)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions