mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 15:19:10 +02:00
614 lines
22 KiB
Text
614 lines
22 KiB
Text
---
|
|
title: dependencies
|
|
sidebarTitle: dependencies
|
|
---
|
|
|
|
# `fastmcp.server.dependencies`
|
|
|
|
|
|
Dependency injection for FastMCP.
|
|
|
|
DI features (Depends, CurrentContext, CurrentFastMCP) work without pydocket
|
|
using the uncalled-for DI engine. The docket-specific dependencies
|
|
(``CurrentDocket``, ``CurrentWorker``) and background task execution live in the
|
|
``fastmcp-tasks`` package.
|
|
|
|
|
|
## Functions
|
|
|
|
### `bind_request_context` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L104" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
bind_request_context(ctx: ServerRequestContext) -> Generator[FastMCPRequestContext, None, None]
|
|
```
|
|
|
|
|
|
Bind a ``FastMCPRequestContext`` for the duration of a handler.
|
|
|
|
Constructs the wrapper from the SDK's per-request context and sets/resets
|
|
the ``fastmcp_request_ctx`` ContextVar. Every request adapter and the
|
|
initialize middleware enters this so ``Context`` and dependency helpers can
|
|
read the active request from the ContextVar.
|
|
|
|
|
|
### `extract_version_spec` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L131" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
extract_version_spec(meta: dict[str, Any] | None) -> str | None
|
|
```
|
|
|
|
|
|
Extract the FastMCP component version from a lifted ``_meta`` block.
|
|
|
|
|
|
### `set_background_context_factory` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L185" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_background_context_factory(factory: Callable[[], Awaitable[Context | None]] | None) -> None
|
|
```
|
|
|
|
|
|
Install (or clear) the background-task ``Context`` factory.
|
|
|
|
The factory returns an already-entered ``Context`` (so ``_current_context``
|
|
is set for cleanup) when called inside a worker, or ``None`` when there is
|
|
no task context. Passing ``None`` restores core's no-worker-fallback
|
|
behavior.
|
|
|
|
|
|
### `set_worker_server_resolver` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L207" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_worker_server_resolver(resolver: Callable[[], FastMCP | None] | None) -> None
|
|
```
|
|
|
|
|
|
Install (or clear) the worker-server resolver used by ``get_server()``.
|
|
|
|
|
|
### `is_docket_available` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L244" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
is_docket_available() -> bool
|
|
```
|
|
|
|
|
|
Check if a compatible pydocket (>= 0.19.0) is installed and importable.
|
|
|
|
Three things have to be true for fastmcp's task features to work:
|
|
1. pydocket distribution metadata is discoverable
|
|
2. its version is at least ``_MIN_DOCKET_VERSION`` (older versions are
|
|
missing symbols like ``docket.dependencies.current_execution``,
|
|
which fastmcp imports on the request hot path)
|
|
3. the package actually imports — guards against broken/partial
|
|
installs where metadata exists but ``import docket`` blows up
|
|
|
|
Any of those failing means we treat docket as unavailable and fall back
|
|
to the no-tasks code paths instead of crashing deep inside a request.
|
|
|
|
|
|
### `transform_context_annotations` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L276" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
transform_context_annotations(fn: Callable[..., Any]) -> Callable[..., Any]
|
|
```
|
|
|
|
|
|
Transform injected-by-type params into Dependency-defaulted params.
|
|
|
|
Transforms ALL params typed as Context (into ``= CurrentContext()``) and as
|
|
UserSession (into ``= CurrentSession()``) to use Docket's DI system, unless
|
|
they already have a Dependency-based default.
|
|
|
|
This unifies the legacy type annotation DI with Docket's Depends() system,
|
|
allowing both patterns to work through a single resolution path.
|
|
|
|
Note: Only POSITIONAL_OR_KEYWORD parameters are reordered (params with defaults
|
|
after those without). KEYWORD_ONLY parameters keep their position since Python
|
|
allows them to have defaults in any order.
|
|
|
|
**Args:**
|
|
- `fn`: Function to transform
|
|
|
|
**Returns:**
|
|
- Function with modified signature (same function object, updated __signature__)
|
|
|
|
|
|
### `get_context` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L442" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_context() -> Context
|
|
```
|
|
|
|
|
|
Get the current FastMCP Context instance directly.
|
|
|
|
|
|
### `get_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L452" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_server() -> FastMCP
|
|
```
|
|
|
|
|
|
Get the current FastMCP server instance directly.
|
|
|
|
In a background-task worker the tasks extension's resolver is consulted
|
|
first, so a mounted-child task resolves to the child server rather than the
|
|
root that started the worker (#3571).
|
|
|
|
**Returns:**
|
|
- The active FastMCP server
|
|
|
|
**Raises:**
|
|
- `RuntimeError`: If no server in context
|
|
|
|
|
|
### `get_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L480" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_session(session_id: str) -> Session
|
|
```
|
|
|
|
|
|
Resolve and validate a `Session` for an explicit `session_id`.
|
|
|
|
Pair with a `session_id: SessionId` tool argument (the agent obtains an id
|
|
from `create_session` and passes it back). For a single per-user bucket with
|
|
nothing for the agent to pass, inject `session: UserSession` instead.
|
|
|
|
State is keyed by `(principal, session_id)`: the authenticated principal is
|
|
the isolation wall and `session_id` organizes sessions within it. The id must
|
|
have been minted by `create_session` under the current principal; an id that
|
|
was never created, or created under a different principal, raises
|
|
`InvalidSession` rather than resolving to a fresh empty bucket (the specific
|
|
reason is logged at debug level, never returned to the caller).
|
|
|
|
Like `get_server()`, this resolves through the task-aware server, so it needs
|
|
no foreground context — it works from a `task=True` tool's Docket worker as
|
|
well as a normal request.
|
|
|
|
|
|
### `get_http_request` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L515" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_http_request() -> Request
|
|
```
|
|
|
|
|
|
Get the current HTTP request.
|
|
|
|
Tries MCP SDK's request_ctx first, then falls back to FastMCP's HTTP context.
|
|
|
|
|
|
### `get_http_headers` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L536" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_http_headers(include_all: bool = False, include: set[str] | None = None) -> dict[str, str]
|
|
```
|
|
|
|
|
|
Extract headers from the current HTTP request if available.
|
|
|
|
Never raises an exception, even if there is no active HTTP request (in which case
|
|
an empty dict is returned).
|
|
|
|
By default, strips problematic headers like `content-length` and `authorization`
|
|
that cause issues if forwarded to downstream services. If `include_all` is True,
|
|
all headers are returned.
|
|
|
|
The `include` parameter allows specific headers to be included even if they would
|
|
normally be excluded. This is useful for proxy transports that need to forward
|
|
authorization headers to upstream MCP servers.
|
|
|
|
|
|
### `get_access_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L600" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_access_token() -> AccessToken | None
|
|
```
|
|
|
|
|
|
Get the FastMCP access token from the current context.
|
|
|
|
This function first tries to get the token from the current HTTP request's scope,
|
|
which is more reliable for long-lived connections where the SDK's auth_context_var
|
|
may become stale after token refresh. Falls back to the SDK's context var if no
|
|
request is available.
|
|
|
|
**Returns:**
|
|
- The access token if an authenticated user is available, None otherwise.
|
|
|
|
|
|
### `without_injected_parameters` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L659" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
without_injected_parameters(fn: Callable[..., Any]) -> Callable[..., Any]
|
|
```
|
|
|
|
|
|
Create a wrapper function without injected parameters.
|
|
|
|
Returns a wrapper that excludes Context and Docket dependency parameters,
|
|
making it safe to use with Pydantic TypeAdapter for schema generation and
|
|
validation. The wrapper internally handles all dependency resolution and
|
|
Context injection when called.
|
|
|
|
Handles:
|
|
- Legacy Context injection (always works)
|
|
- Depends() injection (always works - uses docket or vendored DI engine)
|
|
|
|
**Args:**
|
|
- `fn`: Original function with Context and/or dependencies
|
|
- `run_in_thread`: For sync ``fn``, whether to dispatch the call to a worker
|
|
thread after resolving dependencies. Defaults to True. Set to False
|
|
to call ``fn`` inline on the event loop thread — required for
|
|
thread-affinity libraries (e.g. Windows COM). Ignored for async fns.
|
|
|
|
**Returns:**
|
|
- Async wrapper function without injected parameters
|
|
|
|
|
|
### `resolve_dependencies` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L820" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
resolve_dependencies(fn: Callable[..., Any], arguments: dict[str, Any]) -> AsyncGenerator[dict[str, Any], None]
|
|
```
|
|
|
|
|
|
Resolve dependencies for a FastMCP function.
|
|
|
|
This function:
|
|
1. Filters out any dependency parameter names from user arguments (security)
|
|
2. Resolves Depends() parameters via the DI system
|
|
|
|
The filtering prevents external callers from overriding injected parameters by
|
|
providing values for dependency parameter names. This is a security feature.
|
|
|
|
Note: Context injection is handled via transform_context_annotations() which
|
|
converts `ctx: Context` to `ctx: Context = Depends(get_context)` at registration
|
|
time, so all injection goes through the unified DI system.
|
|
|
|
**Args:**
|
|
- `fn`: The function to resolve dependencies for
|
|
- `arguments`: User arguments (may contain keys that match dependency names,
|
|
which will be filtered out)
|
|
|
|
|
|
### `CurrentContext` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L945" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
CurrentContext() -> Context
|
|
```
|
|
|
|
|
|
Get the current FastMCP Context instance.
|
|
|
|
This dependency provides access to the active FastMCP Context for the
|
|
current MCP operation (tool/resource/prompt call).
|
|
|
|
**Returns:**
|
|
- A dependency that resolves to the active Context instance
|
|
|
|
**Raises:**
|
|
- `RuntimeError`: If no active context found (during resolution)
|
|
|
|
|
|
### `OptionalCurrentContext` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L970" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
OptionalCurrentContext() -> Context | None
|
|
```
|
|
|
|
|
|
Get the current FastMCP Context, or None when no context is active.
|
|
|
|
|
|
### `CurrentFastMCP` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L990" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
CurrentFastMCP() -> FastMCP
|
|
```
|
|
|
|
|
|
Get the current FastMCP server instance.
|
|
|
|
This dependency provides access to the active FastMCP server.
|
|
|
|
**Returns:**
|
|
- A dependency that resolves to the active FastMCP server
|
|
|
|
**Raises:**
|
|
- `RuntimeError`: If no server in context (during resolution)
|
|
|
|
|
|
### `CurrentRequest` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1030" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
CurrentRequest() -> Request
|
|
```
|
|
|
|
|
|
Get the current HTTP request.
|
|
|
|
This dependency provides access to the Starlette Request object for the
|
|
current HTTP request. Only available when running over HTTP transports
|
|
(SSE or Streamable HTTP).
|
|
|
|
**Returns:**
|
|
- A dependency that resolves to the active Starlette Request
|
|
|
|
**Raises:**
|
|
- `RuntimeError`: If no HTTP request in context (e.g., STDIO transport)
|
|
|
|
|
|
### `CurrentHeaders` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1071" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
CurrentHeaders() -> dict[str, str]
|
|
```
|
|
|
|
|
|
Get the current HTTP request headers.
|
|
|
|
This dependency provides access to the HTTP headers for the current request,
|
|
including the authorization header. Returns an empty dictionary when no HTTP
|
|
request is available, making it safe to use in code that might run over any
|
|
transport.
|
|
|
|
**Returns:**
|
|
- A dependency that resolves to a dictionary of header name -> value
|
|
|
|
|
|
### `CurrentAccessToken` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1289" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
CurrentAccessToken() -> AccessToken
|
|
```
|
|
|
|
|
|
Get the current access token for the authenticated user.
|
|
|
|
This dependency provides access to the AccessToken for the current
|
|
authenticated request. Raises an error if no authentication is present.
|
|
|
|
**Returns:**
|
|
- A dependency that resolves to the active AccessToken
|
|
|
|
**Raises:**
|
|
- `RuntimeError`: If no authenticated user (use get_access_token() for optional)
|
|
|
|
|
|
### `TokenClaim` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1346" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
TokenClaim(name: str) -> str
|
|
```
|
|
|
|
|
|
Get a specific claim from the access token.
|
|
|
|
This dependency extracts a single claim value from the current access token.
|
|
It's useful for getting user identifiers, roles, or other token claims
|
|
without needing the full token object.
|
|
|
|
**Args:**
|
|
- `name`: The name of the claim to extract (e.g., "oid", "sub", "email")
|
|
|
|
**Returns:**
|
|
- A dependency that resolves to the claim value as a string
|
|
|
|
**Raises:**
|
|
- `RuntimeError`: If no access token is available or claim is missing
|
|
|
|
|
|
## Classes
|
|
|
|
### `FastMCPRequestContext` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L55" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
FastMCP-owned wrapper around the SDK's per-request context.
|
|
|
|
The SDK v2 runner hands each handler a fresh ``ServerRequestContext`` as an
|
|
argument rather than exposing it through a ContextVar. FastMCP owns this
|
|
ContextVar (``fastmcp_request_ctx``) and each request adapter binds a
|
|
``FastMCPRequestContext`` at the top of the handler (and the initialize
|
|
middleware binds it too).
|
|
|
|
A wrapper rather than the raw context because the SDK's
|
|
``ServerRequestContext.meta`` is a bare ``RequestParamsMeta`` TypedDict that
|
|
only carries ``progress_token`` — it does not carry ``_meta.fastmcp`` or the
|
|
distributed-trace parent. Those live in the raw params dict under ``_meta``,
|
|
which this wrapper lifts once so downstream consumers have a stable surface.
|
|
|
|
|
|
### `ProgressLike` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1099" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
Protocol for progress tracking interface.
|
|
|
|
Defines the common interface between InMemoryProgress (server context)
|
|
and Docket's Progress (worker context).
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `current` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1107" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
current(self) -> int | None
|
|
```
|
|
|
|
Current progress value.
|
|
|
|
|
|
#### `total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1112" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
total(self) -> int
|
|
```
|
|
|
|
Total/target progress value.
|
|
|
|
|
|
#### `message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1117" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
message(self) -> str | None
|
|
```
|
|
|
|
Current progress message.
|
|
|
|
|
|
#### `set_total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1121" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_total(self, total: int) -> None
|
|
```
|
|
|
|
Set the total/target value for progress tracking.
|
|
|
|
|
|
#### `increment` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
increment(self, amount: int = 1) -> None
|
|
```
|
|
|
|
Atomically increment the current progress value.
|
|
|
|
|
|
#### `set_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1129" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_message(self, message: str | None) -> None
|
|
```
|
|
|
|
Update the progress status message.
|
|
|
|
|
|
### `InMemoryProgress` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1134" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
In-memory progress tracker for immediate tool execution.
|
|
|
|
Provides the same interface as Docket's Progress but stores state in memory
|
|
instead of Redis. Useful for testing and immediate execution where
|
|
progress doesn't need to be observable across processes.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `current` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1159" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
current(self) -> int | None
|
|
```
|
|
|
|
#### `total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1163" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
total(self) -> int
|
|
```
|
|
|
|
#### `message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1167" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
message(self) -> str | None
|
|
```
|
|
|
|
#### `set_total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1170" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_total(self, total: int) -> None
|
|
```
|
|
|
|
Set the total/target value for progress tracking.
|
|
|
|
|
|
#### `increment` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1176" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
increment(self, amount: int = 1) -> None
|
|
```
|
|
|
|
Atomically increment the current progress value.
|
|
|
|
|
|
#### `set_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1185" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_message(self, message: str | None) -> None
|
|
```
|
|
|
|
Update the progress status message.
|
|
|
|
|
|
### `Progress` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1190" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
Progress dependency that works in both server and worker contexts.
|
|
|
|
In a Docket worker, delegates to the execution's Redis-backed progress
|
|
(observable across processes). Otherwise, uses in-memory tracking.
|
|
|
|
The shared default instance acts as a stateless factory — ``__aenter__``
|
|
creates a fresh ``Progress`` per invocation so concurrent tasks never
|
|
share mutable state.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `current` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1231" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
current(self) -> int | None
|
|
```
|
|
|
|
Current progress value.
|
|
|
|
|
|
#### `total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1237" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
total(self) -> int
|
|
```
|
|
|
|
Total/target progress value.
|
|
|
|
|
|
#### `message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1243" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
message(self) -> str | None
|
|
```
|
|
|
|
Current progress message.
|
|
|
|
|
|
#### `set_total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1248" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_total(self, total: int) -> None
|
|
```
|
|
|
|
Set the total/target value for progress tracking.
|
|
|
|
|
|
#### `increment` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1253" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
increment(self, amount: int = 1) -> None
|
|
```
|
|
|
|
Atomically increment the current progress value.
|
|
|
|
|
|
#### `set_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/server/dependencies.py#L1258" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_message(self, message: str | None) -> None
|
|
```
|
|
|
|
Update the progress status message.
|
|
|