From 935fe5d1a037648462e0b630a379503dfdee127e Mon Sep 17 00:00:00 2001 From: David Soria Parra Date: Sun, 10 Nov 2024 21:47:26 +0000 Subject: [PATCH] Make call_tool() return value covariant `list` is invariant, hence handlers can't just return `list[str]`. We need to use Sequence here. --- mcp_python/server/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mcp_python/server/__init__.py b/mcp_python/server/__init__.py index f3183fdb..a9c1744f 100644 --- a/mcp_python/server/__init__.py +++ b/mcp_python/server/__init__.py @@ -2,7 +2,7 @@ import contextvars import logging import warnings from collections.abc import Awaitable, Callable -from typing import Any +from typing import Any, Sequence from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream from pydantic import AnyUrl @@ -337,7 +337,7 @@ class Server: def decorator( func: Callable[ - ..., Awaitable[list[str | types.ImageContent | types.EmbeddedResource]] + ..., Awaitable[Sequence[str | types.ImageContent | types.EmbeddedResource]] ], ): logger.debug("Registering handler for CallToolRequest")