using System.Text.Json;
using ModelContextProtocol.Protocol;
using ModelContextProtocol.Server;
namespace LehrerApp.McpBridge;
///
/// Einziges Werkzeug, das die Bridge anbietet, solange keine Verbindung zu LehrerApp besteht (siehe
/// ). Ohne dieses Werkzeug hätte ein KI-Client keine Möglichkeit zu
/// erfahren, WARUM gerade keine LehrerApp-Werkzeuge da sind, sondern sähe nur eine leere
/// Werkzeugliste - der Assistent könnte dem Nutzer dann nicht erklären, dass LehrerApp erst
/// gestartet werden muss. Versucht bei jedem Aufruf aktiv erneut zu verbinden; klappt das, ersetzt
/// dieses Werkzeug automatisch durch die echte Werkzeugliste, und der
/// Client wird per "notifications/tools/list_changed" benachrichtigt (siehe
/// ).
///
internal sealed class StatusMcpServerTool(RealServerBridge bridge) : McpServerTool
{
public override Tool ProtocolTool { get; } = new()
{
Name = "lehrerapp_status",
Description = "Prüft, ob LehrerApp erreichbar ist, und versucht bei Bedarf erneut zu " +
"verbinden. Solange keine Verbindung besteht, sind alle anderen LehrerApp-Werkzeuge " +
"(Schüler, Noten, Stundenplanung, Kompetenzen, ...) nicht verfügbar - sie erscheinen erst " +
"nach einer erfolgreichen Verbindung in der Werkzeugliste. Bei einer Fehlermeldung eines " +
"anderen LehrerApp-Werkzeugs, die auf eine fehlende Verbindung hindeutet, dieses Werkzeug " +
"aufrufen, um den Grund zu klären, statt den Nutzer ohne Erklärung zu vertrösten.",
InputSchema = JsonDocument.Parse("""{"type":"object","properties":{}}""").RootElement,
};
public override IReadOnlyList