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.
The two most popular client options for our users are Geth and Parity. Once you have your local client set up, you can connect to it with the network menu in the top left corner of MetaMask:
Geth
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
Parity has installers for Mac and Windows, and seems to work with MetaMask pretty easily out of the box, once synchronized.