pubmodhttp;useasync_trait::async_trait;useserde_json::Value;/// Trait for the MCP upstream — any server that receives JSON-RPC.
/// `None` = no response body (202 for notifications).
#[async_trait]pubtraitMcpUpstream: Send + Sync {
async fnforward(&self, msg:&Value)->Option<Value>;/// Base URL of the upstream (e.g. `http://localhost:3000/mcp`).
/// Used by the SSE proxy to construct the GET endpoint.
fnbase_url(&self)->&str{""}/// Returns `true` if the upstream is believed to be reachable.
/// For HTTP upstreams this reflects the circuit breaker state.
async fnis_healthy(&self)->bool{true}}