writeMcpConfigToFile method

Future<void> writeMcpConfigToFile(
  1. String configFilePath,
  2. Map<String, dynamic> config
)

Write MCP configuration to file

Implementation

Future<void> writeMcpConfigToFile(
  String configFilePath,
  Map<String, dynamic> config,
) async {
  final configFile = File(configFilePath);
  Map<String, dynamic> existingConfig = {};

  // Read existing config if it exists
  if (await configFile.exists()) {
    try {
      final content = await configFile.readAsString();
      if (content.isNotEmpty) {
        existingConfig = jsonDecode(content) as Map<String, dynamic>;
      } else {
        existingConfig = defaultMcpConfig;
      }
    } catch (e) {
      // If parsing fails, start with default config
      existingConfig = defaultMcpConfig;
    }
  } else {
    existingConfig = defaultMcpConfig;
  }

  // Merge configs
  final mergedConfig = mergeConfig(existingConfig, config);

  // Create parent directory if it doesn't exist
  final parentDir = configFile.parent;
  if (!await parentDir.exists()) {
    await parentDir.create(recursive: true);
  }

  // Write config file with proper formatting
  const encoder = JsonEncoder.withIndent('  ');
  final jsonString = encoder.convert(mergedConfig);
  await configFile.writeAsString(jsonString);
}