Il participe à la NBA Summer League 2014 avec les 76ers ; en quatre matches, il a des moyennes de 21,0 points, 2,5 rebonds, 1,0 passe décisive et 1,8 interception par match.
Le 5 mars 2015, McRae rejoint les 87ers du Delaware, l'équipe de D-League affiliée aux 76ers. Il fait ses débuts avec les 87ers le lendemain, terminant la rencontre avec 5 points, 4 rebonds et 4 passes décisives en étant titulaire dans la victoire 123 à 112 contre les Mad Ants de Fort Wayne. Le 22 mars 2015, il réalise ses records de points avec 39 unités et de rebonds avec 13 prises dans la défaite 124 à 120 après prolongation chez le Blue d'Oklahoma City.
En juillet 2015, McRae rejoint les 76ers de Philadelphie pour la NBA Summer League 2015 durant laquelle il a des moyennes de 12,5 points et 3,0 rebonds en quatre matches. Le 27 septembre 2015, il signe avec les 76ers mais il est libéré par l'équipe le 26 octobre après avoir disputé sept matches de pré-saison.
Le 2 novembre 2015, il retourne chez les 87ers. Le 26 janvier 2016, McRae bat son record de points et établit celui de l'histoire de la compétition avec 61 points marqués, auxquels il ajoute 11 rebonds et 7 passes décisives, dans la victoire 130 à 123 après prolongation contre le Charge de Canton[1]. Il participe au D-League All-Star Game 2016 avec l'équipe de l'Est.
Suns de Phoenix (jan. - fév. 2016)
Le 29 janvier 2016, McRae signe un contrat de dix jours avec les Suns de Phoenix[2]. Le soir-même, il fait ses débuts en NBA, terminant avec 12 points, 4 passes décisives, 2 rebonds et 1 interception en 25 minutes en étant remplaçant dans la défaite 102 à 84 chez les Knicks de New York. Le 8 février 2016, il signe un second contrat de dix jours avec les Suns.
Le 11 février 2016, il est envoyé chez le Jam de Bakersfield afin de participer au D-League All-Star Game. Cinq jours plus tard, il est rappelé par les Suns après avoir marqué sept points et distribué sept passes décisives en 14 minutes en étant remplaçant dans l'équipe de l'Est qui remporte le match 128 à 124 contre l'équipe de l'Ouest. Le 19 février 2016, il marque huit points en 14 minutes, en étant remplaçant contre les Rockets de Houston. Après ce match, son contrat expire et il n'est pas conservé. Le 23 février, il retourne à Delaware.
Cavaliers de Cleveland (2016–2017)
Le 28 février 2016, McRae signe un contrat de dix jours avec les Cavaliers de Cleveland. Le soir-même, il fait ses débuts avec les Cavaliers dans la défaite 113 à 99 chez les Wizards de Washington, terminant la rencontre avec huit points et un rebond en sept minutes en étant remplaçant. Le 9 mars 2016, il signe un contrat de plusieurs années avec les Cavaliers. Le 11 avril 2016, il est envoyé chez le Charge de Canton en D-League pour un jour d'entraînement. Il participe avec Canton au premier match de la finale de la conférence Est de D-League contre le Skyforce de Sioux Falls. Le 13 avril 2016, il est rappelé par les Cavaliers. Le même soir, il réalisé son meilleur match en NBA en marquant 36 points auxquels il ajoute quatre rebonds et sept passes décisives en 47 minutes contre les Pistons de Détroit, dont le panier à trois points qui envoie son équipe en prolongation. Les Cavaliers accèdent aux finales NBA 2016 et remportent le titre de champion contre les Warriors de Golden State.
Le 28 juin 2016, les Cavaliers activent leur option d'équipe 2016-2017 sur le contrat de McRae. Il participe ensuite à la NBA Summer League 2016 avec les Cavaliers où il a des moyennes de 24,3 points par match, il est nommé dans le meilleur cinq majeur du tournoi.
Le 31 décembre 2016, il est titularisé pour la première fois de la saison en raison de la blessure de Kyrie Irving et marque 20 points, son record de la saison, dans la victoire 121 à 109 contre les Hornets de Charlotte. Le 1er mars 2017, McRae est libéré par les Cavaliers.
Baskonia (2017)
En , McRae quitte la NBA et rejoint le Saski Baskonia, club de première division espagnole. Il y signe un contrat d'un an[3]. En septembre, il se blesse à l'épaule et son indisponibilité est estimée à deux mois. Pour pallier cette absence, le Saski Baskonia signe un contrat de deux mois avec Matt Janning(en)[4],[5]. Il revient à la compétition fin octobre mais se blesse à l'épaule gauche et doit se faire opérer en . Son indisponibilité est estimée à 5 mois, le club négocie alors une rupture de contrat avec McRae[6],[7].
Le , il signe un contrat standard avec les Wizards[8].
Nuggets de Denver (fév. - mars 2020)
Le jeudi 6 février 2020, jour de la trade-deadline il est transféré aux Nuggets de Denver contre Shabazz Napier[9]. Le 1er mars 2020, il est libéré et peut s'engager en faveur de n'importe quelle franchise[10].