Add experimental in-process background tasks via Docket#2326
Merged
chrisguidry merged 1 commit intosep-1686from Nov 3, 2025
Merged
Add experimental in-process background tasks via Docket#2326chrisguidry merged 1 commit intosep-1686from
chrisguidry merged 1 commit intosep-1686from
Conversation
Brings FastAPI-style background task execution to FastMCP as the next step
toward MCP SEP-1686 support. When `FASTMCP_EXPERIMENTAL_ENABLE_DOCKET=true`,
FastMCP automatically creates a Docket instance with an in-process Worker,
enabling tools to schedule background tasks via dependency injection.
```python
from fastmcp.dependencies import CurrentDocket
@mcp.tool()
async def analyze_data(query: str, docket: Docket = CurrentDocket()) -> str:
# Schedule work to run in background
await docket.add(long_running_analysis)(query)
return "Analysis started"
```
This provides Starlette-like background task capabilities without requiring
distributed infrastructure. All tasks run in the same process via memory://
broker. Distributed workers will come in a future phase.
Also adds `CurrentContext()` and `CurrentWorker()` dependency functions
following Docket's pattern (no `Depends()` wrapper needed).
New `fastmcp.dependencies` module centralizes all dependency injection exports
to keep the top-level namespace clean.
Related: https://linear.app/prefect/document/fastmcp-sep-1686-tasks-7c4711171324
Based on: #2318
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
Member
|
Holding temporarily as we sort out 2.14 roadmap offline; may be fine to include as an experimental feature regardless |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Brings FastAPI-style background task execution to FastMCP as the next step toward MCP SEP-1686 support.
When
FASTMCP_EXPERIMENTAL_ENABLE_DOCKET=true, FastMCP automatically creates a Docket instance with an in-process Worker, enabling tools to schedule background tasks via dependency injection:This provides Starlette-like background task capabilities without requiring distributed infrastructure. All tasks run in the same process via
memory://broker. Distributed workers will come in a future phase.Also adds
CurrentContext()andCurrentWorker()dependency functions following Docket's pattern (noDepends()wrapper needed).New
fastmcp.dependenciesmodule centralizes all dependency injection exports to keep the top-level namespace clean.Related: https://linear.app/prefect/document/fastmcp-sep-1686-tasks-7c4711171324
🤖 Generated with Claude Code