
    gi                     .    d dl mZ  e       ZdedefdZy)    )	MCPClient	tool_nameargsc                   K   d}d}d}d}d}d}	 t        | | d| d| |  | d	| 
d
       t        j                          d{   }|D 	ci c]  }	|	j                  |	 }
}	| |
vrt        | d|  d| d
       y|
|    j	                  |       d{   }t        |d      r|j                  n|}t        t        |            dkD  rt        |      dd n
t        |      }t        | | d| d| |  | d| 
d
       |S 7 c c}	w 7 u# t        $ r/}t        | d|  d| | d
       dt        |       cY d}~S d}~ww xY ww)z>Invoca una herramienta MCP de forma segura con logs coloridos.z[94mz[92mz[93mz[91mz[0mz[1mu   📡 [MCP REQUEST]z Tool: z	 | Args: T)flushNu   ⚠️ Tool 'z' no encontrada.content   u   📥 [MCP RESPONSE]z	 | Data: u   ❌ Error invocando z: zError: )
print
mcp_clientget_tools_asyncnameainvokehasattrr   lenstr	Exception)r   r   BLUEGREENYELLOWREDRESETBOLDtoolst	tools_mapresponser   resp_stres                  8/opt/agrota/powerbi/client-mcp/agent/utils/mcp_helper.pysafe_invoke_toolr       s     DEF
CED"tf.ugWVHYKPUwV_`d_efnrs 0022(-.1QVVQY.	.I%SEyk1A%IQUV #9-55d;; '.h	&B(""),S\):S)@3w<%c'lv0wvhykRWQXXabjakltxy' 3. <  "))Bqc%ANQ!!"sq   E5D DD D"D =E>D DA-D ED D 	E$E :E;E EEN)mcp_integration.clientr   r   r   dictr         r   <module>r%      s"    ,[
#"c #" #"r$   