The 22-year-old all-rounder played in all but one of this season's fixtures against county opposition, impressing in the win over Nottinghamshire.
Angus Fraser, Middlesex managing director of cricket, said: "Middlesex and Scotland have decided it will be in Josh's best interests to just play for Middlesex next season, with the exception of full international matches. The regular travelling from London to Edinburgh has made it hard for Josh to feel committed to one side and we believe a full year with Middlesex will allow him to get the best out of himself."
Davey, currently on Scotland's tour to South Africa, has already earned 35 caps, scoring 723 runs. His 37 wickets include a national one-day international record of five for nine against Afghanistan in 2010.
The Scots continue their tour with a three-day match against North West Dragons, starting tomorrow.