Terms of the deal were not disclosed for McPhee, who visited with the Redskins last Monday and was offered a contract a day later.
McPhee is joining the Redskins after spending the previous three seasons with the Chicago Bears, who signed him to a five-year contract in 2015.
The Redskins are hoping he can help replace Trent Murphy, who signed with the Buffalo Bills on the first day of free agency.
Last season, McPhee started five of the 13 games he appeared in for the Bears. He finished with 21 tackles and four sacks.
The 29-year-old has appeared in 96 regular-season games and made 23 starts, totaling 182 tackles and 31 sacks with the Baltimore Ravens and Chicago Bears.