@cyanheads/pubmed-mcp-server 1.3.4 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/README.md +21 -21
  2. package/dist/config/index.d.ts +10 -0
  3. package/dist/config/index.d.ts.map +1 -0
  4. package/dist/config/index.js +69 -12
  5. package/dist/config/index.js.map +1 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +2 -1
  9. package/dist/index.js.map +1 -0
  10. package/dist/mcp-server/core/managedMcpServer.d.ts +48 -0
  11. package/dist/mcp-server/core/managedMcpServer.d.ts.map +1 -0
  12. package/dist/mcp-server/core/managedMcpServer.js +58 -0
  13. package/dist/mcp-server/core/managedMcpServer.js.map +1 -0
  14. package/dist/mcp-server/server.d.ts +1 -0
  15. package/dist/mcp-server/server.d.ts.map +1 -0
  16. package/dist/mcp-server/server.js +12 -11
  17. package/dist/mcp-server/server.js.map +1 -0
  18. package/dist/mcp-server/tools/pubmedArticleConnections/index.d.ts +7 -0
  19. package/dist/mcp-server/tools/pubmedArticleConnections/index.d.ts.map +1 -0
  20. package/dist/mcp-server/tools/pubmedArticleConnections/index.js +7 -0
  21. package/dist/mcp-server/tools/pubmedArticleConnections/index.js.map +1 -0
  22. package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.d.ts +10 -0
  23. package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.d.ts.map +1 -0
  24. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/citationFormatter.js +3 -2
  25. package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.js.map +1 -0
  26. package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.d.ts +10 -0
  27. package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.d.ts.map +1 -0
  28. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/elinkHandler.js +3 -2
  29. package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.js.map +1 -0
  30. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/index.d.ts +10 -9
  31. package/dist/mcp-server/tools/pubmedArticleConnections/logic/index.d.ts.map +1 -0
  32. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/index.js +15 -14
  33. package/dist/mcp-server/tools/pubmedArticleConnections/logic/index.js.map +1 -0
  34. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/types.d.ts +5 -4
  35. package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.d.ts.map +1 -0
  36. package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.js +6 -0
  37. package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.js.map +1 -0
  38. package/dist/mcp-server/tools/pubmedArticleConnections/registration.d.ts +12 -0
  39. package/dist/mcp-server/tools/pubmedArticleConnections/registration.d.ts.map +1 -0
  40. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/registration.js +12 -11
  41. package/dist/mcp-server/tools/pubmedArticleConnections/registration.js.map +1 -0
  42. package/dist/mcp-server/tools/pubmedFetchContents/index.d.ts +7 -0
  43. package/dist/mcp-server/tools/pubmedFetchContents/index.d.ts.map +1 -0
  44. package/dist/mcp-server/tools/pubmedFetchContents/index.js +7 -0
  45. package/dist/mcp-server/tools/pubmedFetchContents/index.js.map +1 -0
  46. package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/logic.d.ts +7 -6
  47. package/dist/mcp-server/tools/pubmedFetchContents/logic.d.ts.map +1 -0
  48. package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/logic.js +20 -19
  49. package/dist/mcp-server/tools/pubmedFetchContents/logic.js.map +1 -0
  50. package/dist/mcp-server/tools/pubmedFetchContents/registration.d.ts +11 -0
  51. package/dist/mcp-server/tools/pubmedFetchContents/registration.d.ts.map +1 -0
  52. package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/registration.js +13 -12
  53. package/dist/mcp-server/tools/pubmedFetchContents/registration.js.map +1 -0
  54. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/index.d.ts +3 -2
  55. package/dist/mcp-server/tools/pubmedGenerateChart/index.d.ts.map +1 -0
  56. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/index.js +3 -2
  57. package/dist/mcp-server/tools/pubmedGenerateChart/index.js.map +1 -0
  58. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.d.ts +5 -4
  59. package/dist/mcp-server/tools/pubmedGenerateChart/logic.d.ts.map +1 -0
  60. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.js +15 -14
  61. package/dist/mcp-server/tools/pubmedGenerateChart/logic.js.map +1 -0
  62. package/dist/mcp-server/tools/pubmedGenerateChart/registration.d.ts +8 -0
  63. package/dist/mcp-server/tools/pubmedGenerateChart/registration.d.ts.map +1 -0
  64. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/registration.js +10 -13
  65. package/dist/mcp-server/tools/pubmedGenerateChart/registration.js.map +1 -0
  66. package/dist/mcp-server/tools/pubmedResearchAgent/index.d.ts +1 -0
  67. package/dist/mcp-server/tools/pubmedResearchAgent/index.d.ts.map +1 -0
  68. package/dist/mcp-server/tools/pubmedResearchAgent/index.js +1 -0
  69. package/dist/mcp-server/tools/pubmedResearchAgent/index.js.map +1 -0
  70. package/dist/mcp-server/tools/pubmedResearchAgent/logic/index.d.ts +1 -0
  71. package/dist/mcp-server/tools/pubmedResearchAgent/logic/index.d.ts.map +1 -0
  72. package/dist/mcp-server/tools/pubmedResearchAgent/logic/index.js +1 -0
  73. package/dist/mcp-server/tools/pubmedResearchAgent/logic/index.js.map +1 -0
  74. package/dist/mcp-server/tools/pubmedResearchAgent/logic/inputSchema.d.ts +1 -0
  75. package/dist/mcp-server/tools/pubmedResearchAgent/logic/inputSchema.d.ts.map +1 -0
  76. package/dist/mcp-server/tools/pubmedResearchAgent/logic/inputSchema.js +1 -0
  77. package/dist/mcp-server/tools/pubmedResearchAgent/logic/inputSchema.js.map +1 -0
  78. package/dist/mcp-server/tools/pubmedResearchAgent/logic/outputTypes.d.ts +1 -0
  79. package/dist/mcp-server/tools/pubmedResearchAgent/logic/outputTypes.d.ts.map +1 -0
  80. package/dist/mcp-server/tools/pubmedResearchAgent/logic/outputTypes.js +1 -0
  81. package/dist/mcp-server/tools/pubmedResearchAgent/logic/outputTypes.js.map +1 -0
  82. package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.d.ts +1 -0
  83. package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.d.ts.map +1 -0
  84. package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.js +1 -0
  85. package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.js.map +1 -0
  86. package/dist/mcp-server/tools/pubmedResearchAgent/logic.d.ts +1 -0
  87. package/dist/mcp-server/tools/pubmedResearchAgent/logic.d.ts.map +1 -0
  88. package/dist/mcp-server/tools/pubmedResearchAgent/logic.js +1 -0
  89. package/dist/mcp-server/tools/pubmedResearchAgent/logic.js.map +1 -0
  90. package/dist/mcp-server/tools/pubmedResearchAgent/registration.d.ts +1 -0
  91. package/dist/mcp-server/tools/pubmedResearchAgent/registration.d.ts.map +1 -0
  92. package/dist/mcp-server/tools/pubmedResearchAgent/registration.js +1 -0
  93. package/dist/mcp-server/tools/pubmedResearchAgent/registration.js.map +1 -0
  94. package/dist/mcp-server/tools/pubmedSearchArticles/index.d.ts +7 -0
  95. package/dist/mcp-server/tools/pubmedSearchArticles/index.d.ts.map +1 -0
  96. package/dist/mcp-server/tools/pubmedSearchArticles/index.js +7 -0
  97. package/dist/mcp-server/tools/pubmedSearchArticles/index.js.map +1 -0
  98. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.d.ts +8 -7
  99. package/dist/mcp-server/tools/pubmedSearchArticles/logic.d.ts.map +1 -0
  100. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.js +12 -11
  101. package/dist/mcp-server/tools/pubmedSearchArticles/logic.js.map +1 -0
  102. package/dist/mcp-server/tools/pubmedSearchArticles/registration.d.ts +11 -0
  103. package/dist/mcp-server/tools/pubmedSearchArticles/registration.d.ts.map +1 -0
  104. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.js +13 -12
  105. package/dist/mcp-server/tools/pubmedSearchArticles/registration.js.map +1 -0
  106. package/dist/mcp-server/transports/auth/authFactory.d.ts +1 -0
  107. package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
  108. package/dist/mcp-server/transports/auth/authFactory.js +1 -0
  109. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
  110. package/dist/mcp-server/transports/auth/authMiddleware.d.ts +1 -0
  111. package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
  112. package/dist/mcp-server/transports/auth/authMiddleware.js +1 -0
  113. package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
  114. package/dist/mcp-server/transports/auth/index.d.ts +2 -1
  115. package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
  116. package/dist/mcp-server/transports/auth/index.js +1 -0
  117. package/dist/mcp-server/transports/auth/index.js.map +1 -0
  118. package/dist/mcp-server/transports/auth/lib/authContext.d.ts +1 -0
  119. package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
  120. package/dist/mcp-server/transports/auth/lib/authContext.js +1 -0
  121. package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
  122. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +1 -0
  123. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
  124. package/dist/mcp-server/transports/auth/lib/authTypes.js +1 -0
  125. package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
  126. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +1 -0
  127. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
  128. package/dist/mcp-server/transports/auth/lib/authUtils.js +1 -0
  129. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
  130. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +1 -0
  131. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
  132. package/dist/mcp-server/transports/auth/strategies/authStrategy.js +1 -0
  133. package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
  134. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +1 -0
  135. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
  136. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +6 -0
  137. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
  138. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +1 -0
  139. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
  140. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +7 -0
  141. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
  142. package/dist/mcp-server/transports/core/baseTransportManager.d.ts +1 -0
  143. package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
  144. package/dist/mcp-server/transports/core/baseTransportManager.js +2 -0
  145. package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
  146. package/dist/mcp-server/transports/core/headerUtils.d.ts +20 -0
  147. package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -0
  148. package/dist/mcp-server/transports/core/headerUtils.js +38 -0
  149. package/dist/mcp-server/transports/core/headerUtils.js.map +1 -0
  150. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +61 -7
  151. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
  152. package/dist/mcp-server/transports/core/honoNodeBridge.js +102 -14
  153. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
  154. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +54 -8
  155. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
  156. package/dist/mcp-server/transports/core/statefulTransportManager.js +185 -120
  157. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
  158. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +45 -7
  159. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
  160. package/dist/mcp-server/transports/core/statelessTransportManager.js +85 -24
  161. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
  162. package/dist/mcp-server/transports/core/transportTypes.d.ts +59 -21
  163. package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
  164. package/dist/mcp-server/transports/core/transportTypes.js +4 -1
  165. package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
  166. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +1 -0
  167. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
  168. package/dist/mcp-server/transports/http/httpErrorHandler.js +1 -0
  169. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
  170. package/dist/mcp-server/transports/http/httpTransport.d.ts +4 -3
  171. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
  172. package/dist/mcp-server/transports/http/httpTransport.js +52 -16
  173. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
  174. package/dist/mcp-server/transports/http/httpTypes.d.ts +1 -0
  175. package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
  176. package/dist/mcp-server/transports/http/httpTypes.js +1 -0
  177. package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
  178. package/dist/mcp-server/transports/http/index.d.ts +1 -0
  179. package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
  180. package/dist/mcp-server/transports/http/index.js +1 -0
  181. package/dist/mcp-server/transports/http/index.js.map +1 -0
  182. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +4 -2
  183. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
  184. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +27 -24
  185. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
  186. package/dist/mcp-server/transports/stdio/index.d.ts +1 -0
  187. package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
  188. package/dist/mcp-server/transports/stdio/index.js +1 -0
  189. package/dist/mcp-server/transports/stdio/index.js.map +1 -0
  190. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +1 -0
  191. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
  192. package/dist/mcp-server/transports/stdio/stdioTransport.js +1 -0
  193. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
  194. package/dist/services/NCBI/core/ncbiConstants.d.ts +1 -0
  195. package/dist/services/NCBI/core/ncbiConstants.d.ts.map +1 -0
  196. package/dist/services/NCBI/core/ncbiConstants.js +1 -0
  197. package/dist/services/NCBI/core/ncbiConstants.js.map +1 -0
  198. package/dist/services/NCBI/core/ncbiCoreApiClient.d.ts +1 -0
  199. package/dist/services/NCBI/core/ncbiCoreApiClient.d.ts.map +1 -0
  200. package/dist/services/NCBI/core/ncbiCoreApiClient.js +2 -0
  201. package/dist/services/NCBI/core/ncbiCoreApiClient.js.map +1 -0
  202. package/dist/services/NCBI/core/ncbiRequestQueueManager.d.ts +1 -1
  203. package/dist/services/NCBI/core/ncbiRequestQueueManager.d.ts.map +1 -0
  204. package/dist/services/NCBI/core/ncbiRequestQueueManager.js +5 -8
  205. package/dist/services/NCBI/core/ncbiRequestQueueManager.js.map +1 -0
  206. package/dist/services/NCBI/core/ncbiResponseHandler.d.ts +1 -0
  207. package/dist/services/NCBI/core/ncbiResponseHandler.d.ts.map +1 -0
  208. package/dist/services/NCBI/core/ncbiResponseHandler.js +3 -1
  209. package/dist/services/NCBI/core/ncbiResponseHandler.js.map +1 -0
  210. package/dist/services/NCBI/core/ncbiService.d.ts +1 -0
  211. package/dist/services/NCBI/core/ncbiService.d.ts.map +1 -0
  212. package/dist/services/NCBI/core/ncbiService.js +4 -0
  213. package/dist/services/NCBI/core/ncbiService.js.map +1 -0
  214. package/dist/services/NCBI/parsing/eSummaryResultParser.d.ts +1 -0
  215. package/dist/services/NCBI/parsing/eSummaryResultParser.d.ts.map +1 -0
  216. package/dist/services/NCBI/parsing/eSummaryResultParser.js +2 -0
  217. package/dist/services/NCBI/parsing/eSummaryResultParser.js.map +1 -0
  218. package/dist/services/NCBI/parsing/index.d.ts +1 -0
  219. package/dist/services/NCBI/parsing/index.d.ts.map +1 -0
  220. package/dist/services/NCBI/parsing/index.js +1 -0
  221. package/dist/services/NCBI/parsing/index.js.map +1 -0
  222. package/dist/services/NCBI/parsing/pubmedArticleStructureParser.d.ts +1 -0
  223. package/dist/services/NCBI/parsing/pubmedArticleStructureParser.d.ts.map +1 -0
  224. package/dist/services/NCBI/parsing/pubmedArticleStructureParser.js +1 -0
  225. package/dist/services/NCBI/parsing/pubmedArticleStructureParser.js.map +1 -0
  226. package/dist/services/NCBI/parsing/xmlGenericHelpers.d.ts +1 -0
  227. package/dist/services/NCBI/parsing/xmlGenericHelpers.d.ts.map +1 -0
  228. package/dist/services/NCBI/parsing/xmlGenericHelpers.js +1 -0
  229. package/dist/services/NCBI/parsing/xmlGenericHelpers.js.map +1 -0
  230. package/dist/types-global/errors.d.ts +1 -0
  231. package/dist/types-global/errors.d.ts.map +1 -0
  232. package/dist/types-global/errors.js +10 -0
  233. package/dist/types-global/errors.js.map +1 -0
  234. package/dist/types-global/pubmedXml.d.ts +1 -0
  235. package/dist/types-global/pubmedXml.d.ts.map +1 -0
  236. package/dist/types-global/pubmedXml.js +1 -0
  237. package/dist/types-global/pubmedXml.js.map +1 -0
  238. package/dist/utils/index.d.ts +3 -0
  239. package/dist/utils/index.d.ts.map +1 -0
  240. package/dist/utils/index.js +3 -0
  241. package/dist/utils/index.js.map +1 -0
  242. package/dist/utils/internal/errorHandler.d.ts +1 -7
  243. package/dist/utils/internal/errorHandler.d.ts.map +1 -0
  244. package/dist/utils/internal/errorHandler.js +28 -6
  245. package/dist/utils/internal/errorHandler.js.map +1 -0
  246. package/dist/utils/internal/index.d.ts +2 -0
  247. package/dist/utils/internal/index.d.ts.map +1 -0
  248. package/dist/utils/internal/index.js +2 -0
  249. package/dist/utils/internal/index.js.map +1 -0
  250. package/dist/utils/internal/logger.d.ts +1 -0
  251. package/dist/utils/internal/logger.d.ts.map +1 -0
  252. package/dist/utils/internal/logger.js +14 -8
  253. package/dist/utils/internal/logger.js.map +1 -0
  254. package/dist/utils/internal/performance.d.ts +22 -0
  255. package/dist/utils/internal/performance.d.ts.map +1 -0
  256. package/dist/utils/internal/performance.js +104 -0
  257. package/dist/utils/internal/performance.js.map +1 -0
  258. package/dist/utils/internal/requestContext.d.ts +1 -0
  259. package/dist/utils/internal/requestContext.d.ts.map +1 -0
  260. package/dist/utils/internal/requestContext.js +11 -0
  261. package/dist/utils/internal/requestContext.js.map +1 -0
  262. package/dist/utils/metrics/index.d.ts +1 -0
  263. package/dist/utils/metrics/index.d.ts.map +1 -0
  264. package/dist/utils/metrics/index.js +1 -0
  265. package/dist/utils/metrics/index.js.map +1 -0
  266. package/dist/utils/metrics/tokenCounter.d.ts +1 -0
  267. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
  268. package/dist/utils/metrics/tokenCounter.js +1 -0
  269. package/dist/utils/metrics/tokenCounter.js.map +1 -0
  270. package/dist/utils/network/fetchWithTimeout.d.ts +1 -0
  271. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
  272. package/dist/utils/network/fetchWithTimeout.js +19 -0
  273. package/dist/utils/network/fetchWithTimeout.js.map +1 -0
  274. package/dist/utils/network/index.d.ts +1 -0
  275. package/dist/utils/network/index.d.ts.map +1 -0
  276. package/dist/utils/network/index.js +1 -0
  277. package/dist/utils/network/index.js.map +1 -0
  278. package/dist/utils/parsing/dateParser.d.ts +3 -3
  279. package/dist/utils/parsing/dateParser.d.ts.map +1 -0
  280. package/dist/utils/parsing/dateParser.js +3 -2
  281. package/dist/utils/parsing/dateParser.js.map +1 -0
  282. package/dist/utils/parsing/index.d.ts +1 -0
  283. package/dist/utils/parsing/index.d.ts.map +1 -0
  284. package/dist/utils/parsing/index.js +1 -0
  285. package/dist/utils/parsing/index.js.map +1 -0
  286. package/dist/utils/parsing/jsonParser.d.ts +2 -1
  287. package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
  288. package/dist/utils/parsing/jsonParser.js +5 -3
  289. package/dist/utils/parsing/jsonParser.js.map +1 -0
  290. package/dist/utils/scheduling/index.d.ts +1 -0
  291. package/dist/utils/scheduling/index.d.ts.map +1 -0
  292. package/dist/utils/scheduling/index.js +1 -0
  293. package/dist/utils/scheduling/index.js.map +1 -0
  294. package/dist/utils/scheduling/scheduler.d.ts +1 -0
  295. package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
  296. package/dist/utils/scheduling/scheduler.js +3 -1
  297. package/dist/utils/scheduling/scheduler.js.map +1 -0
  298. package/dist/utils/security/idGenerator.d.ts +1 -0
  299. package/dist/utils/security/idGenerator.d.ts.map +1 -0
  300. package/dist/utils/security/idGenerator.js +32 -27
  301. package/dist/utils/security/idGenerator.js.map +1 -0
  302. package/dist/utils/security/index.d.ts +1 -0
  303. package/dist/utils/security/index.d.ts.map +1 -0
  304. package/dist/utils/security/index.js +1 -0
  305. package/dist/utils/security/index.js.map +1 -0
  306. package/dist/utils/security/rateLimiter.d.ts +1 -0
  307. package/dist/utils/security/rateLimiter.d.ts.map +1 -0
  308. package/dist/utils/security/rateLimiter.js +45 -22
  309. package/dist/utils/security/rateLimiter.js.map +1 -0
  310. package/dist/utils/security/sanitization.d.ts +1 -0
  311. package/dist/utils/security/sanitization.d.ts.map +1 -0
  312. package/dist/utils/security/sanitization.js +65 -63
  313. package/dist/utils/security/sanitization.js.map +1 -0
  314. package/dist/utils/telemetry/instrumentation.d.ts +8 -0
  315. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
  316. package/dist/utils/telemetry/instrumentation.js +179 -0
  317. package/dist/utils/telemetry/instrumentation.js.map +1 -0
  318. package/dist/utils/telemetry/semconv.d.ts +16 -0
  319. package/dist/utils/telemetry/semconv.d.ts.map +1 -0
  320. package/dist/utils/telemetry/semconv.js +16 -0
  321. package/dist/utils/telemetry/semconv.js.map +1 -0
  322. package/package.json +31 -14
  323. package/dist/mcp-server/tools/fetchPubMedContent/index.d.ts +0 -6
  324. package/dist/mcp-server/tools/fetchPubMedContent/index.js +0 -6
  325. package/dist/mcp-server/tools/fetchPubMedContent/registration.d.ts +0 -10
  326. package/dist/mcp-server/tools/generatePubMedChart/registration.d.ts +0 -7
  327. package/dist/mcp-server/tools/getPubMedArticleConnections/index.d.ts +0 -6
  328. package/dist/mcp-server/tools/getPubMedArticleConnections/index.js +0 -6
  329. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter.d.ts +0 -9
  330. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler.d.ts +0 -9
  331. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/types.js +0 -5
  332. package/dist/mcp-server/tools/getPubMedArticleConnections/registration.d.ts +0 -11
  333. package/dist/mcp-server/tools/searchPubMedArticles/index.d.ts +0 -6
  334. package/dist/mcp-server/tools/searchPubMedArticles/index.js +0 -6
  335. package/dist/mcp-server/tools/searchPubMedArticles/registration.d.ts +0 -10
@@ -0,0 +1,179 @@
1
+ /**
2
+ * @fileoverview OpenTelemetry SDK initialization and lifecycle management.
3
+ * This file MUST be imported before any other module in the application's
4
+ * entry point (`src/index.ts`) to ensure all modules are correctly instrumented.
5
+ * It handles both the initialization (startup) and graceful shutdown of the SDK.
6
+ * @module src/utils/telemetry/instrumentation
7
+ */
8
+ import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
9
+ import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
10
+ import { WinstonInstrumentation } from "@opentelemetry/instrumentation-winston";
11
+ import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
12
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
13
+ import { resourceFromAttributes } from "@opentelemetry/resources";
14
+ import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
15
+ import { NodeSDK } from "@opentelemetry/sdk-node";
16
+ import { BatchSpanProcessor, TraceIdRatioBasedSampler, } from "@opentelemetry/sdk-trace-node";
17
+ import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION, } from "@opentelemetry/semantic-conventions/incubating";
18
+ import path from "path";
19
+ import winston from "winston";
20
+ import { config } from "../../config/index.js";
21
+ export let sdk = null;
22
+ if (config.openTelemetry.enabled) {
23
+ // --- Custom Diagnostic Logger for OpenTelemetry ---
24
+ class OtelDiagnosticLogger extends DiagConsoleLogger {
25
+ winstonLogger;
26
+ constructor(logLevel) {
27
+ super();
28
+ const logsDir = config.logsPath;
29
+ if (!logsDir) {
30
+ if (process.stdout.isTTY) {
31
+ console.error("OpenTelemetry Diagnostics: Log directory not available. Diagnostics will be written to console only.");
32
+ }
33
+ this.winstonLogger = winston.createLogger({
34
+ level: DiagLogLevel[logLevel].toLowerCase(),
35
+ transports: [new winston.transports.Console()],
36
+ });
37
+ return;
38
+ }
39
+ this.winstonLogger = winston.createLogger({
40
+ level: DiagLogLevel[logLevel].toLowerCase(),
41
+ format: winston.format.combine(winston.format.timestamp(), winston.format.json()),
42
+ transports: [
43
+ new winston.transports.File({
44
+ filename: path.join(logsDir, "opentelemetry.log"),
45
+ maxsize: 5 * 1024 * 1024,
46
+ maxFiles: 3,
47
+ }),
48
+ ],
49
+ });
50
+ }
51
+ error = (message, ...args) => {
52
+ this.winstonLogger.error(message, { args });
53
+ };
54
+ warn = (message, ...args) => {
55
+ this.winstonLogger.warn(message, { args });
56
+ };
57
+ info = (message, ...args) => {
58
+ this.winstonLogger.info(message, { args });
59
+ };
60
+ debug = (message, ...args) => {
61
+ this.winstonLogger.debug(message, { args });
62
+ };
63
+ verbose = (message, ...args) => {
64
+ this.winstonLogger.verbose(message, { args });
65
+ };
66
+ }
67
+ /**
68
+ * A custom SpanProcessor that writes ended spans to a log file using Winston.
69
+ */
70
+ class FileSpanProcessor {
71
+ traceLogger;
72
+ constructor() {
73
+ const logsDir = config.logsPath;
74
+ if (!logsDir) {
75
+ diag.error("[FileSpanProcessor] Cannot initialize: logsPath is not available.");
76
+ this.traceLogger = winston.createLogger({ silent: true });
77
+ return;
78
+ }
79
+ this.traceLogger = winston.createLogger({
80
+ format: winston.format.json(),
81
+ transports: [
82
+ new winston.transports.File({
83
+ filename: path.join(logsDir, "traces.log"),
84
+ maxsize: 10 * 1024 * 1024, // 10MB
85
+ maxFiles: 5,
86
+ }),
87
+ ],
88
+ });
89
+ }
90
+ forceFlush() {
91
+ return Promise.resolve();
92
+ }
93
+ onStart(_span) { }
94
+ onEnd(span) {
95
+ const loggableSpan = {
96
+ traceId: span.spanContext().traceId,
97
+ spanId: span.spanContext().spanId,
98
+ name: span.name,
99
+ kind: span.kind,
100
+ startTime: span.startTime,
101
+ endTime: span.endTime,
102
+ duration: span.duration,
103
+ status: span.status,
104
+ attributes: span.attributes,
105
+ events: span.events,
106
+ };
107
+ this.traceLogger.info(loggableSpan);
108
+ }
109
+ shutdown() {
110
+ return new Promise((resolve) => this.traceLogger.on("finish", resolve).end());
111
+ }
112
+ }
113
+ try {
114
+ const otelLogLevel = DiagLogLevel[config.openTelemetry.logLevel] ?? DiagLogLevel.INFO;
115
+ diag.setLogger(new OtelDiagnosticLogger(otelLogLevel), otelLogLevel);
116
+ const resource = resourceFromAttributes({
117
+ [ATTR_SERVICE_NAME]: config.openTelemetry.serviceName,
118
+ [ATTR_SERVICE_VERSION]: config.openTelemetry.serviceVersion,
119
+ "deployment.environment.name": config.environment,
120
+ });
121
+ let spanProcessor;
122
+ if (config.openTelemetry.tracesEndpoint) {
123
+ diag.info(`Using OTLP exporter for traces, endpoint: ${config.openTelemetry.tracesEndpoint}`);
124
+ const traceExporter = new OTLPTraceExporter({
125
+ url: config.openTelemetry.tracesEndpoint,
126
+ });
127
+ spanProcessor = new BatchSpanProcessor(traceExporter);
128
+ }
129
+ else {
130
+ diag.info("No OTLP endpoint configured. Using FileSpanProcessor for local trace logging.");
131
+ spanProcessor = new FileSpanProcessor();
132
+ }
133
+ const metricReader = config.openTelemetry.metricsEndpoint
134
+ ? new PeriodicExportingMetricReader({
135
+ exporter: new OTLPMetricExporter({
136
+ url: config.openTelemetry.metricsEndpoint,
137
+ }),
138
+ exportIntervalMillis: 15000,
139
+ })
140
+ : undefined;
141
+ sdk = new NodeSDK({
142
+ resource,
143
+ spanProcessors: [spanProcessor],
144
+ metricReader,
145
+ sampler: new TraceIdRatioBasedSampler(config.openTelemetry.samplingRatio),
146
+ instrumentations: [
147
+ getNodeAutoInstrumentations({
148
+ "@opentelemetry/instrumentation-http": {
149
+ enabled: true,
150
+ ignoreIncomingRequestHook: (req) => req.url === "/healthz",
151
+ },
152
+ "@opentelemetry/instrumentation-fs": { enabled: false },
153
+ }),
154
+ new WinstonInstrumentation({
155
+ enabled: true,
156
+ }),
157
+ ],
158
+ });
159
+ sdk.start();
160
+ diag.info(`OpenTelemetry initialized for ${config.openTelemetry.serviceName} v${config.openTelemetry.serviceVersion}`);
161
+ }
162
+ catch (error) {
163
+ diag.error("Error initializing OpenTelemetry", error);
164
+ process.exit(1);
165
+ }
166
+ }
167
+ /**
168
+ * Gracefully shuts down the OpenTelemetry SDK.
169
+ * This function is called during the application's shutdown sequence.
170
+ */
171
+ export async function shutdownOpenTelemetry() {
172
+ if (sdk) {
173
+ await sdk
174
+ .shutdown()
175
+ .then(() => diag.info("OpenTelemetry terminated"))
176
+ .catch((error) => diag.error("Error terminating OpenTelemetry", error));
177
+ }
178
+ }
179
+ //# sourceMappingURL=instrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview Defines local OpenTelemetry semantic convention constants to ensure
3
+ * stability and avoid dependency conflicts with different versions of
4
+ * `@opentelemetry/semantic-conventions`.
5
+ * @module src/utils/telemetry/semconv
6
+ */
7
+ /**
8
+ * The method or function name, or equivalent (usually rightmost part of the code unit's name).
9
+ */
10
+ export declare const ATTR_CODE_FUNCTION = "code.function";
11
+ /**
12
+ * The "namespace" within which `code.function` is defined.
13
+ * Usually the qualified class or module name, etc.
14
+ */
15
+ export declare const ATTR_CODE_NAMESPACE = "code.namespace";
16
+ //# sourceMappingURL=semconv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semconv.d.ts","sourceRoot":"","sources":["../../../src/utils/telemetry/semconv.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,mBAAmB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview Defines local OpenTelemetry semantic convention constants to ensure
3
+ * stability and avoid dependency conflicts with different versions of
4
+ * `@opentelemetry/semantic-conventions`.
5
+ * @module src/utils/telemetry/semconv
6
+ */
7
+ /**
8
+ * The method or function name, or equivalent (usually rightmost part of the code unit's name).
9
+ */
10
+ export const ATTR_CODE_FUNCTION = "code.function";
11
+ /**
12
+ * The "namespace" within which `code.function` is defined.
13
+ * Usually the qualified class or module name, etc.
14
+ */
15
+ export const ATTR_CODE_NAMESPACE = "code.namespace";
16
+ //# sourceMappingURL=semconv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semconv.js","sourceRoot":"","sources":["../../../src/utils/telemetry/semconv.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyanheads/pubmed-mcp-server",
3
- "version": "1.3.4",
4
- "description": "A Model Context Protocol (MCP) server enabling AI agents to intelligently search, retrieve, and analyze biomedical literature from PubMed via NCBI E-utilities. Built on the mcp-ts-template for robust, production-ready performance.",
3
+ "version": "1.4.1",
4
+ "description": "Production-ready PubMed Model Context Protocol (MCP) server that empowers AI agents and research tools with comprehensive access to PubMed's article database. Enables advanced, automated LLM workflows for searching, retrieving, analyzing, and visualizing biomedical and scientific literature via NCBI E-utilities.",
5
5
  "main": "dist/index.js",
6
6
  "files": [
7
7
  "dist"
@@ -32,10 +32,19 @@
32
32
  "inspector": "mcp-inspector --config mcp.json --server pubmed-mcp-server"
33
33
  },
34
34
  "dependencies": {
35
- "@hono/node-server": "^1.15.0",
36
- "@modelcontextprotocol/sdk": "^1.17.0",
37
- "@types/jsonwebtoken": "^9.0.10",
38
- "@types/node": "^24.1.0",
35
+ "@hono/node-server": "^1.17.1",
36
+ "@modelcontextprotocol/sdk": "^1.17.1",
37
+ "@opentelemetry/api": "^1.9.0",
38
+ "@opentelemetry/auto-instrumentations-node": "^0.62.0",
39
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.203.0",
40
+ "@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
41
+ "@opentelemetry/instrumentation-winston": "^0.48.0",
42
+ "@opentelemetry/resources": "^2.0.1",
43
+ "@opentelemetry/sdk-metrics": "^2.0.1",
44
+ "@opentelemetry/sdk-node": "^0.203.0",
45
+ "@opentelemetry/sdk-trace-node": "^2.0.1",
46
+ "@opentelemetry/semantic-conventions": "^1.36.0",
47
+ "@types/node": "^24.2.0",
39
48
  "@types/sanitize-html": "^2.16.0",
40
49
  "@types/validator": "13.15.2",
41
50
  "axios": "^1.11.0",
@@ -47,15 +56,15 @@
47
56
  "fast-xml-parser": "^5.2.5",
48
57
  "hono": "^4.8.4",
49
58
  "jose": "^6.0.12",
50
- "jsonwebtoken": "^9.0.2",
59
+ "js-yaml": "^4.1.0",
60
+ "patch-package": "^8.0.0",
51
61
  "node-cron": "^4.2.1",
52
62
  "openai": "^5.11.0",
53
63
  "partial-json": "^0.1.7",
54
- "js-yaml": "^4.1.0",
55
64
  "sanitize-html": "^2.17.0",
56
65
  "tiktoken": "^1.0.21",
57
66
  "ts-node": "^10.9.2",
58
- "typescript": "^5.8.3",
67
+ "typescript": "^5.9.2",
59
68
  "validator": "13.15.15",
60
69
  "winston": "^3.17.0",
61
70
  "winston-transport": "^4.9.0",
@@ -65,20 +74,29 @@
65
74
  "mcp",
66
75
  "model-context-protocol",
67
76
  "ai-agent",
77
+ "llm",
68
78
  "llm-integration",
69
79
  "pubmed",
80
+ "pubmed-api",
70
81
  "ncbi",
71
82
  "e-utilities",
72
83
  "biomedical-research",
73
84
  "scientific-literature",
74
- "api-server",
85
+ "computational-biology",
75
86
  "typescript",
76
- "node",
77
87
  "ai-tools",
78
88
  "bioinformatics",
79
89
  "health-tech",
90
+ "research-automation",
80
91
  "literature-search",
81
- "pubmed-api"
92
+ "citation-analysis",
93
+ "data-visualization",
94
+ "api-server",
95
+ "typescript",
96
+ "nodejs",
97
+ "ai-tools",
98
+ "research-agent",
99
+ "generative-ai"
82
100
  ],
83
101
  "author": "cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/pubmed-mcp-server#readme)",
84
102
  "license": "Apache-2.0",
@@ -98,9 +116,8 @@
98
116
  "devDependencies": {
99
117
  "@types/js-yaml": "^4.0.9",
100
118
  "@types/node-cron": "^3.0.11",
101
- "patch-package": "^8.0.0",
102
119
  "prettier": "^3.6.2",
103
- "typedoc": "^0.28.8"
120
+ "typedoc": "^0.28.9"
104
121
  },
105
122
  "publishConfig": {
106
123
  "access": "public"
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Barrel file for the fetch_pubmed_content tool.
3
- * Exports the tool's registration function.
4
- * @module src/mcp-server/tools/fetchPubMedContent/index
5
- */
6
- export { registerFetchPubMedContentTool } from "./registration.js";
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Barrel file for the fetch_pubmed_content tool.
3
- * Exports the tool's registration function.
4
- * @module src/mcp-server/tools/fetchPubMedContent/index
5
- */
6
- export { registerFetchPubMedContentTool } from "./registration.js";
@@ -1,10 +0,0 @@
1
- /**
2
- * @fileoverview Registration for the fetch_pubmed_content MCP tool.
3
- * @module src/mcp-server/tools/fetchPubMedContent/registration
4
- */
5
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
- /**
7
- * Registers the fetch_pubmed_content tool with the MCP server.
8
- * @param server - The McpServer instance.
9
- */
10
- export declare function registerFetchPubMedContentTool(server: McpServer): Promise<void>;
@@ -1,7 +0,0 @@
1
- /**
2
- * @fileoverview Registers the 'generate_pubmed_chart' tool with the MCP server.
3
- * This tool now accepts parameterized input for generating charts.
4
- * @module src/mcp-server/tools/generatePubMedChart/registration
5
- */
6
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
- export declare function registerGeneratePubMedChartTool(server: McpServer): Promise<void>;
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Barrel file for the getPubMedArticleConnections tool.
3
- * Exports the registration function for this tool.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/index
5
- */
6
- export { registerGetPubMedArticleConnectionsTool } from "./registration.js";
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Barrel file for the getPubMedArticleConnections tool.
3
- * Exports the registration function for this tool.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/index
5
- */
6
- export { registerGetPubMedArticleConnectionsTool } from "./registration.js";
@@ -1,9 +0,0 @@
1
- /**
2
- * @fileoverview Handles citation formatting for the getPubMedArticleConnections tool.
3
- * Fetches article details using EFetch and formats them into various citation styles.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter
5
- */
6
- import { RequestContext } from "../../../../utils/index.js";
7
- import type { GetPubMedArticleConnectionsInput } from "./index.js";
8
- import type { ToolOutputData } from "./types.js";
9
- export declare function handleCitationFormats(input: GetPubMedArticleConnectionsInput, outputData: ToolOutputData, context: RequestContext): Promise<void>;
@@ -1,9 +0,0 @@
1
- /**
2
- * @fileoverview Handles ELink requests and enriches results with ESummary data
3
- * for the getPubMedArticleConnections tool.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler
5
- */
6
- import { RequestContext } from "../../../../utils/index.js";
7
- import type { GetPubMedArticleConnectionsInput } from "./index.js";
8
- import type { ToolOutputData } from "./types.js";
9
- export declare function handleELinkRelationships(input: GetPubMedArticleConnectionsInput, outputData: ToolOutputData, context: RequestContext): Promise<void>;
@@ -1,5 +0,0 @@
1
- /**
2
- * @fileoverview Shared type definitions for the getPubMedArticleConnections tool logic.
3
- * @module src/mcp-server/tools/getPubMedArticleConnections/logic/types
4
- */
5
- export {};
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview Registers the 'get_pubmed_article_connections' tool with the MCP server.
3
- * This tool finds articles related to a source PMID or retrieves citation formats.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/registration
5
- */
6
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
- /**
8
- * Registers the 'get_pubmed_article_connections' tool with the given MCP server instance.
9
- * @param {McpServer} server - The MCP server instance.
10
- */
11
- export declare function registerGetPubMedArticleConnectionsTool(server: McpServer): Promise<void>;
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Barrel file for the searchPubMedArticles tool.
3
- * Exports the tool's registration function.
4
- * @module src/mcp-server/tools/searchPubMedArticles/index
5
- */
6
- export { registerSearchPubMedArticlesTool } from "./registration.js";
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Barrel file for the searchPubMedArticles tool.
3
- * Exports the tool's registration function.
4
- * @module src/mcp-server/tools/searchPubMedArticles/index
5
- */
6
- export { registerSearchPubMedArticlesTool } from "./registration.js";
@@ -1,10 +0,0 @@
1
- /**
2
- * @fileoverview Registration for the searchPubMedArticles MCP tool.
3
- * @module src/mcp-server/tools/searchPubMedArticles/registration
4
- */
5
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
- /**
7
- * Registers the searchPubMedArticles tool with the MCP server.
8
- * @param server - The McpServer instance.
9
- */
10
- export declare function registerSearchPubMedArticlesTool(server: McpServer): Promise<void>;