@cyanheads/pubmed-mcp-server 1.3.5 → 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 +9 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +67 -11
- package/dist/config/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- 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.map +1 -1
- package/dist/mcp-server/server.js +11 -11
- package/dist/mcp-server/server.js.map +1 -1
- 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 +2 -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 +2 -2
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.js.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/index.d.ts +9 -9
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/index.js +14 -14
- package/dist/mcp-server/tools/pubmedArticleConnections/logic/index.js.map +1 -0
- package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/types.d.ts +4 -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 +11 -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 +6 -6
- package/dist/mcp-server/tools/pubmedFetchContents/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/logic.js +16 -16
- 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 +12 -12
- package/dist/mcp-server/tools/pubmedFetchContents/registration.js.map +1 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/index.d.ts +2 -2
- package/dist/mcp-server/tools/pubmedGenerateChart/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/index.js +2 -2
- package/dist/mcp-server/tools/pubmedGenerateChart/index.js.map +1 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.d.ts +4 -4
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.d.ts.map +1 -1
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.js +14 -14
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.js.map +1 -1
- package/dist/mcp-server/tools/pubmedGenerateChart/registration.d.ts +8 -0
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/registration.d.ts.map +1 -1
- package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/registration.js +9 -13
- package/dist/mcp-server/tools/pubmedGenerateChart/registration.js.map +1 -0
- package/dist/mcp-server/tools/pubmedSearchArticles/index.d.ts +7 -0
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/pubmedSearchArticles/index.js +7 -0
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/index.js.map +1 -1
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.d.ts +7 -7
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.d.ts.map +1 -1
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.js +11 -11
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.js.map +1 -1
- package/dist/mcp-server/tools/pubmedSearchArticles/registration.d.ts +11 -0
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.d.ts.map +1 -1
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.js +12 -12
- package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.js.map +1 -1
- package/dist/mcp-server/transports/auth/index.d.ts +1 -1
- package/dist/mcp-server/transports/auth/index.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +4 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -1
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +5 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -1
- 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 +60 -7
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -1
- package/dist/mcp-server/transports/core/honoNodeBridge.js +99 -12
- package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -1
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +53 -8
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -1
- package/dist/mcp-server/transports/core/statefulTransportManager.js +180 -117
- package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -1
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +44 -7
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -1
- package/dist/mcp-server/transports/core/statelessTransportManager.js +84 -24
- package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -1
- package/dist/mcp-server/transports/core/transportTypes.d.ts +58 -21
- package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -1
- package/dist/mcp-server/transports/core/transportTypes.js +3 -1
- package/dist/mcp-server/transports/core/transportTypes.js.map +1 -1
- package/dist/mcp-server/transports/http/httpTransport.d.ts +3 -3
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpTransport.js +51 -19
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +3 -2
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +26 -24
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal/errorHandler.d.ts +0 -7
- package/dist/utils/internal/errorHandler.d.ts.map +1 -1
- package/dist/utils/internal/errorHandler.js +27 -11
- package/dist/utils/internal/errorHandler.js.map +1 -1
- package/dist/utils/internal/index.d.ts +1 -0
- package/dist/utils/internal/index.d.ts.map +1 -1
- package/dist/utils/internal/index.js +1 -0
- package/dist/utils/internal/index.js.map +1 -1
- package/dist/utils/internal/logger.d.ts.map +1 -1
- package/dist/utils/internal/logger.js +2 -0
- package/dist/utils/internal/logger.js.map +1 -1
- 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.map +1 -1
- package/dist/utils/internal/requestContext.js +10 -0
- package/dist/utils/internal/requestContext.js.map +1 -1
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
- package/dist/utils/network/fetchWithTimeout.js +18 -0
- package/dist/utils/network/fetchWithTimeout.js.map +1 -1
- package/dist/utils/parsing/dateParser.d.ts +2 -3
- package/dist/utils/parsing/dateParser.d.ts.map +1 -1
- package/dist/utils/parsing/dateParser.js +2 -2
- package/dist/utils/parsing/dateParser.js.map +1 -1
- package/dist/utils/parsing/jsonParser.d.ts +1 -1
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -1
- package/dist/utils/parsing/jsonParser.js +5 -4
- package/dist/utils/parsing/jsonParser.js.map +1 -1
- package/dist/utils/security/idGenerator.d.ts.map +1 -1
- package/dist/utils/security/idGenerator.js +5 -1
- package/dist/utils/security/idGenerator.js.map +1 -1
- package/dist/utils/security/rateLimiter.d.ts.map +1 -1
- package/dist/utils/security/rateLimiter.js +22 -6
- package/dist/utils/security/rateLimiter.js.map +1 -1
- 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 -7
- package/dist/mcp-server/tools/fetchPubMedContent/index.d.ts.map +0 -1
- package/dist/mcp-server/tools/fetchPubMedContent/index.js +0 -7
- package/dist/mcp-server/tools/fetchPubMedContent/index.js.map +0 -1
- package/dist/mcp-server/tools/fetchPubMedContent/logic.d.ts.map +0 -1
- package/dist/mcp-server/tools/fetchPubMedContent/logic.js.map +0 -1
- package/dist/mcp-server/tools/fetchPubMedContent/registration.d.ts +0 -11
- package/dist/mcp-server/tools/fetchPubMedContent/registration.d.ts.map +0 -1
- package/dist/mcp-server/tools/fetchPubMedContent/registration.js.map +0 -1
- package/dist/mcp-server/tools/generatePubMedChart/index.d.ts.map +0 -1
- package/dist/mcp-server/tools/generatePubMedChart/index.js.map +0 -1
- package/dist/mcp-server/tools/generatePubMedChart/registration.d.ts +0 -8
- package/dist/mcp-server/tools/generatePubMedChart/registration.js.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/index.d.ts +0 -7
- package/dist/mcp-server/tools/getPubMedArticleConnections/index.d.ts.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/index.js +0 -7
- package/dist/mcp-server/tools/getPubMedArticleConnections/index.js.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter.d.ts +0 -10
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter.d.ts.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter.js.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler.d.ts +0 -10
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler.d.ts.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler.js.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/index.d.ts.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/index.js.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/types.d.ts.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/types.js +0 -6
- package/dist/mcp-server/tools/getPubMedArticleConnections/logic/types.js.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/registration.d.ts +0 -12
- package/dist/mcp-server/tools/getPubMedArticleConnections/registration.d.ts.map +0 -1
- package/dist/mcp-server/tools/getPubMedArticleConnections/registration.js.map +0 -1
- package/dist/mcp-server/tools/searchPubMedArticles/index.d.ts +0 -7
- package/dist/mcp-server/tools/searchPubMedArticles/index.js +0 -7
- package/dist/mcp-server/tools/searchPubMedArticles/registration.d.ts +0 -11
|
@@ -2,7 +2,7 @@ import { ChartJSNodeCanvas } from "chartjs-node-canvas";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { BaseErrorCode, McpError } from "../../../types-global/errors.js";
|
|
4
4
|
import { logger, requestContextService, sanitizeInputForLogging, } from "../../../utils/index.js";
|
|
5
|
-
export const
|
|
5
|
+
export const PubMedGenerateChartInputSchema = z.object({
|
|
6
6
|
chartType: z
|
|
7
7
|
.enum([
|
|
8
8
|
"bar",
|
|
@@ -14,47 +14,47 @@ export const GeneratePubMedChartInputSchema = z.object({
|
|
|
14
14
|
"radar",
|
|
15
15
|
"polarArea",
|
|
16
16
|
])
|
|
17
|
-
.describe("
|
|
17
|
+
.describe("Specifies the type of chart to generate."),
|
|
18
18
|
title: z
|
|
19
19
|
.string()
|
|
20
20
|
.optional()
|
|
21
|
-
.describe("
|
|
21
|
+
.describe("The main title displayed above the chart."),
|
|
22
22
|
width: z
|
|
23
23
|
.number()
|
|
24
24
|
.int()
|
|
25
25
|
.positive()
|
|
26
26
|
.optional()
|
|
27
27
|
.default(800)
|
|
28
|
-
.describe("
|
|
28
|
+
.describe("The width of the chart canvas in pixels."),
|
|
29
29
|
height: z
|
|
30
30
|
.number()
|
|
31
31
|
.int()
|
|
32
32
|
.positive()
|
|
33
33
|
.optional()
|
|
34
34
|
.default(600)
|
|
35
|
-
.describe("
|
|
35
|
+
.describe("The height of the chart canvas in pixels."),
|
|
36
36
|
dataValues: z
|
|
37
37
|
.array(z.record(z.string(), z.any()))
|
|
38
38
|
.min(1)
|
|
39
|
-
.describe("
|
|
39
|
+
.describe("An array of data objects to plot the chart (e.g., [{ 'year': '2020', 'articles': 150 }])."),
|
|
40
40
|
outputFormat: z
|
|
41
41
|
.enum(["png"])
|
|
42
42
|
.default("png")
|
|
43
|
-
.describe("Specifies the output format for the chart.
|
|
43
|
+
.describe("Specifies the output format for the chart."),
|
|
44
44
|
xField: z
|
|
45
45
|
.string()
|
|
46
|
-
.describe("
|
|
46
|
+
.describe("The field name from `dataValues` for the X-axis."),
|
|
47
47
|
yField: z
|
|
48
48
|
.string()
|
|
49
|
-
.describe("
|
|
49
|
+
.describe("The field name from `dataValues` for the Y-axis."),
|
|
50
50
|
seriesField: z
|
|
51
51
|
.string()
|
|
52
52
|
.optional()
|
|
53
|
-
.describe("
|
|
53
|
+
.describe("The field name for creating multiple data series on the same chart."),
|
|
54
54
|
sizeField: z
|
|
55
55
|
.string()
|
|
56
56
|
.optional()
|
|
57
|
-
.describe("
|
|
57
|
+
.describe("For bubble charts, the field name for encoding bubble size."),
|
|
58
58
|
});
|
|
59
59
|
// Helper to group data by a series field
|
|
60
60
|
function groupDataBySeries(data, xField, yField, seriesField) {
|
|
@@ -68,13 +68,13 @@ function groupDataBySeries(data, xField, yField, seriesField) {
|
|
|
68
68
|
}
|
|
69
69
|
return series;
|
|
70
70
|
}
|
|
71
|
-
export async function
|
|
71
|
+
export async function pubmedGenerateChartLogic(input, parentRequestContext) {
|
|
72
72
|
const operationContext = requestContextService.createRequestContext({
|
|
73
73
|
parentRequestId: parentRequestContext.requestId,
|
|
74
|
-
operation: "
|
|
74
|
+
operation: "pubmedGenerateChartLogicExecution",
|
|
75
75
|
input: sanitizeInputForLogging(input),
|
|
76
76
|
});
|
|
77
|
-
logger.info(`Executing '
|
|
77
|
+
logger.info(`Executing 'pubmed_generate_chart' with Chart.js. Chart type: ${input.chartType}`, operationContext);
|
|
78
78
|
const { width, height, chartType, dataValues, xField, yField, title, seriesField, sizeField, } = input;
|
|
79
79
|
const chartJSNodeCanvas = new ChartJSNodeCanvas({
|
|
80
80
|
width,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedGenerateChart/logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Registers the 'pubmed_generate_chart' tool with the MCP server.
|
|
3
|
+
* This tool now accepts parameterized input for generating charts.
|
|
4
|
+
* @module src/mcp-server/tools/pubmedGenerateChart/registration
|
|
5
|
+
*/
|
|
6
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
export declare function registerPubMedGenerateChartTool(server: McpServer): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=registration.d.ts.map
|
package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/registration.d.ts.map
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedGenerateChart/registration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAepE,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CAoFf"}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
import { BaseErrorCode, McpError } from "../../../types-global/errors.js";
|
|
2
2
|
import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
|
|
3
|
-
import {
|
|
4
|
-
export async function
|
|
5
|
-
const operation = "
|
|
6
|
-
const toolName = "
|
|
7
|
-
const toolDescription = "Generates a customizable chart (PNG) from structured data. "
|
|
8
|
-
"Supports 'bar', 'line', 'scatter', 'pie', 'doughnut', 'bubble', 'radar', and 'polarArea' plots. " +
|
|
9
|
-
"Requires data values and field mappings for axes. " +
|
|
10
|
-
"Optional parameters allow for titles and dimensions. " +
|
|
11
|
-
"Internally uses Chart.js and chartjs-node-canvas to produce a Base64-encoded PNG image.";
|
|
3
|
+
import { PubMedGenerateChartInputSchema, pubmedGenerateChartLogic, } from "./logic.js";
|
|
4
|
+
export async function registerPubMedGenerateChartTool(server) {
|
|
5
|
+
const operation = "registerPubMedGenerateChartTool";
|
|
6
|
+
const toolName = "pubmed_generate_chart";
|
|
7
|
+
const toolDescription = "Generates a customizable chart (PNG) from structured data. Supports various plot types and requires data values and field mappings for axes. Returns a Base64-encoded PNG image.";
|
|
12
8
|
const context = requestContextService.createRequestContext({ operation });
|
|
13
9
|
await ErrorHandler.tryCatch(async () => {
|
|
14
|
-
server.tool(toolName, toolDescription,
|
|
10
|
+
server.tool(toolName, toolDescription, PubMedGenerateChartInputSchema.shape, async (input, mcpProvidedContext) => {
|
|
15
11
|
const richContext = requestContextService.createRequestContext({
|
|
16
12
|
parentRequestId: context.requestId,
|
|
17
|
-
operation: "
|
|
13
|
+
operation: "pubmedGenerateChartToolHandler",
|
|
18
14
|
mcpToolContext: mcpProvidedContext,
|
|
19
15
|
input,
|
|
20
16
|
});
|
|
21
17
|
try {
|
|
22
|
-
const result = await
|
|
18
|
+
const result = await pubmedGenerateChartLogic(input, richContext);
|
|
23
19
|
return {
|
|
24
20
|
content: [
|
|
25
21
|
{
|
|
@@ -33,7 +29,7 @@ export async function registerGeneratePubMedChartTool(server) {
|
|
|
33
29
|
}
|
|
34
30
|
catch (error) {
|
|
35
31
|
const handledError = ErrorHandler.handleError(error, {
|
|
36
|
-
operation: "
|
|
32
|
+
operation: "pubmedGenerateChartToolHandler",
|
|
37
33
|
context: richContext,
|
|
38
34
|
input,
|
|
39
35
|
rethrow: false,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedGenerateChart/registration.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,MAAiB;IAEjB,MAAM,SAAS,GAAG,iCAAiC,CAAC;IACpD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;IACzC,MAAM,eAAe,GACnB,kLAAkL,CAAC;IACrL,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE1E,MAAM,YAAY,CAAC,QAAQ,CACzB,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,eAAe,EACf,8BAA8B,CAAC,KAAK,EACpC,KAAK,EACH,KAA+B,EAC/B,kBAAuB,EACE,EAAE;YAC3B,MAAM,WAAW,GACf,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,eAAe,EAAE,OAAO,CAAC,SAAS;gBAClC,SAAS,EAAE,gCAAgC;gBAC3C,cAAc,EAAE,kBAAkB;gBAClC,KAAK;aACN,CAAC,CAAC;YAEL,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,MAAM,CAAC,UAAU;4BACvB,QAAQ,EAAE,WAAW;yBACtB;qBACF;oBACD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;oBACnD,SAAS,EAAE,gCAAgC;oBAC3C,OAAO,EAAE,WAAW;oBACpB,KAAK;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBAEH,MAAM,QAAQ,GACZ,YAAY,YAAY,QAAQ;oBAC9B,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,IAAI,QAAQ,CACV,aAAa,CAAC,cAAc,EAC5B,0DAA0D,EAC1D;wBACE,iBAAiB,EAAE,YAAY,CAAC,IAAI;wBACpC,oBAAoB,EAAE,YAAY,CAAC,OAAO;qBAC3C,CACF,CAAC;gBAER,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;oCACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;iCAC1B;6BACF,CAAC;yBACH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,eAAe,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,EACD;QACE,SAAS;QACT,OAAO;QACP,SAAS,EAAE,aAAa,CAAC,qBAAqB;QAC9C,QAAQ,EAAE,IAAI;KACf,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel file for the pubmedSearchArticles tool.
|
|
3
|
+
* Exports the tool's registration function.
|
|
4
|
+
* @module src/mcp-server/tools/pubmedSearchArticles/index
|
|
5
|
+
*/
|
|
6
|
+
export { registerPubMedSearchArticlesTool } from "./registration.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedSearchArticles/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel file for the pubmedSearchArticles tool.
|
|
3
|
+
* Exports the tool's registration function.
|
|
4
|
+
* @module src/mcp-server/tools/pubmedSearchArticles/index
|
|
5
|
+
*/
|
|
6
|
+
export { registerPubMedSearchArticlesTool } from "./registration.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedSearchArticles/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Logic for the
|
|
2
|
+
* @fileoverview Logic for the pubmed_search_articles MCP tool.
|
|
3
3
|
* Handles constructing ESearch and ESummary queries, interacting with
|
|
4
4
|
* the NcbiService, and formatting the results.
|
|
5
|
-
* @module src/mcp-server/tools/
|
|
5
|
+
* @module src/mcp-server/tools/pubmedSearchArticles/logic
|
|
6
6
|
*/
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { ParsedBriefSummary } from "../../../types-global/pubmedXml.js";
|
|
9
9
|
import { RequestContext } from "../../../utils/index.js";
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const PubMedSearchArticlesInputSchema: z.ZodObject<{
|
|
11
11
|
queryTerm: z.ZodString;
|
|
12
12
|
maxResults: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
13
13
|
sortBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["relevance", "pub_date", "author", "journal_name"]>>>;
|
|
@@ -49,9 +49,9 @@ export declare const SearchPubMedArticlesInputSchema: z.ZodObject<{
|
|
|
49
49
|
filterByPublicationTypes?: string[] | undefined;
|
|
50
50
|
fetchBriefSummaries?: number | undefined;
|
|
51
51
|
}>;
|
|
52
|
-
export type
|
|
53
|
-
export type
|
|
54
|
-
searchParameters:
|
|
52
|
+
export type PubMedSearchArticlesInput = z.infer<typeof PubMedSearchArticlesInputSchema>;
|
|
53
|
+
export type PubMedSearchArticlesOutput = {
|
|
54
|
+
searchParameters: PubMedSearchArticlesInput;
|
|
55
55
|
effectiveESearchTerm: string;
|
|
56
56
|
totalFound: number;
|
|
57
57
|
retrievedPmidCount: number;
|
|
@@ -60,5 +60,5 @@ export type SearchPubMedArticlesOutput = {
|
|
|
60
60
|
eSearchUrl: string;
|
|
61
61
|
eSummaryUrl?: string;
|
|
62
62
|
};
|
|
63
|
-
export declare function
|
|
63
|
+
export declare function pubmedSearchArticlesLogic(input: PubMedSearchArticlesInput, parentRequestContext: RequestContext): Promise<PubMedSearchArticlesOutput>;
|
|
64
64
|
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedSearchArticles/logic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAGL,kBAAkB,EACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEL,cAAc,EAGf,MAAM,yBAAyB,CAAC;AAIjC,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwE1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAgBF,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,yBAAyB,EAChC,oBAAoB,EAAE,cAAc,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAsJrC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Logic for the
|
|
2
|
+
* @fileoverview Logic for the pubmed_search_articles MCP tool.
|
|
3
3
|
* Handles constructing ESearch and ESummary queries, interacting with
|
|
4
4
|
* the NcbiService, and formatting the results.
|
|
5
|
-
* @module src/mcp-server/tools/
|
|
5
|
+
* @module src/mcp-server/tools/pubmedSearchArticles/logic
|
|
6
6
|
*/
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { getNcbiService } from "../../../services/NCBI/core/ncbiService.js";
|
|
@@ -10,7 +10,7 @@ import { BaseErrorCode, McpError } from "../../../types-global/errors.js";
|
|
|
10
10
|
import { logger, requestContextService, sanitizeInputForLogging, } from "../../../utils/index.js";
|
|
11
11
|
import { extractBriefSummaries } from "../../../services/NCBI/parsing/index.js";
|
|
12
12
|
import { sanitization } from "../../../utils/security/sanitization.js";
|
|
13
|
-
export const
|
|
13
|
+
export const PubMedSearchArticlesInputSchema = z.object({
|
|
14
14
|
queryTerm: z
|
|
15
15
|
.string()
|
|
16
16
|
.min(3, "Query term must be at least 3 characters")
|
|
@@ -27,7 +27,7 @@ export const SearchPubMedArticlesInputSchema = z.object({
|
|
|
27
27
|
.enum(["relevance", "pub_date", "author", "journal_name"])
|
|
28
28
|
.optional()
|
|
29
29
|
.default("relevance")
|
|
30
|
-
.describe("Sorting criteria for results. Options: 'relevance' (default), 'pub_date', 'author', 'journal_name'.
|
|
30
|
+
.describe("Sorting criteria for results. Options: 'relevance' (default), 'pub_date', 'author', 'journal_name'."),
|
|
31
31
|
dateRange: z
|
|
32
32
|
.object({
|
|
33
33
|
minDate: z
|
|
@@ -47,11 +47,11 @@ export const SearchPubMedArticlesInputSchema = z.object({
|
|
|
47
47
|
.describe("The type of date to filter by: 'pdat' (Publication Date), 'mdat' (Modification Date), 'edat' (Entrez Date). Default is 'pdat'."),
|
|
48
48
|
})
|
|
49
49
|
.optional()
|
|
50
|
-
.describe("Defines an optional date range for the search
|
|
50
|
+
.describe("Defines an optional date range for the search."),
|
|
51
51
|
filterByPublicationTypes: z
|
|
52
52
|
.array(z.string())
|
|
53
53
|
.optional()
|
|
54
|
-
.describe('An array of publication types to filter by (e.g., ["Review", "Clinical Trial"]).
|
|
54
|
+
.describe('An array of publication types to filter by (e.g., ["Review", "Clinical Trial"]).'),
|
|
55
55
|
fetchBriefSummaries: z
|
|
56
56
|
.number()
|
|
57
57
|
.int()
|
|
@@ -59,16 +59,16 @@ export const SearchPubMedArticlesInputSchema = z.object({
|
|
|
59
59
|
.max(50)
|
|
60
60
|
.optional()
|
|
61
61
|
.default(0)
|
|
62
|
-
.describe("Number of top PMIDs for which to fetch brief summaries using ESummary
|
|
62
|
+
.describe("Number of top PMIDs for which to fetch brief summaries using ESummary. Set to 0 to disable. Max 50. Default 0."),
|
|
63
63
|
});
|
|
64
|
-
export async function
|
|
64
|
+
export async function pubmedSearchArticlesLogic(input, parentRequestContext) {
|
|
65
65
|
const ncbiService = getNcbiService();
|
|
66
66
|
const toolLogicContext = requestContextService.createRequestContext({
|
|
67
67
|
parentRequestId: parentRequestContext.requestId,
|
|
68
|
-
operation: "
|
|
68
|
+
operation: "pubmedSearchArticlesLogic",
|
|
69
69
|
input: sanitizeInputForLogging(input),
|
|
70
70
|
});
|
|
71
|
-
logger.info("Executing
|
|
71
|
+
logger.info("Executing pubmed_search_articles tool", toolLogicContext);
|
|
72
72
|
let effectiveQuery = sanitization.sanitizeString(input.queryTerm, {
|
|
73
73
|
context: "text",
|
|
74
74
|
});
|
|
@@ -157,7 +157,7 @@ export async function searchPubMedArticlesLogic(input, parentRequestContext) {
|
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
-
logger.notice("Successfully executed
|
|
160
|
+
logger.notice("Successfully executed pubmed_search_articles tool.", {
|
|
161
161
|
...toolLogicContext,
|
|
162
162
|
totalFound,
|
|
163
163
|
retrievedPmidCount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedSearchArticles/logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Registration for the pubmed_search_articles MCP tool.
|
|
3
|
+
* @module src/mcp-server/tools/pubmedSearchArticles/registration
|
|
4
|
+
*/
|
|
5
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
+
/**
|
|
7
|
+
* Registers the pubmed_search_articles tool with the MCP server.
|
|
8
|
+
* @param server - The McpServer instance.
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerPubMedSearchArticlesTool(server: McpServer): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=registration.d.ts.map
|
package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.d.ts.map
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedSearchArticles/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAepE;;;GAGG;AACH,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CAgFf"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Registration for the
|
|
3
|
-
* @module src/mcp-server/tools/
|
|
2
|
+
* @fileoverview Registration for the pubmed_search_articles MCP tool.
|
|
3
|
+
* @module src/mcp-server/tools/pubmedSearchArticles/registration
|
|
4
4
|
*/
|
|
5
5
|
import { BaseErrorCode, McpError } from "../../../types-global/errors.js";
|
|
6
6
|
import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
|
|
7
|
-
import {
|
|
7
|
+
import { PubMedSearchArticlesInputSchema, pubmedSearchArticlesLogic, } from "./logic.js";
|
|
8
8
|
/**
|
|
9
|
-
* Registers the
|
|
9
|
+
* Registers the pubmed_search_articles tool with the MCP server.
|
|
10
10
|
* @param server - The McpServer instance.
|
|
11
11
|
*/
|
|
12
|
-
export async function
|
|
13
|
-
const operation = "
|
|
14
|
-
const toolName = "
|
|
15
|
-
const toolDescription = "Searches PubMed for articles using a query term and optional filters (max results, sort, date range, publication types). Uses NCBI ESearch to find PMIDs and ESummary (optional) for brief summaries. Returns a JSON object with search parameters, ESearch term, result counts, PMIDs, optional summaries
|
|
12
|
+
export async function registerPubMedSearchArticlesTool(server) {
|
|
13
|
+
const operation = "registerPubMedSearchArticlesTool";
|
|
14
|
+
const toolName = "pubmed_search_articles";
|
|
15
|
+
const toolDescription = "Searches PubMed for articles using a query term and optional filters (max results, sort, date range, publication types). Uses NCBI ESearch to find PMIDs and ESummary (optional) for brief summaries. Returns a JSON object with search parameters, ESearch term, result counts, PMIDs, optional summaries, and E-utility URLs.";
|
|
16
16
|
const context = requestContextService.createRequestContext({ operation });
|
|
17
17
|
await ErrorHandler.tryCatch(async () => {
|
|
18
|
-
server.tool(toolName, toolDescription,
|
|
18
|
+
server.tool(toolName, toolDescription, PubMedSearchArticlesInputSchema.shape, async (input, mcpProvidedContext) => {
|
|
19
19
|
const richContext = requestContextService.createRequestContext({
|
|
20
20
|
parentRequestId: context.requestId,
|
|
21
|
-
operation: "
|
|
21
|
+
operation: "pubmedSearchArticlesToolHandler",
|
|
22
22
|
mcpToolContext: mcpProvidedContext,
|
|
23
23
|
input,
|
|
24
24
|
});
|
|
25
25
|
try {
|
|
26
|
-
const result = await
|
|
26
|
+
const result = await pubmedSearchArticlesLogic(input, richContext);
|
|
27
27
|
return {
|
|
28
28
|
content: [
|
|
29
29
|
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
@@ -33,7 +33,7 @@ export async function registerSearchPubMedArticlesTool(server) {
|
|
|
33
33
|
}
|
|
34
34
|
catch (error) {
|
|
35
35
|
const handledError = ErrorHandler.handleError(error, {
|
|
36
|
-
operation: "
|
|
36
|
+
operation: "pubmedSearchArticlesToolHandler",
|
|
37
37
|
context: richContext,
|
|
38
38
|
input,
|
|
39
39
|
rethrow: false,
|
package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.js.map
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/
|
|
1
|
+
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedSearchArticles/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAiB;IAEjB,MAAM,SAAS,GAAG,kCAAkC,CAAC;IACrD,MAAM,QAAQ,GAAG,wBAAwB,CAAC;IAC1C,MAAM,eAAe,GACnB,iUAAiU,CAAC;IACpU,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE1E,MAAM,YAAY,CAAC,QAAQ,CACzB,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,eAAe,EACf,+BAA+B,CAAC,KAAK,EACrC,KAAK,EACH,KAAgC,EAChC,kBAAuB,EACE,EAAE;YAC3B,MAAM,WAAW,GACf,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,eAAe,EAAE,OAAO,CAAC,SAAS;gBAClC,SAAS,EAAE,iCAAiC;gBAC5C,cAAc,EAAE,kBAAkB;gBAClC,KAAK;aACN,CAAC,CAAC;YAEL,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACnE,OAAO;oBACL,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBACxD;oBACD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;oBACnD,SAAS,EAAE,iCAAiC;oBAC5C,OAAO,EAAE,WAAW;oBACpB,KAAK;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBAEH,MAAM,QAAQ,GACZ,YAAY,YAAY,QAAQ;oBAC9B,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,IAAI,QAAQ,CACV,aAAa,CAAC,cAAc,EAC5B,+DAA+D,EAC/D;wBACE,iBAAiB,EAAE,YAAY,CAAC,IAAI;wBACpC,oBAAoB,EAAE,YAAY,CAAC,OAAO;qBAC3C,CACF,CAAC;gBAER,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;oCACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;iCAC1B;6BACF,CAAC;yBACH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,eAAe,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,EACD;QACE,SAAS;QACT,OAAO;QACP,SAAS,EAAE,aAAa,CAAC,qBAAqB;QAC9C,QAAQ,EAAE,IAAI;KACf,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -8,7 +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
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -94,6 +94,10 @@ export class JwtStrategy {
|
|
|
94
94
|
return authInfo;
|
|
95
95
|
}
|
|
96
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
|
+
}
|
|
97
101
|
const message = error instanceof Error && error.name === "JWTExpired"
|
|
98
102
|
? "Token has expired."
|
|
99
103
|
: "Token verification failed.";
|
|
@@ -1 +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,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"}
|
|
1
|
+
{"version":3,"file":"jwtStrategy.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/jwtStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -83,6 +83,10 @@ export class OauthStrategy {
|
|
|
83
83
|
return authInfo;
|
|
84
84
|
}
|
|
85
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
|
+
}
|
|
86
90
|
const message = error instanceof Error && error.name === "JWTExpired"
|
|
87
91
|
? "Token has expired."
|
|
88
92
|
: "OAuth token verification failed.";
|
|
@@ -90,6 +94,7 @@ export class OauthStrategy {
|
|
|
90
94
|
...context,
|
|
91
95
|
errorName: error instanceof Error ? error.name : "Unknown",
|
|
92
96
|
});
|
|
97
|
+
// For all other errors, use the ErrorHandler to wrap them.
|
|
93
98
|
throw ErrorHandler.handleError(error, {
|
|
94
99
|
operation: "OauthStrategy.verify",
|
|
95
100
|
context,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauthStrategy.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/oauthStrategy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauthStrategy.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/oauthStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|