
    ^sj                        d dl Z d dlZd dlmZ d dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlmZmZ ej                  sd dlZ ej"                  d        e j$                  e j&                          e j(                  d	      Zd
e	fdZd Zdedee   deeeef      fdZ ej8                          ej:                  d       ej:                  dd       ej<                  dddddd      d                             Ze dk(  r e        yy)    N)partial)urlparse)ClientSession)
sse_client)StdioServerParametersstdio_clientignore)levelclientsessionc                    K   t         j                  d       | j                  2 3 d {   }t        |t              rt         j                  d|       0t         j                  d|       G7 B6 y w)NzStarting receive loopz	Error: %sz Received message from server: %s)loggerinfoincoming_messages
isinstance	Exceptionerror)r   messages     F/root/.hermes/venv/lib/python3.12/site-packages/mcp/client/__main__.pyreceive_loopr      s^     
KK'( 22 A Aggy)LLg.6@A2s%   "A/A-A+A-?A/+A--A/c                   K   t        | |      4 d {   }t        j                         4 d {   }|j                  t        |       t
        j                  d       |j                          d {    t
        j                  d       d d d       d {    d d d       d {    y 7 7 7 >7 # 1 d {  7  sw Y   +xY w7 "# 1 d {  7  sw Y   y xY ww)NzInitializing sessionInitialized)r   anyiocreate_task_group
start_soonr   r   r   
initialize)read_streamwrite_streamr   tgs       r   run_sessionr        s     k<0# #4;!# #%'
lG,*+  """M"# # # # # # 	## # # # # # # #s   C"B.C"CB0C?B63B24B6CB4CC"(C)C"0C2B64C6C	<B?=C	CC"CCCC"command_or_urlargsenvc                   K   t        |      }t        |       j                  dv r5t        |       4 d {   }t	        |  d {    d d d       d {    y t        | ||      }t        |      4 d {   }t	        |  d {    d d d       d {    y 7 h7 Z7 L# 1 d {  7  sw Y   y xY w7 @7 27 $# 1 d {  7  sw Y   y xY ww)N)httphttps)commandr"   r#   )dictr   schemer   r    r   r   )r!   r"   r#   env_dictstreamsserver_parameterss         r   mainr-   ,   s     CyH&&*;;n- 	( 	(w'''	( 	( 	( 2"8
   12 	( 	(gw'''	( 	( 	(	('	( 	( 	( 	(	('	( 	( 	( 	(s   2CBCB#BB#	CB!"C7B88C;B>B:B>CB<CB#!C#B5)B,*B51C:B><C>CCCC)nargsz--envz-eT   z	KEY VALUEz9Environment variables to set. Can be used multiple times.)multipler/   metavarhelpc                  T    t        j                  t        t        g| i |d       y )Ntrio)backend)r   runr   r-   )r"   kwargss     r   clir9   <   s!     
IIgd,T,V,f=    __main__)!loggingsys	functoolsr   urllib.parser   r   clickmcp.client.sessionr   mcp.client.sser   mcp.client.stdior   r   warnoptionswarningssimplefilterbasicConfigINFO	getLoggerr   r   r    strlisttupler-   r'   argumentoptionr9   __name__ r:   r   <module>rQ      s    
  !   , % @
H(#   ',, '			8	$A A	#(s ($s) ($uS#X:O (   !b!
	D> " " > zE r:   