pub enum MessageFromClient {
RequestFromClient(RequestFromClient),
ResultFromClient(ResultFromClient),
NotificationFromClient(NotificationFromClient),
Error(RpcError),
}
Expand description
An enum representing various types of messages that can be sent from an MCP Client.
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§
RequestFromClient(RequestFromClient)
ResultFromClient(ResultFromClient)
NotificationFromClient(NotificationFromClient)
Error(RpcError)
Trait Implementations§
Source§impl Clone for MessageFromClient
impl Clone for MessageFromClient
Source§fn clone(&self) -> MessageFromClient
fn clone(&self) -> MessageFromClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for MessageFromClient
impl Debug for MessageFromClient
Source§impl From<CallToolRequest> for MessageFromClient
impl From<CallToolRequest> for MessageFromClient
Source§fn from(value: CallToolRequest) -> MessageFromClient
fn from(value: CallToolRequest) -> MessageFromClient
Source§impl From<CancelledNotification> for MessageFromClient
impl From<CancelledNotification> for MessageFromClient
Source§fn from(value: CancelledNotification) -> MessageFromClient
fn from(value: CancelledNotification) -> MessageFromClient
Source§impl From<CompleteRequest> for MessageFromClient
impl From<CompleteRequest> for MessageFromClient
Source§fn from(value: CompleteRequest) -> MessageFromClient
fn from(value: CompleteRequest) -> MessageFromClient
Source§impl From<CreateMessageResult> for MessageFromClient
impl From<CreateMessageResult> for MessageFromClient
Source§fn from(value: CreateMessageResult) -> MessageFromClient
fn from(value: CreateMessageResult) -> MessageFromClient
Source§impl From<GetPromptRequest> for MessageFromClient
impl From<GetPromptRequest> for MessageFromClient
Source§fn from(value: GetPromptRequest) -> MessageFromClient
fn from(value: GetPromptRequest) -> MessageFromClient
Source§impl From<InitializeRequest> for MessageFromClient
impl From<InitializeRequest> for MessageFromClient
Source§fn from(value: InitializeRequest) -> MessageFromClient
fn from(value: InitializeRequest) -> MessageFromClient
Source§impl From<InitializedNotification> for MessageFromClient
impl From<InitializedNotification> for MessageFromClient
Source§fn from(value: InitializedNotification) -> MessageFromClient
fn from(value: InitializedNotification) -> MessageFromClient
Source§impl From<ListPromptsRequest> for MessageFromClient
impl From<ListPromptsRequest> for MessageFromClient
Source§fn from(value: ListPromptsRequest) -> MessageFromClient
fn from(value: ListPromptsRequest) -> MessageFromClient
Source§impl From<ListResourceTemplatesRequest> for MessageFromClient
impl From<ListResourceTemplatesRequest> for MessageFromClient
Source§fn from(value: ListResourceTemplatesRequest) -> MessageFromClient
fn from(value: ListResourceTemplatesRequest) -> MessageFromClient
Source§impl From<ListResourcesRequest> for MessageFromClient
impl From<ListResourcesRequest> for MessageFromClient
Source§fn from(value: ListResourcesRequest) -> MessageFromClient
fn from(value: ListResourcesRequest) -> MessageFromClient
Source§impl From<ListRootsResult> for MessageFromClient
impl From<ListRootsResult> for MessageFromClient
Source§fn from(value: ListRootsResult) -> MessageFromClient
fn from(value: ListRootsResult) -> MessageFromClient
Source§impl From<ListToolsRequest> for MessageFromClient
impl From<ListToolsRequest> for MessageFromClient
Source§fn from(value: ListToolsRequest) -> MessageFromClient
fn from(value: ListToolsRequest) -> MessageFromClient
Source§impl From<NotificationFromClient> for MessageFromClient
impl From<NotificationFromClient> for MessageFromClient
Source§fn from(value: NotificationFromClient) -> MessageFromClient
fn from(value: NotificationFromClient) -> MessageFromClient
Source§impl From<PingRequest> for MessageFromClient
impl From<PingRequest> for MessageFromClient
Source§fn from(value: PingRequest) -> MessageFromClient
fn from(value: PingRequest) -> MessageFromClient
Source§impl From<ProgressNotification> for MessageFromClient
impl From<ProgressNotification> for MessageFromClient
Source§fn from(value: ProgressNotification) -> MessageFromClient
fn from(value: ProgressNotification) -> MessageFromClient
Source§impl From<ReadResourceRequest> for MessageFromClient
impl From<ReadResourceRequest> for MessageFromClient
Source§fn from(value: ReadResourceRequest) -> MessageFromClient
fn from(value: ReadResourceRequest) -> MessageFromClient
Source§impl From<RequestFromClient> for MessageFromClient
impl From<RequestFromClient> for MessageFromClient
Source§fn from(value: RequestFromClient) -> MessageFromClient
fn from(value: RequestFromClient) -> MessageFromClient
Source§impl From<Result> for MessageFromClient
impl From<Result> for MessageFromClient
Source§fn from(value: Result) -> MessageFromClient
fn from(value: Result) -> MessageFromClient
Source§impl From<ResultFromClient> for MessageFromClient
impl From<ResultFromClient> for MessageFromClient
Source§fn from(value: ResultFromClient) -> MessageFromClient
fn from(value: ResultFromClient) -> MessageFromClient
Source§impl From<RootsListChangedNotification> for MessageFromClient
impl From<RootsListChangedNotification> for MessageFromClient
Source§fn from(value: RootsListChangedNotification) -> MessageFromClient
fn from(value: RootsListChangedNotification) -> MessageFromClient
Source§impl From<RpcError> for MessageFromClient
impl From<RpcError> for MessageFromClient
Source§fn from(value: RpcError) -> MessageFromClient
fn from(value: RpcError) -> MessageFromClient
Source§impl From<SetLevelRequest> for MessageFromClient
impl From<SetLevelRequest> for MessageFromClient
Source§fn from(value: SetLevelRequest) -> MessageFromClient
fn from(value: SetLevelRequest) -> MessageFromClient
Source§impl From<SubscribeRequest> for MessageFromClient
impl From<SubscribeRequest> for MessageFromClient
Source§fn from(value: SubscribeRequest) -> MessageFromClient
fn from(value: SubscribeRequest) -> MessageFromClient
Source§impl From<UnsubscribeRequest> for MessageFromClient
impl From<UnsubscribeRequest> for MessageFromClient
Source§fn from(value: UnsubscribeRequest) -> MessageFromClient
fn from(value: UnsubscribeRequest) -> MessageFromClient
Source§impl FromMessage<MessageFromClient> for ClientMessage
impl FromMessage<MessageFromClient> for ClientMessage
fn from_message( message: MessageFromClient, request_id: Option<RequestId>, ) -> Result<ClientMessage, RpcError>
Source§impl McpDispatch<ServerMessage, MessageFromClient> for MessageDispatcher<ServerMessage>
impl McpDispatch<ServerMessage, MessageFromClient> for MessageDispatcher<ServerMessage>
Source§fn send<'life0, 'async_trait>(
&'life0 self,
message: MessageFromClient,
request_id: Option<RequestId>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ServerMessage>: 'async_trait,
fn send<'life0, 'async_trait>(
&'life0 self,
message: MessageFromClient,
request_id: Option<RequestId>,
request_timeout: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<Option<ServerMessage>, TransportError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MessageDispatcher<ServerMessage>: 'async_trait,
Sends a message from the client to the server and awaits a response if applicable.
Serializes the MessageFromClient
to JSON, writes it to the transport, and waits for a
ServerMessage
response if the message is a request. Notifications and responses return
Ok(None)
.
§Arguments
message
- The client message to send.request_id
- An optional request ID (used for responses/errors, None for requests).
§Returns
A TransportResult
containing Some(ServerMessage)
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.