#[derive(Debug, thiserror::Error)]
pub enum McpError {
#[error("Permission denied: {0}")]
PermissionDenied(String),
#[error("Connection failed: {0}")]
ConnectionFailed(String),
#[error("Protocol error: {0}")]
ProtocolError(String),
#[error("Tool error: {0}")]
ToolError(String),
#[error("Transport closed")]
TransportClosed,
#[error("Timeout")]
Timeout,
#[error("Runtime error: {0}")]
RuntimeError(String),
}