pub trait McpServer {
fn initialize(
&self,
request: crate::domain::mcp::InitializeRequest,
) -> crate::HexResult<crate::domain::mcp::InitializeResult>;
fn list_resources(&self) -> crate::HexResult<crate::domain::mcp::ResourceList>;
fn read_resource(&self, uri: &str) -> crate::HexResult<crate::domain::mcp::ResourceContent>;
fn refresh_project(
&mut self,
request: crate::domain::mcp::RefreshRequest,
) -> crate::HexResult<crate::domain::mcp::RefreshResult>;
fn handle_request(
&self,
request: crate::domain::mcp::JsonRpcRequest,
) -> crate::domain::mcp::JsonRpcResponse;
}