Skip to content

Commit 4ab9757

Browse files
committed
Make server_params default to an empty ClientSessionParameters object instead of None
1 parent b26697d commit 4ab9757

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

src/mcp/client/session_group.py

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ async def connect_with_session(
282282
async def connect_to_server(
283283
self,
284284
server_params: ServerParameters,
285-
session_params: ClientSessionParameters | None = None,
285+
session_params: ClientSessionParameters = ClientSessionParameters(),
286286
) -> mcp.ClientSession:
287287
"""Connects to a single MCP server."""
288288
server_info, session = await self._establish_session(server_params, session_params)
@@ -291,7 +291,7 @@ async def connect_to_server(
291291
async def _establish_session(
292292
self,
293293
server_params: ServerParameters,
294-
session_params: ClientSessionParameters | None = None,
294+
session_params: ClientSessionParameters,
295295
) -> tuple[types.Implementation, mcp.ClientSession]:
296296
"""Establish a client session to an MCP server."""
297297

@@ -319,22 +319,19 @@ async def _establish_session(
319319
)
320320
read, write, _ = await session_stack.enter_async_context(client)
321321

322-
if session_params is None:
323-
session = await session_stack.enter_async_context(mcp.ClientSession(read, write))
324-
else:
325-
session = await session_stack.enter_async_context(
326-
mcp.ClientSession(
327-
read,
328-
write,
329-
read_timeout_seconds=session_params.read_timeout_seconds,
330-
sampling_callback=session_params.sampling_callback,
331-
elicitation_callback=session_params.elicitation_callback,
332-
list_roots_callback=session_params.list_roots_callback,
333-
logging_callback=session_params.logging_callback,
334-
message_handler=session_params.message_handler,
335-
client_info=session_params.client_info,
336-
)
322+
session = await session_stack.enter_async_context(
323+
mcp.ClientSession(
324+
read,
325+
write,
326+
read_timeout_seconds=session_params.read_timeout_seconds,
327+
sampling_callback=session_params.sampling_callback,
328+
elicitation_callback=session_params.elicitation_callback,
329+
list_roots_callback=session_params.list_roots_callback,
330+
logging_callback=session_params.logging_callback,
331+
message_handler=session_params.message_handler,
332+
client_info=session_params.client_info,
337333
)
334+
)
338335

339336
result = await session.initialize()
340337

tests/client/test_session_group.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55

66
import mcp
77
from mcp import types
8-
from mcp.client.session_group import ClientSessionGroup, SseServerParameters, StreamableHttpParameters
8+
from mcp.client.session_group import (
9+
ClientSessionGroup,
10+
ClientSessionParameters,
11+
SseServerParameters,
12+
StreamableHttpParameters,
13+
)
914
from mcp.client.stdio import StdioServerParameters
1015
from mcp.shared.exceptions import McpError
1116

@@ -332,7 +337,7 @@ async def test_establish_session_parameterized(
332337
(
333338
returned_server_info,
334339
returned_session,
335-
) = await group._establish_session(server_params_instance)
340+
) = await group._establish_session(server_params_instance, ClientSessionParameters())
336341

337342
# --- Assertions ---
338343
# 1. Assert the correct specific client function was called
@@ -360,7 +365,17 @@ async def test_establish_session_parameterized(
360365
mock_client_cm_instance.__aenter__.assert_awaited_once()
361366

362367
# 2. Assert ClientSession was called correctly
363-
mock_ClientSession_class.assert_called_once_with(mock_read_stream, mock_write_stream)
368+
mock_ClientSession_class.assert_called_once_with(
369+
mock_read_stream,
370+
mock_write_stream,
371+
read_timeout_seconds=None,
372+
sampling_callback=None,
373+
elicitation_callback=None,
374+
list_roots_callback=None,
375+
logging_callback=None,
376+
message_handler=None,
377+
client_info=None,
378+
)
364379
mock_raw_session_cm.__aenter__.assert_awaited_once()
365380
mock_entered_session.initialize.assert_awaited_once()
366381

0 commit comments

Comments
 (0)