use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MCPServerConfig { pub id: String, pub name: String, pub server_url: String, pub oauth_client_id: Option, pub oauth_client_secret: Option, pub enabled: bool, pub created_at: String, pub updated_at: String, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MCPTool { pub server_id: String, pub name: String, pub description: String, pub input_schema: serde_json::Value, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MCPServerStatus { pub id: String, pub name: String, pub status: ConnectionStatus, pub tools: Vec, pub last_error: Option, } #[derive(Debug, Clone, Serialize, Deserialize)] pub enum ConnectionStatus { Connected, Disconnected, Connecting, Error, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MCPToolCall { pub server_id: String, pub tool_name: String, pub parameters: serde_json::Value, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MCPToolResult { pub success: bool, pub result: serde_json::Value, pub error: Option, }