The First Amendment protects the right of expression in public, though it is not absolute. Criminal acts (rioting or assault) as a form of protest are not protected; trespassing is not protected; obstructing the roads is not protected. The subject matter of the assembly is irrelevant to the extent to which the right to assemble is protected, so it doesn't matter if the event is Nazi, BLM, or protesting the color purple.
The main limit on protests pertains to the use of public space, especially roads, so it is not generally legal for a crowd to assemble and block the roads (or sidewalks, or lobbies of courthouses) without a permit from the relevant (usually municipal) authorities. There may be specific laws prohibiting protests in a certain location (e.g. the floor of the House; on a military base) or temporary policies restricting the venue of a protest (such as a radius around a convention center when a political party is having its convention there). In the latter case, there is typically a "free speech zone", that is, public land set aside for such protests.
The First Amendment only protects peaceable assembly, and restrictions on assemblies are designed to prevent or limit disruptions. Disruptions certainly
occur, but with a planned and permitted event, the police are in place to direct traffic and minimize the impact. Another valid concern is that even with advance planning and notice, certain events can turn very violent, in which case the authorities have to do something to mitigate the threat.
It is not at all clear these days whether the authorities tend to abuse their discretion in granting permits. Much as they may hate having a Nazi rally in Chicago, they could not forbid the rally. They may not be required to allow the rally at a specific time and place. There have been problems in the past with authorities holding that "We don't want X in our town", but I think it is generally understood that that is not legal. This does not mean that all authorities are welcoming of all forms of protest, and the limits are stretched and even broken, but what can you do? The answer is, sue them, which may lead to a further sharpening of the law.
One excuse for not giving a permit is that they require advance notice, perhaps of 2 weeks – many political protests take place within a day of some event. In that case, in response to current events, such deadlines are supposed to be suspended.
Any fees imposed by the government have to be actual cost, and cannot include the cost of extra police to protect the protesters; any insurance requirements have to be affordable by the group, and must be waived if insurance can't be obtained.