Skip to content

Commit 25d016c

Browse files
committed
add request context metadata in SSE transport
1 parent 36ed9d8 commit 25d016c

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

fastapi_mcp/transport/sse.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from anyio.streams.memory import MemoryObjectSendStream
66
from fastapi import Request, Response, BackgroundTasks, HTTPException
77
from fastapi.responses import JSONResponse
8-
from mcp.shared.message import SessionMessage
8+
from mcp.shared.message import SessionMessage, ServerMessageMetadata
99
from pydantic import ValidationError
1010
from mcp.server.sse import SseServerTransport
1111
from mcp.types import JSONRPCMessage, JSONRPCError, ErrorData
@@ -72,9 +72,11 @@ async def handle_fastapi_post_message(self, request: Request) -> Response:
7272
logger.error(f"Error processing request body: {e}")
7373
raise HTTPException(status_code=400, detail="Invalid request body")
7474

75-
# Create background task to send message
75+
# Create background task to send message with proper request context metadata
7676
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)
7880
logger.debug("Accepting message, will send in background")
7981

8082
# Return response with background task

0 commit comments

Comments
 (0)