use crate::ast::parse_workflow;
use super::App;
impl App {
pub(crate) fn init_mcp_clients(&mut self) {
let yaml_content = match std::fs::read_to_string(&self.workflow_path) {
Ok(content) => content,
Err(e) => {
tracing::warn!("Failed to read workflow for MCP init: {}", e);
return;
}
};
let workflow = match parse_workflow(&yaml_content) {
Ok(w) => w,
Err(e) => {
tracing::warn!("Failed to parse workflow for MCP init: {}", e);
return;
}
};
if let Some(mcp_configs) = workflow.mcp {
let server_names: Vec<_> = mcp_configs.keys().cloned().collect();
tracing::info!(servers = ?server_names, "Loaded MCP server configurations");
self.command_view
.chat
.set_mcp_servers(server_names.iter().cloned());
self.mcp_pool.set_configs(mcp_configs);
}
}
}