Model-based predictive control (MPC), arguably the most effective control methodology for constrained systems, has seen rapid growth over the last few decades. The theory of classical MPC is well established by now, and robust MPC (RMPC) that deals with uncertainty (either in the form of additive disturbance or imprecise and/or time-varying knowledge of the system parameters) is itself reaching a state of maturity. There have been a number of new developments reported in the area of stochastic MPC (SMPC), which deals with the case where uncertainty is random and some or all of the constraints are probabilistic. The present paper surveys these developments, setting the scene by first discussing the key ingredients of classical MPC, then highlighting some major contributions in RMPC, and finally, describing recent results in SMPC. The discussion of the latter is restricted to uncertainty with bounded support, which is consistent with practice and provides the basis for the establishment of control theoretic properties, such as recurrent feasibility, stability, and convergence.