|
5 | 5 | from anyio.streams.memory import MemoryObjectSendStream
|
6 | 6 | from fastapi import Request, Response, BackgroundTasks, HTTPException
|
7 | 7 | from fastapi.responses import JSONResponse
|
8 |
| -from mcp.shared.message import SessionMessage |
| 8 | +from mcp.shared.message import SessionMessage, ServerMessageMetadata |
9 | 9 | from pydantic import ValidationError
|
10 | 10 | from mcp.server.sse import SseServerTransport
|
11 | 11 | from mcp.types import JSONRPCMessage, JSONRPCError, ErrorData
|
@@ -72,9 +72,11 @@ async def handle_fastapi_post_message(self, request: Request) -> Response:
|
72 | 72 | logger.error(f"Error processing request body: {e}")
|
73 | 73 | raise HTTPException(status_code=400, detail="Invalid request body")
|
74 | 74 |
|
75 |
| - # Create background task to send message |
| 75 | + # Create background task to send message with proper request context metadata |
76 | 76 | background_tasks = BackgroundTasks()
|
77 |
| - background_tasks.add_task(self._send_message_safely, writer, SessionMessage(message)) |
| 77 | + metadata = ServerMessageMetadata(request_context=request) |
| 78 | + session_message = SessionMessage(message, metadata=metadata) |
| 79 | + background_tasks.add_task(self._send_message_safely, writer, session_message) |
78 | 80 | logger.debug("Accepting message, will send in background")
|
79 | 81 |
|
80 | 82 | # Return response with background task
|
|
0 commit comments