4
4
import pytest
5
5
from mcp .client .session import MessageHandlerFnT
6
6
from mcp .shared .message import SessionMessage
7
- from mcp .types import Implementation , InitializeResult , ServerCapabilities
7
+ from mcp .shared .session import RequestResponder
8
+ from mcp .types import (
9
+ ClientResult ,
10
+ Implementation ,
11
+ InitializeResult ,
12
+ ServerCapabilities ,
13
+ ServerNotification ,
14
+ ServerRequest ,
15
+ )
8
16
9
17
from agents .mcp .server import (
10
18
MCPServerSse ,
14
22
)
15
23
16
24
25
+ HandlerMessage = (
26
+ RequestResponder [ServerRequest , ClientResult ]
27
+ | ServerNotification
28
+ | Exception
29
+ )
30
+
31
+
17
32
class _StubClientSession :
18
33
"""Stub ClientSession that records the configured message handler."""
19
34
@@ -35,10 +50,12 @@ async def __aexit__(self, exc_type, exc, tb):
35
50
return False
36
51
37
52
async def initialize (self ) -> InitializeResult :
53
+ capabilities = ServerCapabilities .model_construct ()
54
+ server_info = Implementation .model_construct (name = "stub" , version = "1.0" )
38
55
return InitializeResult (
39
56
protocolVersion = "2024-11-05" ,
40
- capabilities = ServerCapabilities () ,
41
- serverInfo = Implementation ( name = "stub" , version = "1.0" ) ,
57
+ capabilities = capabilities ,
58
+ serverInfo = server_info ,
42
59
)
43
60
44
61
@@ -81,7 +98,7 @@ def _recording_client_session(*args, **kwargs):
81
98
monkeypatch .setattr ("agents.mcp.server.ClientSession" , _recording_client_session )
82
99
83
100
class _AsyncHandler :
84
- async def __call__ (self , message ) :
101
+ async def __call__ (self , message : HandlerMessage ) -> None :
85
102
del message
86
103
87
104
handler : MessageHandlerFnT = _AsyncHandler ()
@@ -106,7 +123,7 @@ async def __call__(self, message):
106
123
)
107
124
def test_message_handler_propagates_to_server_base (server_cls , params ):
108
125
class _AsyncHandler :
109
- async def __call__ (self , message ) :
126
+ async def __call__ (self , message : HandlerMessage ) -> None :
110
127
del message
111
128
112
129
handler : MessageHandlerFnT = _AsyncHandler ()
0 commit comments