Whisk the egg in a large bowl then add the onions, garlic, ketchup, Dijon mustard, Worcestershire sauce, salt, pepper and parsley and stir to combine.
Add the ground beef and breadcrumbs and gently stir but do not overmix.
Form 18-25 balls from the meat mixture then heat the olive oil in a large skillet over medium heat.
Add half of the meatballs to the pan and gently stir to prevent burning and cook for about 5 minutes or until all sides have turned a dark brown color.
Remove the meatballs from the pan and repeat the cooking process with the remaining half of the meatballs.
Once all the meatballs have been cooked, make the gravy by adding the butter to the pan along with the mushrooms and stir and cook for about 5 minutes or until the mushrooms have reduced significantly.
Add the flour and stir and cook just until the flour starts to turn a dark brown color.
Stir in the Dijon and Worcestershire sauce then pour in the beef broth 1 cup at a time, whisking between each addition.
Continuously whisk over medium heat until the gravy starts to thicken then add the meatballs back to the gravy, reduce the heat to low medium then cover with a lid and let it simmer for 15 minutes.
Remove the pan from the heat and serve over mashed potatoes and garnish with freshly minced parsley if desired.
Notes
These meatballs can be stored in an airtight container in the fridge for up to five days.