writeMcpConfigToFile method
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);
}