@@ -2,6 +2,7 @@ use crate::error::{Result, SofosError};
22use crate :: mcp:: client:: McpClient ;
33use crate :: mcp:: config:: load_mcp_config;
44use crate :: mcp:: protocol:: { CallToolResult , ToolContent } ;
5+ use colored:: Colorize ;
56use std:: collections:: HashMap ;
67use std:: path:: PathBuf ;
78use std:: sync:: Arc ;
@@ -26,12 +27,19 @@ impl McpManager {
2627 // Get tools from this server
2728 match client. list_tools ( ) . await {
2829 Ok ( tools) => {
30+ let tool_count = tools. len ( ) ;
2931 for tool in tools {
3032 // Prefix tool name with server name to avoid conflicts
3133 let prefixed_name = format ! ( "{}_{}" , server_name, tool. name) ;
3234 tool_to_server. insert ( prefixed_name, server_name. clone ( ) ) ;
3335 }
3436 clients. insert ( server_name. clone ( ) , client) ;
37+ println ! (
38+ "{} MCP server '{}' initialized ({} tools)" ,
39+ "✓" . bright_green( ) ,
40+ server_name. bright_cyan( ) ,
41+ tool_count
42+ ) ;
3543 }
3644 Err ( e) => {
3745 eprintln ! (
@@ -102,17 +110,14 @@ impl McpManager {
102110 SofosError :: McpError ( format ! ( "MCP server '{}' not connected" , server_name) )
103111 } ) ?;
104112
105- // Extract the original tool name (remove server prefix)
106113 let original_tool_name = tool_name
107114 . strip_prefix ( & format ! ( "{}_" , server_name) )
108115 . unwrap_or ( tool_name) ;
109116
110- // Call the tool
111117 let result = client
112118 . call_tool ( original_tool_name, Some ( input. clone ( ) ) )
113119 . await ?;
114120
115- // Format the result
116121 Ok ( format_tool_result ( result) )
117122 }
118123
0 commit comments