mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-19 14:54:24 +01:00
Add support for list_tools
This commit is contained in:
@@ -24,6 +24,8 @@ from mcp_python.types import (
|
||||
ListPromptsResult,
|
||||
ListResourcesRequest,
|
||||
ListResourcesResult,
|
||||
ListToolsRequest,
|
||||
ListToolsResult,
|
||||
LoggingLevel,
|
||||
ProgressNotification,
|
||||
Prompt,
|
||||
@@ -36,6 +38,7 @@ from mcp_python.types import (
|
||||
ServerResult,
|
||||
SetLevelRequest,
|
||||
SubscribeRequest,
|
||||
Tool,
|
||||
UnsubscribeRequest,
|
||||
)
|
||||
|
||||
@@ -79,7 +82,7 @@ class Server:
|
||||
return ServerCapabilities(
|
||||
prompts=get_capability(ListPromptsRequest),
|
||||
resources=get_capability(ListResourcesRequest),
|
||||
tools=get_capability(ListPromptsRequest),
|
||||
tools=get_capability(ListToolsRequest),
|
||||
logging=get_capability(SetLevelRequest),
|
||||
)
|
||||
|
||||
@@ -205,6 +208,7 @@ class Server:
|
||||
|
||||
return decorator
|
||||
|
||||
|
||||
def set_logging_level(self):
|
||||
from mcp_python.types import EmptyResult
|
||||
|
||||
@@ -250,6 +254,19 @@ class Server:
|
||||
|
||||
return decorator
|
||||
|
||||
def list_tools(self):
|
||||
def decorator(func: Callable[[], Awaitable[list[Tool]]]):
|
||||
logger.debug("Registering handler for ListToolsRequest")
|
||||
|
||||
async def handler(_: Any):
|
||||
tools = await func()
|
||||
return ServerResult(ListToolsResult(tools=tools))
|
||||
|
||||
self.request_handlers[ListToolsRequest] = handler
|
||||
return func
|
||||
|
||||
return decorator
|
||||
|
||||
def call_tool(self):
|
||||
from mcp_python.types import CallToolResult
|
||||
|
||||
|
||||
Reference in New Issue
Block a user