55import inspect
66import warnings
77import weakref
8- from collections .abc import Generator , Mapping
8+ from collections .abc import Generator , Mapping , Sequence
99from contextlib import contextmanager
1010from contextvars import ContextVar , Token
1111from dataclasses import dataclass
1717from mcp .server .lowlevel .server import request_ctx
1818from mcp .shared .context import RequestContext
1919from mcp .types import (
20+ AudioContent ,
2021 ClientCapabilities ,
21- ContentBlock ,
2222 CreateMessageResult ,
23+ ImageContent ,
2324 IncludeContext ,
2425 ModelHint ,
2526 ModelPreferences ,
@@ -359,13 +360,13 @@ async def send_prompt_list_changed(self) -> None:
359360
360361 async def sample (
361362 self ,
362- messages : str | list [str | SamplingMessage ],
363+ messages : str | Sequence [str | SamplingMessage ],
363364 system_prompt : str | None = None ,
364365 include_context : IncludeContext | None = None ,
365366 temperature : float | None = None ,
366367 max_tokens : int | None = None ,
367368 model_preferences : ModelPreferences | str | list [str ] | None = None ,
368- ) -> ContentBlock :
369+ ) -> TextContent | ImageContent | AudioContent :
369370 """
370371 Send a sampling request to the client and await the response.
371372
@@ -383,7 +384,7 @@ async def sample(
383384 content = TextContent (text = messages , type = "text" ), role = "user"
384385 )
385386 ]
386- elif isinstance (messages , list ):
387+ elif isinstance (messages , Sequence ):
387388 sampling_messages = [
388389 SamplingMessage (content = TextContent (text = m , type = "text" ), role = "user" )
389390 if isinstance (m , str )
0 commit comments