if you are restricting yourself to MSP itself, I guess you need 2 nights; 3 would be better (to make it worth the total time it will take you to get to MSP from Rio or SP).
assume you have read on how to get there... after a flight from SP or Rio to Salvador (SSA), you will need to get to harbor for either the catamaran ride (2;30 hours; some people get motion sick due to open ocean water crossing; in bad weather it gets cancelled),,, or the "semi-terrestrial" crossing (which avoids the ocean, but takes longer).
a tour operator that provides "semi-terrestrial", including airport pickup:
highly recommended that you return back to SSA the day before your outgoing flight; last minute cat cancellations and other weather-related delay may cause you to miss flight.
finally... what month? April/May/June not best times due to rainfall (not India-style monsoon though, but you can get some rainy/overcast days, mixed with better ones - like we did...)... check in link below for Salvador/Morro de S. Paulo.... monthly rainfall averages for Brazilian beaches (in yellow):
Thanks for your reply! We'll be spending a couple of days in Salvador before heading out to MSP. We should have four or so days before heading home so it seems like we should have just enough time to enjoy the island. We're going in early November so the weather should hopefully be as reliable as it ever is. Though now one of our Brazilian travel companions is trying to convince us to spend the time in Boipepa instead.....so many places to go, so little time.....
saw your question about Boipeba in other thread...
Boipeba fits more with peace and tranquility than MSP... of course, it takes longer to get there; so less people get there! unless you can afford the small, almost charter-like flights...
these two maps will help you see the transportation issues...
all of southern Bahia:
flights from SSA to Boipeba at something like 650 reais one way:
in MSP, you can go/stay on beach number 4 (or "quarta praia") to get away from most tourists:
In my humble opinion Morro de São Paulo is a bit overrated.
It is a small island, very touristic that only has ... beaches and is pretty expensive overall.
For me 2 days is more than enough.
The neighboring island Boipeba for example is a much nicer alternative.