The former two-weight champion was one of a group alleged to have vandalised a bus containing rival fighters, the Ultimate Fighting Championship said.
The Irishman turned himself into police custody at 9pm local time on Thursday.
He will appear at Brooklyn Criminal Court after 9:30am (14:30 BST).
“McGregor has been charged with three counts of assault and one of criminal mischief,” a NYPD spokesperson told BBC Sport.
The incident occurred at Brooklyn’s Barclays Center, where the UFC had gathered to promote Saturday’s show, headlined by Khabib Nurmagomedov and Max Holloway.
Holloway was later ruled out of the fight because he was medically unstable.
McGregor, 29, was with fellow fighter Artem Lobov, who was due to fight featherweight Alex Caceres.
The UFC says McGregor and Lobov – accompanied by more than a “dozen individuals” – attacked the bus.
Footage appears to show McGregor throwing a trolley at the bus – smashing a window – followed by further altercations.
UFC says two fighters were injured and have been withdrawn from Saturday’s undercard.
Lightweight Michael Chiesa received several facial cuts, while flyweight Ray Borg suffered an eye injury.
Lobov has also been removed from the bill, due to his alleged involvement.
“The organisation deems today’s disruption completely unacceptable and is currently working on the consequences that will follow,” the UFC said.
McGregor, who was beaten by Floyd Mayweather in a boxing match in August 2017, has not fought in the UFC since knocking out Eddie Alvarez in November 2016.
Before Thursday’s incident, he was stripped of his UFC lightweight title for being inactive, with the winner of Nurmagomedov-Holloway taking the belt.