using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using LehrerApp.Desktop.Services; using LehrerApp.Desktop.Services.Mcp; namespace LehrerApp.Desktop.ViewModels.Settings; public partial class SettingsViewModel { // ── MCP-Server (lokal, Phase 1) ────────────────────────────────────────── [ObservableProperty] private bool _mcpEnabled; private void LoadMcpSettings() => McpEnabled = _mcpSettings.Enabled; // Kein Live-Reload (siehe McpServerHostedService/Planungsdokument) - der Pipe-Listener wird // nur beim App-Start eingerichtet, deshalb wirkt eine Änderung hier erst nach Neustart. partial void OnMcpEnabledChanged(bool value) => _mcpSettings.SetEnabled(value); // ── MCP: Registrierung bei Claude Desktop ───────────────────────────────── [ObservableProperty] private string _mcpRegistrationStatus = ""; [ObservableProperty] private bool _mcpIsRegisteredWithClaude; private void LoadMcpRegistrationStatus() => McpIsRegisteredWithClaude = _mcpRegistration.IsRegistered(); [RelayCommand] private void RegisterWithClaudeDesktop() { var result = _mcpRegistration.Register(); McpRegistrationStatus = result.Message; McpIsRegisteredWithClaude = _mcpRegistration.IsRegistered(); } [RelayCommand] private void UnregisterFromClaudeDesktop() { var result = _mcpRegistration.Unregister(); McpRegistrationStatus = result.Message; McpIsRegisteredWithClaude = _mcpRegistration.IsRegistered(); } }