o
    i                  	   @   s   d dl mZ d dlmZmZmZmZ d dlmZm	Z	 d dl
mZmZ d dlmZ dedeeeee ef  fdd	Zd
ede	deeee ef fddZdS )    )Any)ClientTransportSSETransportStdioTransportStreamableHttpTransport)	MCPConfigMCPServerTypes)FastMCPProxyProxyClient)FastMCPconfigreturnc                 C   s   dd | j  D S )VA utility function to convert each entry of an MCP Config into a transport and server.c                 S   s   g | ]	\}}t ||qS  ))mcp_server_type_to_servers_and_transports).0name
mcp_serverr   r   b/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/fastmcp/utilities/mcp_config.py
<listcomp>   s    z8mcp_config_to_servers_and_transports.<locals>.<listcomp>)
mcpServersitems)r   r   r   r   $mcp_config_to_servers_and_transports   s   r   r   r   c           	      C   s~   ddl m}m} td|  }td|  }t|||B r)|j||d\}}n| }t||d}t	j
||d}| ||fS )r   r   )TransformingRemoteMCPServerTransformingStdioMCPServerMCP_)server_nameclient_name)	transportr   )r   backend)fastmcp.mcp_configr   r   r
   generate_namer	   
isinstance#_to_server_and_underlying_transportto_transportr   as_proxy)	r   r   r   r   r   r   serverr   clientr   r   r   r      s   

r   N)typingr   fastmcp.client.transportsr   r   r   r   r    r   r   fastmcp.server.proxyr	   r
   fastmcp.server.serverr   listtuplestrr   r   r   r   r   r   <module>   s"    

