> ## Documentation Index

> Fetch the complete documentation index at: /llms.txt

> Use this file to discover all available pages before exploring further.

Skip to main content
Operations

# Progress Monitoring

Handle progress notifications from long-running server operations.

New in version `2.3.5` Use this when you need to track progress of long-running operations. MCP servers can report progress during operations. The client receives these updates through a progress handler.

##
​
Progress Handler

Set a handler when creating the client:

    from fastmcp import Client

    async def progress_handler(
        progress: float,
        total: float | None,
        message: str | None
    ) -> None:
        if total is not None:
            percentage = (progress / total) * 100
            print(f"Progress: {percentage:.1f}% - {message or ''}")
        else:
            print(f"Progress: {progress} - {message or ''}")

    client = Client(
        "my_mcp_server.py",
        progress_handler=progress_handler
    )

The handler receives three parameters:

## Handler Parameters

​
progress
float
Current progress value
​
total
float | None
Expected total value (may be None if unknown)
​
message
str | None
Optional status message

##
​
Per-Call Handler

Override the client-level handler for specific tool calls:

    async with client:
        result = await client.call_tool(
            "long_running_task",
            {"param": "value"},
            progress_handler=my_progress_handler
        )

Background Tasks
Previous
Server Logging
Next
Ctrl+I
Assistant
Responses are generated using AI and may contain mistakes.
\n\n
\n
\n \n
\n
","contacts":" \n
\n\n Prefab\n \n \n \n \n\n
\n
\n \n
\n
","dashboard":" \n
\n\n Prefab\n \n \n \n \n\n
\n
\n \n
\n
","data-table":" \n
\n\n Prefab\n \n \n \n \n\n
\n
\n \n
\n
","hitchhikers":" \n
\n\n Prefab Showcase\n \n \n \n \n\n
\n
\n \n
\n
","pie-chart":" \n
\n\n Prefab\n \n \n \n \n\n
\n
\n \n
\n
","reactive":" \n
\n\n Prefab\n \n \n \n \n\n
\n
\n \n
\n
","team-directory-reactive":" \n
\n\n Prefab\n \n \n \n \n\n
\n
\n \n
\n
","team-directory":" \n
\n\n Prefab\n \n \n \n \n\n
\n
\n \n
\n
"};