AquaSynth/tools/AquaSynthDingsMcp/Program.cs
2026-07-14 01:06:12 +01:00

25 lines
856 B
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using AquaSynthDingsMcp;
if (args is ["--play", var eventId, var instrumentId])
{
await using var daemon = new AquaDaemonClient();
using var audio = new DingAudioPlayer();
var service = new DingService(daemon, audio);
await service.PlayAsync(eventId, instrumentId, .7f, CancellationToken.None);
await Task.Delay(TimeSpan.FromSeconds(2.5));
return;
}
var builder = Host.CreateApplicationBuilder(args);
builder.Logging.ClearProviders();
builder.Services.AddSingleton<AquaDaemonClient>();
builder.Services.AddSingleton<DingAudioPlayer>();
builder.Services.AddSingleton<DingService>();
builder.Services.AddMcpServer()
.WithStdioServerTransport()
.WithTools<DingTools>();
await builder.Build().RunAsync();