
    .h:
              	          d dl Z 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m	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ ej        sd dlZ ej        d
            ej        ej                    ej        d          Zdeej        ej         f         ej!        z  e"z  ddfdZ#	 dde	ee"z           de
e         dej$        dz  fdZ%de&de'e&         de'e(e&e&f                  fdZ)d Z*e+dk    r e*             dS dS )    N)partial)urlparse)MemoryObjectReceiveStreamMemoryObjectSendStream)ClientSession)
sse_client)StdioServerParametersstdio_client)SessionMessage)RequestResponderignore)levelclientmessagereturnc                    K   t          | t                    rt                              d|            d S t                              d|            d S )Nz	Error: %sz Received message from server: %s)
isinstance	Exceptionloggererrorinfo)r   s    P/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/mcp/client/__main__.pymessage_handlerr      sN      
 '9%% ['***
KK2G<<<<<    read_streamwrite_streamclient_infoc                 .  K   t          | |t          |          4 d {V 	 }t                              d           |                                 d {V  t                              d           d d d           d {V  d S # 1 d {V swxY w Y   d S )N)r   r   zInitializing sessionInitialized)r   r   r   r   
initialize)r   r   r   sessions       r   run_sessionr"   &   s5     
 '	   # # # # # # # #
 
*+++  """""""""M"""# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #s   AB
BBcommand_or_urlargsenvc                   K   t          |          }t          |           j        dv rKt          |           4 d {V }t	          |  d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S t          | ||          }t          |          4 d {V }t	          |  d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S )N)httphttps)commandr$   r%   )dictr   schemer   r"   r	   r
   )r#   r$   r%   env_dictstreamsserver_parameterss         r   mainr/   6   s     CyyH&*;;;n-- 	( 	( 	( 	( 	( 	( 	(w''''''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 2"8
 
 
   122 	( 	( 	( 	( 	( 	( 	(gw''''''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s#   A  
A*-A*B==
C
Cc            	      ^   t          j                    } |                     dd           |                     ddd           |                     dd	d
dddg            |                                 }t	          j        t          t          |j        |j	        |j
                  d           d S )Nr#   zCommand or URL to connect to)helpr$   *zAdditional arguments)nargsr1   z-ez--env   append)KEYVALUEz9Environment variables to set. Can be used multiple times.)r3   actionmetavarr1   defaulttrio)backend)argparseArgumentParseradd_argument
parse_argsanyiorunr   r/   r#   r$   r%   )parserr$   s     r   clirD   F   s    $&&F
(/MNNN
c0FGGG
 H     D	IgdD/DHEEvVVVVVVr   __main__)N),r=   loggingsys	functoolsr   urllib.parser   rA   anyio.streams.memoryr   r   	mcp.typestypesmcp.client.sessionr   mcp.client.sser   mcp.client.stdior	   r
   mcp.shared.messager   mcp.shared.sessionr   warnoptionswarningssimplefilterbasicConfigINFO	getLoggerr   ServerRequestClientResultServerNotificationr   r   Implementationr"   strlisttupler/   rD   __name__ r   r   <module>ra      s/     



       ! ! ! ! ! !  R R R R R R R R       , , , , , , % % % % % % @ @ @ @ @ @ @ @ - - - - - - / / / / / /
 $OOOH(###  ', ' ' ' '		8	$	$	=e153EEF	= 
		= 	= 	= 	= 04# #*>I+EF#(8# %,# # # # (s ($s) ($uS#X:O ( ( ( ( W W W$ zCEEEEE r   