Cook the pasta shells al dente, according to the package directions. Drain, then rinse with cold water.
Meanwhile, add the olive oil to a large skillet set over medium heat. When hot, add the onion and cook for about 2 minutes, until it starts to soften. Add in the garlic and cook for 30 seconds, until fragrant. Add in the asparagus and mushrooms and cook for about 5 minutes, or until the mushrooms have released most of their juices and the asparagus is crisp tender. Remove from the heat. Transfer the vegetables to a large bowl using a slotted spoon.
Add the spinach, ricotta, salt, pepper, basil and parsley to the large bowl. Mix until combined, then taste and season with additional salt and pepper as needed. Fold in the egg.
Spread 1 ½ cups of the marinara sauce in the bottom of a 9x13 inch baking dish. Scoop an equal amount of filling into each of the pasta shells (they will be generously filled), being gentle so they don’t break. Place the filled shells in the prepared baking dish in a single layer. Pour the remaining marinara sauce evenly over the top of the shells, then sprinkle with the mozzarella cheese. Cover with aluminum foil.
Bake for 25 minutes, then remove the foil and bake for an additional 10 minutes. Garnish with the fresh parsley if desired and serve.