@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.
Files changed (67) hide show
  1. package/dist/cjs/client/index.d.ts +192 -1
  2. package/dist/cjs/client/index.d.ts.map +1 -1
  3. package/dist/cjs/client/index.js +51 -2
  4. package/dist/cjs/client/index.js.map +1 -1
  5. package/dist/cjs/client/sse.d.ts.map +1 -1
  6. package/dist/cjs/client/sse.js +0 -9
  7. package/dist/cjs/client/sse.js.map +1 -1
  8. package/dist/cjs/examples/client/parallelToolCallsClient.js +2 -1
  9. package/dist/cjs/examples/client/parallelToolCallsClient.js.map +1 -1
  10. package/dist/cjs/examples/client/simpleStreamableHttp.js +2 -1
  11. package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
  12. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js +2 -1
  13. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -1
  14. package/dist/cjs/examples/client/testOutputSchemaServers.d.ts +8 -0
  15. package/dist/cjs/examples/client/testOutputSchemaServers.d.ts.map +1 -0
  16. package/dist/cjs/examples/client/testOutputSchemaServers.js +80 -0
  17. package/dist/cjs/examples/client/testOutputSchemaServers.js.map +1 -0
  18. package/dist/cjs/examples/server/lowLevelOutputSchema.d.ts +8 -0
  19. package/dist/cjs/examples/server/lowLevelOutputSchema.d.ts.map +1 -0
  20. package/dist/cjs/examples/server/lowLevelOutputSchema.js +103 -0
  21. package/dist/cjs/examples/server/lowLevelOutputSchema.js.map +1 -0
  22. package/dist/cjs/examples/server/mcpServerOutputSchema.d.ts +7 -0
  23. package/dist/cjs/examples/server/mcpServerOutputSchema.d.ts.map +1 -0
  24. package/dist/cjs/examples/server/mcpServerOutputSchema.js +65 -0
  25. package/dist/cjs/examples/server/mcpServerOutputSchema.js.map +1 -0
  26. package/dist/cjs/server/mcp.d.ts +20 -3
  27. package/dist/cjs/server/mcp.d.ts.map +1 -1
  28. package/dist/cjs/server/mcp.js +93 -39
  29. package/dist/cjs/server/mcp.js.map +1 -1
  30. package/dist/cjs/types.d.ts +9035 -2594
  31. package/dist/cjs/types.d.ts.map +1 -1
  32. package/dist/cjs/types.js +76 -5
  33. package/dist/cjs/types.js.map +1 -1
  34. package/dist/esm/client/index.d.ts +192 -1
  35. package/dist/esm/client/index.d.ts.map +1 -1
  36. package/dist/esm/client/index.js +52 -3
  37. package/dist/esm/client/index.js.map +1 -1
  38. package/dist/esm/client/sse.d.ts.map +1 -1
  39. package/dist/esm/client/sse.js +0 -9
  40. package/dist/esm/client/sse.js.map +1 -1
  41. package/dist/esm/examples/client/parallelToolCallsClient.js +2 -1
  42. package/dist/esm/examples/client/parallelToolCallsClient.js.map +1 -1
  43. package/dist/esm/examples/client/simpleStreamableHttp.js +2 -1
  44. package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
  45. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js +2 -1
  46. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -1
  47. package/dist/esm/examples/client/testOutputSchemaServers.d.ts +8 -0
  48. package/dist/esm/examples/client/testOutputSchemaServers.d.ts.map +1 -0
  49. package/dist/esm/examples/client/testOutputSchemaServers.js +78 -0
  50. package/dist/esm/examples/client/testOutputSchemaServers.js.map +1 -0
  51. package/dist/esm/examples/server/lowLevelOutputSchema.d.ts +8 -0
  52. package/dist/esm/examples/server/lowLevelOutputSchema.d.ts.map +1 -0
  53. package/dist/esm/examples/server/lowLevelOutputSchema.js +101 -0
  54. package/dist/esm/examples/server/lowLevelOutputSchema.js.map +1 -0
  55. package/dist/esm/examples/server/mcpServerOutputSchema.d.ts +7 -0
  56. package/dist/esm/examples/server/mcpServerOutputSchema.d.ts.map +1 -0
  57. package/dist/esm/examples/server/mcpServerOutputSchema.js +63 -0
  58. package/dist/esm/examples/server/mcpServerOutputSchema.js.map +1 -0
  59. package/dist/esm/server/mcp.d.ts +20 -3
  60. package/dist/esm/server/mcp.d.ts.map +1 -1
  61. package/dist/esm/server/mcp.js +93 -39
  62. package/dist/esm/server/mcp.js.map +1 -1
  63. package/dist/esm/types.d.ts +9035 -2594
  64. package/dist/esm/types.d.ts.map +1 -1
  65. package/dist/esm/types.js +75 -4
  66. package/dist/esm/types.js.map +1 -1
  67. 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,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Example MCP server using the high-level McpServer API with outputSchema
4
+ * This demonstrates how to easily create tools with structured output
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=mcpServerOutputSchema.d.ts.map
@@ -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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"}
@@ -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<Args extends ZodRawShape>(updates: {
191
+ update<InputArgs extends ZodRawShape, OutputArgs extends ZodRawShape>(updates: {
176
192
  name?: string | null;
177
193
  description?: string;
178
- paramsSchema?: Args;
179
- callback?: ToolCallback<Args>;
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":"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"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"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"}
@@ -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
- return {
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
- return await Promise.resolve(cb(args, extra));
87
+ result = await Promise.resolve(cb(args, extra));
83
88
  }
84
89
  catch (error) {
85
- return {
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
- return await Promise.resolve(cb(extra));
104
+ result = await Promise.resolve(cb(extra));
100
105
  }
101
106
  catch (error) {
102
- return {
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
- tool(name, ...rest) {
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: paramsSchema === undefined ? undefined : zod_1.z.object(paramsSchema),
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: cb,
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`);