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:
from fastmcp import FastMCP
from fastmcp.server.transforms import Namespace

server = FastMCP("Server")
mount = server.mount(other_server)
mount.add_transform(Namespace("api"))  # Tools become api_toolname

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(self, tools: Sequence[Tool]) -> Sequence[Tool]
List tools with transformation applied. Args:
  • tools: Sequence of tools to transform.
Returns:
  • Transformed sequence of tools.

get_tool

get_tool(self, name: str, call_next: GetToolNext) -> Tool | None
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(self, resources: Sequence[Resource]) -> Sequence[Resource]
List resources with transformation applied. Args:
  • resources: Sequence of resources to transform.
Returns:
  • Transformed sequence of resources.

get_resource

get_resource(self, uri: str, call_next: GetResourceNext) -> Resource | None
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(self, templates: Sequence[ResourceTemplate]) -> Sequence[ResourceTemplate]
List resource templates with transformation applied. Args:
  • templates: Sequence of resource templates to transform.
Returns:
  • Transformed sequence of resource templates.

get_resource_template

get_resource_template(self, uri: str, call_next: GetResourceTemplateNext) -> ResourceTemplate | None
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(self, prompts: Sequence[Prompt]) -> Sequence[Prompt]
List prompts with transformation applied. Args:
  • prompts: Sequence of prompts to transform.
Returns:
  • Transformed sequence of prompts.

get_prompt

get_prompt(self, name: str, call_next: GetPromptNext) -> Prompt | None
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.