mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-10 23:59:10 +02:00
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
154 lines
5.7 KiB
Text
154 lines
5.7 KiB
Text
---
|
|
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#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
Manages FastMCP resources.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `get_resources` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource_manager.py#L56" 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#L60" 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.
|
|
|
|
|
|
#### `add_resource_or_template_from_fn` <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
|
|
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#L112" 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#L152" 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.model_copy(key=new_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#L174" 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#L201" 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.model_copy(key=new_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#L227" 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#L244" 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#L289" 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.
|
|
|