In a large bowl, mix ground beef, breadcrumbs, egg, onion, garlic, milk, Worcestershire, Dijon, salt, pepper, paprika, and parsley.
Mix just until combined.
Form into 12–16 meatballs.
Heat olive oil or butter in a large skillet over medium heat.
Sear the meatballs for 6–8 minutes, turning to brown on all sides. They do not need to be fully cooked yet.
Remove to a plate.
In the same skillet, melt the butter.
Add mushrooms and cook 5–6 minutes until browned and their moisture cooks off.
Add shallot and cook 2 minutes.
Stir in garlic and cook 20 seconds.
Sprinkle flour over the mushrooms and stir for 1 minute.
Slowly whisk in beef broth.
Add Worcestershire, Dijon, thyme, black pepper, and salt.
Simmer 3–4 minutes until slightly thickened.
Return the meatballs and any juices to the skillet.
Spoon some gravy over them, cover, and simmer 8–10 minutes until the meatballs are cooked through and tender.
Stir in cream or sour cream if using.
Spoon the meatballs and mushroom gravy over mashed potatoes, noodles, or rice.
Finish with parsley and extra black pepper.
