How likely was it that Nazi Germany would have violated the armistice terms with France that allowed France to retain control of her Navy? Germany had very little in the way of surface forces in 1940, and when Churchill made the decision to attack the French fleet, he did so in the belief that if he didn't, Germany would have taken command of the surface fleet and used it to threaten Britain's naval supremacy. This, obviously, would have been a problem for Britain's supplies from the US.
In light of the fact that the Germans did try to take the French fleet at Tolon in 1942, and that the French scuttled that fleet, was the attack at Mers-el-Kebir really necessary? Do you think Churchill comes across as the bad guy here?
A cynical view is that the British were mainly interested in making a statement about their intention to stay in the war.
Only a small portion of the French Fleet was actually in Mers-el-Kebir. If the British were the worried why didn't they mount simultaneous attacks against the French Navy in other locations?.
It's also important to remember that the French military was still a major force, both in parts of France and in their overseas possessions. The Armistice they signed with Germany was largely concerned with the military within France itself.
The French would have been capable of resisting any German attempt to seize the ships by force (if mainly because of the Geography). The only way Germany would have been able to take control of them was for the French to willingly surrender them. Which was very unlikely, though the confused nature of the French leadership may have given the impression that was a possibility.
You mention that when the Germans did attempt to seize French naval vessels in Toulon later in the war, they were successfully scuttled by their crews. However at that stage it could be argued that the French realised the Germans were going to lose the war and weren't going to risk alienating the Allies by handing them over.