Skip to main content

fastmcp.server.transforms

Transform system for component transformations. Transforms modify components (tools, resources, prompts). List operations use a pure function pattern where transforms receive sequences and return transformed sequences. Get operations use a middleware pattern with call_next to chain lookups. Unlike middleware (which operates on requests), transforms are observable by the system for task registration, tag filtering, and component introspection. Example:

Classes

GetToolNext

Protocol for get_tool call_next functions.

GetResourceNext

Protocol for get_resource call_next functions.

GetResourceTemplateNext

Protocol for get_resource_template call_next functions.

GetPromptNext

Protocol for get_prompt call_next functions.

Transform

Base class for component transformations. List operations use a pure function pattern: transforms receive sequences and return transformed sequences. Get operations use a middleware pattern with call_next to chain lookups. Methods:

list_tools

List tools with transformation applied. Args:
  • tools: Sequence of tools to transform.
Returns:
  • Transformed sequence of tools.

get_tool

Get a tool by name. Args:
  • name: The requested tool name (may be transformed).
  • call_next: Callable to get tool from downstream.
  • version: Optional version filter to apply.
Returns:
  • The tool if found, None otherwise.

list_resources

List resources with transformation applied. Args:
  • resources: Sequence of resources to transform.
Returns:
  • Transformed sequence of resources.

get_resource

Get a resource by URI. Args:
  • uri: The requested resource URI (may be transformed).
  • call_next: Callable to get resource from downstream.
  • version: Optional version filter to apply.
Returns:
  • The resource if found, None otherwise.

list_resource_templates

List resource templates with transformation applied. Args:
  • templates: Sequence of resource templates to transform.
Returns:
  • Transformed sequence of resource templates.

get_resource_template

Get a resource template by URI. Args:
  • uri: The requested template URI (may be transformed).
  • call_next: Callable to get template from downstream.
  • version: Optional version filter to apply.
Returns:
  • The resource template if found, None otherwise.

list_prompts

List prompts with transformation applied. Args:
  • prompts: Sequence of prompts to transform.
Returns:
  • Transformed sequence of prompts.

get_prompt

Get a prompt by name. Args:
  • name: The requested prompt name (may be transformed).
  • call_next: Callable to get prompt from downstream.
  • version: Optional version filter to apply.
Returns:
  • The prompt if found, None otherwise.