7
7
from anyio .streams .memory import MemoryObjectReceiveStream , MemoryObjectSendStream
8
8
from pydantic import AnyUrl
9
9
10
+ import mcp .types as types
10
11
from mcp .server .models import InitializationOptions
11
12
from mcp .server .session import ServerSession
12
13
from mcp .server .stdio import stdio_server as stdio_server
13
14
from mcp .shared .context import RequestContext
14
15
from mcp .shared .session import RequestResponder
15
- import mcp .types as types
16
16
17
17
logger = logging .getLogger (__name__ )
18
18
@@ -36,7 +36,9 @@ def __init__(
36
36
class Server :
37
37
def __init__ (self , name : str ):
38
38
self .name = name
39
- self .request_handlers : dict [type , Callable [..., Awaitable [types .ServerResult ]]] = {
39
+ self .request_handlers : dict [
40
+ type , Callable [..., Awaitable [types .ServerResult ]]
41
+ ] = {
40
42
types .PingRequest : _ping_handler ,
41
43
}
42
44
self .notification_handlers : dict [type , Callable [..., Awaitable [None ]]] = {}
@@ -153,7 +155,9 @@ def decorator(func: Callable[[], Awaitable[list[types.Resource]]]):
153
155
154
156
async def handler (_ : Any ):
155
157
resources = await func ()
156
- return types .ServerResult (types .ListResourcesResult (resources = resources ))
158
+ return types .ServerResult (
159
+ types .ListResourcesResult (resources = resources )
160
+ )
157
161
158
162
self .request_handlers [types .ListResourcesRequest ] = handler
159
163
return func
@@ -249,7 +253,11 @@ def call_tool(self):
249
253
def decorator (
250
254
func : Callable [
251
255
...,
252
- Awaitable [Sequence [types .TextContent | types .ImageContent | types .EmbeddedResource ]],
256
+ Awaitable [
257
+ Sequence [
258
+ types .TextContent | types .ImageContent | types .EmbeddedResource
259
+ ]
260
+ ],
253
261
],
254
262
):
255
263
logger .debug ("Registering handler for CallToolRequest" )
@@ -261,7 +269,9 @@ async def handler(req: types.CallToolRequest):
261
269
for result in results :
262
270
match result :
263
271
case str () as text :
264
- content .append (types .TextContent (type = "text" , text = text ))
272
+ content .append (
273
+ types .TextContent (type = "text" , text = text )
274
+ )
265
275
case types .ImageContent () as img :
266
276
content .append (
267
277
types .ImageContent (
@@ -277,7 +287,9 @@ async def handler(req: types.CallToolRequest):
277
287
)
278
288
)
279
289
280
- return types .ServerResult (types .CallToolResult (content = content , isError = False ))
290
+ return types .ServerResult (
291
+ types .CallToolResult (content = content , isError = False )
292
+ )
281
293
except Exception as e :
282
294
return types .ServerResult (
283
295
types .CallToolResult (
@@ -312,7 +324,10 @@ def completion(self):
312
324
313
325
def decorator (
314
326
func : Callable [
315
- [types .PromptReference | types .ResourceReference , types .CompletionArgument ],
327
+ [
328
+ types .PromptReference | types .ResourceReference ,
329
+ types .CompletionArgument ,
330
+ ],
316
331
Awaitable [types .Completion | None ],
317
332
],
318
333
):
0 commit comments