@@ -55,9 +55,11 @@ def __init__(self, name: str):
5555
5656 def create_initialization_options (self ) -> types .InitializationOptions :
5757 """Create initialization options from this server instance."""
58+
5859 def pkg_version (package : str ) -> str :
5960 try :
6061 from importlib .metadata import version
62+
6163 return version (package )
6264 except Exception :
6365 return "unknown"
@@ -69,16 +71,17 @@ def pkg_version(package: str) -> str:
6971 )
7072
7173 def get_capabilities (self ) -> ServerCapabilities :
72- """Convert existing handlers to a ServerCapabilities object."""
73- def get_capability (req_type : type ) -> dict [str , Any ] | None :
74- return {} if req_type in self .request_handlers else None
74+ """Convert existing handlers to a ServerCapabilities object."""
7575
76- return ServerCapabilities (
77- prompts = get_capability (ListPromptsRequest ),
78- resources = get_capability (ListResourcesRequest ),
79- tools = get_capability (ListPromptsRequest ),
80- logging = get_capability (SetLevelRequest )
81- )
76+ def get_capability (req_type : type ) -> dict [str , Any ] | None :
77+ return {} if req_type in self .request_handlers else None
78+
79+ return ServerCapabilities (
80+ prompts = get_capability (ListPromptsRequest ),
81+ resources = get_capability (ListResourcesRequest ),
82+ tools = get_capability (ListPromptsRequest ),
83+ logging = get_capability (SetLevelRequest ),
84+ )
8285
8386 @property
8487 def request_context (self ) -> RequestContext :
@@ -87,7 +90,7 @@ def request_context(self) -> RequestContext:
8790
8891 def list_prompts (self ):
8992 def decorator (func : Callable [[], Awaitable [list [Prompt ]]]):
90- logger .debug (f "Registering handler for PromptListRequest" )
93+ logger .debug ("Registering handler for PromptListRequest" )
9194
9295 async def handler (_ : Any ):
9396 prompts = await func ()
@@ -103,17 +106,19 @@ def get_prompt(self):
103106 GetPromptRequest ,
104107 GetPromptResult ,
105108 ImageContent ,
106- Role as Role ,
107109 SamplingMessage ,
108110 TextContent ,
109111 )
112+ from mcp_python .types import (
113+ Role as Role ,
114+ )
110115
111116 def decorator (
112117 func : Callable [
113118 [str , dict [str , str ] | None ], Awaitable [types .PromptResponse ]
114119 ],
115120 ):
116- logger .debug (f "Registering handler for GetPromptRequest" )
121+ logger .debug ("Registering handler for GetPromptRequest" )
117122
118123 async def handler (req : GetPromptRequest ):
119124 prompt_get = await func (req .params .name , req .params .arguments )
@@ -149,7 +154,7 @@ async def handler(req: GetPromptRequest):
149154
150155 def list_resources (self ):
151156 def decorator (func : Callable [[], Awaitable [list [Resource ]]]):
152- logger .debug (f "Registering handler for ListResourcesRequest" )
157+ logger .debug ("Registering handler for ListResourcesRequest" )
153158
154159 async def handler (_ : Any ):
155160 resources = await func ()
@@ -169,7 +174,7 @@ def read_resource(self):
169174 )
170175
171176 def decorator (func : Callable [[AnyUrl ], Awaitable [str | bytes ]]):
172- logger .debug (f "Registering handler for ReadResourceRequest" )
177+ logger .debug ("Registering handler for ReadResourceRequest" )
173178
174179 async def handler (req : ReadResourceRequest ):
175180 result = await func (req .params .uri )
@@ -204,7 +209,7 @@ def set_logging_level(self):
204209 from mcp_python .types import EmptyResult
205210
206211 def decorator (func : Callable [[LoggingLevel ], Awaitable [None ]]):
207- logger .debug (f "Registering handler for SetLevelRequest" )
212+ logger .debug ("Registering handler for SetLevelRequest" )
208213
209214 async def handler (req : SetLevelRequest ):
210215 await func (req .params .level )
@@ -219,7 +224,7 @@ def subscribe_resource(self):
219224 from mcp_python .types import EmptyResult
220225
221226 def decorator (func : Callable [[AnyUrl ], Awaitable [None ]]):
222- logger .debug (f "Registering handler for SubscribeRequest" )
227+ logger .debug ("Registering handler for SubscribeRequest" )
223228
224229 async def handler (req : SubscribeRequest ):
225230 await func (req .params .uri )
@@ -234,7 +239,7 @@ def unsubscribe_resource(self):
234239 from mcp_python .types import EmptyResult
235240
236241 def decorator (func : Callable [[AnyUrl ], Awaitable [None ]]):
237- logger .debug (f "Registering handler for UnsubscribeRequest" )
242+ logger .debug ("Registering handler for UnsubscribeRequest" )
238243
239244 async def handler (req : UnsubscribeRequest ):
240245 await func (req .params .uri )
@@ -249,7 +254,7 @@ def call_tool(self):
249254 from mcp_python .types import CallToolResult
250255
251256 def decorator (func : Callable [..., Awaitable [Any ]]):
252- logger .debug (f "Registering handler for CallToolRequest" )
257+ logger .debug ("Registering handler for CallToolRequest" )
253258
254259 async def handler (req : CallToolRequest ):
255260 result = await func (req .params .name , ** (req .params .arguments or {}))
@@ -264,7 +269,7 @@ def progress_notification(self):
264269 def decorator (
265270 func : Callable [[str | int , float , float | None ], Awaitable [None ]],
266271 ):
267- logger .debug (f "Registering handler for ProgressNotification" )
272+ logger .debug ("Registering handler for ProgressNotification" )
268273
269274 async def handler (req : ProgressNotification ):
270275 await func (
@@ -286,7 +291,7 @@ def decorator(
286291 Awaitable [Completion | None ],
287292 ],
288293 ):
289- logger .debug (f "Registering handler for CompleteRequest" )
294+ logger .debug ("Registering handler for CompleteRequest" )
290295
291296 async def handler (req : CompleteRequest ):
292297 completion = await func (req .params .ref , req .params .argument )
@@ -307,10 +312,12 @@ async def run(
307312 self ,
308313 read_stream : MemoryObjectReceiveStream [JSONRPCMessage | Exception ],
309314 write_stream : MemoryObjectSendStream [JSONRPCMessage ],
310- initialization_options : types .InitializationOptions
315+ initialization_options : types .InitializationOptions ,
311316 ):
312317 with warnings .catch_warnings (record = True ) as w :
313- async with ServerSession (read_stream , write_stream , initialization_options ) as session :
318+ async with ServerSession (
319+ read_stream , write_stream , initialization_options
320+ ) as session :
314321 async for message in session .incoming_messages :
315322 logger .debug (f"Received message: { message } " )
316323
@@ -359,14 +366,16 @@ async def run(
359366
360367 handler = self .notification_handlers [type (notify )]
361368 logger .debug (
362- f"Dispatching notification of type { type (notify ).__name__ } "
369+ f"Dispatching notification of type "
370+ f"{ type (notify ).__name__ } "
363371 )
364372
365373 try :
366374 await handler (notify )
367375 except Exception as err :
368376 logger .error (
369- f"Uncaught exception in notification handler: { err } "
377+ f"Uncaught exception in notification handler: "
378+ f"{ err } "
370379 )
371380
372381 for warning in w :
0 commit comments