Skip to main content

codei_mcp/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum McpError {
5    #[error("failed to spawn MCP server `{name}`: {source}")]
6    Spawn {
7        name: String,
8        #[source]
9        source: std::io::Error,
10    },
11
12    #[error("MCP server `{name}` exited unexpectedly")]
13    Exited { name: String },
14
15    #[error("MCP I/O error: {0}")]
16    Io(#[from] std::io::Error),
17
18    #[error("invalid JSON-RPC message: {0}")]
19    Json(#[from] serde_json::Error),
20
21    #[error("MCP protocol error on `{server}`: {message}")]
22    Protocol { server: String, message: String },
23
24    #[error("MCP request timed out after {secs}s")]
25    Timeout { secs: u64 },
26
27    #[error("no MCP servers configured")]
28    NoServers,
29}