@@ -123,7 +123,38 @@ async def connect_to_server(self, server_name: str, timeout: int,
123
123
url = kwargs .get ('url' )
124
124
session_kwargs = kwargs .get ('session_kwargs' )
125
125
if url :
126
- if transport == 'streamable_http' :
126
+ if transport and transport .lower () == 'sse' :
127
+ logger .info (
128
+ '`transport` or `type` is configured as "sse", using sse transport.'
129
+ )
130
+ sse_transport = await self .exit_stack .enter_async_context (
131
+ sse_client (
132
+ url , kwargs .get ('headers' ),
133
+ kwargs .get ('timeout' , DEFAULT_HTTP_TIMEOUT ),
134
+ kwargs .get ('sse_read_timeout' ,
135
+ DEFAULT_SSE_READ_TIMEOUT )))
136
+ read , write = sse_transport
137
+
138
+ elif transport and transport .lower () == 'websocket' :
139
+ logger .info (
140
+ '`transport` or `type` is configured as "websocket", using websocket transport.'
141
+ )
142
+ try :
143
+ from mcp .client .websocket import websocket_client
144
+ except ImportError :
145
+ raise ImportError (
146
+ 'Could not import websocket_client. '
147
+ 'To use Websocket connections, please install the required dependency with: '
148
+ "'pip install mcp[ws]' or 'pip install websockets'"
149
+ ) from None
150
+ websocket_transport = await self .exit_stack .enter_async_context (
151
+ websocket_client (url ))
152
+ read , write = websocket_transport
153
+
154
+ else :
155
+ logger .info (
156
+ 'Using streamable_http transport. To configure a different transport such as sse, please'
157
+ 'set the `type` or `transport` variable to "sse".' )
127
158
try :
128
159
from mcp .client .streamable_http import streamablehttp_client
129
160
except ImportError :
@@ -147,28 +178,6 @@ async def connect_to_server(self, server_name: str, timeout: int,
147
178
** other_kwargs ))
148
179
read , write , _ = streamable_transport
149
180
150
- elif transport == 'websocket' :
151
- try :
152
- from mcp .client .websocket import websocket_client
153
- except ImportError :
154
- raise ImportError (
155
- 'Could not import websocket_client. '
156
- 'To use Websocket connections, please install the required dependency with: '
157
- "'pip install mcp[ws]' or 'pip install websockets'"
158
- ) from None
159
- websocket_transport = await self .exit_stack .enter_async_context (
160
- websocket_client (url ))
161
- read , write = websocket_transport
162
-
163
- else :
164
- sse_transport = await self .exit_stack .enter_async_context (
165
- sse_client (
166
- url , kwargs .get ('headers' ),
167
- kwargs .get ('timeout' , DEFAULT_HTTP_TIMEOUT ),
168
- kwargs .get ('sse_read_timeout' ,
169
- DEFAULT_SSE_READ_TIMEOUT )))
170
- read , write = sse_transport
171
-
172
181
session_kwargs = session_kwargs or {}
173
182
timeout = max (
174
183
session_kwargs .pop ('read_timeout_seconds' , timeout ), 1 )
0 commit comments