From 4d65f5d15e74464e2030d26f15cdd91864417d3a Mon Sep 17 00:00:00 2001 From: Mark Ng Date: Mon, 26 Jan 2026 08:33:55 -0800 Subject: [PATCH] fix: add paramiko 4.0 compatibility for NoValidConnectionsError In paramiko 4.0.0+, NoValidConnectionsError moved from paramiko to paramiko.ssh_exception. Use try/except import pattern to support both paramiko 3.x and 4.x versions. Co-Authored-By: Claude Opus 4.5 --- mcp_ssh_session/session_manager.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mcp_ssh_session/session_manager.py b/mcp_ssh_session/session_manager.py index cef57b2..d9e3a9a 100644 --- a/mcp_ssh_session/session_manager.py +++ b/mcp_ssh_session/session_manager.py @@ -12,6 +12,12 @@ import paramiko +try: + from paramiko import NoValidConnectionsError +except ImportError: + # paramiko 4.0.0+ moved NoValidConnectionsError to ssh_exception + from paramiko.ssh_exception import NoValidConnectionsError + from .command_executor import CommandExecutor from .datastructures import CommandStatus from .file_manager import FileManager @@ -187,7 +193,7 @@ def get_or_create_session( except ( paramiko.AuthenticationException, paramiko.SSHException, - paramiko.NoValidConnectionsError, + NoValidConnectionsError, OSError, TimeoutError, ) as e: