|
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