From 654c677db59b04ed394b412a5b294b72ea50e88e Mon Sep 17 00:00:00 2001 From: GH05TCREW Date: Mon, 28 Apr 2025 23:43:06 -0600 Subject: [PATCH] Add missing POST endpoint handler for MCP SSE transport messages --- MetasploitMCP.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/MetasploitMCP.py b/MetasploitMCP.py index 573f3b9..16a9100 100644 --- a/MetasploitMCP.py +++ b/MetasploitMCP.py @@ -1389,7 +1389,6 @@ app = FastAPI( # Setup MCP transport (SSE for HTTP mode) sse = SseServerTransport("/messages/") -# DO NOT manually add routes for /messages - it's handled internally by SseServerTransport @app.get("/sse", tags=["MCP"]) async def handle_sse_connection(request: Request): @@ -1399,6 +1398,12 @@ async def handle_sse_connection(request: Request): await mcp._mcp_server.run(read_stream, write_stream, mcp._mcp_server.create_initialization_options()) logger.info(f"SSE connection closed from {request.client.host}:{request.client.port}") +@app.post("/messages/", tags=["MCP"]) +async def handle_post_message(request: Request): + """Handle client POST messages for MCP communication.""" + logger.info(f"Received POST message from {request.client.host}:{request.client.port}") + return await sse.handle_post_message(request.scope, request.receive, request._send) + @app.get("/healthz", tags=["Health"]) async def health_check(): """Check connectivity to the Metasploit RPC service."""