@@ -682,6 +682,11 @@ impl ChatSession {
682682 Ok ( response)
683683 }
684684
685+ pub fn get_tool_call_message ( & self , tool_call : & llm:: ToolCall ) -> Option < String > {
686+ let tool = self . tools . get_tool ( tool_call. function . name . as_str ( ) ) ?;
687+ Some ( tool. call_mcp_message ( ) . to_string ( ) )
688+ }
689+
685690 pub async fn execute_tool ( & mut self , tool_call : & llm:: ToolCall ) -> anyhow:: Result < ( ) > {
686691 use crate :: ai:: openai:: tool:: Tool ;
687692
@@ -775,6 +780,7 @@ pub async fn load_sse_tools(
775780 rmcp:: service:: RunningService < rmcp:: RoleClient , rmcp:: model:: InitializeRequestParam > ,
776781 > ,
777782 mcp_servers_url : & str ,
783+ call_mcp_message : & str ,
778784) -> anyhow:: Result < ( ) > {
779785 // load MCP
780786 let transport = SseClientTransport :: start ( mcp_servers_url) . await ?;
@@ -794,7 +800,11 @@ pub async fn load_sse_tools(
794800 for tool in tools {
795801 let server = client. peer ( ) . clone ( ) ;
796802 log:: info!( "add tool: {}" , tool. name) ;
797- tool_set. add_tool ( McpToolAdapter :: new ( tool, server) ) ;
803+ tool_set. add_tool ( McpToolAdapter :: new (
804+ tool,
805+ call_mcp_message. to_string ( ) ,
806+ server,
807+ ) ) ;
798808 }
799809 clients. push ( client) ;
800810 Ok ( ( ) )
@@ -806,6 +816,7 @@ pub async fn load_http_streamable_tools(
806816 rmcp:: service:: RunningService < rmcp:: RoleClient , rmcp:: model:: InitializeRequestParam > ,
807817 > ,
808818 mcp_servers_url : & str ,
819+ call_mcp_message : & str ,
809820) -> anyhow:: Result < ( ) > {
810821 // load MCP
811822 let transport = StreamableHttpClientTransport :: from_uri ( mcp_servers_url) ;
@@ -825,7 +836,11 @@ pub async fn load_http_streamable_tools(
825836 for tool in tools {
826837 let server = client. peer ( ) . clone ( ) ;
827838 log:: info!( "add tool: {}" , tool. name) ;
828- tool_set. add_tool ( McpToolAdapter :: new ( tool, server) ) ;
839+ tool_set. add_tool ( McpToolAdapter :: new (
840+ tool,
841+ call_mcp_message. to_string ( ) ,
842+ server,
843+ ) ) ;
829844 }
830845
831846 clients. push ( client) ;
@@ -857,7 +872,7 @@ async fn test_chat_session() {
857872 let mut clients = vec ! [ ] ;
858873
859874 let mut tools = ToolSet :: default ( ) ;
860- load_http_streamable_tools ( & mut tools, & mut clients, "http://localhost:8000/mcp" )
875+ load_http_streamable_tools ( & mut tools, & mut clients, "http://localhost:8000/mcp" , "" )
861876 . await
862877 . unwrap ( ) ;
863878
0 commit comments