@modelcontextprotocol/sdk 1.11.3 → 1.11.4
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/cjs/client/index.d.ts +192 -1
- package/dist/cjs/client/index.d.ts.map +1 -1
- package/dist/cjs/client/index.js +51 -2
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/client/sse.d.ts.map +1 -1
- package/dist/cjs/client/sse.js +0 -9
- package/dist/cjs/client/sse.js.map +1 -1
- package/dist/cjs/examples/client/parallelToolCallsClient.js +2 -1
- package/dist/cjs/examples/client/parallelToolCallsClient.js.map +1 -1
- package/dist/cjs/examples/client/simpleStreamableHttp.js +2 -1
- package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js +2 -1
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -1
- package/dist/cjs/examples/client/testOutputSchemaServers.d.ts +8 -0
- package/dist/cjs/examples/client/testOutputSchemaServers.d.ts.map +1 -0
- package/dist/cjs/examples/client/testOutputSchemaServers.js +80 -0
- package/dist/cjs/examples/client/testOutputSchemaServers.js.map +1 -0
- package/dist/cjs/examples/server/lowLevelOutputSchema.d.ts +8 -0
- package/dist/cjs/examples/server/lowLevelOutputSchema.d.ts.map +1 -0
- package/dist/cjs/examples/server/lowLevelOutputSchema.js +103 -0
- package/dist/cjs/examples/server/lowLevelOutputSchema.js.map +1 -0
- package/dist/cjs/examples/server/mcpServerOutputSchema.d.ts +7 -0
- package/dist/cjs/examples/server/mcpServerOutputSchema.d.ts.map +1 -0
- package/dist/cjs/examples/server/mcpServerOutputSchema.js +65 -0
- package/dist/cjs/examples/server/mcpServerOutputSchema.js.map +1 -0
- package/dist/cjs/server/mcp.d.ts +20 -3
- package/dist/cjs/server/mcp.d.ts.map +1 -1
- package/dist/cjs/server/mcp.js +93 -39
- package/dist/cjs/server/mcp.js.map +1 -1
- package/dist/cjs/types.d.ts +9035 -2594
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +76 -5
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/client/index.d.ts +192 -1
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +52 -3
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/client/sse.d.ts.map +1 -1
- package/dist/esm/client/sse.js +0 -9
- package/dist/esm/client/sse.js.map +1 -1
- package/dist/esm/examples/client/parallelToolCallsClient.js +2 -1
- package/dist/esm/examples/client/parallelToolCallsClient.js.map +1 -1
- package/dist/esm/examples/client/simpleStreamableHttp.js +2 -1
- package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js +2 -1
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -1
- package/dist/esm/examples/client/testOutputSchemaServers.d.ts +8 -0
- package/dist/esm/examples/client/testOutputSchemaServers.d.ts.map +1 -0
- package/dist/esm/examples/client/testOutputSchemaServers.js +78 -0
- package/dist/esm/examples/client/testOutputSchemaServers.js.map +1 -0
- package/dist/esm/examples/server/lowLevelOutputSchema.d.ts +8 -0
- package/dist/esm/examples/server/lowLevelOutputSchema.d.ts.map +1 -0
- package/dist/esm/examples/server/lowLevelOutputSchema.js +101 -0
- package/dist/esm/examples/server/lowLevelOutputSchema.js.map +1 -0
- package/dist/esm/examples/server/mcpServerOutputSchema.d.ts +7 -0
- package/dist/esm/examples/server/mcpServerOutputSchema.d.ts.map +1 -0
- package/dist/esm/examples/server/mcpServerOutputSchema.js +63 -0
- package/dist/esm/examples/server/mcpServerOutputSchema.js.map +1 -0
- package/dist/esm/server/mcp.d.ts +20 -3
- package/dist/esm/server/mcp.d.ts.map +1 -1
- package/dist/esm/server/mcp.js +93 -39
- package/dist/esm/server/mcp.js.map +1 -1
- package/dist/esm/types.d.ts +9035 -2594
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +75 -4
- package/dist/esm/types.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamableHttpWithSseFallbackClient.js","sourceRoot":"","sources":["../../../../src/examples/client/streamableHttpWithSseFallbackClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"streamableHttpWithSseFallbackClient.js","sourceRoot":"","sources":["../../../../src/examples/client/streamableHttpWithSseFallbackClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Client to test outputSchema servers
|
|
4
|
+
* This client connects to either the high-level or low-level outputSchema server
|
|
5
|
+
* and calls the get_weather tool to demonstrate structured output
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=testOutputSchemaServers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testOutputSchemaServers.d.ts","sourceRoot":"","sources":["../../../../src/examples/client/testOutputSchemaServers.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Client to test outputSchema servers
|
|
5
|
+
* This client connects to either the high-level or low-level outputSchema server
|
|
6
|
+
* and calls the get_weather tool to demonstrate structured output
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const index_js_1 = require("../../client/index.js");
|
|
10
|
+
const stdio_js_1 = require("../../client/stdio.js");
|
|
11
|
+
async function main() {
|
|
12
|
+
const serverPath = process.argv[2];
|
|
13
|
+
if (!serverPath) {
|
|
14
|
+
console.error("Usage: npx tsx src/examples/client/testOutputSchemaServers.ts <server-path>");
|
|
15
|
+
console.error("Example: npx tsx src/examples/client/testOutputSchemaServers.ts ../server/mcpServerOutputSchema.ts");
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
console.log(`Connecting to ${serverPath}...`);
|
|
19
|
+
// Create transport that spawns the server process
|
|
20
|
+
const transport = new stdio_js_1.StdioClientTransport({
|
|
21
|
+
command: "npx",
|
|
22
|
+
args: ["tsx", serverPath]
|
|
23
|
+
});
|
|
24
|
+
const client = new index_js_1.Client({
|
|
25
|
+
name: "output-schema-test-client",
|
|
26
|
+
version: "1.0.0"
|
|
27
|
+
}, {
|
|
28
|
+
capabilities: {}
|
|
29
|
+
});
|
|
30
|
+
try {
|
|
31
|
+
await client.connect(transport);
|
|
32
|
+
console.log("Connected to server\n");
|
|
33
|
+
// List available tools
|
|
34
|
+
console.log("Listing available tools...");
|
|
35
|
+
const toolsResult = await client.listTools();
|
|
36
|
+
console.log("Available tools:");
|
|
37
|
+
for (const tool of toolsResult.tools) {
|
|
38
|
+
console.log(`- ${tool.name}: ${tool.description}`);
|
|
39
|
+
if (tool.outputSchema) {
|
|
40
|
+
console.log(" Has outputSchema: Yes");
|
|
41
|
+
console.log(" Output schema:", JSON.stringify(tool.outputSchema, null, 2));
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.log(" Has outputSchema: No");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Call the weather tool
|
|
48
|
+
console.log("\nCalling get_weather tool...");
|
|
49
|
+
// Note: Output schema validation only works when using the high-level Client API
|
|
50
|
+
// methods like callTool(). Low-level protocol requests do not validate the response.
|
|
51
|
+
const weatherResult = await client.callTool({
|
|
52
|
+
name: "get_weather",
|
|
53
|
+
arguments: {
|
|
54
|
+
city: "London",
|
|
55
|
+
country: "UK"
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
console.log("\nWeather tool result:");
|
|
59
|
+
if (weatherResult.structuredContent) {
|
|
60
|
+
console.log("Structured content:");
|
|
61
|
+
console.log(JSON.stringify(weatherResult.structuredContent, null, 2));
|
|
62
|
+
}
|
|
63
|
+
if (weatherResult.content && Array.isArray(weatherResult.content)) {
|
|
64
|
+
console.log("Unstructured content:");
|
|
65
|
+
weatherResult.content.forEach(content => {
|
|
66
|
+
if (content.type === "text") {
|
|
67
|
+
console.log(content.text);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
await client.close();
|
|
72
|
+
console.log("\nDisconnected from server");
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error("Error:", error);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
main();
|
|
80
|
+
//# sourceMappingURL=testOutputSchemaServers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testOutputSchemaServers.js","sourceRoot":"","sources":["../../../../src/examples/client/testOutputSchemaServers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Example MCP server demonstrating tool outputSchema support using the low-level Server API
|
|
4
|
+
* This server manually handles tool listing and invocation requests to return structured data
|
|
5
|
+
* For a simpler high-level API approach, see mcpServerOutputSchema.ts
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=lowLevelOutputSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lowLevelOutputSchema.d.ts","sourceRoot":"","sources":["../../../../src/examples/server/lowLevelOutputSchema.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Example MCP server demonstrating tool outputSchema support using the low-level Server API
|
|
5
|
+
* This server manually handles tool listing and invocation requests to return structured data
|
|
6
|
+
* For a simpler high-level API approach, see mcpServerOutputSchema.ts
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const index_js_1 = require("../../server/index.js");
|
|
10
|
+
const stdio_js_1 = require("../../server/stdio.js");
|
|
11
|
+
const types_js_1 = require("../../types.js");
|
|
12
|
+
const server = new index_js_1.Server({
|
|
13
|
+
name: "output-schema-low-level-example",
|
|
14
|
+
version: "1.0.0",
|
|
15
|
+
}, {
|
|
16
|
+
capabilities: {
|
|
17
|
+
tools: {},
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
// Tool with structured output
|
|
21
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
|
|
22
|
+
tools: [
|
|
23
|
+
{
|
|
24
|
+
name: "get_weather",
|
|
25
|
+
description: "Get weather information for a city",
|
|
26
|
+
inputSchema: {
|
|
27
|
+
type: "object",
|
|
28
|
+
properties: {
|
|
29
|
+
city: { type: "string", description: "City name" },
|
|
30
|
+
country: { type: "string", description: "Country code (e.g., US, UK)" }
|
|
31
|
+
},
|
|
32
|
+
required: ["city", "country"]
|
|
33
|
+
},
|
|
34
|
+
outputSchema: {
|
|
35
|
+
type: "object",
|
|
36
|
+
properties: {
|
|
37
|
+
temperature: {
|
|
38
|
+
type: "object",
|
|
39
|
+
properties: {
|
|
40
|
+
celsius: { type: "number" },
|
|
41
|
+
fahrenheit: { type: "number" }
|
|
42
|
+
},
|
|
43
|
+
required: ["celsius", "fahrenheit"]
|
|
44
|
+
},
|
|
45
|
+
conditions: {
|
|
46
|
+
type: "string",
|
|
47
|
+
enum: ["sunny", "cloudy", "rainy", "stormy", "snowy"]
|
|
48
|
+
},
|
|
49
|
+
humidity: { type: "number", minimum: 0, maximum: 100 },
|
|
50
|
+
wind: {
|
|
51
|
+
type: "object",
|
|
52
|
+
properties: {
|
|
53
|
+
speed_kmh: { type: "number" },
|
|
54
|
+
direction: { type: "string" }
|
|
55
|
+
},
|
|
56
|
+
required: ["speed_kmh", "direction"]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
required: ["temperature", "conditions", "humidity", "wind"]
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}));
|
|
64
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
65
|
+
switch (request.params.name) {
|
|
66
|
+
case "get_weather": {
|
|
67
|
+
const { city, country } = request.params.arguments;
|
|
68
|
+
// Parameters are available but not used in this example
|
|
69
|
+
void city;
|
|
70
|
+
void country;
|
|
71
|
+
// Simulate weather API call
|
|
72
|
+
const temp_c = Math.round((Math.random() * 35 - 5) * 10) / 10;
|
|
73
|
+
const conditions = ["sunny", "cloudy", "rainy", "stormy", "snowy"][Math.floor(Math.random() * 5)];
|
|
74
|
+
// Return structured content matching the outputSchema
|
|
75
|
+
return {
|
|
76
|
+
structuredContent: {
|
|
77
|
+
temperature: {
|
|
78
|
+
celsius: temp_c,
|
|
79
|
+
fahrenheit: Math.round((temp_c * 9 / 5 + 32) * 10) / 10
|
|
80
|
+
},
|
|
81
|
+
conditions,
|
|
82
|
+
humidity: Math.round(Math.random() * 100),
|
|
83
|
+
wind: {
|
|
84
|
+
speed_kmh: Math.round(Math.random() * 50),
|
|
85
|
+
direction: ["N", "NE", "E", "SE", "S", "SW", "W", "NW"][Math.floor(Math.random() * 8)]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
default:
|
|
91
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound, `Unknown tool: ${request.params.name}`);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
async function main() {
|
|
95
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
96
|
+
await server.connect(transport);
|
|
97
|
+
console.error("Low-level Output Schema Example Server running on stdio");
|
|
98
|
+
}
|
|
99
|
+
main().catch((error) => {
|
|
100
|
+
console.error("Server error:", error);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=lowLevelOutputSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lowLevelOutputSchema.js","sourceRoot":"","sources":["../../../../src/examples/server/lowLevelOutputSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpServerOutputSchema.d.ts","sourceRoot":"","sources":["../../../../src/examples/server/mcpServerOutputSchema.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Example MCP server using the high-level McpServer API with outputSchema
|
|
5
|
+
* This demonstrates how to easily create tools with structured output
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
const mcp_js_1 = require("../../server/mcp.js");
|
|
9
|
+
const stdio_js_1 = require("../../server/stdio.js");
|
|
10
|
+
const zod_1 = require("zod");
|
|
11
|
+
const server = new mcp_js_1.McpServer({
|
|
12
|
+
name: "mcp-output-schema-high-level-example",
|
|
13
|
+
version: "1.0.0",
|
|
14
|
+
});
|
|
15
|
+
// Define a tool with structured output - Weather data
|
|
16
|
+
server.registerTool("get_weather", {
|
|
17
|
+
description: "Get weather information for a city",
|
|
18
|
+
inputSchema: {
|
|
19
|
+
city: zod_1.z.string().describe("City name"),
|
|
20
|
+
country: zod_1.z.string().describe("Country code (e.g., US, UK)")
|
|
21
|
+
},
|
|
22
|
+
outputSchema: {
|
|
23
|
+
temperature: zod_1.z.object({
|
|
24
|
+
celsius: zod_1.z.number(),
|
|
25
|
+
fahrenheit: zod_1.z.number()
|
|
26
|
+
}),
|
|
27
|
+
conditions: zod_1.z.enum(["sunny", "cloudy", "rainy", "stormy", "snowy"]),
|
|
28
|
+
humidity: zod_1.z.number().min(0).max(100),
|
|
29
|
+
wind: zod_1.z.object({
|
|
30
|
+
speed_kmh: zod_1.z.number(),
|
|
31
|
+
direction: zod_1.z.string()
|
|
32
|
+
})
|
|
33
|
+
},
|
|
34
|
+
}, async ({ city, country }) => {
|
|
35
|
+
// Parameters are available but not used in this example
|
|
36
|
+
void city;
|
|
37
|
+
void country;
|
|
38
|
+
// Simulate weather API call
|
|
39
|
+
const temp_c = Math.round((Math.random() * 35 - 5) * 10) / 10;
|
|
40
|
+
const conditions = ["sunny", "cloudy", "rainy", "stormy", "snowy"][Math.floor(Math.random() * 5)];
|
|
41
|
+
return {
|
|
42
|
+
structuredContent: {
|
|
43
|
+
temperature: {
|
|
44
|
+
celsius: temp_c,
|
|
45
|
+
fahrenheit: Math.round((temp_c * 9 / 5 + 32) * 10) / 10
|
|
46
|
+
},
|
|
47
|
+
conditions,
|
|
48
|
+
humidity: Math.round(Math.random() * 100),
|
|
49
|
+
wind: {
|
|
50
|
+
speed_kmh: Math.round(Math.random() * 50),
|
|
51
|
+
direction: ["N", "NE", "E", "SE", "S", "SW", "W", "NW"][Math.floor(Math.random() * 8)]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
async function main() {
|
|
57
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
58
|
+
await server.connect(transport);
|
|
59
|
+
console.error("High-level Output Schema Example Server running on stdio");
|
|
60
|
+
}
|
|
61
|
+
main().catch((error) => {
|
|
62
|
+
console.error("Server error:", error);
|
|
63
|
+
process.exit(1);
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=mcpServerOutputSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpServerOutputSchema.js","sourceRoot":"","sources":["../../../../src/examples/server/mcpServerOutputSchema.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/server/mcp.d.ts
CHANGED
|
@@ -55,6 +55,7 @@ export declare class McpServer {
|
|
|
55
55
|
* Registers a resource `name` with a template pattern and metadata, which will use the given callback to respond to read requests.
|
|
56
56
|
*/
|
|
57
57
|
resource(name: string, template: ResourceTemplate, metadata: ResourceMetadata, readCallback: ReadResourceTemplateCallback): RegisteredResourceTemplate;
|
|
58
|
+
private _createRegisteredTool;
|
|
58
59
|
/**
|
|
59
60
|
* Registers a zero-argument tool `name`, which will run the given function when the client calls it.
|
|
60
61
|
*/
|
|
@@ -88,6 +89,15 @@ export declare class McpServer {
|
|
|
88
89
|
* Registers a tool with description, parameter schema, and annotations.
|
|
89
90
|
*/
|
|
90
91
|
tool<Args extends ZodRawShape>(name: string, description: string, paramsSchema: Args, annotations: ToolAnnotations, cb: ToolCallback<Args>): RegisteredTool;
|
|
92
|
+
/**
|
|
93
|
+
* Registers a tool with a config object and callback.
|
|
94
|
+
*/
|
|
95
|
+
registerTool<InputArgs extends ZodRawShape, OutputArgs extends ZodRawShape>(name: string, config: {
|
|
96
|
+
description?: string;
|
|
97
|
+
inputSchema?: InputArgs;
|
|
98
|
+
outputSchema?: OutputArgs;
|
|
99
|
+
annotations?: ToolAnnotations;
|
|
100
|
+
}, cb: ToolCallback<InputArgs>): RegisteredTool;
|
|
91
101
|
/**
|
|
92
102
|
* Registers a zero-argument prompt `name`, which will run the given function when the client calls it.
|
|
93
103
|
*/
|
|
@@ -162,22 +172,29 @@ export declare class ResourceTemplate {
|
|
|
162
172
|
* Callback for a tool handler registered with Server.tool().
|
|
163
173
|
*
|
|
164
174
|
* Parameters will include tool arguments, if applicable, as well as other request handler context.
|
|
175
|
+
*
|
|
176
|
+
* The callback should return:
|
|
177
|
+
* - `structuredContent` if the tool has an outputSchema defined
|
|
178
|
+
* - `content` if the tool does not have an outputSchema
|
|
179
|
+
* - Both fields are optional but typically one should be provided
|
|
165
180
|
*/
|
|
166
181
|
export type ToolCallback<Args extends undefined | ZodRawShape = undefined> = Args extends ZodRawShape ? (args: z.objectOutputType<Args, ZodTypeAny>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => CallToolResult | Promise<CallToolResult> : (extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => CallToolResult | Promise<CallToolResult>;
|
|
167
182
|
export type RegisteredTool = {
|
|
168
183
|
description?: string;
|
|
169
184
|
inputSchema?: AnyZodObject;
|
|
185
|
+
outputSchema?: AnyZodObject;
|
|
170
186
|
annotations?: ToolAnnotations;
|
|
171
187
|
callback: ToolCallback<undefined | ZodRawShape>;
|
|
172
188
|
enabled: boolean;
|
|
173
189
|
enable(): void;
|
|
174
190
|
disable(): void;
|
|
175
|
-
update<
|
|
191
|
+
update<InputArgs extends ZodRawShape, OutputArgs extends ZodRawShape>(updates: {
|
|
176
192
|
name?: string | null;
|
|
177
193
|
description?: string;
|
|
178
|
-
paramsSchema?:
|
|
179
|
-
|
|
194
|
+
paramsSchema?: InputArgs;
|
|
195
|
+
outputSchema?: OutputArgs;
|
|
180
196
|
annotations?: ToolAnnotations;
|
|
197
|
+
callback?: ToolCallback<InputArgs>;
|
|
181
198
|
enabled?: boolean;
|
|
182
199
|
}): void;
|
|
183
200
|
remove(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EACL,CAAC,EACD,WAAW,EACX,SAAS,EAET,YAAY,EACZ,UAAU,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACZ,MAAM,KAAK,CAAC;AACb,OAAO,EACL,cAAc,EAGd,cAAc,EAOd,QAAQ,EACR,mBAAmB,EAYnB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,oBAAoB,CAA6C;IACzE,OAAO,CAAC,4BAA4B,CAE7B;IACP,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,kBAAkB,CAA4C;gBAE1D,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa;IAI/D;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,wBAAwB,CAAS;IAEzC,OAAO,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/server/mcp.js
CHANGED
|
@@ -51,7 +51,7 @@ class McpServer {
|
|
|
51
51
|
});
|
|
52
52
|
this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, () => ({
|
|
53
53
|
tools: Object.entries(this._registeredTools).filter(([, tool]) => tool.enabled).map(([name, tool]) => {
|
|
54
|
-
|
|
54
|
+
const toolDefinition = {
|
|
55
55
|
name,
|
|
56
56
|
description: tool.description,
|
|
57
57
|
inputSchema: tool.inputSchema
|
|
@@ -61,6 +61,10 @@ class McpServer {
|
|
|
61
61
|
: EMPTY_OBJECT_JSON_SCHEMA,
|
|
62
62
|
annotations: tool.annotations,
|
|
63
63
|
};
|
|
64
|
+
if (tool.outputSchema) {
|
|
65
|
+
toolDefinition.outputSchema = (0, zod_to_json_schema_1.zodToJsonSchema)(tool.outputSchema, { strictUnions: true });
|
|
66
|
+
}
|
|
67
|
+
return toolDefinition;
|
|
64
68
|
}),
|
|
65
69
|
}));
|
|
66
70
|
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request, extra) => {
|
|
@@ -71,6 +75,7 @@ class McpServer {
|
|
|
71
75
|
if (!tool.enabled) {
|
|
72
76
|
throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Tool ${request.params.name} disabled`);
|
|
73
77
|
}
|
|
78
|
+
let result;
|
|
74
79
|
if (tool.inputSchema) {
|
|
75
80
|
const parseResult = await tool.inputSchema.safeParseAsync(request.params.arguments);
|
|
76
81
|
if (!parseResult.success) {
|
|
@@ -79,10 +84,10 @@ class McpServer {
|
|
|
79
84
|
const args = parseResult.data;
|
|
80
85
|
const cb = tool.callback;
|
|
81
86
|
try {
|
|
82
|
-
|
|
87
|
+
result = await Promise.resolve(cb(args, extra));
|
|
83
88
|
}
|
|
84
89
|
catch (error) {
|
|
85
|
-
|
|
90
|
+
result = {
|
|
86
91
|
content: [
|
|
87
92
|
{
|
|
88
93
|
type: "text",
|
|
@@ -96,10 +101,10 @@ class McpServer {
|
|
|
96
101
|
else {
|
|
97
102
|
const cb = tool.callback;
|
|
98
103
|
try {
|
|
99
|
-
|
|
104
|
+
result = await Promise.resolve(cb(extra));
|
|
100
105
|
}
|
|
101
106
|
catch (error) {
|
|
102
|
-
|
|
107
|
+
result = {
|
|
103
108
|
content: [
|
|
104
109
|
{
|
|
105
110
|
type: "text",
|
|
@@ -110,6 +115,34 @@ class McpServer {
|
|
|
110
115
|
};
|
|
111
116
|
}
|
|
112
117
|
}
|
|
118
|
+
// Handle structured output and backward compatibility
|
|
119
|
+
if (tool.outputSchema) {
|
|
120
|
+
// Tool has outputSchema, so result must have structuredContent (unless it's an error)
|
|
121
|
+
if (!result.structuredContent && !result.isError) {
|
|
122
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Tool ${request.params.name} has outputSchema but returned no structuredContent`);
|
|
123
|
+
}
|
|
124
|
+
// For backward compatibility, if structuredContent is provided but no content,
|
|
125
|
+
// automatically serialize the structured content to text
|
|
126
|
+
if (result.structuredContent && !result.content) {
|
|
127
|
+
result.content = [
|
|
128
|
+
{
|
|
129
|
+
type: "text",
|
|
130
|
+
text: JSON.stringify(result.structuredContent, null, 2),
|
|
131
|
+
},
|
|
132
|
+
];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// Tool must have content if no outputSchema
|
|
137
|
+
if (!result.content && !result.isError) {
|
|
138
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Tool ${request.params.name} has no outputSchema and must return content`);
|
|
139
|
+
}
|
|
140
|
+
// If structuredContent is provided, it's an error
|
|
141
|
+
if (result.structuredContent) {
|
|
142
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Tool ${request.params.name} has no outputSchema but returned structuredContent`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return result;
|
|
113
146
|
});
|
|
114
147
|
this._toolHandlersInitialized = true;
|
|
115
148
|
}
|
|
@@ -350,43 +383,13 @@ class McpServer {
|
|
|
350
383
|
return registeredResourceTemplate;
|
|
351
384
|
}
|
|
352
385
|
}
|
|
353
|
-
|
|
354
|
-
if (this._registeredTools[name]) {
|
|
355
|
-
throw new Error(`Tool ${name} is already registered`);
|
|
356
|
-
}
|
|
357
|
-
let description;
|
|
358
|
-
if (typeof rest[0] === "string") {
|
|
359
|
-
description = rest.shift();
|
|
360
|
-
}
|
|
361
|
-
let paramsSchema;
|
|
362
|
-
let annotations;
|
|
363
|
-
// Handle the different overload combinations
|
|
364
|
-
if (rest.length > 1) {
|
|
365
|
-
// We have at least two more args before the callback
|
|
366
|
-
const firstArg = rest[0];
|
|
367
|
-
if (isZodRawShape(firstArg)) {
|
|
368
|
-
// We have a params schema as the first arg
|
|
369
|
-
paramsSchema = rest.shift();
|
|
370
|
-
// Check if the next arg is potentially annotations
|
|
371
|
-
if (rest.length > 1 && typeof rest[0] === "object" && rest[0] !== null && !(isZodRawShape(rest[0]))) {
|
|
372
|
-
// Case: tool(name, paramsSchema, annotations, cb)
|
|
373
|
-
// Or: tool(name, description, paramsSchema, annotations, cb)
|
|
374
|
-
annotations = rest.shift();
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
else if (typeof firstArg === "object" && firstArg !== null) {
|
|
378
|
-
// Not a ZodRawShape, so must be annotations in this position
|
|
379
|
-
// Case: tool(name, annotations, cb)
|
|
380
|
-
// Or: tool(name, description, annotations, cb)
|
|
381
|
-
annotations = rest.shift();
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
const cb = rest[0];
|
|
386
|
+
_createRegisteredTool(name, description, inputSchema, outputSchema, annotations, callback) {
|
|
385
387
|
const registeredTool = {
|
|
386
388
|
description,
|
|
387
|
-
inputSchema:
|
|
389
|
+
inputSchema: inputSchema === undefined ? undefined : zod_1.z.object(inputSchema),
|
|
390
|
+
outputSchema: outputSchema === undefined ? undefined : zod_1.z.object(outputSchema),
|
|
388
391
|
annotations,
|
|
389
|
-
callback
|
|
392
|
+
callback,
|
|
390
393
|
enabled: true,
|
|
391
394
|
disable: () => registeredTool.update({ enabled: false }),
|
|
392
395
|
enable: () => registeredTool.update({ enabled: true }),
|
|
@@ -415,6 +418,57 @@ class McpServer {
|
|
|
415
418
|
this.sendToolListChanged();
|
|
416
419
|
return registeredTool;
|
|
417
420
|
}
|
|
421
|
+
/**
|
|
422
|
+
* tool() implementation. Parses arguments passed to overrides defined above.
|
|
423
|
+
*/
|
|
424
|
+
tool(name, ...rest) {
|
|
425
|
+
if (this._registeredTools[name]) {
|
|
426
|
+
throw new Error(`Tool ${name} is already registered`);
|
|
427
|
+
}
|
|
428
|
+
let description;
|
|
429
|
+
let inputSchema;
|
|
430
|
+
let outputSchema;
|
|
431
|
+
let annotations;
|
|
432
|
+
// Tool properties are passed as separate arguments, with omissions allowed.
|
|
433
|
+
// Support for this style is frozen as of protocol version 2025-03-26. Future additions
|
|
434
|
+
// to tool definition should *NOT* be added.
|
|
435
|
+
if (typeof rest[0] === "string") {
|
|
436
|
+
description = rest.shift();
|
|
437
|
+
}
|
|
438
|
+
// Handle the different overload combinations
|
|
439
|
+
if (rest.length > 1) {
|
|
440
|
+
// We have at least one more arg before the callback
|
|
441
|
+
const firstArg = rest[0];
|
|
442
|
+
if (isZodRawShape(firstArg)) {
|
|
443
|
+
// We have a params schema as the first arg
|
|
444
|
+
inputSchema = rest.shift();
|
|
445
|
+
// Check if the next arg is potentially annotations
|
|
446
|
+
if (rest.length > 1 && typeof rest[0] === "object" && rest[0] !== null && !(isZodRawShape(rest[0]))) {
|
|
447
|
+
// Case: tool(name, paramsSchema, annotations, cb)
|
|
448
|
+
// Or: tool(name, description, paramsSchema, annotations, cb)
|
|
449
|
+
annotations = rest.shift();
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
else if (typeof firstArg === "object" && firstArg !== null) {
|
|
453
|
+
// Not a ZodRawShape, so must be annotations in this position
|
|
454
|
+
// Case: tool(name, annotations, cb)
|
|
455
|
+
// Or: tool(name, description, annotations, cb)
|
|
456
|
+
annotations = rest.shift();
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
const callback = rest[0];
|
|
460
|
+
return this._createRegisteredTool(name, description, inputSchema, outputSchema, annotations, callback);
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Registers a tool with a config object and callback.
|
|
464
|
+
*/
|
|
465
|
+
registerTool(name, config, cb) {
|
|
466
|
+
if (this._registeredTools[name]) {
|
|
467
|
+
throw new Error(`Tool ${name} is already registered`);
|
|
468
|
+
}
|
|
469
|
+
const { description, inputSchema, outputSchema, annotations } = config;
|
|
470
|
+
return this._createRegisteredTool(name, description, inputSchema, outputSchema, annotations, cb);
|
|
471
|
+
}
|
|
418
472
|
prompt(name, ...rest) {
|
|
419
473
|
if (this._registeredPrompts[name]) {
|
|
420
474
|
throw new Error(`Prompt ${name} is already registered`);
|