@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.
- package/README.md +21 -21
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +69 -12
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/core/managedMcpServer.d.ts +48 -0
- package/dist/mcp-server/core/managedMcpServer.d.ts.map +1 -0
- package/dist/mcp-server/core/managedMcpServer.js +58 -0
- package/dist/mcp-server/core/managedMcpServer.js.map +1 -0
- package/dist/mcp-server/server.d.ts +1 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +12 -11
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/index.d.ts +7 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/index.js +7 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/index.js.map +1 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.d.ts +10 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.d.ts.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/citationFormatter.js +3 -2
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.js.map +1 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.d.ts +10 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.d.ts.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/elinkHandler.js +3 -2
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.js.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/index.d.ts +10 -9
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/index.js +15 -14
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/index.js.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/types.d.ts +5 -4
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.js +6 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.js.map +1 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/registration.d.ts +12 -0
- package/dist/mcp-server/tools/pubmedArticleConnections/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/registration.js +12 -11
- package/dist/mcp-server/tools/pubmedArticleConnections/registration.js.map +1 -0
- package/dist/mcp-server/tools/pubmedFetchContents/index.d.ts +7 -0
- package/dist/mcp-server/tools/pubmedFetchContents/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedFetchContents/index.js +7 -0
- package/dist/mcp-server/tools/pubmedFetchContents/index.js.map +1 -0
- package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/logic.d.ts +7 -6
- package/dist/mcp-server/tools/pubmedFetchContents/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/logic.js +20 -19
- package/dist/mcp-server/tools/pubmedFetchContents/logic.js.map +1 -0
- package/dist/mcp-server/tools/pubmedFetchContents/registration.d.ts +11 -0
- package/dist/mcp-server/tools/pubmedFetchContents/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/registration.js +13 -12
- package/dist/mcp-server/tools/pubmedFetchContents/registration.js.map +1 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/index.d.ts +3 -2
- package/dist/mcp-server/tools/pubmedGenerateChart/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/index.js +3 -2
- package/dist/mcp-server/tools/pubmedGenerateChart/index.js.map +1 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.d.ts +5 -4
- package/dist/mcp-server/tools/pubmedGenerateChart/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.js +15 -14
- package/dist/mcp-server/tools/pubmedGenerateChart/logic.js.map +1 -0
- package/dist/mcp-server/tools/pubmedGenerateChart/registration.d.ts +8 -0
- package/dist/mcp-server/tools/pubmedGenerateChart/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/registration.js +10 -13
- package/dist/mcp-server/tools/pubmedGenerateChart/registration.js.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/index.d.ts +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/index.js +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/index.js.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/index.d.ts +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/index.js +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/index.js.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/inputSchema.d.ts +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/inputSchema.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/inputSchema.js +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/inputSchema.js.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/outputTypes.d.ts +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/outputTypes.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/outputTypes.js +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/outputTypes.js.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.d.ts +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.js +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.js.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic.d.ts +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic.js +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/logic.js.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/registration.d.ts +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/registration.js +1 -0
- package/dist/mcp-server/tools/pubmedResearchAgent/registration.js.map +1 -0
- package/dist/mcp-server/tools/pubmedSearchArticles/index.d.ts +7 -0
- package/dist/mcp-server/tools/pubmedSearchArticles/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/pubmedSearchArticles/index.js +7 -0
- package/dist/mcp-server/tools/pubmedSearchArticles/index.js.map +1 -0
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.d.ts +8 -7
- package/dist/mcp-server/tools/pubmedSearchArticles/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.js +12 -11
- package/dist/mcp-server/tools/pubmedSearchArticles/logic.js.map +1 -0
- package/dist/mcp-server/tools/pubmedSearchArticles/registration.d.ts +11 -0
- package/dist/mcp-server/tools/pubmedSearchArticles/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.js +13 -12
- package/dist/mcp-server/tools/pubmedSearchArticles/registration.js.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts +1 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/auth/index.d.ts +2 -1
- package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/index.js +1 -0
- package/dist/mcp-server/transports/auth/index.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +6 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +7 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js +2 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/headerUtils.d.ts +20 -0
- package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/headerUtils.js +38 -0
- package/dist/mcp-server/transports/core/headerUtils.js.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +61 -7
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.js +102 -14
- package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +54 -8
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js +185 -120
- package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +45 -7
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js +85 -24
- package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts +59 -21
- package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.js +4 -1
- package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts +4 -3
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.js +52 -16
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts +1 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/index.d.ts +1 -0
- package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/index.js +1 -0
- package/dist/mcp-server/transports/http/index.js.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +4 -2
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +27 -24
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/stdio/index.d.ts +1 -0
- package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/index.js +1 -0
- package/dist/mcp-server/transports/stdio/index.js.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
- package/dist/services/NCBI/core/ncbiConstants.d.ts +1 -0
- package/dist/services/NCBI/core/ncbiConstants.d.ts.map +1 -0
- package/dist/services/NCBI/core/ncbiConstants.js +1 -0
- package/dist/services/NCBI/core/ncbiConstants.js.map +1 -0
- package/dist/services/NCBI/core/ncbiCoreApiClient.d.ts +1 -0
- package/dist/services/NCBI/core/ncbiCoreApiClient.d.ts.map +1 -0
- package/dist/services/NCBI/core/ncbiCoreApiClient.js +2 -0
- package/dist/services/NCBI/core/ncbiCoreApiClient.js.map +1 -0
- package/dist/services/NCBI/core/ncbiRequestQueueManager.d.ts +1 -1
- package/dist/services/NCBI/core/ncbiRequestQueueManager.d.ts.map +1 -0
- package/dist/services/NCBI/core/ncbiRequestQueueManager.js +5 -8
- package/dist/services/NCBI/core/ncbiRequestQueueManager.js.map +1 -0
- package/dist/services/NCBI/core/ncbiResponseHandler.d.ts +1 -0
- package/dist/services/NCBI/core/ncbiResponseHandler.d.ts.map +1 -0
- package/dist/services/NCBI/core/ncbiResponseHandler.js +3 -1
- package/dist/services/NCBI/core/ncbiResponseHandler.js.map +1 -0
- package/dist/services/NCBI/core/ncbiService.d.ts +1 -0
- package/dist/services/NCBI/core/ncbiService.d.ts.map +1 -0
- package/dist/services/NCBI/core/ncbiService.js +4 -0
- package/dist/services/NCBI/core/ncbiService.js.map +1 -0
- package/dist/services/NCBI/parsing/eSummaryResultParser.d.ts +1 -0
- package/dist/services/NCBI/parsing/eSummaryResultParser.d.ts.map +1 -0
- package/dist/services/NCBI/parsing/eSummaryResultParser.js +2 -0
- package/dist/services/NCBI/parsing/eSummaryResultParser.js.map +1 -0
- package/dist/services/NCBI/parsing/index.d.ts +1 -0
- package/dist/services/NCBI/parsing/index.d.ts.map +1 -0
- package/dist/services/NCBI/parsing/index.js +1 -0
- package/dist/services/NCBI/parsing/index.js.map +1 -0
- package/dist/services/NCBI/parsing/pubmedArticleStructureParser.d.ts +1 -0
- package/dist/services/NCBI/parsing/pubmedArticleStructureParser.d.ts.map +1 -0
- package/dist/services/NCBI/parsing/pubmedArticleStructureParser.js +1 -0
- package/dist/services/NCBI/parsing/pubmedArticleStructureParser.js.map +1 -0
- package/dist/services/NCBI/parsing/xmlGenericHelpers.d.ts +1 -0
- package/dist/services/NCBI/parsing/xmlGenericHelpers.d.ts.map +1 -0
- package/dist/services/NCBI/parsing/xmlGenericHelpers.js +1 -0
- package/dist/services/NCBI/parsing/xmlGenericHelpers.js.map +1 -0
- package/dist/types-global/errors.d.ts +1 -0
- package/dist/types-global/errors.d.ts.map +1 -0
- package/dist/types-global/errors.js +10 -0
- package/dist/types-global/errors.js.map +1 -0
- package/dist/types-global/pubmedXml.d.ts +1 -0
- package/dist/types-global/pubmedXml.d.ts.map +1 -0
- package/dist/types-global/pubmedXml.js +1 -0
- package/dist/types-global/pubmedXml.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/internal/errorHandler.d.ts +1 -7
- package/dist/utils/internal/errorHandler.d.ts.map +1 -0
- package/dist/utils/internal/errorHandler.js +28 -6
- package/dist/utils/internal/errorHandler.js.map +1 -0
- package/dist/utils/internal/index.d.ts +2 -0
- package/dist/utils/internal/index.d.ts.map +1 -0
- package/dist/utils/internal/index.js +2 -0
- package/dist/utils/internal/index.js.map +1 -0
- package/dist/utils/internal/logger.d.ts +1 -0
- package/dist/utils/internal/logger.d.ts.map +1 -0
- package/dist/utils/internal/logger.js +14 -8
- package/dist/utils/internal/logger.js.map +1 -0
- package/dist/utils/internal/performance.d.ts +22 -0
- package/dist/utils/internal/performance.d.ts.map +1 -0
- package/dist/utils/internal/performance.js +104 -0
- package/dist/utils/internal/performance.js.map +1 -0
- package/dist/utils/internal/requestContext.d.ts +1 -0
- package/dist/utils/internal/requestContext.d.ts.map +1 -0
- package/dist/utils/internal/requestContext.js +11 -0
- package/dist/utils/internal/requestContext.js.map +1 -0
- package/dist/utils/metrics/index.d.ts +1 -0
- package/dist/utils/metrics/index.d.ts.map +1 -0
- package/dist/utils/metrics/index.js +1 -0
- package/dist/utils/metrics/index.js.map +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
- package/dist/utils/metrics/tokenCounter.js +1 -0
- package/dist/utils/metrics/tokenCounter.js.map +1 -0
- package/dist/utils/network/fetchWithTimeout.d.ts +1 -0
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
- package/dist/utils/network/fetchWithTimeout.js +19 -0
- package/dist/utils/network/fetchWithTimeout.js.map +1 -0
- package/dist/utils/network/index.d.ts +1 -0
- package/dist/utils/network/index.d.ts.map +1 -0
- package/dist/utils/network/index.js +1 -0
- package/dist/utils/network/index.js.map +1 -0
- package/dist/utils/parsing/dateParser.d.ts +3 -3
- package/dist/utils/parsing/dateParser.d.ts.map +1 -0
- package/dist/utils/parsing/dateParser.js +3 -2
- package/dist/utils/parsing/dateParser.js.map +1 -0
- package/dist/utils/parsing/index.d.ts +1 -0
- package/dist/utils/parsing/index.d.ts.map +1 -0
- package/dist/utils/parsing/index.js +1 -0
- package/dist/utils/parsing/index.js.map +1 -0
- package/dist/utils/parsing/jsonParser.d.ts +2 -1
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
- package/dist/utils/parsing/jsonParser.js +5 -3
- package/dist/utils/parsing/jsonParser.js.map +1 -0
- package/dist/utils/scheduling/index.d.ts +1 -0
- package/dist/utils/scheduling/index.d.ts.map +1 -0
- package/dist/utils/scheduling/index.js +1 -0
- package/dist/utils/scheduling/index.js.map +1 -0
- package/dist/utils/scheduling/scheduler.d.ts +1 -0
- package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
- package/dist/utils/scheduling/scheduler.js +3 -1
- package/dist/utils/scheduling/scheduler.js.map +1 -0
- package/dist/utils/security/idGenerator.d.ts +1 -0
- package/dist/utils/security/idGenerator.d.ts.map +1 -0
- package/dist/utils/security/idGenerator.js +32 -27
- package/dist/utils/security/idGenerator.js.map +1 -0
- package/dist/utils/security/index.d.ts +1 -0
- package/dist/utils/security/index.d.ts.map +1 -0
- package/dist/utils/security/index.js +1 -0
- package/dist/utils/security/index.js.map +1 -0
- package/dist/utils/security/rateLimiter.d.ts +1 -0
- package/dist/utils/security/rateLimiter.d.ts.map +1 -0
- package/dist/utils/security/rateLimiter.js +45 -22
- package/dist/utils/security/rateLimiter.js.map +1 -0
- package/dist/utils/security/sanitization.d.ts +1 -0
- package/dist/utils/security/sanitization.d.ts.map +1 -0
- package/dist/utils/security/sanitization.js +65 -63
- package/dist/utils/security/sanitization.js.map +1 -0
- package/dist/utils/telemetry/instrumentation.d.ts +8 -0
- package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
- package/dist/utils/telemetry/instrumentation.js +179 -0
- package/dist/utils/telemetry/instrumentation.js.map +1 -0
- package/dist/utils/telemetry/semconv.d.ts +16 -0
- package/dist/utils/telemetry/semconv.d.ts.map +1 -0
- package/dist/utils/telemetry/semconv.js +16 -0
- package/dist/utils/telemetry/semconv.js.map +1 -0
- package/package.json +31 -14
- package/dist/mcp-server/tools/fetchPubMedContent/index.d.ts +0 -6
- package/dist/mcp-server/tools/fetchPubMedContent/index.js +0 -6
- package/dist/mcp-server/tools/fetchPubMedContent/registration.d.ts +0 -10
- package/dist/mcp-server/tools/generatePubMedChart/registration.d.ts +0 -7
- package/dist/mcp-server/tools/getPubMedArticleConnections/index.d.ts +0 -6
- package/dist/mcp-server/tools/getPubMedArticleConnections/index.js +0 -6
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter.d.ts +0 -9
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler.d.ts +0 -9
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/types.js +0 -5
- package/dist/mcp-server/tools/getPubMedArticleConnections/registration.d.ts +0 -11
- package/dist/mcp-server/tools/searchPubMedArticles/index.d.ts +0 -6
- package/dist/mcp-server/tools/searchPubMedArticles/index.js +0 -6
- 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.
|
|
4
|
-
"description": "
|
|
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.
|
|
36
|
-
"@modelcontextprotocol/sdk": "^1.17.
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
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
|
-
"
|
|
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.
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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.
|
|
120
|
+
"typedoc": "^0.28.9"
|
|
104
121
|
},
|
|
105
122
|
"publishConfig": {
|
|
106
123
|
"access": "public"
|
|
@@ -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,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,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>;
|