Spaces:
Running
Running
| --- | |
| title: resource_manager | |
| sidebarTitle: resource_manager | |
| --- | |
| # `fastmcp.resources.resource_manager` | |
| Resource manager functionality. | |
| ## Classes | |
| ### `ResourceManager` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L28" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| Manages FastMCP resources. | |
| **Methods:** | |
| #### `mount` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L60" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| mount(self, server: MountedServer) -> None | |
| ``` | |
| Adds a mounted server as a source for resources and templates. | |
| #### `get_resources` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| get_resources(self) -> dict[str, Resource] | |
| ``` | |
| Get all registered resources, keyed by URI. | |
| #### `get_resource_templates` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L68" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| get_resource_templates(self) -> dict[str, ResourceTemplate] | |
| ``` | |
| Get all registered templates, keyed by URI template. | |
| #### `list_resources` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L168" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| list_resources(self) -> list[Resource] | |
| ``` | |
| Lists all resources, applying protocol filtering. | |
| #### `list_resource_templates` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L175" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| list_resource_templates(self) -> list[ResourceTemplate] | |
| ``` | |
| Lists all templates, applying protocol filtering. | |
| #### `add_resource_or_template_from_fn` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L182" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| add_resource_or_template_from_fn(self, fn: Callable[..., Any], uri: str, name: str | None = None, description: str | None = None, mime_type: str | None = None, tags: set[str] | None = None) -> Resource | ResourceTemplate | |
| ``` | |
| Add a resource or template to the manager from a function. | |
| **Args:** | |
| - `fn`: The function to register as a resource or template | |
| - `uri`: The URI for the resource or template | |
| - `name`: Optional name for the resource or template | |
| - `description`: Optional description of the resource or template | |
| - `mime_type`: Optional MIME type for the resource or template | |
| - `tags`: Optional set of tags for categorizing the resource or template | |
| **Returns:** | |
| - The added resource or template. If a resource or template with the same URI already exists, | |
| - returns the existing resource or template. | |
| #### `add_resource_from_fn` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L230" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| add_resource_from_fn(self, fn: Callable[..., Any], uri: str, name: str | None = None, description: str | None = None, mime_type: str | None = None, tags: set[str] | None = None) -> Resource | |
| ``` | |
| Add a resource to the manager from a function. | |
| **Args:** | |
| - `fn`: The function to register as a resource | |
| - `uri`: The URI for the resource | |
| - `name`: Optional name for the resource | |
| - `description`: Optional description of the resource | |
| - `mime_type`: Optional MIME type for the resource | |
| - `tags`: Optional set of tags for categorizing the resource | |
| **Returns:** | |
| - The added resource. If a resource with the same URI already exists, | |
| - returns the existing resource. | |
| #### `add_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L270" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| add_resource(self, resource: Resource) -> Resource | |
| ``` | |
| Add a resource to the manager. | |
| **Args:** | |
| - `resource`: A Resource instance to add. The resource's .key attribute | |
| will be used as the storage key. To overwrite it, call | |
| Resource.with_key() before calling this method. | |
| #### `add_template_from_fn` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L292" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| add_template_from_fn(self, fn: Callable[..., Any], uri_template: str, name: str | None = None, description: str | None = None, mime_type: str | None = None, tags: set[str] | None = None) -> ResourceTemplate | |
| ``` | |
| Create a template from a function. | |
| #### `add_template` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L319" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| add_template(self, template: ResourceTemplate) -> ResourceTemplate | |
| ``` | |
| Add a template to the manager. | |
| **Args:** | |
| - `template`: A ResourceTemplate instance to add. The template's .key attribute | |
| will be used as the storage key. To overwrite it, call | |
| ResourceTemplate.with_key() before calling this method. | |
| **Returns:** | |
| - The added template. If a template with the same URI already exists, | |
| - returns the existing template. | |
| #### `has_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L345" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| has_resource(self, uri: AnyUrl | str) -> bool | |
| ``` | |
| Check if a resource exists. | |
| #### `get_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L362" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| get_resource(self, uri: AnyUrl | str) -> Resource | |
| ``` | |
| Get resource by URI, checking concrete resources first, then templates. | |
| **Args:** | |
| - `uri`: The URI of the resource to get | |
| **Raises:** | |
| - `NotFoundError`: If no resource or template matching the URI is found. | |
| #### `read_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L407" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup> | |
| ```python | |
| read_resource(self, uri: AnyUrl | str) -> str | bytes | |
| ``` | |
| Internal API for servers: Finds and reads a resource, respecting the | |
| filtered protocol path. | |