The 32-year-old, who won 55 caps for his country while also skippering the team for the last five years, made the announcement in a statement to Celtic's official website.
Brown said that the "demanding" football calendar is beginning to have an impact on his body, adding that it was an "honour" to play for his country.
"I have spoken to [Scotland boss] Alex McLeish over the weekend. The football calendar is more and more demanding now, and in terms of looking after my own body and in interests of my family, I felt now is the right time to take this decision," the midfielder said.
"I have really enjoyed my time with Scotland and making over 50 caps is something which I will always be really proud of. It was a huge honour to pull on the Scotland jersey every time I was given the opportunity and to be able to captain my country is a privilege I will always cherish.
"I would like to thank all the Scotland managers I have worked with over a number of years. They have all been great men to work with and supported me brilliantly as a player over so many years. I've had the honour, too, of working with some great players - great teammates and so many lads who always gave their all for their country."
Brown spent five years with Hibernian before moving to Celtic in 2007.