@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 @@
|
|
|
1
|
+
{"version":3,"file":"authFactory.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/auth/authFactory.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI5D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,GAAG,IAAI,CA0BxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authFactory.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/auth/authFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;QACzD,SAAS,EAAE,oBAAoB;QAC/B,QAAQ,EAAE,MAAM,CAAC,WAAW;KAC7B,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;IAE5D,QAAQ,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3B,KAAK,KAAK;YACR,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,OAAO,CAAC,CAAC;YACpE,OAAO,IAAI,WAAW,EAAE,CAAC;QAC3B,KAAK,OAAO;YACV,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,OAAO,CAAC,CAAC;YACtE,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B,KAAK,MAAM;YACT,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC,CAAC,oBAAoB;QACnC;YACE,mEAAmE;YACnE,mEAAmE;YACnE,MAAM,CAAC,KAAK,CACV,gCAAgC,MAAM,CAAC,WAAW,EAAE,EACpD,OAAO,CACR,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/auth/authMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQ1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,IAEvD,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC,EACtC,MAAM,IAAI,mBAuEb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authMiddleware.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/auth/authMiddleware.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,MAAM,EACN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAsB;IACzD,OAAO,KAAK,UAAU,cAAc,CAClC,CAAsC,EACtC,IAAU;QAEV,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;YACpB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,YAAY,EAC1B,kEAAkE,EAClE,OAAO,CACR,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CACZ,oDAAoD,EACpD,OAAO,CACR,CAAC;YACF,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,YAAY,EAC1B,kCAAkC,EAClC,OAAO,CACR,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CACV,qDAAqD,EACrD,OAAO,CACR,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE9C,MAAM,cAAc,GAAG;gBACrB,GAAG,OAAO;gBACV,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC;YACF,MAAM,CAAC,IAAI,CACT,oDAAoD,EACpD,cAAc,CACf,CAAC;YAEF,0EAA0E;YAC1E,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iDAAiD;YACjD,mEAAmE;YACnE,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE;gBACpD,GAAG,OAAO;gBACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YAEH,mCAAmC;YACnC,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;gBACpC,SAAS,EAAE,4BAA4B;gBACvC,OAAO;gBACP,OAAO,EAAE,IAAI,EAAE,sDAAsD;gBACrE,SAAS,EAAE,aAAa,CAAC,YAAY,EAAE,+CAA+C;aACvF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -8,6 +8,7 @@ export { withRequiredScopes } from "./lib/authUtils.js";
|
|
|
8
8
|
export type { AuthInfo } from "./lib/authTypes.js";
|
|
9
9
|
export { createAuthStrategy } from "./authFactory.js";
|
|
10
10
|
export { createAuthMiddleware } from "./authMiddleware.js";
|
|
11
|
-
export { AuthStrategy } from "./strategies/authStrategy.js";
|
|
11
|
+
export type { AuthStrategy } from "./strategies/authStrategy.js";
|
|
12
12
|
export { JwtStrategy } from "./strategies/jwtStrategy.js";
|
|
13
13
|
export { OauthStrategy } from "./strategies/oauthStrategy.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/auth/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -9,3 +9,4 @@ export { createAuthStrategy } from "./authFactory.js";
|
|
|
9
9
|
export { createAuthMiddleware } from "./authMiddleware.js";
|
|
10
10
|
export { JwtStrategy } from "./strategies/jwtStrategy.js";
|
|
11
11
|
export { OauthStrategy } from "./strategies/oauthStrategy.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/auth/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authContext.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/lib/authContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;GAGG;AACH,UAAU,SAAS;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,8BAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authContext.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/lib/authContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAWhD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authTypes.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/lib/authTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAE9F;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authTypes.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/lib/authTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAYH,uEAAuE;AACvE,4EAA4E;AAC5E,0CAA0C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authUtils.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/lib/authUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAuDjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authUtils.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/lib/authUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,cAAwB;IACzD,MAAM,aAAa,GAAG,yBAAyB,CAAC;IAChD,MAAM,cAAc,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;QAChE,SAAS,EAAE,aAAa;QACxB,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,cAAc,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAErC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CACT,gGAAgG,EAChG,cAAc,CACf,CAAC;QACF,sFAAsF;QACtF,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,cAAc,EAC5B,iFAAiF,EACjF;YACE,GAAG,cAAc;YACjB,KAAK,EAAE,2CAA2C;SACnD,CACF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;IACpE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAE/C,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CACvC,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,GAAG,cAAc;QACjB,aAAa;QACb,QAAQ;QACR,OAAO;KACR,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,CAAC;QACxD,MAAM,CAAC,OAAO,CACZ,gDAAgD,EAChD,YAAY,CACb,CAAC;QACF,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,SAAS,EACvB,sDAAsD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAChF,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,YAAY,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authStrategy.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/authStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authStrategy.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/authStrategy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwtStrategy.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/jwtStrategy.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;;IAkCxC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAkH/C"}
|
|
@@ -10,6 +10,7 @@ import { config, environment } from "../../../../config/index.js";
|
|
|
10
10
|
import { BaseErrorCode, McpError } from "../../../../types-global/errors.js";
|
|
11
11
|
import { ErrorHandler, logger, requestContextService, } from "../../../../utils/index.js";
|
|
12
12
|
export class JwtStrategy {
|
|
13
|
+
secretKey;
|
|
13
14
|
constructor() {
|
|
14
15
|
const context = requestContextService.createRequestContext({
|
|
15
16
|
operation: "JwtStrategy.constructor",
|
|
@@ -93,6 +94,10 @@ export class JwtStrategy {
|
|
|
93
94
|
return authInfo;
|
|
94
95
|
}
|
|
95
96
|
catch (error) {
|
|
97
|
+
// If the error is already a structured McpError, re-throw it directly.
|
|
98
|
+
if (error instanceof McpError) {
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
96
101
|
const message = error instanceof Error && error.name === "JWTExpired"
|
|
97
102
|
? "Token has expired."
|
|
98
103
|
: "Token verification failed.";
|
|
@@ -110,3 +115,4 @@ export class JwtStrategy {
|
|
|
110
115
|
}
|
|
111
116
|
}
|
|
112
117
|
}
|
|
118
|
+
//# sourceMappingURL=jwtStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwtStrategy.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/jwtStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,MAAM,EACN,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,OAAO,WAAW;IACL,SAAS,CAAoB;IAE9C;QACE,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,yBAAyB;SACrC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YACjC,IAAI,WAAW,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC7D,MAAM,CAAC,KAAK,CACV,sEAAsE,EACtE,OAAO,CACR,CAAC;gBACF,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,mBAAmB,EACjC,6DAA6D,EAC7D,OAAO,CACR,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACpC,MAAM,CAAC,OAAO,CACZ,uEAAuE,EACvE,OAAO,CACR,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,oBAAoB;SAChC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;QAEnD,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;gBACjC,MAAM,CAAC,OAAO,CACZ,uDAAuD,EACvD,OAAO,CACR,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,4BAA4B;oBACnC,QAAQ,EAAE,MAAM,CAAC,cAAc,IAAI,eAAe;oBAClD,MAAM,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC;iBAC7C,CAAC;YACJ,CAAC;YACD,mFAAmF;YACnF,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,mBAAmB,EACjC,wFAAwF,EACxF,OAAO,CACR,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACpE,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;gBACnD,GAAG,OAAO;gBACV,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;YAEH,MAAM,QAAQ,GACZ,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG;gBACb,CAAC,CAAC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;oBACrC,CAAC,CAAC,OAAO,CAAC,SAAS;oBACnB,CAAC,CAAC,SAAS,CAAC;YAElB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,CACZ,oDAAoD,EACpD,OAAO,CACR,CAAC;gBACF,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,YAAY,EAC1B,oDAAoD,EACpD,OAAO,CACR,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,GAAa,EAAE,CAAC;YAC1B,IACE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAC/C,CAAC;gBACD,MAAM,GAAG,OAAO,CAAC,GAAe,CAAC;YACnC,CAAC;iBAAM,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,OAAO,CACZ,yDAAyD,EACzD,OAAO,CACR,CAAC;gBACF,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,YAAY,EAC1B,6CAA6C,EAC7C,OAAO,CACR,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAa;gBACzB,KAAK;gBACL,QAAQ;gBACR,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,GAAG;aACrB,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC1C,GAAG,OAAO;gBACV,QAAQ;gBACR,MAAM;aACP,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uEAAuE;YACvE,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBACnD,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,4BAA4B,CAAC;YAEnC,MAAM,CAAC,OAAO,CAAC,4BAA4B,OAAO,EAAE,EAAE;gBACpD,GAAG,OAAO;gBACV,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAC3D,CAAC,CAAC;YAEH,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;gBACpC,SAAS,EAAE,oBAAoB;gBAC/B,OAAO;gBACP,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,aAAa,CAAC,YAAY;gBACrC,WAAW,EAAE,GAAG,EAAE,CAChB,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC;aAC7D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauthStrategy.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/oauthStrategy.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwC;;IAoDvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAgF/C"}
|
|
@@ -9,6 +9,7 @@ import { config } from "../../../../config/index.js";
|
|
|
9
9
|
import { BaseErrorCode, McpError } from "../../../../types-global/errors.js";
|
|
10
10
|
import { ErrorHandler, logger, requestContextService, } from "../../../../utils/index.js";
|
|
11
11
|
export class OauthStrategy {
|
|
12
|
+
jwks;
|
|
12
13
|
constructor() {
|
|
13
14
|
const context = requestContextService.createRequestContext({
|
|
14
15
|
operation: "OauthStrategy.constructor",
|
|
@@ -82,6 +83,10 @@ export class OauthStrategy {
|
|
|
82
83
|
return authInfo;
|
|
83
84
|
}
|
|
84
85
|
catch (error) {
|
|
86
|
+
// If the error is already a structured McpError, re-throw it directly.
|
|
87
|
+
if (error instanceof McpError) {
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
85
90
|
const message = error instanceof Error && error.name === "JWTExpired"
|
|
86
91
|
? "Token has expired."
|
|
87
92
|
: "OAuth token verification failed.";
|
|
@@ -89,6 +94,7 @@ export class OauthStrategy {
|
|
|
89
94
|
...context,
|
|
90
95
|
errorName: error instanceof Error ? error.name : "Unknown",
|
|
91
96
|
});
|
|
97
|
+
// For all other errors, use the ErrorHandler to wrap them.
|
|
92
98
|
throw ErrorHandler.handleError(error, {
|
|
93
99
|
operation: "OauthStrategy.verify",
|
|
94
100
|
context,
|
|
@@ -99,3 +105,4 @@ export class OauthStrategy {
|
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
}
|
|
108
|
+
//# sourceMappingURL=oauthStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauthStrategy.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/oauthStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,3 +15,4 @@ export declare abstract class BaseTransportManager implements TransportManager {
|
|
|
15
15
|
abstract handleRequest(headers: IncomingHttpHeaders, body: unknown, context: RequestContext, sessionId?: string): Promise<TransportResponse>;
|
|
16
16
|
abstract shutdown(): Promise<void>;
|
|
17
17
|
}
|
|
18
|
+
//# sourceMappingURL=baseTransportManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/baseTransportManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAEL,cAAc,EAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;GAEG;AACH,8BAAsB,oBAAqB,YAAW,gBAAgB;IACpE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;gBAExD,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC;IAS5D,QAAQ,CAAC,aAAa,CACpB,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;IAE7B,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CACnC"}
|
|
@@ -7,6 +7,7 @@ import { logger, requestContextService, } from "../../../utils/index.js";
|
|
|
7
7
|
* Abstract base class for transport managers, providing common functionality.
|
|
8
8
|
*/
|
|
9
9
|
export class BaseTransportManager {
|
|
10
|
+
createServerInstanceFn;
|
|
10
11
|
constructor(createServerInstanceFn) {
|
|
11
12
|
const context = requestContextService.createRequestContext({
|
|
12
13
|
operation: "BaseTransportManager.constructor",
|
|
@@ -16,3 +17,4 @@ export class BaseTransportManager {
|
|
|
16
17
|
this.createServerInstanceFn = createServerInstanceFn;
|
|
17
18
|
}
|
|
18
19
|
}
|
|
20
|
+
//# sourceMappingURL=baseTransportManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/baseTransportManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAGjC;;GAEG;AACH,MAAM,OAAgB,oBAAoB;IACrB,sBAAsB,CAA2B;IAEpE,YAAY,sBAAgD;QAC1D,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,kCAAkC;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;CAUF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Provides a utility for converting HTTP headers between Node.js
|
|
3
|
+
* and Web Standards formats, ensuring compliance and correctness.
|
|
4
|
+
* @module src/mcp-server/transports/core/headerUtils
|
|
5
|
+
*/
|
|
6
|
+
import type { OutgoingHttpHeaders } from "http";
|
|
7
|
+
/**
|
|
8
|
+
* Converts Node.js-style OutgoingHttpHeaders to a Web-standard Headers object.
|
|
9
|
+
*
|
|
10
|
+
* This function is critical for interoperability between Node.js's `http` module
|
|
11
|
+
* and Web APIs like Fetch and Hono. It correctly handles multi-value headers
|
|
12
|
+
* (e.g., `Set-Cookie`), which Node.js represents as an array of strings, by
|
|
13
|
+
* using the `Headers.append()` method. Standard single-value headers are set
|
|
14
|
+
* using `Headers.set()`.
|
|
15
|
+
*
|
|
16
|
+
* @param nodeHeaders - The Node.js-style headers object to convert.
|
|
17
|
+
* @returns A Web-standard Headers object.
|
|
18
|
+
*/
|
|
19
|
+
export declare function convertNodeHeadersToWebHeaders(nodeHeaders: OutgoingHttpHeaders): Headers;
|
|
20
|
+
//# sourceMappingURL=headerUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headerUtils.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/headerUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAmBT"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Provides a utility for converting HTTP headers between Node.js
|
|
3
|
+
* and Web Standards formats, ensuring compliance and correctness.
|
|
4
|
+
* @module src/mcp-server/transports/core/headerUtils
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Converts Node.js-style OutgoingHttpHeaders to a Web-standard Headers object.
|
|
8
|
+
*
|
|
9
|
+
* This function is critical for interoperability between Node.js's `http` module
|
|
10
|
+
* and Web APIs like Fetch and Hono. It correctly handles multi-value headers
|
|
11
|
+
* (e.g., `Set-Cookie`), which Node.js represents as an array of strings, by
|
|
12
|
+
* using the `Headers.append()` method. Standard single-value headers are set
|
|
13
|
+
* using `Headers.set()`.
|
|
14
|
+
*
|
|
15
|
+
* @param nodeHeaders - The Node.js-style headers object to convert.
|
|
16
|
+
* @returns A Web-standard Headers object.
|
|
17
|
+
*/
|
|
18
|
+
export function convertNodeHeadersToWebHeaders(nodeHeaders) {
|
|
19
|
+
const webHeaders = new Headers();
|
|
20
|
+
for (const [key, value] of Object.entries(nodeHeaders)) {
|
|
21
|
+
// Skip undefined headers, which are valid in Node.js but not in Web Headers.
|
|
22
|
+
if (value === undefined) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (Array.isArray(value)) {
|
|
26
|
+
// For arrays, append each value to support multi-value headers.
|
|
27
|
+
for (const v of value) {
|
|
28
|
+
webHeaders.append(key, String(v));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// For single values, set the header, overwriting any existing value.
|
|
33
|
+
webHeaders.set(key, String(value));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return webHeaders;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=headerUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headerUtils.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/headerUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,8BAA8B,CAC5C,WAAgC;IAEhC,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,6EAA6E;QAC7E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,gEAAgE;YAChE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,23 +1,77 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Provides a bridge between the MCP SDK's Node.js-style
|
|
2
|
+
* @fileoverview Provides a high-fidelity bridge between the MCP SDK's Node.js-style
|
|
3
3
|
* streamable HTTP transport and Hono's Web Standards-based streaming response.
|
|
4
|
+
* This class is essential for adapting the Node.js `http.ServerResponse` API
|
|
5
|
+
* to a format consumable by modern web frameworks.
|
|
4
6
|
* @module src/mcp-server/transports/core/honoNodeBridge
|
|
5
7
|
*/
|
|
6
8
|
import { PassThrough } from "stream";
|
|
9
|
+
import type { OutgoingHttpHeaders } from "http";
|
|
7
10
|
/**
|
|
8
|
-
* A mock ServerResponse that pipes
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
+
* A mock `http.ServerResponse` that pipes all written data to a `PassThrough` stream.
|
|
12
|
+
*
|
|
13
|
+
* This class serves as a critical compatibility layer, emulating the behavior of a
|
|
14
|
+
* Node.js `ServerResponse` to capture status codes, headers, and the response body.
|
|
15
|
+
* The captured data can then be used to construct a Web-standard `Response` object,
|
|
16
|
+
* for instance in a Hono application. It pays close attention to the timing of when
|
|
17
|
+
* headers are considered "sent" to mimic Node.js behavior accurately.
|
|
11
18
|
*/
|
|
12
19
|
export declare class HonoStreamResponse extends PassThrough {
|
|
13
20
|
statusCode: number;
|
|
14
|
-
headers:
|
|
21
|
+
headers: OutgoingHttpHeaders;
|
|
22
|
+
private _headersSent;
|
|
15
23
|
constructor();
|
|
16
|
-
|
|
24
|
+
/**
|
|
25
|
+
* A getter that reports whether the headers have been sent.
|
|
26
|
+
* In this emulation, headers are considered sent the first time `write()` or `end()` is called.
|
|
27
|
+
*/
|
|
28
|
+
get headersSent(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Sets the status code and headers for the response, mimicking `http.ServerResponse.writeHead`.
|
|
31
|
+
*
|
|
32
|
+
* @param statusCode - The HTTP status code.
|
|
33
|
+
* @param statusMessageOrHeaders - An optional status message (string) or headers object.
|
|
34
|
+
* @param headers - An optional headers object, used if the second argument is a status message.
|
|
35
|
+
* @returns The instance of the class for chaining.
|
|
36
|
+
*/
|
|
37
|
+
writeHead(statusCode: number, statusMessageOrHeaders?: string | OutgoingHttpHeaders, headers?: OutgoingHttpHeaders): this;
|
|
38
|
+
/**
|
|
39
|
+
* Sets a single header value.
|
|
40
|
+
*
|
|
41
|
+
* @param name - The name of the header.
|
|
42
|
+
* @param value - The value of the header.
|
|
43
|
+
* @returns The instance of the class for chaining.
|
|
44
|
+
*/
|
|
17
45
|
setHeader(name: string, value: string | number | string[]): this;
|
|
46
|
+
/**
|
|
47
|
+
* Gets a header that has been queued for the response.
|
|
48
|
+
* @param name - The name of the header.
|
|
49
|
+
* @returns The value of the header, or undefined if not set.
|
|
50
|
+
*/
|
|
18
51
|
getHeader(name: string): string | number | string[] | undefined;
|
|
19
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Returns a copy of the current outgoing headers.
|
|
54
|
+
*/
|
|
55
|
+
getHeaders(): OutgoingHttpHeaders;
|
|
56
|
+
/**
|
|
57
|
+
* Removes a header that has been queued for the response.
|
|
58
|
+
* @param name - The name of the header to remove.
|
|
59
|
+
*/
|
|
20
60
|
removeHeader(name: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* A private helper to mark headers as sent. This is called implicitly
|
|
63
|
+
* before any part of the body is written.
|
|
64
|
+
*/
|
|
65
|
+
private ensureHeadersSent;
|
|
66
|
+
/**
|
|
67
|
+
* Writes a chunk of the response body, mimicking `http.ServerResponse.write`.
|
|
68
|
+
* This is the first point where headers are implicitly flushed.
|
|
69
|
+
*/
|
|
21
70
|
write(chunk: unknown, encodingOrCallback?: BufferEncoding | ((error: Error | null | undefined) => void), callback?: (error: Error | null | undefined) => void): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Finishes sending the response, mimicking `http.ServerResponse.end`.
|
|
73
|
+
* This also implicitly flushes headers if they haven't been sent yet.
|
|
74
|
+
*/
|
|
22
75
|
end(chunk?: unknown, encodingOrCallback?: BufferEncoding | (() => void), callback?: () => void): this;
|
|
23
76
|
}
|
|
77
|
+
//# sourceMappingURL=honoNodeBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"honoNodeBridge.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/honoNodeBridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAEhD;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAC1C,UAAU,SAAO;IACjB,OAAO,EAAE,mBAAmB,CAAM;IACzC,OAAO,CAAC,YAAY,CAAS;;IAM7B;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;;OAOG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,mBAAmB,EACrD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAsBP;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAahE;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAI/D;;OAEG;IACH,UAAU,IAAI,mBAAmB;IAIjC;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUhC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;OAGG;IACH,KAAK,CACH,KAAK,EAAE,OAAO,EACd,kBAAkB,CAAC,EACf,cAAc,GACd,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,EAC/C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,GACnD,OAAO;IAcV;;;OAGG;IACH,GAAG,CACD,KAAK,CAAC,EAAE,OAAO,EACf,kBAAkB,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,EAClD,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CAeR"}
|
|
@@ -1,51 +1,139 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Provides a bridge between the MCP SDK's Node.js-style
|
|
2
|
+
* @fileoverview Provides a high-fidelity bridge between the MCP SDK's Node.js-style
|
|
3
3
|
* streamable HTTP transport and Hono's Web Standards-based streaming response.
|
|
4
|
+
* This class is essential for adapting the Node.js `http.ServerResponse` API
|
|
5
|
+
* to a format consumable by modern web frameworks.
|
|
4
6
|
* @module src/mcp-server/transports/core/honoNodeBridge
|
|
5
7
|
*/
|
|
6
8
|
import { PassThrough } from "stream";
|
|
7
9
|
/**
|
|
8
|
-
* A mock ServerResponse that pipes
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* A mock `http.ServerResponse` that pipes all written data to a `PassThrough` stream.
|
|
11
|
+
*
|
|
12
|
+
* This class serves as a critical compatibility layer, emulating the behavior of a
|
|
13
|
+
* Node.js `ServerResponse` to capture status codes, headers, and the response body.
|
|
14
|
+
* The captured data can then be used to construct a Web-standard `Response` object,
|
|
15
|
+
* for instance in a Hono application. It pays close attention to the timing of when
|
|
16
|
+
* headers are considered "sent" to mimic Node.js behavior accurately.
|
|
11
17
|
*/
|
|
12
18
|
export class HonoStreamResponse extends PassThrough {
|
|
19
|
+
statusCode = 200;
|
|
20
|
+
headers = {};
|
|
21
|
+
_headersSent = false;
|
|
13
22
|
constructor() {
|
|
14
23
|
super();
|
|
15
|
-
this.statusCode = 200;
|
|
16
|
-
this.headers = {};
|
|
17
24
|
}
|
|
18
|
-
|
|
25
|
+
/**
|
|
26
|
+
* A getter that reports whether the headers have been sent.
|
|
27
|
+
* In this emulation, headers are considered sent the first time `write()` or `end()` is called.
|
|
28
|
+
*/
|
|
29
|
+
get headersSent() {
|
|
30
|
+
return this._headersSent;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Sets the status code and headers for the response, mimicking `http.ServerResponse.writeHead`.
|
|
34
|
+
*
|
|
35
|
+
* @param statusCode - The HTTP status code.
|
|
36
|
+
* @param statusMessageOrHeaders - An optional status message (string) or headers object.
|
|
37
|
+
* @param headers - An optional headers object, used if the second argument is a status message.
|
|
38
|
+
* @returns The instance of the class for chaining.
|
|
39
|
+
*/
|
|
40
|
+
writeHead(statusCode, statusMessageOrHeaders, headers) {
|
|
41
|
+
if (this._headersSent) {
|
|
42
|
+
// Per Node.js spec, do nothing if headers are already sent.
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
19
45
|
this.statusCode = statusCode;
|
|
20
|
-
|
|
21
|
-
|
|
46
|
+
const headersArg = typeof statusMessageOrHeaders === "string"
|
|
47
|
+
? headers
|
|
48
|
+
: statusMessageOrHeaders;
|
|
49
|
+
if (headersArg) {
|
|
50
|
+
for (const [key, value] of Object.entries(headersArg)) {
|
|
51
|
+
if (value !== undefined) {
|
|
52
|
+
this.setHeader(key, value);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
22
55
|
}
|
|
23
56
|
return this;
|
|
24
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Sets a single header value.
|
|
60
|
+
*
|
|
61
|
+
* @param name - The name of the header.
|
|
62
|
+
* @param value - The value of the header.
|
|
63
|
+
* @returns The instance of the class for chaining.
|
|
64
|
+
*/
|
|
25
65
|
setHeader(name, value) {
|
|
66
|
+
if (this._headersSent) {
|
|
67
|
+
// This is a deviation from Node.js (which would throw), but provides a
|
|
68
|
+
// more graceful warning for this emulation layer.
|
|
69
|
+
console.warn(`[HonoBridge] Warning: Cannot set header "${name}" after headers are sent.`);
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
26
72
|
this.headers[name.toLowerCase()] = value;
|
|
27
73
|
return this;
|
|
28
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Gets a header that has been queued for the response.
|
|
77
|
+
* @param name - The name of the header.
|
|
78
|
+
* @returns The value of the header, or undefined if not set.
|
|
79
|
+
*/
|
|
29
80
|
getHeader(name) {
|
|
30
81
|
return this.headers[name.toLowerCase()];
|
|
31
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Returns a copy of the current outgoing headers.
|
|
85
|
+
*/
|
|
32
86
|
getHeaders() {
|
|
33
|
-
return this.headers;
|
|
87
|
+
return { ...this.headers };
|
|
34
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Removes a header that has been queued for the response.
|
|
91
|
+
* @param name - The name of the header to remove.
|
|
92
|
+
*/
|
|
35
93
|
removeHeader(name) {
|
|
94
|
+
if (this._headersSent) {
|
|
95
|
+
console.warn(`[HonoBridge] Warning: Cannot remove header "${name}" after headers are sent.`);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
36
98
|
delete this.headers[name.toLowerCase()];
|
|
37
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* A private helper to mark headers as sent. This is called implicitly
|
|
102
|
+
* before any part of the body is written.
|
|
103
|
+
*/
|
|
104
|
+
ensureHeadersSent() {
|
|
105
|
+
if (!this._headersSent) {
|
|
106
|
+
this._headersSent = true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Writes a chunk of the response body, mimicking `http.ServerResponse.write`.
|
|
111
|
+
* This is the first point where headers are implicitly flushed.
|
|
112
|
+
*/
|
|
38
113
|
write(chunk, encodingOrCallback, callback) {
|
|
114
|
+
this.ensureHeadersSent();
|
|
39
115
|
const encoding = typeof encodingOrCallback === "string" ? encodingOrCallback : undefined;
|
|
40
116
|
const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
|
|
41
|
-
|
|
42
|
-
|
|
117
|
+
if (encoding) {
|
|
118
|
+
return super.write(chunk, encoding, cb);
|
|
119
|
+
}
|
|
120
|
+
return super.write(chunk, cb);
|
|
43
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Finishes sending the response, mimicking `http.ServerResponse.end`.
|
|
124
|
+
* This also implicitly flushes headers if they haven't been sent yet.
|
|
125
|
+
*/
|
|
44
126
|
end(chunk, encodingOrCallback, callback) {
|
|
127
|
+
this.ensureHeadersSent();
|
|
45
128
|
const encoding = typeof encodingOrCallback === "string" ? encodingOrCallback : undefined;
|
|
46
129
|
const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
|
|
47
|
-
|
|
48
|
-
|
|
130
|
+
if (encoding) {
|
|
131
|
+
super.end(chunk, encoding, cb);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
super.end(chunk, cb);
|
|
135
|
+
}
|
|
49
136
|
return this;
|
|
50
137
|
}
|
|
51
138
|
}
|
|
139
|
+
//# sourceMappingURL=honoNodeBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"honoNodeBridge.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/honoNodeBridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAC1C,UAAU,GAAG,GAAG,CAAC;IACjB,OAAO,GAAwB,EAAE,CAAC;IACjC,YAAY,GAAG,KAAK,CAAC;IAE7B;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CACP,UAAkB,EAClB,sBAAqD,EACrD,OAA6B;QAE7B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,4DAA4D;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,UAAU,GACd,OAAO,sBAAsB,KAAK,QAAQ;YACxC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,sBAAsB,CAAC;QAE7B,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,IAAY,EAAE,KAAiC;QACvD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,uEAAuE;YACvE,kDAAkD;YAClD,OAAO,CAAC,IAAI,CACV,4CAA4C,IAAI,2BAA2B,CAC5E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,IAAY;QACvB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CACV,+CAA+C,IAAI,2BAA2B,CAC/E,CAAC;YACF,OAAO;QACT,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CACH,KAAc,EACd,kBAE+C,EAC/C,QAAoD;QAEpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,QAAQ,GACZ,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,EAAE,GACN,OAAO,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE3E,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,GAAG,CACD,KAAe,EACf,kBAAkD,EAClD,QAAqB;QAErB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,QAAQ,GACZ,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,EAAE,GACN,OAAO,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE3E,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|