This question is asked by many by those who want to get a DCS capable radio or to be able to transmit AIS position reporting. Some day, I'd like to add both of these capabilities and need to get an MMSI ahead of time.
From my limited research, you file for your MMSI from the FCC if your vessel will be traveling to international waters and foreign countries, even if it's to Canada or Bahamas and beyond. If your vessel is going to be in US waters only, you can apply through BoatUS.
I was looking at the process of how to do this and found a forum post where someone talked about it in a post from 2007. To get started, you need to get on the FCC Universal License System (ULS) website. If you don't already have an FCC Registration Number (FRN), you need to register for one. Being an amateur radio operator, I already had one so I just had to log in and submit a new application in order to get an MMSI.
There's a lot of pictures here, but follow this process with the information needed for yourself and your vessel and you should be good. I'm no expert here but this will give you an idea of what to expect during the process. I just did this process and it didn't take long to do at all. The longest part of this was making the screen shots to share with everyone else. Good luck!
NOTE: The cost for this application is $160.