1+ use std:: {
2+ future:: Future ,
3+ sync:: { Arc , Mutex } ,
4+ } ;
5+
16use rmcp:: {
27 ClientHandler , Error as McpError , RoleClient , RoleServer , ServerHandler ,
38 model:: * ,
49 service:: { Peer , RequestContext } ,
510} ;
611use serde_json:: json;
7- use std:: {
8- future:: Future ,
9- sync:: { Arc , Mutex } ,
10- } ;
1112use tokio:: sync:: Notify ;
1213
1314#[ derive( Clone ) ]
@@ -57,40 +58,38 @@ impl ClientHandler for TestClientHandler {
5758 self . peer = Some ( peer) ;
5859 }
5960
60- fn create_message (
61+ async fn create_message (
6162 & self ,
6263 params : CreateMessageRequestParam ,
6364 _context : RequestContext < RoleClient > ,
64- ) -> impl Future < Output = Result < CreateMessageResult , McpError > > + Send + ' _ {
65- async move {
66- // First validate that there's at least one User message
67- if !params. messages . iter ( ) . any ( |msg| msg. role == Role :: User ) {
68- return Err ( McpError :: invalid_request (
69- "Message sequence must contain at least one user message" ,
70- Some ( json ! ( { "messages" : params. messages} ) ) ,
71- ) ) ;
72- }
65+ ) -> Result < CreateMessageResult , McpError > {
66+ // First validate that there's at least one User message
67+ if !params. messages . iter ( ) . any ( |msg| msg. role == Role :: User ) {
68+ return Err ( McpError :: invalid_request (
69+ "Message sequence must contain at least one user message" ,
70+ Some ( json ! ( { "messages" : params. messages} ) ) ,
71+ ) ) ;
72+ }
7373
74- // Create response based on context inclusion
75- let response = match params. include_context {
76- Some ( ContextInclusion :: ThisServer ) if self . honor_this_server => {
77- "Test response with context: test context"
78- }
79- Some ( ContextInclusion :: AllServers ) if self . honor_all_servers => {
80- "Test response with context: test context"
81- }
82- _ => "Test response without context" ,
83- } ;
74+ // Create response based on context inclusion
75+ let response = match params. include_context {
76+ Some ( ContextInclusion :: ThisServer ) if self . honor_this_server => {
77+ "Test response with context: test context"
78+ }
79+ Some ( ContextInclusion :: AllServers ) if self . honor_all_servers => {
80+ "Test response with context: test context"
81+ }
82+ _ => "Test response without context" ,
83+ } ;
8484
85- Ok ( CreateMessageResult {
86- message : SamplingMessage {
87- role : Role :: Assistant ,
88- content : Content :: text ( response. to_string ( ) ) ,
89- } ,
90- model : "test-model" . to_string ( ) ,
91- stop_reason : Some ( CreateMessageResult :: STOP_REASON_END_TURN . to_string ( ) ) ,
92- } )
93- }
85+ Ok ( CreateMessageResult {
86+ message : SamplingMessage {
87+ role : Role :: Assistant ,
88+ content : Content :: text ( response. to_string ( ) ) ,
89+ } ,
90+ model : "test-model" . to_string ( ) ,
91+ stop_reason : Some ( CreateMessageResult :: STOP_REASON_END_TURN . to_string ( ) ) ,
92+ } )
9493 }
9594
9695 fn on_logging_message (
@@ -112,6 +111,7 @@ impl ClientHandler for TestClientHandler {
112111pub struct TestServer { }
113112
114113impl TestServer {
114+ #[ allow( dead_code) ]
115115 pub fn new ( ) -> Self {
116116 Self { }
117117 }
0 commit comments