The Republic of Ireland Under-21 winger joins for an undisclosed fee from Galway United.
The 20-year-old, whose deal could be extended by two further years should he impress, can play on the right of midfield or as a striker, and scored 10 goals for Galway last season.
Birmingham manager Alex McLeish told the club's official website: "James is a quick young winger with good feet. We had him over to take a look at him last season but it was at a stage where we'd already taken on players on loan and we couldn't do a deal.
"He came back on the radar quite recently and he's a good young prospect we hope can be a future star.
"We took a bit of a gamble with Keith Fahey coming over (from St Patrick's) last year and he's been a revelation. He was excellent in our bid to get back to the Premier League. He was one of the main catalysts.
"James is not for going into the team right now. We felt he was worth a wee shout because he didn't cost the earth but is hopefully one we can turn into a top player."