Multi-agent consensus has been widely applied in engineering. A novel protocol that can achieve an average state consensus for multi-agent systems in finite time is presented in this paper. The proposed protocol contains a non-linear and a linear term. The state consensus is achieved in finite time by the non-linear term and convergence performance is improved by the linear term to some degree. The protocol can be applied to systems with a switching topology as long as the communication graph is always undirected and connected. The upper bound of convergence time is obtained. The relationship between convergence time and protocol parameter, communication topology and initial state is analysed. Lastly, simulations are conducted to verify the effectiveness of the results.