Skip to content

Commit 1f2d3f2

Browse files
authored
Small updates to Sampling types (#1882)
1 parent b00a941 commit 1f2d3f2

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

src/fastmcp/server/context.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import inspect
66
import warnings
77
import weakref
8-
from collections.abc import Generator, Mapping
8+
from collections.abc import Generator, Mapping, Sequence
99
from contextlib import contextmanager
1010
from contextvars import ContextVar, Token
1111
from dataclasses import dataclass
@@ -17,9 +17,10 @@
1717
from mcp.server.lowlevel.server import request_ctx
1818
from mcp.shared.context import RequestContext
1919
from 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

Comments
 (0)