Releases: rust-mcp-stack/rust-mcp-schema
Releases · rust-mcp-stack/rust-mcp-schema
v0.2.1
v0.2.0
0.2.0 (2025-03-22)
This update is classified as a breaking change due to the removal of certain deprecated methods and the standardization of method parameter order of generated constructors ( new(...) methods ) , ensuring that required arguments are placed before optional ones.
⚠ BREAKING CHANGES
- Method parameter order of generated constructors ( new(...) methods ) has been standardized, with required arguments now consistently positioned before optional ones.
- Deprecated get_method() methods have been eliminated.
- improve generated schema, eliminate deprecated methods (#53)
Features
v0.1.11
v0.1.10
v0.1.9
0.1.9 (2025-03-02)
Features
-
new cunstructor and conversion utilities for call tool operations (#41) (0b8f622)
Details
Usage example:- Return a Unknown Tool Error
async fn handle_call_tool_request( &self, request: CallToolRequest, ) -> Result<CallToolResult, CallToolError> { ////............ return Err(CallToolError::unknown_tool(tool_name)), }
- Return a
CallToolResult
withTextContent
:
async fn handle_call_tool_request( &self, request: CallToolRequest, ) -> Result<CallToolResult, CallToolError> { ////............ return Ok(CallToolResult::text_content( format!( "Successfully created directory {}", path), None, )); }
Bug Fixes
v0.1.8
0.1.8 (2025-02-23)
Features
- add SdkError codes and types (#37) (034ee8f)
- add utility function for easy detection of initialized notifications (#38) (39400b6)
- add utility functions for simplified type conversions (#33) (7447800)
- more type conversion utilities (#36) (9a0abb9)
- new TryFrom implementation for all standard mcp message variants (#35) (08854f0)
v0.1.7
0.1.7 (2025-02-21)
Features
-
implement ToMessage trait (#31) (435f18b)
Details
ToMessage
Trait simplifies the construction of MCP messages, reducing the amount of code required:Example:
Before Introducing the
ToMessage
traitasync fn send_ping_request(ping_request: rust_mcp_schema::PingRequest) { let request_id = get_next_id(); // construct a ServerMessage from the ping_request , with request_id let message = ServerMessage::Request(ServerJsonrpcRequest::new( request_id, RequestFromServer::ServerRequest(ServerRequest::PingRequest(ping_request)), )); // serialize message into a valid rpcJsonrpcMessage string let rpc_message_json_str = message.to_string(); // send the ping request to the client tranport.send(rpc_message_json_str).await }
After Introducing the
ToMessage
traitasync fn send_ping_request(ping_request: rust_mcp_schema::PingRequest) { let request_id = get_next_id(); // construct a ServerMessage from the ping_request , with request_id let message: ServerMessage = ping_request .to_message(request_id) .unwrap(); // serialize message into a valid rpcJsonrpcMessage string let rpc_message_json_str = message.to_string(); // send the ping request to the client tranport.send(rpc_message_json_str).await }
v0.1.6
0.1.6 (2025-02-17)
Features
-
implement new utility functions (#24) (859b5db)
New functions
New functions provided by `MCPMessage` , available on `ClientMessage` and `ServerMessage`:message.is_request()
: Returns true if the message is a response typemessage.is_response()
: Returns true if the message is a request typemessage.is_notification()
: Returns true if the message is a notification typemessage.is_error()
: Returns true if the message represents an errormessage.request_id()
: Retrieves the request ID associated with the message, if applicable
Bug Fixes
v0.1.5
0.1.5 (2025-02-15)
Features
-
implement builder pattern for JsonrpcErrorError (#18) (71e63e5)
Details
Old Approach
JsonrpcErrorError::new( schema_utils::RpcErrorCodes::method_not_found, "Method not found!".to_string(), None, );
New Approach
JsonrpcErrorError::method_not_found()
- overriding the
message
and passingdata
:
JsonrpcErrorError::method_not_found() .with_message("Method is not supported!".to_string()) .with_data(Some(json!({"details": "No implementation found for this method."})))
- overriding the