Preheat the oven to 400°F (200°C).
Slice the spaghetti squash in half lengthwise and scoop out the seeds.
Brush the cut sides with olive oil, season with salt and pepper.
Place cut-side down on a baking sheet and roast for 30-35 minutes until tender.
While the squash roasts, heat olive oil in a skillet over medium heat.
Add ground beef or Italian sausage and cook until browned; drain excess fat.
Stir in marinara sauce, garlic powder, onion powder, Italian seasoning, salt, and pepper. Simmer for 5 minutes.
Remove squash from the oven and let cool slightly.
Use a fork to shred the squash flesh into spaghetti-like strands.
In a large bowl, combine the cooked meat sauce, shredded squash, ricotta or cottage cheese, cream cheese, and half of the mozzarella.
Mix well until creamy and well combined.
Transfer the mixture to a baking dish and top with remaining mozzarella and Parmesan cheese.
Bake at 375°F (190°C) for 15 minutes until cheese is melted and bubbly.
Garnish with fresh basil or parsley before serving.