@mapbox/mcp-server 0.8.1-dev.0 → 0.8.1-dev.2
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/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
- package/dist/commonjs/tools/BaseTool.js +3 -1
- package/dist/commonjs/tools/BaseTool.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +212 -212
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +126 -126
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +518 -518
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +13 -13
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +377 -110
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +13 -0
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
- package/dist/commonjs/tools/validateOutput.d.ts +12 -0
- package/dist/commonjs/tools/validateOutput.d.ts.map +1 -0
- package/dist/commonjs/tools/validateOutput.js +58 -0
- package/dist/commonjs/tools/validateOutput.js.map +1 -0
- package/dist/commonjs/tools/version-tool/VersionTool.output.schema.d.ts +2 -2
- package/dist/commonjs/version.json +4 -4
- package/dist/esm/tools/BaseTool.d.ts.map +1 -1
- package/dist/esm/tools/BaseTool.js +3 -1
- package/dist/esm/tools/BaseTool.js.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +212 -212
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +182 -182
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +12 -12
- package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts +2 -2
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +518 -518
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +13 -13
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +401 -134
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +13 -0
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
- package/dist/esm/tools/validateOutput.d.ts +12 -0
- package/dist/esm/tools/validateOutput.d.ts.map +1 -0
- package/dist/esm/tools/validateOutput.js +55 -0
- package/dist/esm/tools/validateOutput.js.map +1 -0
- package/dist/esm/tools/version-tool/VersionTool.output.schema.d.ts +2 -2
- package/dist/esm/version.json +4 -4
- package/package.json +6 -5
- package/patches/@modelcontextprotocol+sdk+1.25.1.patch +66 -0
- package/patches/README.md +41 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchAndGeocodeTool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,QAAA,MAAM,gCAAgC
|
|
1
|
+
{"version":3,"file":"SearchAndGeocodeTool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,19 @@ const SearchBoxFeaturePropertiesSchema = z
|
|
|
91
91
|
brand: z.array(z.string()).optional(),
|
|
92
92
|
brand_id: z.union([z.string(), z.array(z.string())]).optional(),
|
|
93
93
|
external_ids: z.record(z.string()).optional(),
|
|
94
|
+
// Metadata schema for additional feature information
|
|
95
|
+
metadata: z
|
|
96
|
+
.object({
|
|
97
|
+
// API sometimes returns string, sometimes array - accept both
|
|
98
|
+
primary_photo: z.union([z.string(), z.array(z.string())]).optional(),
|
|
99
|
+
reading: z
|
|
100
|
+
.object({
|
|
101
|
+
ja_kana: z.string().optional(),
|
|
102
|
+
ja_latin: z.string().optional()
|
|
103
|
+
})
|
|
104
|
+
.optional()
|
|
105
|
+
})
|
|
106
|
+
.optional(),
|
|
94
107
|
// Additional metadata
|
|
95
108
|
maki: z.string().optional(),
|
|
96
109
|
operational_status: z.string().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchAndGeocodeTool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchAndGeocodeTool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,14 +28,14 @@ export declare const CustomMarkerOverlaySchema: z.ZodObject<{
|
|
|
28
28
|
url: z.ZodString;
|
|
29
29
|
}, "strip", z.ZodTypeAny, {
|
|
30
30
|
type: "custom-marker";
|
|
31
|
+
url: string;
|
|
31
32
|
longitude: number;
|
|
32
33
|
latitude: number;
|
|
33
|
-
url: string;
|
|
34
34
|
}, {
|
|
35
35
|
type: "custom-marker";
|
|
36
|
+
url: string;
|
|
36
37
|
longitude: number;
|
|
37
38
|
latitude: number;
|
|
38
|
-
url: string;
|
|
39
39
|
}>;
|
|
40
40
|
export declare const PathOverlaySchema: z.ZodObject<{
|
|
41
41
|
type: z.ZodLiteral<"path">;
|
|
@@ -100,14 +100,14 @@ export declare const OverlaySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject
|
|
|
100
100
|
url: z.ZodString;
|
|
101
101
|
}, "strip", z.ZodTypeAny, {
|
|
102
102
|
type: "custom-marker";
|
|
103
|
+
url: string;
|
|
103
104
|
longitude: number;
|
|
104
105
|
latitude: number;
|
|
105
|
-
url: string;
|
|
106
106
|
}, {
|
|
107
107
|
type: "custom-marker";
|
|
108
|
+
url: string;
|
|
108
109
|
longitude: number;
|
|
109
110
|
latitude: number;
|
|
110
|
-
url: string;
|
|
111
111
|
}>, z.ZodObject<{
|
|
112
112
|
type: z.ZodLiteral<"path">;
|
|
113
113
|
encodedPolyline: z.ZodString;
|
|
@@ -194,14 +194,14 @@ export declare const StaticMapImageInputSchema: z.ZodObject<{
|
|
|
194
194
|
url: z.ZodString;
|
|
195
195
|
}, "strip", z.ZodTypeAny, {
|
|
196
196
|
type: "custom-marker";
|
|
197
|
+
url: string;
|
|
197
198
|
longitude: number;
|
|
198
199
|
latitude: number;
|
|
199
|
-
url: string;
|
|
200
200
|
}, {
|
|
201
201
|
type: "custom-marker";
|
|
202
|
+
url: string;
|
|
202
203
|
longitude: number;
|
|
203
204
|
latitude: number;
|
|
204
|
-
url: string;
|
|
205
205
|
}>, z.ZodObject<{
|
|
206
206
|
type: z.ZodLiteral<"path">;
|
|
207
207
|
encodedPolyline: z.ZodString;
|
|
@@ -257,9 +257,9 @@ export declare const StaticMapImageInputSchema: z.ZodObject<{
|
|
|
257
257
|
label?: string | undefined;
|
|
258
258
|
} | {
|
|
259
259
|
type: "custom-marker";
|
|
260
|
+
url: string;
|
|
260
261
|
longitude: number;
|
|
261
262
|
latitude: number;
|
|
262
|
-
url: string;
|
|
263
263
|
} | {
|
|
264
264
|
type: "path";
|
|
265
265
|
encodedPolyline: string;
|
|
@@ -293,9 +293,9 @@ export declare const StaticMapImageInputSchema: z.ZodObject<{
|
|
|
293
293
|
label?: string | undefined;
|
|
294
294
|
} | {
|
|
295
295
|
type: "custom-marker";
|
|
296
|
+
url: string;
|
|
296
297
|
longitude: number;
|
|
297
298
|
latitude: number;
|
|
298
|
-
url: string;
|
|
299
299
|
} | {
|
|
300
300
|
type: "path";
|
|
301
301
|
encodedPolyline: string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ZodTypeAny } from 'zod';
|
|
2
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Validates the structured content against the output schema.
|
|
5
|
+
* If validation fails, returns a safe fallback response that includes
|
|
6
|
+
* the raw data as JSON text but omits the structuredContent field.
|
|
7
|
+
*
|
|
8
|
+
* This prevents MCP protocol-level validation errors when the API
|
|
9
|
+
* returns data that doesn't match the expected schema.
|
|
10
|
+
*/
|
|
11
|
+
export declare function validateAndSanitizeOutput<OutputSchema extends ZodTypeAny>(result: CallToolResult, outputSchema?: OutputSchema, toolName?: string): CallToolResult;
|
|
12
|
+
//# sourceMappingURL=validateOutput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateOutput.d.ts","sourceRoot":"","sources":["../../../src/tools/validateOutput.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,SAAS,UAAU,EACvE,MAAM,EAAE,cAAc,EACtB,YAAY,CAAC,EAAE,YAAY,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAChB,cAAc,CAoDhB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
/**
|
|
4
|
+
* Validates the structured content against the output schema.
|
|
5
|
+
* If validation fails, returns a safe fallback response that includes
|
|
6
|
+
* the raw data as JSON text but omits the structuredContent field.
|
|
7
|
+
*
|
|
8
|
+
* This prevents MCP protocol-level validation errors when the API
|
|
9
|
+
* returns data that doesn't match the expected schema.
|
|
10
|
+
*/
|
|
11
|
+
export function validateAndSanitizeOutput(result, outputSchema, toolName) {
|
|
12
|
+
// If no output schema is defined, return as-is
|
|
13
|
+
if (!outputSchema) {
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
// If the result is an error or has no structuredContent, return as-is
|
|
17
|
+
if (result.isError || !result.structuredContent) {
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
// Try to parse the structured content with the schema
|
|
22
|
+
const parsed = outputSchema.parse(result.structuredContent);
|
|
23
|
+
// If successful, return the result with validated structured content
|
|
24
|
+
return {
|
|
25
|
+
...result,
|
|
26
|
+
structuredContent: parsed
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (validationError) {
|
|
30
|
+
// Validation failed - return a safe response without structuredContent
|
|
31
|
+
// The MCP framework won't validate if structuredContent is undefined
|
|
32
|
+
const errorMessage = validationError instanceof Error
|
|
33
|
+
? validationError.message
|
|
34
|
+
: 'Unknown validation error';
|
|
35
|
+
console.warn(`Output validation failed for tool ${toolName || 'unknown'}: ${errorMessage}`);
|
|
36
|
+
// Create a text representation of the data
|
|
37
|
+
const jsonText = JSON.stringify(result.structuredContent, null, 2);
|
|
38
|
+
// Return without structuredContent to avoid MCP validation
|
|
39
|
+
// But include the data as formatted text
|
|
40
|
+
return {
|
|
41
|
+
content: [
|
|
42
|
+
{
|
|
43
|
+
type: 'text',
|
|
44
|
+
text: result.content?.[0]?.type === 'text'
|
|
45
|
+
? result.content[0].text
|
|
46
|
+
: jsonText
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
// Omit structuredContent to prevent MCP validation errors
|
|
50
|
+
// The data is still available in the text content
|
|
51
|
+
isError: false
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=validateOutput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateOutput.js","sourceRoot":"","sources":["../../../src/tools/validateOutput.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAKlC;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAsB,EACtB,YAA2B,EAC3B,QAAiB;IAEjB,+CAA+C;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,sDAAsD;QACtD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE5D,qEAAqE;QACrE,OAAO;YACL,GAAG,MAAM;YACT,iBAAiB,EAAE,MAAM;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,eAAe,EAAE,CAAC;QACzB,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,YAAY,GAChB,eAAe,YAAY,KAAK;YAC9B,CAAC,CAAC,eAAe,CAAC,OAAO;YACzB,CAAC,CAAC,0BAA0B,CAAC;QAEjC,OAAO,CAAC,IAAI,CACV,qCAAqC,QAAQ,IAAI,SAAS,KAAK,YAAY,EAAE,CAC9E,CAAC;QAEF,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEnE,2DAA2D;QAC3D,yCAAyC;QACzC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EACF,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM;wBAClC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;wBACxB,CAAC,CAAC,QAAQ;iBACf;aACF;YACD,0DAA0D;YAC1D,kDAAkD;YAClD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -6,14 +6,14 @@ export declare const VersionResponseSchema: z.ZodObject<{
|
|
|
6
6
|
tag: z.ZodString;
|
|
7
7
|
branch: z.ZodString;
|
|
8
8
|
}, "strip", z.ZodTypeAny, {
|
|
9
|
-
name: string;
|
|
10
9
|
version: string;
|
|
10
|
+
name: string;
|
|
11
11
|
sha: string;
|
|
12
12
|
tag: string;
|
|
13
13
|
branch: string;
|
|
14
14
|
}, {
|
|
15
|
-
name: string;
|
|
16
15
|
version: string;
|
|
16
|
+
name: string;
|
|
17
17
|
sha: string;
|
|
18
18
|
tag: string;
|
|
19
19
|
branch: string;
|
package/dist/esm/version.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"sha": "
|
|
3
|
-
"tag": "v0.
|
|
4
|
-
"branch": "
|
|
5
|
-
"version": "0.8.
|
|
2
|
+
"sha": "69258ace318b301b65df38ae1ec6e22f4f6d8edd",
|
|
3
|
+
"tag": "v0.8.1-dev.1-1-g69258ac",
|
|
4
|
+
"branch": "valentin_temp",
|
|
5
|
+
"version": "0.8.1-dev.1"
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapbox/mcp-server",
|
|
3
|
-
"version": "0.8.1-dev.
|
|
3
|
+
"version": "0.8.1-dev.2",
|
|
4
4
|
"description": "Mapbox MCP server.",
|
|
5
5
|
"mcpName": "io.github.mapbox/mcp-server",
|
|
6
6
|
"main": "./dist/commonjs/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"lint": "eslint \"./src/**/*.{ts,tsx}\" \"./test/**/*.{ts,tsx}\"",
|
|
20
20
|
"lint:fix": "eslint \"./src/**/*.{ts,tsx}\" \"./test/**/*.{ts,tsx}\" --fix",
|
|
21
21
|
"postinstall": "patch-package",
|
|
22
|
-
"prepare": "husky && node .husky/setup-hooks.js",
|
|
22
|
+
"prepare": "node -e \"try { require('fs').accessSync('.git'); require('child_process').execSync('husky && node .husky/setup-hooks.js', {stdio:'inherit'}) } catch { }\"",
|
|
23
23
|
"spellcheck": "cspell \"*.md\" \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
24
24
|
"sync-manifest": "node scripts/sync-manifest-version.cjs",
|
|
25
25
|
"test": "vitest",
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
"globals": "^16.3.0",
|
|
49
49
|
"husky": "^9.0.0",
|
|
50
50
|
"lint-staged": "^16.1.0",
|
|
51
|
-
"patch-package": "^8.0.1",
|
|
52
51
|
"plop": "^4.0.1",
|
|
53
52
|
"prettier": "^3.0.0",
|
|
54
53
|
"tshy": "^3.0.2",
|
|
@@ -64,7 +63,8 @@
|
|
|
64
63
|
"node": ">=22"
|
|
65
64
|
},
|
|
66
65
|
"files": [
|
|
67
|
-
"dist"
|
|
66
|
+
"dist",
|
|
67
|
+
"patches"
|
|
68
68
|
],
|
|
69
69
|
"repository": {
|
|
70
70
|
"type": "git",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
],
|
|
77
77
|
"dependencies": {
|
|
78
78
|
"@mcp-ui/server": "^5.13.1",
|
|
79
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
79
|
+
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
80
80
|
"@opentelemetry/api": "^1.9.0",
|
|
81
81
|
"@opentelemetry/auto-instrumentations-node": "^0.56.0",
|
|
82
82
|
"@opentelemetry/exporter-trace-otlp-http": "^0.56.0",
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
"@opentelemetry/sdk-node": "^0.56.0",
|
|
86
86
|
"@opentelemetry/sdk-trace-base": "^1.30.1",
|
|
87
87
|
"@opentelemetry/semantic-conventions": "^1.30.1",
|
|
88
|
+
"patch-package": "^8.0.1",
|
|
88
89
|
"zod": "^3.25.42"
|
|
89
90
|
},
|
|
90
91
|
"tshy": {
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
diff --git a/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js b/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js
|
|
2
|
+
index e10bb3d..2e99bee 100644
|
|
3
|
+
--- a/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js
|
|
4
|
+
+++ b/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js
|
|
5
|
+
@@ -197,15 +197,20 @@ class McpServer {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (!result.structuredContent) {
|
|
9
|
+
- throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Output validation error: Tool ${toolName} has an output schema but no structured content was provided`);
|
|
10
|
+
+ // Log warning but don't throw - allow tools to omit structured content
|
|
11
|
+
+ console.warn(`[MCP SDK Patch] Output validation warning: Tool ${toolName} has an output schema but no structured content was provided`);
|
|
12
|
+
}
|
|
13
|
+
- // if the tool has an output schema, validate structured content
|
|
14
|
+
- const outputObj = (0, zod_compat_js_1.normalizeObjectSchema)(tool.outputSchema);
|
|
15
|
+
- const parseResult = await (0, zod_compat_js_1.safeParseAsync)(outputObj, result.structuredContent);
|
|
16
|
+
- if (!parseResult.success) {
|
|
17
|
+
- const error = 'error' in parseResult ? parseResult.error : 'Unknown error';
|
|
18
|
+
- const errorMessage = (0, zod_compat_js_1.getParseErrorMessage)(error);
|
|
19
|
+
- throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Output validation error: Invalid structured content for tool ${toolName}: ${errorMessage}`);
|
|
20
|
+
+ else {
|
|
21
|
+
+ // if the tool has an output schema, validate structured content
|
|
22
|
+
+ const outputObj = (0, zod_compat_js_1.normalizeObjectSchema)(tool.outputSchema);
|
|
23
|
+
+ const parseResult = await (0, zod_compat_js_1.safeParseAsync)(outputObj, result.structuredContent);
|
|
24
|
+
+ if (!parseResult.success) {
|
|
25
|
+
+ const error = 'error' in parseResult ? parseResult.error : 'Unknown error';
|
|
26
|
+
+ const errorMessage = (0, zod_compat_js_1.getParseErrorMessage)(error);
|
|
27
|
+
+ // Log warning but don't throw - allow schema mismatches
|
|
28
|
+
+ console.warn(`[MCP SDK Patch] Output validation warning: Invalid structured content for tool ${toolName}: ${errorMessage}`);
|
|
29
|
+
+ // Keep the structuredContent despite validation failure
|
|
30
|
+
+ }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
diff --git a/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js b/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
|
|
35
|
+
index 23639ce..7b8a325 100644
|
|
36
|
+
--- a/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
|
|
37
|
+
+++ b/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
|
|
38
|
+
@@ -194,15 +194,20 @@ export class McpServer {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (!result.structuredContent) {
|
|
42
|
+
- throw new McpError(ErrorCode.InvalidParams, `Output validation error: Tool ${toolName} has an output schema but no structured content was provided`);
|
|
43
|
+
+ // Log warning but don't throw - allow tools to omit structured content
|
|
44
|
+
+ console.warn(`[MCP SDK Patch] Output validation warning: Tool ${toolName} has an output schema but no structured content was provided`);
|
|
45
|
+
}
|
|
46
|
+
- // if the tool has an output schema, validate structured content
|
|
47
|
+
- const outputObj = normalizeObjectSchema(tool.outputSchema);
|
|
48
|
+
- const parseResult = await safeParseAsync(outputObj, result.structuredContent);
|
|
49
|
+
- if (!parseResult.success) {
|
|
50
|
+
- const error = 'error' in parseResult ? parseResult.error : 'Unknown error';
|
|
51
|
+
- const errorMessage = getParseErrorMessage(error);
|
|
52
|
+
- throw new McpError(ErrorCode.InvalidParams, `Output validation error: Invalid structured content for tool ${toolName}: ${errorMessage}`);
|
|
53
|
+
+ else {
|
|
54
|
+
+ // if the tool has an output schema, validate structured content
|
|
55
|
+
+ const outputObj = normalizeObjectSchema(tool.outputSchema);
|
|
56
|
+
+ const parseResult = await safeParseAsync(outputObj, result.structuredContent);
|
|
57
|
+
+ if (!parseResult.success) {
|
|
58
|
+
+ const error = 'error' in parseResult ? parseResult.error : 'Unknown error';
|
|
59
|
+
+ const errorMessage = getParseErrorMessage(error);
|
|
60
|
+
+ // Log warning but don't throw - allow schema mismatches
|
|
61
|
+
+ console.warn(`[MCP SDK Patch] Output validation warning: Invalid structured content for tool ${toolName}: ${errorMessage}`);
|
|
62
|
+
+ // Keep the structuredContent despite validation failure
|
|
63
|
+
+ }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# MCP SDK Patches
|
|
2
|
+
|
|
3
|
+
This directory contains patches for npm dependencies that are automatically applied after `npm install`.
|
|
4
|
+
|
|
5
|
+
## @modelcontextprotocol/sdk
|
|
6
|
+
|
|
7
|
+
**File:** `@modelcontextprotocol+sdk+1.21.1.patch`
|
|
8
|
+
|
|
9
|
+
**Purpose:** Makes MCP output schema validation non-fatal to improve resilience and user experience.
|
|
10
|
+
|
|
11
|
+
**Problem:** The MCP SDK enforces strict output schema validation, which causes the entire tool call to fail when there are minor schema mismatches. This creates unnecessary risk and poor user experience - most MCP clients can gracefully handle responses that don't perfectly match the declared schema.
|
|
12
|
+
|
|
13
|
+
**Solution:** This patch modifies the MCP SDK to log warnings instead of throwing errors when output validation fails. This provides a better balance between:
|
|
14
|
+
|
|
15
|
+
- **Schema documentation** - Output schemas still serve as documentation for expected response structure
|
|
16
|
+
- **Resilience** - Tools continue working even with minor variations in response format
|
|
17
|
+
- **Observability** - Validation issues are logged for monitoring and debugging
|
|
18
|
+
- **User experience** - Clients receive the actual data instead of an error
|
|
19
|
+
|
|
20
|
+
**Benefits:**
|
|
21
|
+
|
|
22
|
+
- Prevents tool failures due to minor schema variations
|
|
23
|
+
- Allows graceful degradation when APIs evolve or return edge cases
|
|
24
|
+
- Maintains backward compatibility while improving reliability
|
|
25
|
+
- Clients that need strict validation can implement it themselves
|
|
26
|
+
|
|
27
|
+
**Changes:**
|
|
28
|
+
|
|
29
|
+
- Converts validation errors to console warnings with `[MCP SDK Patch]` prefix
|
|
30
|
+
- Allows tools to return structured content even when it doesn't match the schema exactly
|
|
31
|
+
- Preserves all existing functionality while removing unnecessary strictness
|
|
32
|
+
|
|
33
|
+
**Maintenance:**
|
|
34
|
+
|
|
35
|
+
- This patch is automatically applied after `npm install` via the `postinstall` script
|
|
36
|
+
- If the MCP SDK is updated, you may need to recreate this patch:
|
|
37
|
+
1. Remove the old patch file
|
|
38
|
+
2. Make the same modifications to the new SDK version
|
|
39
|
+
3. Run `npx patch-package @modelcontextprotocol/sdk`
|
|
40
|
+
|
|
41
|
+
**Philosophy:** This patch follows the robustness principle: "Be conservative in what you send, be liberal in what you accept." Output schemas remain valuable for documentation and tooling, but shouldn't cause failures when the real-world data varies slightly from the ideal schema.
|