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,