According to Jeff Passan of Yahoo Sports, the Kansas City Royals have signed Jason Vargas to a three-year deal.