pub enum MessageFromServer {
RequestFromServer(RequestFromServer),
ResultFromServer(ResultFromServer),
NotificationFromServer(NotificationFromServer),
Error(RpcError),
}
Expand description
An enum representing various types of messages that can be sent from an MCP Server.
It provides a typed structure for the message payload while skipping internal details like
requestId
and protocol version, which are used solely by the transport layer and
do not need to be exposed to the user.
Variants§
RequestFromServer(RequestFromServer)
ResultFromServer(ResultFromServer)
NotificationFromServer(NotificationFromServer)
Error(RpcError)
Trait Implementations§
Source§impl Clone for MessageFromServer
impl Clone for MessageFromServer
Source§fn clone(&self) -> MessageFromServer
fn clone(&self) -> MessageFromServer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for MessageFromServer
impl Debug for MessageFromServer
Source§impl From<CallToolResult> for MessageFromServer
impl From<CallToolResult> for MessageFromServer
Source§fn from(value: CallToolResult) -> MessageFromServer
fn from(value: CallToolResult) -> MessageFromServer
Source§impl From<CancelledNotification> for MessageFromServer
impl From<CancelledNotification> for MessageFromServer
Source§fn from(value: CancelledNotification) -> MessageFromServer
fn from(value: CancelledNotification) -> MessageFromServer
Source§impl From<CompleteResult> for MessageFromServer
impl From<CompleteResult> for MessageFromServer
Source§fn from(value: CompleteResult) -> MessageFromServer
fn from(value: CompleteResult) -> MessageFromServer
Source§impl From<CreateMessageRequest> for MessageFromServer
impl From<CreateMessageRequest> for MessageFromServer
Source§fn from(value: CreateMessageRequest) -> MessageFromServer
fn from(value: CreateMessageRequest) -> MessageFromServer
Source§impl From<GetPromptResult> for MessageFromServer
impl From<GetPromptResult> for MessageFromServer
Source§fn from(value: GetPromptResult) -> MessageFromServer
fn from(value: GetPromptResult) -> MessageFromServer
Source§impl From<InitializeResult> for MessageFromServer
impl From<InitializeResult> for MessageFromServer
Source§fn from(value: InitializeResult) -> MessageFromServer
fn from(value: InitializeResult) -> MessageFromServer
Source§impl From<ListPromptsResult> for MessageFromServer
impl From<ListPromptsResult> for MessageFromServer
Source§fn from(value: ListPromptsResult) -> MessageFromServer
fn from(value: ListPromptsResult) -> MessageFromServer
Source§impl From<ListResourceTemplatesResult> for MessageFromServer
impl From<ListResourceTemplatesResult> for MessageFromServer
Source§fn from(value: ListResourceTemplatesResult) -> MessageFromServer
fn from(value: ListResourceTemplatesResult) -> MessageFromServer
Source§impl From<ListResourcesResult> for MessageFromServer
impl From<ListResourcesResult> for MessageFromServer
Source§fn from(value: ListResourcesResult) -> MessageFromServer
fn from(value: ListResourcesResult) -> MessageFromServer
Source§impl From<ListRootsRequest> for MessageFromServer
impl From<ListRootsRequest> for MessageFromServer
Source§fn from(value: ListRootsRequest) -> MessageFromServer
fn from(value: ListRootsRequest) -> MessageFromServer
Source§impl From<ListToolsResult> for MessageFromServer
impl From<ListToolsResult> for MessageFromServer
Source§fn from(value: ListToolsResult) -> MessageFromServer
fn from(value: ListToolsResult) -> MessageFromServer
Source§impl From<LoggingMessageNotification> for MessageFromServer
impl From<LoggingMessageNotification> for MessageFromServer
Source§fn from(value: LoggingMessageNotification) -> MessageFromServer
fn from(value: LoggingMessageNotification) -> MessageFromServer
Source§impl From<NotificationFromServer> for MessageFromServer
impl From<NotificationFromServer> for MessageFromServer
Source§fn from(value: NotificationFromServer) -> MessageFromServer
fn from(value: NotificationFromServer) -> MessageFromServer
Source§impl From<PingRequest> for MessageFromServer
impl From<PingRequest> for MessageFromServer
Source§fn from(value: PingRequest) -> MessageFromServer
fn from(value: PingRequest) -> MessageFromServer
Source§impl From<ProgressNotification> for MessageFromServer
impl From<ProgressNotification> for MessageFromServer
Source§fn from(value: ProgressNotification) -> MessageFromServer
fn from(value: ProgressNotification) -> MessageFromServer
Source§impl From<PromptListChangedNotification> for MessageFromServer
impl From<PromptListChangedNotification> for MessageFromServer
Source§fn from(value: PromptListChangedNotification) -> MessageFromServer
fn from(value: PromptListChangedNotification) -> MessageFromServer
Source§impl From<ReadResourceResult> for MessageFromServer
impl From<ReadResourceResult> for MessageFromServer
Source§fn from(value: ReadResourceResult) -> MessageFromServer
fn from(value: ReadResourceResult) -> MessageFromServer
Source§impl From<RequestFromServer> for MessageFromServer
impl From<RequestFromServer> for MessageFromServer
Source§fn from(value: RequestFromServer) -> MessageFromServer
fn from(value: RequestFromServer) -> MessageFromServer
Source§impl From<ResourceListChangedNotification> for MessageFromServer
impl From<ResourceListChangedNotification> for MessageFromServer
Source§fn from(value: ResourceListChangedNotification) -> MessageFromServer
fn from(value: ResourceListChangedNotification) -> MessageFromServer
Source§impl From<ResourceUpdatedNotification> for MessageFromServer
impl From<ResourceUpdatedNotification> for MessageFromServer
Source§fn from(value: ResourceUpdatedNotification) -> MessageFromServer
fn from(value: ResourceUpdatedNotification) -> MessageFromServer
Source§impl From<Result> for MessageFromServer
impl From<Result> for MessageFromServer
Source§fn from(value: Result) -> MessageFromServer
fn from(value: Result) -> MessageFromServer
Source§impl From<ResultFromServer> for MessageFromServer
impl From<ResultFromServer> for MessageFromServer
Source§fn from(value: ResultFromServer) -> MessageFromServer
fn from(value: ResultFromServer) -> MessageFromServer
Source§impl From<RpcError> for MessageFromServer
impl From<RpcError> for MessageFromServer
Source§fn from(value: RpcError) -> MessageFromServer
fn from(value: RpcError) -> MessageFromServer
Source§impl From<ToolListChangedNotification> for MessageFromServer
impl From<ToolListChangedNotification> for MessageFromServer
Source§fn from(value: ToolListChangedNotification) -> MessageFromServer
fn from(value: ToolListChangedNotification) -> MessageFromServer
Source§impl FromMessage<MessageFromServer> for ServerMessage
impl FromMessage<MessageFromServer> for ServerMessage
fn from_message( message: MessageFromServer, request_id: Option<RequestId>, ) -> Result<ServerMessage, RpcError>
Source§impl McpDispatch<ClientMessage, MessageFromServer> for MessageDispatcher<ClientMessage>
impl McpDispatch<ClientMessage, MessageFromServer> for MessageDispatcher<ClientMessage>
Source§fn send<'life0, 'async_trait>(
&'life0 self,
message: MessageFromServer,
request_id: Option<RequestId>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ClientMessage>: 'async_trait,
fn send<'life0, 'async_trait>(
&'life0 self,
message: MessageFromServer,
request_id: Option<RequestId>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ClientMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ClientMessage>: 'async_trait,
Sends a message from the server to the client and awaits a response if applicable.
Serializes the MessageFromServer
to JSON, writes it to the transport, and waits for a
ClientMessage
response if the message is a request. Notifications and responses return
Ok(None)
.
§Arguments
message
- The server message to send.request_id
- An optional request ID (used for responses/errors, None for requests).
§Returns
A TransportResult
containing Some(ClientMessage)
for requests with a response,
or None
for notifications/responses, or an error if the operation fails.
§Errors
Returns a TransportError
if serialization, writing, or timeout occurs.