initializeAllUndiscoveredServers method

Future<void> initializeAllUndiscoveredServers()

Implementation

Future<void> initializeAllUndiscoveredServers() async {
  final undiscovered = _mcpManager.clients.where((c) {
    final s = _servers.where((srv) => srv.id == c.name).firstOrNull;
    if (s == null || !s.enabled) return false;
    return !c.isConnected && c.availableTools.isEmpty;
  }).toList();

  if (undiscovered.isEmpty) return;

  await Future.wait(undiscovered.map((c) => _connectClientAndCacheTools(c)));

  bool changed = false;
  for (final clientDef in undiscovered) {
    if (clientDef.isConnected) {
      _initializedClientIds.add(clientDef.name);
      changed = true;
    }
  }

  if (changed) {
    await _storage.saveInitializedClients(_initializedClientIds);
  }

  await _syncMcpServers();
}