Faits : A. A.a. Le 19 mars 2013, le dénommé A._ a été interpellé en séjour illégal. Il a déclaré avoir sporadiquement séjourné, entre 2010 et 2013, au domicile de X._. Le même jour, celle-ci a été entendue par la police. Elle a déclaré avoir entretenu une liaison avec A._ entre 2010 et 2011, période durant laquelle il avait séjourné à son domicile. Il avait repris contact avec elle en octobre 2012 à sa sortie de prison. Elle avait accepté de mettre à sa disposition son camping-car. Elle a reconnu savoir qu'il se trouvait en séjour illégal. A.b. Le 21 mars 2013, le Ministère public a rendu une ordonnance pénale à l'encontre de X._ et l'a condamnée, pour infraction à l'art. 116 al. 1 let. a LEtr, à une peine pécuniaire de 60 jours-amende à 70 fr. le jour, avec sursis durant trois ans. Il lui était reproché d'avoir d'août 2010 à fin juin 2011 puis d'octobre 2012 au 19 mars 2013 logé A._ à son domicile respectivement mis à disposition son camping-car pour qu'il y habite. Le 10 avril 2013, X._, représentée par son avocat, a formé opposition contre l'ordonnance pénale et a réclamé une indemnité pour ses frais de défense et son tort moral. Le 10 juillet 2013, le Ministère public a procédé à son audition. Assistée de son avocat, elle a expliqué que lors de son interrogatoire par la police, elle ne se sentait pas en faute. Elle avait cru que A._ était de nationalité croate et qu'il pouvait venir en Suisse. Ce n'est qu'ensuite qu'il lui avait indiqué être kosovar. En octobre 2012, elle n'avait pas pensé qu'il n'avait pas le droit d'être en Suisse dès lors qu'il avait été libéré sans être expulsé. Le 9 octobre 2013, statuant sur l'opposition, le Ministère public a classé la procédure dirigée à l'encontre de X._, relevant la contradiction entre les déclarations à la police et celles lors de l'audition du 10 juillet 2013. B. Le Ministère public n'ayant pas statué sur ses prétentions en indemnisation, X._ a formé une requête en indemnisation et réparation du tort moral. Par ordonnance du 31 octobre 2013, le Ministère public a refusé de lui allouer une indemnité pour les dépenses occasionnées pour ses frais de défense et de lui allouer une indemnité pour tort moral (art. 429 al. 1 let. a et c CPP). Par arrêt du 6 janvier 2014, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté le recours de X._ contre cette ordonnance. C. X._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 6 janvier 2014, en concluant, avec suite de dépens, à sa réforme en ce sens qu'il lui est alloué 5'670 fr. pour ses frais de défense relatifs à la procédure de première et deuxième instances cantonale. Elle sollicite par ailleurs l'assistance judiciaire. La cour cantonale et le Ministère public ont déclaré n'avoir pas d'observations à formuler et se sont référés à l'arrêt attaqué.