using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using ModelContextProtocol.Server; using System.ComponentModel; internal class Program { private static async Task Main(string[] args) { var builder = Host.CreateApplicationBuilder(args); builder.Logging.AddConsole(consoleLoggerOptions => { consoleLoggerOptions.LogToStandardErrorThreshold = LogLevel.Trace; }); builder.Services. AddMcpServer(). WithStdioServerTransport(). WithToolsFromAssembly(); await builder.Build().RunAsync(); } } [McpServerToolType] public static class EchoTool { [McpServerTool, Description("Echoes the message back to the client.")] public static string Echo(string message) => $"Hello from C#: {message}"; [McpServerTool, Description("Echoes in reverse the message sent by the client.")] public static string ReverseEcho(string message) { char[] charArray = message.ToCharArray(); Array.Reverse(charArray); var reversed = new string(charArray); return reversed; } }