Open
Description
Initial Checks
- I confirm that I'm using the latest version of MCP Python SDK
- I confirm that I searched for my issue in https://github.com/modelcontextprotocol/python-sdk/issues before opening this issue
Description
Hello 👋
It seems like context.report_progress
is not sending any notifications on streamable-http.
I checked and the reason is that related_request_id
is not specified in the underlying function.
A fix that work on my side in the file src/mcp/server/fastmcp/server.py
:
async def report_progress(self, progress: float, total: float | None = None, message: str | None = None) -> None:
# <---- non important code is skipped here --->
await self.request_context.session.send_progress_notification(
progress_token=progress_token,
progress=progress,
total=total,
message=message,
# ADD this line to fix the issue
related_request_id=self.request_id,
)
I created a PR to add that line.
Example Code
from mcp.server.fastmcp import Context, FastMCP
mcp = FastMCP("StatelessServer", stateless_http=True)
@mcp.tool()
async def example(ctx: Context) -> str:
await ctx.report_progress(0, None, "This does not work")
await ctx.session.send_progress_notification(
ctx.request_context.meta.progressToken, 0, None, "But this works perfectly", ctx.request_id
)
return "Done"
mcp.run(transport="streamable-http")
Python & MCP Python SDK
mcp 1.9.4
Python 3.13.3
uv 0.7.13
Metadata
Metadata
Assignees
Labels
No labels