In a bowl whisk together olive oil, garlic, cumin, salt and cayenne pepper (if using), diced cilantro, chili powder, black pepper. Add in peeled and deveined shrimp and toss to coat completely. Cover and refrigerate for 20 minutes to give the flavors a chance to marry.
While shrimp is marinating make Cilantro Lime Avocado Crema.
In a blender add the juice of one lime. 2 Tablespoons cilantro. 1/2 cup of sour cream, and spices. Blend on medium high until cilantro is chopped and everything is well blended. Refrigerate until ready to serve.
Cook shrimp in a skillet on medium heat until pink and cooked through, about 5 minutes. Turn off heat and cover to keep warm.
Use enough oil to lightly coat the bottom of a small pan, about 2 tablespoons. Heat over medium-high heat. Cook tortillas one at a time until soft, and lightly brown, about 30 seconds on each side. Fold over to make a taco shell. As you cook each tortilla, place them on paper towels to absorb any of the oil left over. If using street tacos double the shells.
Place cabbage mix and chopped cilantro on the tortilla shell. Spoon shrimp into each taco shell making sure to drizzle some of the juices over the cabbage.
Drizzle with the Cilantro Avocado Lime Crema Sauce. Tuck in a slice of avocado and sprinkle with Queso Fresco.
Serve.