using ModelContextProtocol.Protocol; using ModelContextProtocol.Server; namespace LehrerApp.McpBridge; /// /// Reicht einen von LehrerApp.Desktop tatsächlich angebotenen MCP-Tool-Aufruf 1:1 an den echten /// Server weiter - Name, Beschreibung und Eingabeschema () stammen /// unverändert von dort (siehe ). Die Bridge muss dadurch kein /// eigenes Wissen über einzelne LehrerApp-Werkzeuge/-Parameter pflegen; ändert sich ein Tool in /// LehrerApp.Desktop, übernimmt die Bridge das beim nächsten Verbindungsaufbau automatisch. /// internal sealed class ProxyMcpServerTool(Tool protocolTool, RealServerBridge bridge) : McpServerTool { public override Tool ProtocolTool { get; } = protocolTool; public override IReadOnlyList Metadata { get; } = []; public override ValueTask InvokeAsync( RequestContext request, CancellationToken cancellationToken) => new(bridge.CallRealToolAsync(request.Params, cancellationToken)); }