chabeau 0.7.1

A full-screen terminal chat interface that connects to various AI APIs for real-time conversations
Documentation
use crate::core::config::data::{Config, McpServerConfig};

#[derive(Debug, Clone)]
pub struct McpRegistry {
    servers: Vec<McpServerConfig>,
}

impl McpRegistry {
    pub fn from_config(config: &Config) -> Self {
        let servers = config
            .mcp_servers
            .iter()
            .filter(|server| server.is_enabled())
            .cloned()
            .collect();
        Self { servers }
    }

    pub fn servers(&self) -> &[McpServerConfig] {
        &self.servers
    }

    pub fn find_server(&self, id: &str) -> Option<&McpServerConfig> {
        self.servers
            .iter()
            .find(|server| server.id.eq_ignore_ascii_case(id))
    }
}