diff --git a/src/strands/tools/mcp/mcp_client.py b/src/strands/tools/mcp/mcp_client.py index 2ac632925..1884ce9bc 100644 --- a/src/strands/tools/mcp/mcp_client.py +++ b/src/strands/tools/mcp/mcp_client.py @@ -220,7 +220,7 @@ def start(self) -> "MCPClient": logger.exception("client failed to initialize") # Pass None for exc_type, exc_val, exc_tb since this isn't a context manager exit self.stop(None, None, None) - raise MCPClientInitializationError("the client initialization failed") from e + raise MCPClientInitializationError(f"the client initialization failed: {e}") from e return self # ToolProvider interface methods diff --git a/tests/strands/tools/mcp/test_mcp_client.py b/tests/strands/tools/mcp/test_mcp_client.py index fe439c5d9..f270fa6fc 100644 --- a/tests/strands/tools/mcp/test_mcp_client.py +++ b/tests/strands/tools/mcp/test_mcp_client.py @@ -386,7 +386,10 @@ def test_enter_with_initialization_exception(mock_transport): client = MCPClient(mock_transport["transport_callable"]) with patch.object(client, "stop") as mock_stop: - with pytest.raises(MCPClientInitializationError, match="the client initialization failed"): + with pytest.raises( + MCPClientInitializationError, + match="the client initialization failed: Transport initialization failed", + ): client.start() # Verify stop() was called for cleanup