File tree 1 file changed +18
-1
lines changed
1 file changed +18
-1
lines changed Original file line number Diff line number Diff line change 24
24
ListPromptsResult ,
25
25
ListResourcesRequest ,
26
26
ListResourcesResult ,
27
+ ListToolsRequest ,
28
+ ListToolsResult ,
27
29
LoggingLevel ,
28
30
ProgressNotification ,
29
31
Prompt ,
36
38
ServerResult ,
37
39
SetLevelRequest ,
38
40
SubscribeRequest ,
41
+ Tool ,
39
42
UnsubscribeRequest ,
40
43
)
41
44
@@ -79,7 +82,7 @@ def get_capability(req_type: type) -> dict[str, Any] | None:
79
82
return ServerCapabilities (
80
83
prompts = get_capability (ListPromptsRequest ),
81
84
resources = get_capability (ListResourcesRequest ),
82
- tools = get_capability (ListPromptsRequest ),
85
+ tools = get_capability (ListToolsRequest ),
83
86
logging = get_capability (SetLevelRequest ),
84
87
)
85
88
@@ -205,6 +208,7 @@ async def handler(req: ReadResourceRequest):
205
208
206
209
return decorator
207
210
211
+
208
212
def set_logging_level (self ):
209
213
from mcp_python .types import EmptyResult
210
214
@@ -250,6 +254,19 @@ async def handler(req: UnsubscribeRequest):
250
254
251
255
return decorator
252
256
257
+ def list_tools (self ):
258
+ def decorator (func : Callable [[], Awaitable [list [Tool ]]]):
259
+ logger .debug ("Registering handler for ListToolsRequest" )
260
+
261
+ async def handler (_ : Any ):
262
+ tools = await func ()
263
+ return ServerResult (ListToolsResult (tools = tools ))
264
+
265
+ self .request_handlers [ListToolsRequest ] = handler
266
+ return func
267
+
268
+ return decorator
269
+
253
270
def call_tool (self ):
254
271
from mcp_python .types import CallToolResult
255
272
You can’t perform that action at this time.
0 commit comments