Gently mix all meatball ingredients together just until combined, and using a tablespoon, scoop portions of the mixture and roll between your palms to form meatballs.
For soup
Add 2 tablespoons of oil to a Dutch oven and brown meatballs on medium-high heat on all sides about 4 minutes.
Once the meatballs are browned transfer them to a plate to rest.
Reduce heat to medium-low. Add the chopped onion to the pan and saute, scraping bits of browned meatball off the bottom of the pan as you stir.
Add the dried Italian seasoning, salt, pepper, and red pepper. Stir for a couple of minutes until things soften.
Add garlic and stir until aromatic, about 30 seconds.
Add tomato paste and stir everything. Add the red wine, or substitute, to deglaze the pan, stir and scrape the bottom of the pan. After about 20 seconds, add in the tomatoes and the chicken stock.
Simmer the soup for about 15 minutes. If you like a smooth soup, you can puree at this stage with a Hand-held Immersion Blender (or place in a heavy-duty blender) and blend until smooth.
Cook pasta according to package directions and drain.
Add the meatballs into the soup, and bring it back to a gentle simmer; simmer, uncovered, for 15 minutes more until the meatballs are tender.
Add cooked and drained pasta to the soup. Taste and adjust seasonings if necessary.
Serve hot in a bowl with mozzarella cheese sprinkled over the top.
Store leftovers in an airtight container in the refrigerator up to 4 days.