For greater security, privacy, and read speeds, you may choose to run a local blockchain client, and connect MetaMask to it. A local blockchain client takes a while to "synchronize" with the network, but once it has, it's easy to connect MetaMask to it.
Geth needs to have a special CORS setting enabled to allow MetaMask to connect to it by default, so try starting it with this command:
geth --rpc --rpccorsdomain="chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn"
Parity has installers for Mac and Windows, and seems to work with MetaMask pretty easily out of the box, once synchronized.