Preheat oven to 350 degrees. Heat 2 Tbsp. butter in a 10″ non-stick ovenproof skillet over medium heat. Add the shallots, cooking for 1 minute. Add the green and red onions and cook for additional 3-4 minutes until tender. Add the mushrooms and cook for 7-9 minutes, until softened and all liquid has evaporated.
Whisk the eggs and sour cream together in a medium bowl. Add in the parsley and 3/4 cup of cheese. Season with salt and pepper.
Increase the heat to medium-high and add the remaining 1 Tbsp. of butter to the skillet. Pour the egg mixture over the mushrooms, pulling up the sides with a spatula to evenly distribute the egg mixture. Cook for an additional 4-5 minutes, without stirring, until the edges begin to set.
Sprinkle with remaining cheese and place the sliced tomatoes on top. Transfer the skillet to the oven and bake for 25 minutes, or until frittata becomes golden brown and the center is set.