From 85eedab29d1ca8d7822b3d4fd041a74339fadf8b Mon Sep 17 00:00:00 2001 From: wagesj45 Date: Tue, 18 Aug 2026 22:48:37 -0500 Subject: [PATCH] Add support for stdio-based server mode alongside HTTP service integration --- src/cs-mic-mcp/Program.cs | 77 ++++++++++--------- src/cs-mic-mcp/Properties/launchSettings.json | 10 ++- 2 files changed, 46 insertions(+), 41 deletions(-) diff --git a/src/cs-mic-mcp/Program.cs b/src/cs-mic-mcp/Program.cs index ab9c278..70aa96d 100644 --- a/src/cs-mic-mcp/Program.cs +++ b/src/cs-mic-mcp/Program.cs @@ -1,5 +1,6 @@ using cs_mic_mcp.Resources; using cs_mic_mcp.Tools; +using Microsoft.AspNetCore.Localization; namespace cs_mic_mcp; @@ -7,49 +8,51 @@ public class Program { public static void Main(string[] args) { - var builder = WebApplication.CreateBuilder(args); - - builder.Services - .AddMcpServer() - //.WithStdioServerTransport() - .WithHttpTransport() - .WithTools() - .WithResources(); - - builder.Services.AddCors(options => + if (args.Contains("--stdio", StringComparer.InvariantCultureIgnoreCase)) { - options.AddDefaultPolicy(policy => - { - policy - .AllowAnyOrigin() - .AllowAnyHeader() - .AllowAnyMethod() - .WithExposedHeaders("Mcp-Session-Id"); - }); - }); + // stdio pipeline - local only + var builder = Host.CreateApplicationBuilder(args); - // Add services to the container. - - //builder.Services.AddControllers(); - - // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi - //builder.Services.AddOpenApi(); - - var app = builder.Build(); - app.UseCors(); - - // Configure the HTTP request pipeline. - if (app.Environment.IsDevelopment()) - { - //app.MapOpenApi(); + builder.Services + .AddMcpServer() + .WithStdioServerTransport() + .WithTools() + .WithResources(); + + var app = builder.Build(); + + app.Run(); } + else + { + // web pipeline - http service + var builder = WebApplication.CreateBuilder(args); - //app.UseAuthorization(); + builder.Services + .AddMcpServer() + .WithHttpTransport() + .WithTools() + .WithResources(); + + builder.Services.AddCors(options => + { + options.AddDefaultPolicy(policy => + { + policy + .AllowAnyOrigin() + .AllowAnyHeader() + .AllowAnyMethod() + .WithExposedHeaders("Mcp-Session-Id"); + }); + }); + var app = builder.Build(); + app.UseCors(); - //app.MapControllers(); - app.MapMcp("/mcp"); + app.MapMcp("/mcp"); - app.Run(); + app.Run(); + } + } } \ No newline at end of file diff --git a/src/cs-mic-mcp/Properties/launchSettings.json b/src/cs-mic-mcp/Properties/launchSettings.json index 089f4eb..e1e512e 100644 --- a/src/cs-mic-mcp/Properties/launchSettings.json +++ b/src/cs-mic-mcp/Properties/launchSettings.json @@ -5,10 +5,12 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": false, - "applicationUrl": "http://localhost:5017", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } + "applicationUrl": "http://localhost:5000" + }, + "stdio": { + "commandName": "Project", + "commandLineArgs": "--stdio", + "dotnetRunMessages": false } } }