fastmcp.utilities.types

Common types used across FastMCP.

Functions

get_cached_typeadapter

get_cached_typeadapter(cls: T) -> TypeAdapter[T]
TypeAdapters are heavy objects, and in an application context we’d typically create them once in a global scope and reuse them as often as possible. However, this isn’t feasible for user-generated functions. Instead, we use a cache to minimize the cost of creating them as much as possible.

issubclass_safe

issubclass_safe(cls: type, base: type) -> bool
Check if cls is a subclass of base, even if cls is a type variable.

is_class_member_of_type

is_class_member_of_type(cls: type, base: type) -> bool
Check if cls is a member of base, even if cls is a type variable. Base can be a type, a UnionType, or an Annotated type. Generic types are not considered members (e.g. T is not a member of list[T]).

find_kwarg_by_type

find_kwarg_by_type(fn: Callable, kwarg_type: type) -> str | None
Find the name of the kwarg that is of type kwarg_type. Includes union types that contain the kwarg_type, as well as Annotated types.

replace_type

replace_type(type_, type_map: dict[type, type])
Given a (possibly generic, nested, or otherwise complex) type, replaces all instances of old_type with new_type. This is useful for transforming types when creating tools. Args:
  • type_: The type to replace instances of old_type with new_type.
  • old_type: The type to replace.
  • new_type: The type to replace old_type with.
Examples:
>>> replace_type(list[int | bool], {int: str})
list[str | bool]

>>> replace_type(list[list[int]], {int: str})
list[list[str]]

Classes

FastMCPBaseModel

Base model for FastMCP models.

Image

Helper class for returning images from tools. Methods:

to_image_content

to_image_content(self, mime_type: str | None = None, annotations: Annotations | None = None) -> mcp.types.ImageContent
Convert to MCP ImageContent.

Audio

Helper class for returning audio from tools. Methods:

to_audio_content

to_audio_content(self, mime_type: str | None = None, annotations: Annotations | None = None) -> mcp.types.AudioContent

File

Helper class for returning audio from tools. Methods:

to_resource_content

to_resource_content(self, mime_type: str | None = None, annotations: Annotations | None = None) -> mcp.types.EmbeddedResource