Asked about what concerned him about the Senate tax bill this week, Mr. McCain replied tersely: “A lot of things.”

Even those who know Mr. McCain best are unsure how he will vote, but if history is any guide, Republicans have reason to worry.

Mr. McCain has voted against big tax cuts before, including two that passed under another Republican president: George W. Bush. In that case, he bucked the majority of his party on the grounds that the 2001 and 2003 cuts overwhelmingly benefited the rich — a widespread criticism of the current Senate legislation and the bill that has already passed the House. Mr. McCain is also a deficit hawk and could find it hard to swallow a tax cut that will add around $1.5 trillion to the federal debt over 10 years.