West Yorkshire Police said Thomas Mair, 52, has been charged with the murder of the 41-year-old.
She was shot and stabbed outside her constituency surgery in Birstall, West Yorkshire, on Thursday.
Mr Mair will appear at Westminster Magistrates' Court on Saturday and faces a number of other charges, including grievous bodily harm.
He is further charged with possession of a firearm with intent and possession of an offensive weapon, the force said.