fastmcp.server.providers.base
Base Provider class for dynamic MCP components.
This module provides the Provider abstraction for providing tools,
resources, and prompts dynamically at runtime.
Example:
Classes
Provider
Base class for dynamic component providers.
Subclass and override whichever methods you need. Default implementations
return empty lists / None, so you only need to implement what your provider
supports.
Methods:
transforms
add_transform
transform: The transform to add.
wrap_transform
transform: The transform to apply.
- A new provider that wraps this one with the transform applied.
list_tools
- Transformed sequence of tools (including disabled ones).
get_tool
name: The transformed tool name to look up.version: Optional version filter. If None, returns highest version.
- The tool if found (may be marked disabled), None if not found.
list_resources
get_resource
uri: The transformed resource URI to look up.version: Optional version filter. If None, returns highest version.
- The resource if found (may be marked disabled), None if not found.
list_resource_templates
get_resource_template
uri: The transformed template URI to look up.version: Optional version filter. If None, returns highest version.
- The template if found (may be marked disabled), None if not found.
list_prompts
get_prompt
name: The transformed prompt name to look up.version: Optional version filter. If None, returns highest version.
- The prompt if found (may be marked disabled), None if not found.
get_tasks
lifespan
enable
names: Component names or URIs to enable.keys: Component keys to enable (e.g., ).version: Component version spec to enable (e.g., VersionSpec(eq=“v1”) or VersionSpec(gte=“v2”)). Unversioned components will not match.tags: Enable components with these tags.components: Component types to include (e.g., ).only: If True, ONLY enable matching components (allowlist mode).
- Self for method chaining.
disable
names: Component names or URIs to disable.keys: Component keys to disable (e.g., ).version: Component version spec to disable (e.g., VersionSpec(eq=“v1”) or VersionSpec(gte=“v2”)). Unversioned components will not match.tags: Disable components with these tags.components: Component types to include (e.g., ).
- Self for method chaining.

