From e17d298bc7f8ea5f0c3b427ef6c0565e2cba4944 Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Sun, 14 Jun 2026 21:57:58 +0800 Subject: [PATCH] fix: Convert http to ws scheme in node_console WebSocket URL --- gns3server/api/routes/mcp/nodes.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gns3server/api/routes/mcp/nodes.py b/gns3server/api/routes/mcp/nodes.py index 507dc8d58..5eb962e97 100644 --- a/gns3server/api/routes/mcp/nodes.py +++ b/gns3server/api/routes/mcp/nodes.py @@ -281,9 +281,11 @@ def get_node_console_info_handler(params: dict[str, Any], gns3_ctx: dict[str, An # Short-lived JWT for the WebSocket URL (10 min) username = gns3_ctx.get("jwt_username") ws_token = auth_service.create_access_token(username, expires_in=10) if username else None - ws_url = f"{gns3_ctx['server_url']}/v3/projects/{project_id}/nodes/{node_id}/console/ws" + raw_url = f"{gns3_ctx['server_url']}/v3/projects/{project_id}/nodes/{node_id}/console/ws" if ws_token: - ws_url += f"?token={ws_token}" + raw_url += f"?token={ws_token}" + # Convert http scheme to ws for direct websocat usage + ws_url = raw_url.replace("https://", "wss://").replace("http://", "ws://") result = { "node_id": node_id,