Skip to main content
Glama
progress.md1.88 kB
# Progress Monitoring > Handle progress notifications from long-running server operations. export const VersionBadge = ({version}) => { return `<code className="version-badge-container">` `<p className="version-badge">` `<span className="version-badge-label">`New in version:  `<code className="version-badge-version">`{version}`</code>` `</p>` `</code>`; }; <VersionBadge version="2.3.5" /> MCP servers can report progress during long-running operations. The client can receive these updates through a progress handler. ## Progress Handler Set a progress handler when creating the client: ```python from fastmcp import Client async def my_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=my_progress_handler ) ``` ### Handler Parameters The progress handler receives three parameters: <Card icon="code" title="Progress Handler Parameters"> <ResponseField name="progress" type="float"> Current progress value </ResponseField> <ResponseField name="total" type="float | None"> Expected total value (may be None) </ResponseField> <ResponseField name="message" type="str | None"> Optional status message (may be None) </ResponseField> </Card> ## Per-Call Progress Handler Override the progress handler for specific tool calls: ```python async with client: # Override with specific progress handler for this call result = await client.call_tool( "long_running_task", {"param": "value"}, progress_handler=my_progress_handler ) ```

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rdwj/mcp-test-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server