Preheat oven to 425F. Generously rub a baking pan lined in aluminum foil with the olive oil.
In a bowl, combine all meatball ingredients, then mix until well combined. Form into round meatballs (about 1 tablespoon meat mixture per meatball - makes about 16), then place on the prepared baking pan.
Bake for 10 minutes, flip, and bake an additional 10 minutes.
For the sauce:
In the meantime, add the olive oil to a large pan over medium high heat to warm up for 1 minute. Add in the sliced onions, then cook down until soft and golden, stirring occasionally, for about 15-20 minutes.
Add in the grated garlic, chicken bone broth, and black pepper. Stir to combine, then bring to a boil. Add in the cooked meatballs, then simmer on medium low heat for 10 minutes.
Transfer to a serving dish that is oven-safe, then top with shredded gruyere cheese and parmesan to broil in the oven for 3-5 minutes, until golden brown on top. Garnish with freshly chopped parsley, then serve immediately.