diff --git a/Program.cs b/Program.cs index 615e0e9..f96ea9f 100644 --- a/Program.cs +++ b/Program.cs @@ -1,7 +1,40 @@ -internal class Program -{ - private static void Main(string[] args) - { - Console.WriteLine("Hello, World!"); - } -} +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; + } +}