Faits :
A.
Le 15 mai 2014, X._ a déposé plainte pénale contre A._ pour injure et menaces; par courrier adressé le 20 juin 2014 au Ministère public du canton de Genève, il s'est constitué, par l'intermédiaire de son conseil, partie demanderesse au civil et au pénal.
Par ordonnance pénale du 9 septembre 2014, le ministère public a déclaré A._ coupable de menaces et l'a condamné à une peine pécuniaire de 30 jours-amende à 90 fr. le jour-amende, avec sursis pendant trois ans.
B.
X._ a formé opposition à l'ordonnance pénale susmentionnée auprès du ministère public, afin que celui-ci fixe les dépens. Il a conclu, à ce titre, au versement d'une indemnité de 945 francs. Par ordonnance sur opposition du 22 décembre 2014, le ministère public a maintenu l'ordonnance pénale du 9 septembre 2014 et transmis la procédure au Tribunal de police du canton de Genève.
Le Tribunal de police a rendu son ordonnance le 9 février 2015, déclarant irrecevable l'opposition de X._, au motif que celui-ci n'avait pas fait valoir de conclusions civiles par-devant le ministère public et n'avait dès lors pas qualité pour agir.
Statuant le 24 avril 2015, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté le recours de X._ contre l'ordonnance du tribunal de police du 9 février 2015, qu'elle a confirmée.
C.
Agissant par la voie du recours en matière pénale au Tribunal fédéral, X._ conclut à l'annulation de l'arrêt de la chambre pénale du 24 avril 2015 et au renvoi de la cause à l'autorité cantonale pour nouvelle décision dans le sens des considérants.
Invitée à se déterminer, la cour cantonale a renoncé à formuler des observations. Le ministère public conclut au rejet du recours.

Considérant en droit :
1.
La décision attaquée concerne la question des frais de défense dus à la partie plaignante dans le cadre d'une procédure pénale. Le recours en matière pénale est ouvert (cf. <ref-ruling> consid. 1.1.1 p. 45 s.).
2.
Le recourant se plaint d'une violation du droit fédéral, à savoir des art. 354 et 433 CPP. Il reproche également aux autorités cantonales d'avoir commis un déni de justice formel (art. 29 al. 1 Cst.).
2.1. La plainte déposée par le recourant a été traitée en procédure de l'ordonnance pénale selon les art. 352 ss CPP. Cette procédure spéciale relève de la compétence du ministère public, lequel est tenu de prononcer une telle ordonnance lorsque les conditions en sont remplies (cf. art. 352 al. 1 en relation avec l'art. 324 al. 1 CPP; arrêt 6B_367/2012 du 21 décembre 2012 consid. 3.2 et les références). L'ordonnance pénale constitue un mode simplifié de jugement qui permet d'abréger et d'accélérer la procédure pénale ordinaire (FF 2006 1272). Dans cette optique d'efficacité, lorsque le ministère public envisage de clore l'instruction par une ordonnance pénale, il n'est, à rigueur de texte, pas tenu d'en informer les parties par un avis de prochaine clôture (art. 318 CPP; cf. DONATSCH/SCHWARZENEGGER/ WOHLERS, Strafprozessrecht, 2014, p. 279; COQUOZ/MOERI, Le CPP: Questions choisies après 3 ans de pratique, in SJ 2014 II 37 p. 54).
2.2. En vertu de l'art. 353 al. 1 CPP, l'ordonnance pénale doit contenir les informations relatives aux frais et indemnités (let. g). Les art. 429 ss CPP sont applicables. Les dispositions du titre 10 du CPP sur les frais de procédure, indemnités et réparation du tort moral s'appliquent conformément à l'art. 416 CPP à toutes les procédures, par conséquent aussi à la procédure de l'ordonnance pénale. Le ministère public est donc tenu de se prononcer dans l'ordonnance pénale sur les demandes d'indemnité des parties au sens des art. 429 ss CPP (<ref-ruling> consid. 4.1 p. 107 et les références).
2.3. L'art. 433 al. 1 CPP permet à la partie plaignante de demander au prévenu une juste indemnité pour les dépenses obligatoires occasionnées par la procédure lorsqu'elle obtient gain de cause (let. a) ou lorsque le prévenu est astreint au paiement des frais conformément à l'art. 426 al. 2 CPP (let. b). L'al. 2 prévoit que la partie plaignante adresse ses prétentions à l'autorité pénale; elle doit les chiffrer et les justifier. Si elle ne s'acquitte pas de cette obligation, l'autorité pénale n'entre pas en matière sur la demande. La partie plaignante obtient gain de cause au sens de l'art. 433 al. 1 CPP si les prétentions civiles sont admises et/ou lorsque le prévenu est condamné. Dans ce dernier cas, la partie plaignante peut être indemnisée pour les frais de défense privée en relation avec la plainte pénale (<ref-ruling> consid. 4.1 et 4.3 p. 107 s.). La juste indemnité, notion qui laisse un large pouvoir d'appréciation au juge, couvre ainsi les dépenses et les frais nécessaires pour faire valoir le point de vue de la partie plaignante dans la procédure pénale. Il s'agit en premier lieu des frais d'avocat (arrêt 6B_495/2014 du 6 octobre 2014 consid. 2.1). L'art. 433 al. 2 CPP, qui impose à la partie plaignante de chiffrer et de justifier ses prétentions, s'explique par le fait que la maxime d'instruction ne s'applique pas, la partie plaignante devant demeurer active et demander elle-même une indemnisation, sous peine de péremption (arrêt 6B_965/2013 du 3 décembre 2013 consid. 3.1.2 et les références).
2.4. Selon l'art. 354 al. 1 let. b CPP, les autres personnes concernées peuvent former opposition contre l'ordonnance pénale. Ainsi, lorsque la partie plaignante estime que l'ordonnance pénale lui a, à tort, refusé totalement ou partiellement une indemnité, elle a qualité pour former opposition contre l'ordonnance pénale en tant qu'autre personne concernée au sens de cette disposition (<ref-ruling> consid. 5.2 p. 109 s. et les références).
3.
3.1. En l'espèce, le recourant a déposé une plainte contre A._ et s'est porté demandeur au civil et au pénal. Dans son ordonnance pénale du 9 septembre 2014, le ministère public a déclaré le prévenu coupable de menaces et l'a condamné à une peine pécuniaire; il ne s'est pas prononcé sur l'indemnité. L'opposition du recourant, qui ne portait que sur ce dernier point, a été déclarée irrecevable par le tribunal de police. La cour cantonale a confirmé cette solution. Elle a considéré que le recourant n'avait pas réclamé d'indemnité avant le prononcé de l'ordonnance pénale et qu'on ne pouvait par conséquent reprocher au ministère public de n'avoir pas statué sur cette question. Par ailleurs, il n'appartenait pas au ministère public d'inviter la partie plaignante à faire valoir sa demande d'indemnité préalablement au prononcé de son ordonnance.
Le recourant allègue que, selon la jurisprudence du Tribunal fédéral énoncée à l'<ref-ruling>, la partie plaignante a qualité pour recourir contre l'ordonnance pénale qui lui refuse l'allocation d'une indemnité. De plus, il serait excessif et impraticable d'exiger de la partie plaignante, qui a déclaré expressément vouloir participer à la procédure comme partie demanderesse au pénal comme au civil, de chiffrer son indemnité au moment du dépôt de la plainte.
3.2. La partie plaignante a qualité pour former opposition contre l'ordonnance pénale qui lui refuse une indemnité (<ref-ruling> consid. 5.2 p. 109 s. et les références). La cour cantonale estime toutefois que cette jurisprudence ne s'applique pas au cas d'espèce, le recourant n'ayant pas réclamé d'indemnité avant le prononcé de l'ordonnance pénale. Ce raisonnement ne résiste pas à l'examen. Nonobstant l'absence de maxime d'instruction (cf. supra consid. 2.3 in fine), rien n'empêche le ministère public, lorsqu'il envisage de rendre une ordonnance pénale, d'en informer la partie plaignante, la rendant attentive à son droit d'obtenir le cas échéant une indemnité, comme à son devoir de chiffrer et de documenter celle-ci (cf. SCHMID, Praxiskommentar StPO, 2013, n. 3a ad art. 318 CPP; CORNU, in Commentaire romand, Code de procédure pénale suisse, 2011, n. 3 ad art. 318 CPP; LANDSHUT/BOSSHARD, in Kommentar zur Schweizerischen Strafprozessordnung, Donatsch/Hansjakob/Lieber [éd.], 2014, n. 2a ad art. 318 CPP; MIZEL/RÉTORNAZ, in Commentaire romand, Code de procédure pénale suisse, 2011, n. 13 ad art. 433 CPP).
Lorsque, comme dans le cas d'espèce, le lésé s'était constitué partie plaignante et s'était fait représenter par un avocat, il appartenait au ministère public de l'interpeler avant de rendre son ordonnance, afin que celui-ci puisse à tout le moins présenter ses éventuelles prétentions en indemnisation pour ses frais de défense (art. 433 CPP). A défaut d'une telle interpellation, le ministère public et le tribunal de police à sa suite ne pouvaient faire l'économie de l'examen de l'indemnité réclamée par la partie plaignante dans le cadre de son opposition. En considérant que le ministère public n'était pas tenu d'inviter le recourant à faire valoir sa demande d'indemnité préalablement au prononcé de l'ordonnance pénale et en déniant sa qualité pour recourir au plan cantonal faute d'avoir fait valoir d'indemnité, la cour cantonale a par conséquent violé le droit fédéral.
4.
Il résulte de ce qui précède que le recours doit être admis et l'arrêt attaqué annulé. Le recourant, qui obtient gain de cause avec l'assistance d'un avocat, a droit à des dépens pour la procédure fédérale, à la charge du canton de Genève (art. 68 al. 1 LTF). Il n'est pas perçu de frais judiciaires (art. 66 al. 1 et 3 LTF). Le prévenu n'a pas été invité à se déterminer dans la présente procédure qui portait sur un aspect formel. Il pourra faire valoir ses moyens sur l'indemnisation dans le cadre du renvoi.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis. L'arrêt attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais.
3.
Le canton de Genève versera au conseil du recourant une indemnité de 3'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 16 mars 2016
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Mabillard