Yes he was, but he was born on a American naval Station which made it American territory and both his parents were US Citizen.
McCain was born in a civilian hospital outside of the Canal Zone. My sister was born in the same hospital. When she tried to register to vote she found out she was here illegally. My Dad got it straightened out.
McCain was not born in the Zone but in a public hospital in Colon about a mile away. The Naval Hospital in the Zone was built a year later.