mcp-use 1.9.0-canary.3 → 1.9.1-canary.0

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 (104) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/chunk-2EYAMIT3.js +76 -0
  3. package/dist/chunk-362PI25Z.js +110 -0
  4. package/dist/chunk-5URNFWCQ.js +25 -0
  5. package/dist/chunk-KHTTBIRP.js +280 -0
  6. package/dist/context-storage-TXQ4DVSS.js +11 -0
  7. package/dist/conversion-5MA4VY3B.js +7 -0
  8. package/dist/conversion-OTRZZBUU.js +7 -0
  9. package/dist/src/server/endpoints/index.d.ts +7 -0
  10. package/dist/src/server/endpoints/index.d.ts.map +1 -0
  11. package/dist/src/server/endpoints/mount-mcp.d.ts +21 -0
  12. package/dist/src/server/endpoints/mount-mcp.d.ts.map +1 -0
  13. package/dist/src/server/index.cjs +3738 -3940
  14. package/dist/src/server/index.d.ts +4 -3
  15. package/dist/src/server/index.d.ts.map +1 -1
  16. package/dist/src/server/index.js +3223 -3039
  17. package/dist/src/server/inspector/index.d.ts +5 -0
  18. package/dist/src/server/inspector/index.d.ts.map +1 -0
  19. package/dist/src/server/inspector/mount.d.ts +33 -0
  20. package/dist/src/server/inspector/mount.d.ts.map +1 -0
  21. package/dist/src/server/logging.d.ts.map +1 -1
  22. package/dist/src/server/mcp-server.d.ts +71 -780
  23. package/dist/src/server/mcp-server.d.ts.map +1 -1
  24. package/dist/src/server/notifications/index.d.ts +7 -0
  25. package/dist/src/server/notifications/index.d.ts.map +1 -0
  26. package/dist/src/server/notifications/notification-registration.d.ts +82 -0
  27. package/dist/src/server/notifications/notification-registration.d.ts.map +1 -0
  28. package/dist/src/server/oauth/index.d.ts +1 -0
  29. package/dist/src/server/oauth/index.d.ts.map +1 -1
  30. package/dist/src/server/oauth/setup.d.ts +28 -0
  31. package/dist/src/server/oauth/setup.d.ts.map +1 -0
  32. package/dist/src/server/prompts/conversion.d.ts +22 -0
  33. package/dist/src/server/prompts/conversion.d.ts.map +1 -0
  34. package/dist/src/server/prompts/index.d.ts +60 -0
  35. package/dist/src/server/prompts/index.d.ts.map +1 -0
  36. package/dist/src/server/resources/conversion.d.ts +20 -0
  37. package/dist/src/server/resources/conversion.d.ts.map +1 -0
  38. package/dist/src/server/resources/index.d.ts +116 -0
  39. package/dist/src/server/resources/index.d.ts.map +1 -0
  40. package/dist/src/server/roots/index.d.ts +7 -0
  41. package/dist/src/server/roots/index.d.ts.map +1 -0
  42. package/dist/src/server/roots/roots-registration.d.ts +56 -0
  43. package/dist/src/server/roots/roots-registration.d.ts.map +1 -0
  44. package/dist/src/server/sessions/index.d.ts +6 -0
  45. package/dist/src/server/sessions/index.d.ts.map +1 -0
  46. package/dist/src/server/sessions/notifications.d.ts +25 -0
  47. package/dist/src/server/sessions/notifications.d.ts.map +1 -0
  48. package/dist/src/server/sessions/session-manager.d.ts +41 -0
  49. package/dist/src/server/sessions/session-manager.d.ts.map +1 -0
  50. package/dist/src/server/tools/index.d.ts +10 -0
  51. package/dist/src/server/tools/index.d.ts.map +1 -0
  52. package/dist/src/server/tools/schema-helpers.d.ts +54 -0
  53. package/dist/src/server/tools/schema-helpers.d.ts.map +1 -0
  54. package/dist/src/server/tools/tool-execution-helpers.d.ts +97 -0
  55. package/dist/src/server/tools/tool-execution-helpers.d.ts.map +1 -0
  56. package/dist/src/server/tools/tool-registration.d.ts +85 -0
  57. package/dist/src/server/tools/tool-registration.d.ts.map +1 -0
  58. package/dist/src/server/types/common.d.ts +24 -0
  59. package/dist/src/server/types/common.d.ts.map +1 -1
  60. package/dist/src/server/types/index.d.ts +5 -4
  61. package/dist/src/server/types/index.d.ts.map +1 -1
  62. package/dist/src/server/types/prompt.d.ts +61 -6
  63. package/dist/src/server/types/prompt.d.ts.map +1 -1
  64. package/dist/src/server/types/resource.d.ts +83 -8
  65. package/dist/src/server/types/resource.d.ts.map +1 -1
  66. package/dist/src/server/types/tool-context.d.ts +236 -0
  67. package/dist/src/server/types/tool-context.d.ts.map +1 -0
  68. package/dist/src/server/types/tool.d.ts +62 -5
  69. package/dist/src/server/types/tool.d.ts.map +1 -1
  70. package/dist/src/server/utils/hono-proxy.d.ts +21 -0
  71. package/dist/src/server/utils/hono-proxy.d.ts.map +1 -0
  72. package/dist/src/server/utils/index.d.ts +3 -0
  73. package/dist/src/server/utils/index.d.ts.map +1 -1
  74. package/dist/src/server/utils/jsonrpc-helpers.d.ts +94 -0
  75. package/dist/src/server/utils/jsonrpc-helpers.d.ts.map +1 -0
  76. package/dist/src/server/utils/response-helpers.d.ts +115 -3
  77. package/dist/src/server/utils/response-helpers.d.ts.map +1 -1
  78. package/dist/src/server/utils/server-helpers.d.ts +78 -0
  79. package/dist/src/server/utils/server-helpers.d.ts.map +1 -0
  80. package/dist/src/server/utils/server-lifecycle.d.ts +52 -0
  81. package/dist/src/server/utils/server-lifecycle.d.ts.map +1 -0
  82. package/dist/src/server/utils/session-helpers.d.ts +55 -0
  83. package/dist/src/server/utils/session-helpers.d.ts.map +1 -0
  84. package/dist/src/server/widgets/index.d.ts +30 -0
  85. package/dist/src/server/widgets/index.d.ts.map +1 -0
  86. package/dist/src/server/widgets/mcp-ui-adapter.d.ts.map +1 -0
  87. package/dist/src/server/widgets/mount-widgets-dev.d.ts +28 -0
  88. package/dist/src/server/widgets/mount-widgets-dev.d.ts.map +1 -0
  89. package/dist/src/server/widgets/mount-widgets-production.d.ts +27 -0
  90. package/dist/src/server/widgets/mount-widgets-production.d.ts.map +1 -0
  91. package/dist/src/server/widgets/setup-widget-routes.d.ts +23 -0
  92. package/dist/src/server/widgets/setup-widget-routes.d.ts.map +1 -0
  93. package/dist/src/server/widgets/ui-resource-registration.d.ts +75 -0
  94. package/dist/src/server/widgets/ui-resource-registration.d.ts.map +1 -0
  95. package/dist/src/server/widgets/widget-helpers.d.ts +277 -0
  96. package/dist/src/server/widgets/widget-helpers.d.ts.map +1 -0
  97. package/dist/src/server/widgets/widget-types.d.ts +49 -0
  98. package/dist/src/server/widgets/widget-types.d.ts.map +1 -0
  99. package/dist/tool-execution-helpers-IVUDHXMK.js +23 -0
  100. package/package.json +6 -5
  101. package/dist/chunk-F4UHAA5L.js +0 -854
  102. package/dist/oauth-U4NNKN4B.js +0 -30
  103. package/dist/src/server/adapters/mcp-ui-adapter.d.ts.map +0 -1
  104. /package/dist/src/server/{adapters → widgets}/mcp-ui-adapter.d.ts +0 -0
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Schema helper utilities for tool registration
3
+ *
4
+ * This module provides utilities for converting between different schema formats
5
+ * used in tool registration.
6
+ */
7
+ import { z } from "zod";
8
+ /**
9
+ * Convert a Zod object schema to the internal Record<string, z.ZodSchema> format
10
+ *
11
+ * @param zodSchema - Zod object schema to convert
12
+ * @returns Object mapping parameter names to Zod validation schemas
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const schema = z.object({
17
+ * name: z.string(),
18
+ * age: z.number().optional()
19
+ * });
20
+ * const params = convertZodSchemaToParams(schema);
21
+ * // Returns: { name: z.string(), age: z.number().optional() }
22
+ * ```
23
+ */
24
+ export declare function convertZodSchemaToParams(zodSchema: z.ZodObject<any>): Record<string, z.ZodSchema>;
25
+ /**
26
+ * Input definition for tool parameters
27
+ */
28
+ export interface InputDefinition {
29
+ name: string;
30
+ type: string;
31
+ required?: boolean;
32
+ description?: string;
33
+ }
34
+ /**
35
+ * Create input schema for tools
36
+ *
37
+ * Converts tool input definitions into Zod validation schemas for runtime validation.
38
+ * Supports common data types (string, number, boolean, object, array) and optional
39
+ * parameters. Used internally when registering tools with the MCP server.
40
+ *
41
+ * @param inputs - Array of input parameter definitions with name, type, and optional flag
42
+ * @returns Object mapping parameter names to Zod validation schemas
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const schema = createParamsSchema([
47
+ * { name: 'query', type: 'string', required: true, description: 'Search query' },
48
+ * { name: 'limit', type: 'number', required: false }
49
+ * ])
50
+ * // Returns: { query: z.string().describe('Search query'), limit: z.number().optional() }
51
+ * ```
52
+ */
53
+ export declare function createParamsSchema(inputs: InputDefinition[]): Record<string, z.ZodSchema>;
54
+ //# sourceMappingURL=schema-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../../../src/server/tools/schema-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAgB7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAsC7B"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Tool Execution Helpers
3
+ *
4
+ * Helper functions for tool execution context enhancement.
5
+ * Extracted from tool-registration.ts to reduce duplication and improve maintainability.
6
+ */
7
+ import type { z } from "zod";
8
+ import type { Context } from "hono";
9
+ import type { CreateMessageRequest, CreateMessageResult, ElicitRequestFormParams, ElicitRequestURLParams, ElicitResult } from "@modelcontextprotocol/sdk/types.js";
10
+ import type { SampleOptions, ElicitOptions, ElicitFormParams, ElicitUrlParams } from "../types/index.js";
11
+ /**
12
+ * Session data for tool context
13
+ */
14
+ export interface SessionData {
15
+ transport: any;
16
+ lastAccessedAt: number;
17
+ context?: Context;
18
+ progressToken?: number;
19
+ sendNotification?: (notification: {
20
+ method: string;
21
+ params: Record<string, any>;
22
+ }) => Promise<void>;
23
+ expressRes?: any;
24
+ honoContext?: Context;
25
+ }
26
+ /**
27
+ * Result of session context lookup
28
+ */
29
+ export interface SessionContextResult {
30
+ requestContext: Context | undefined;
31
+ session: SessionData | undefined;
32
+ progressToken: number | undefined;
33
+ sendNotification: ((notification: {
34
+ method: string;
35
+ params: Record<string, any>;
36
+ }) => Promise<void>) | undefined;
37
+ }
38
+ /**
39
+ * Find session context from sessions map
40
+ * Combines session lookup, context matching, and metadata extraction in one pass
41
+ */
42
+ export declare function findSessionContext(sessions: Map<string, SessionData>, initialRequestContext: Context | undefined, extraProgressToken?: number, extraSendNotification?: (notification: {
43
+ method: string;
44
+ params: Record<string, any>;
45
+ }) => Promise<void>): SessionContextResult;
46
+ /**
47
+ * Send a progress notification
48
+ */
49
+ export declare function sendProgressNotification(sendNotification: ((notification: {
50
+ method: string;
51
+ params: Record<string, any>;
52
+ }) => Promise<void>) | undefined, progressToken: number | undefined, progress: number, total: number | undefined, message: string | undefined): Promise<void>;
53
+ /**
54
+ * Wrap a promise with a timeout
55
+ */
56
+ export declare function withTimeout<T>(promise: Promise<T>, timeout: number | undefined, errorMessage: string): Promise<T>;
57
+ /**
58
+ * Parsed elicit parameters
59
+ */
60
+ export interface ParsedElicitParams {
61
+ sdkParams: ElicitRequestFormParams | ElicitRequestURLParams;
62
+ zodSchema: z.ZodObject<any> | null;
63
+ options: ElicitOptions | undefined;
64
+ }
65
+ /**
66
+ * Parse elicit() method parameters handling multiple overload signatures
67
+ */
68
+ export declare function parseElicitParams(messageOrParams: string | ElicitFormParams | ElicitUrlParams, schemaOrUrlOrOptions?: z.ZodObject<any> | string | ElicitOptions, maybeOptions?: ElicitOptions): ParsedElicitParams;
69
+ /**
70
+ * Create the sample() method for enhanced context
71
+ */
72
+ export declare function createSampleMethod(createMessage: (params: CreateMessageRequest["params"], options?: any) => Promise<CreateMessageResult>, progressToken: number | undefined, sendNotification: ((notification: {
73
+ method: string;
74
+ params: Record<string, any>;
75
+ }) => Promise<void>) | undefined): {
76
+ (prompt: string, options?: SampleOptions): Promise<CreateMessageResult>;
77
+ (sampleParams: CreateMessageRequest["params"], options?: SampleOptions): Promise<CreateMessageResult>;
78
+ };
79
+ /**
80
+ * Create the elicit() method for enhanced context
81
+ */
82
+ export declare function createElicitMethod(elicitInput: (params: any, options?: any) => Promise<ElicitResult>): (messageOrParams: string | ElicitFormParams | ElicitUrlParams, schemaOrUrlOrOptions?: z.ZodObject<any> | string | ElicitOptions, maybeOptions?: ElicitOptions) => Promise<ElicitResult>;
83
+ /**
84
+ * Create the reportProgress() method for enhanced context
85
+ */
86
+ export declare function createReportProgressMethod(progressToken: number | undefined, sendNotification: ((notification: {
87
+ method: string;
88
+ params: Record<string, any>;
89
+ }) => Promise<void>) | undefined): ((progress: number, total?: number, message?: string) => Promise<void>) | undefined;
90
+ /**
91
+ * Create enhanced context with sample, elicit, and reportProgress methods
92
+ */
93
+ export declare function createEnhancedContext(baseContext: Context | undefined, createMessage: (params: CreateMessageRequest["params"], options?: any) => Promise<CreateMessageResult>, elicitInput: (params: any, options?: any) => Promise<ElicitResult>, progressToken: number | undefined, sendNotification: ((notification: {
94
+ method: string;
95
+ params: Record<string, any>;
96
+ }) => Promise<void>) | undefined): any;
97
+ //# sourceMappingURL=tool-execution-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-execution-helpers.d.ts","sourceRoot":"","sources":["../../../../src/server/tools/tool-execution-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Tool Registration
3
+ *
4
+ * This module handles the registration of tools with the MCP server.
5
+ * Tools are functions that can be called by clients with parameters.
6
+ */
7
+ import type { z } from "zod";
8
+ import type { CreateMessageRequest, CreateMessageResult, ElicitResult } from "@modelcontextprotocol/sdk/types.js";
9
+ import type { ToolDefinition, ToolCallback, InferToolInput, InferToolOutput } from "../types/index.js";
10
+ import { type SessionData } from "./tool-execution-helpers.js";
11
+ /**
12
+ * Interface representing the server context needed for tool registration
13
+ */
14
+ export interface ToolServerContext<_HasOAuth extends boolean = false> {
15
+ /** Official MCP Server instance */
16
+ server: {
17
+ registerTool: (name: string, config: any, handler: (params: any, extra?: any) => Promise<any>) => void;
18
+ server: {
19
+ createMessage: (params: any, options?: any) => Promise<CreateMessageResult>;
20
+ elicitInput: (params: any, options?: any) => Promise<ElicitResult>;
21
+ };
22
+ };
23
+ /** Sessions map */
24
+ sessions: Map<string, SessionData>;
25
+ /** Registered tools list */
26
+ registeredTools: string[];
27
+ /** Convert Zod schema to params */
28
+ convertZodSchemaToParams(schema: z.ZodObject<any>): Record<string, z.ZodSchema>;
29
+ /** Create params schema from inputs */
30
+ createParamsSchema(inputs: any[]): Record<string, z.ZodSchema>;
31
+ /** Create message for sampling */
32
+ createMessage(params: CreateMessageRequest["params"], options?: any): Promise<CreateMessageResult>;
33
+ }
34
+ /**
35
+ * Define a tool that can be called by clients
36
+ *
37
+ * Registers a tool with the MCP server that clients can invoke with parameters.
38
+ * Tools are functions that perform actions, computations, or operations and
39
+ * return results. They accept structured input parameters and return structured output.
40
+ *
41
+ * Supports Apps SDK metadata for ChatGPT integration via the _meta field.
42
+ *
43
+ * @param toolDefinition - Configuration object containing tool metadata and handler function
44
+ * @param toolDefinition.name - Unique identifier for the tool
45
+ * @param toolDefinition.description - Optional human-readable description of what the tool does
46
+ * @param toolDefinition.inputs - Array of input parameter definitions (legacy, use schema instead)
47
+ * @param toolDefinition.schema - Zod object schema for input validation (preferred)
48
+ * @param toolDefinition.outputSchema - Zod object schema for structured output validation
49
+ * @param toolDefinition.cb - Async callback function that executes the tool logic with provided parameters
50
+ * @param toolDefinition._meta - Optional metadata for the tool (e.g. Apps SDK metadata)
51
+ * @param callback - Optional separate callback function (alternative to cb property)
52
+ * @returns The server instance for method chaining
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * // Using Zod schema (preferred)
57
+ * server.tool({
58
+ * name: 'calculate',
59
+ * description: 'Performs mathematical calculations',
60
+ * schema: z.object({
61
+ * expression: z.string(),
62
+ * precision: z.number().optional()
63
+ * }),
64
+ * cb: async ({ expression, precision = 2 }) => {
65
+ * const result = eval(expression)
66
+ * return text(`Result: ${result.toFixed(precision)}`)
67
+ * }
68
+ * })
69
+ *
70
+ * // Using legacy inputs array
71
+ * server.tool({
72
+ * name: 'greet',
73
+ * inputs: [{ name: 'name', type: 'string', required: true }],
74
+ * cb: async ({ name }) => text(`Hello, ${name}!`)
75
+ * })
76
+ *
77
+ * // With separate callback for better typing
78
+ * server.tool({
79
+ * name: 'add',
80
+ * schema: z.object({ a: z.number(), b: z.number() })
81
+ * }, async ({ a, b }) => text(`${a + b}`))
82
+ * ```
83
+ */
84
+ export declare function toolRegistration<T extends ToolDefinition<any, any, boolean>, TContext extends ToolServerContext<boolean>>(this: TContext, toolDefinition: T, callback?: ToolCallback<InferToolInput<T>, InferToolOutput<T>, boolean>): TContext;
85
+ //# sourceMappingURL=tool-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registration.d.ts","sourceRoot":"","sources":["../../../../src/server/tools/tool-registration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACb,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,OAAO,GAAG,KAAK;IAClE,mCAAmC;IACnC,MAAM,EAAE;QACN,YAAY,EAAE,CACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,KAChD,IAAI,CAAC;QACV,MAAM,EAAE;YACN,aAAa,EAAE,CACb,MAAM,EAAE,GAAG,EACX,OAAO,CAAC,EAAE,GAAG,KACV,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAClC,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;SACpE,CAAC;KACH,CAAC;IACF,mBAAmB;IACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,4BAA4B;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mCAAmC;IACnC,wBAAwB,CACtB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,uCAAuC;IACvC,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/D,kCAAkC;IAClC,aAAa,CACX,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EACtC,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAC3C,QAAQ,SAAS,iBAAiB,CAAC,OAAO,CAAC,EAE3C,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,CAAC,EACjB,QAAQ,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GACtE,QAAQ,CA6EV"}
@@ -2,6 +2,30 @@
2
2
  * Common type definitions shared across different MCP components
3
3
  */
4
4
  import type { OAuthProvider } from "../oauth/providers/types.js";
5
+ import type { z } from "zod";
6
+ /**
7
+ * Converts Zod optional fields to TypeScript optional properties.
8
+ * Transforms { field: T | undefined } to { field?: T }
9
+ *
10
+ * This utility enables natural destructuring patterns in callbacks:
11
+ * - async ({message}) => ... (without type annotation)
12
+ * - async ({message = "default"}) => ... (with default value)
13
+ *
14
+ * Without this, Zod's z.string().optional() produces { message: string | undefined }
15
+ * which requires the property to be present (though it can be undefined).
16
+ * This type makes it truly optional: { message?: string }
17
+ *
18
+ * Used across all callback types: tools, prompts, and resources.
19
+ */
20
+ export type OptionalizeUndefinedFields<T> = {
21
+ [K in keyof T as undefined extends T[K] ? K : never]?: Exclude<T[K], undefined>;
22
+ } & {
23
+ [K in keyof T as undefined extends T[K] ? never : K]: T[K];
24
+ };
25
+ /**
26
+ * Infer input type from a Zod schema with proper optional field handling
27
+ */
28
+ export type InferZodInput<S> = S extends z.ZodTypeAny ? OptionalizeUndefinedFields<z.infer<S>> : Record<string, any>;
5
29
  export interface ServerConfig {
6
30
  name: string;
7
31
  version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/server/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/server/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAC5D,CAAC,CAAC,CAAC,CAAC,EACJ,SAAS,CACV;CACF,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,GACjD,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * Centralized type exports for MCP server
3
3
  */
4
- export { ServerConfig, InputDefinition, ResourceAnnotations, } from "./common.js";
4
+ export { ServerConfig, InputDefinition, ResourceAnnotations, OptionalizeUndefinedFields, InferZodInput, } from "./common.js";
5
5
  export { McpContext } from "./context.js";
6
- export { ReadResourceCallback, ReadResourceTemplateCallback, ResourceTemplateConfig, ResourceTemplateDefinition, ResourceDefinition, UIResourceContent, WidgetProps, UIEncoding, RemoteDomFramework, UIResourceDefinition, ExternalUrlUIResource, RawHtmlUIResource, RemoteDomUIResource, AppsSdkUIResource, WidgetConfig, WidgetManifest, DiscoverWidgetsOptions, AppsSdkMetadata, AppsSdkToolMetadata, } from "./resource.js";
7
- export { ToolCallback, ToolDefinition, InferToolInput, InferToolOutput, EnhancedToolContext, } from "./tool.js";
8
- export { PromptCallback, PromptDefinition } from "./prompt.js";
6
+ export { ToolContext, SampleOptions, ElicitOptions, ElicitFormParams, ElicitUrlParams, } from "./tool-context.js";
7
+ export { ReadResourceCallback, ReadResourceTemplateCallback, ResourceTemplateConfig, ResourceTemplateDefinition, ResourceTemplateDefinitionWithoutCallback, ResourceDefinition, ResourceDefinitionWithoutCallback, EnhancedResourceContext, UIResourceContent, WidgetProps, UIEncoding, RemoteDomFramework, UIResourceDefinition, ExternalUrlUIResource, RawHtmlUIResource, RemoteDomUIResource, AppsSdkUIResource, WidgetConfig, WidgetManifest, DiscoverWidgetsOptions, AppsSdkMetadata, AppsSdkToolMetadata, } from "./resource.js";
8
+ export { ToolCallback, ToolCallbackWithContext, ToolDefinition, InferToolInput, InferToolOutput, EnhancedToolContext, } from "./tool.js";
9
+ export { PromptCallback, PromptDefinition, PromptDefinitionWithoutCallback, InferPromptInput, EnhancedPromptContext, } from "./prompt.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAElB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,sBAAsB,EAEtB,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,0BAA0B,EAC1B,yCAAyC,EACzC,kBAAkB,EAClB,iCAAiC,EACjC,uBAAuB,EAEvB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,sBAAsB,EAEtB,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,+BAA+B,EAC/B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
@@ -1,16 +1,71 @@
1
- import type { GetPromptResult, GetPromptRequest } from "@modelcontextprotocol/sdk/types.js";
2
- import type { InputDefinition } from "./common.js";
3
- export type PromptCallback = (params: GetPromptRequest) => Promise<GetPromptResult>;
4
- export interface PromptDefinition {
1
+ import type { GetPromptResult, CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { InputDefinition, OptionalizeUndefinedFields } from "./common.js";
3
+ import type { z } from "zod";
4
+ import type { TypedCallToolResult } from "../utils/response-helpers.js";
5
+ import type { McpContext } from "./context.js";
6
+ /**
7
+ * Enhanced Prompt Context that provides access to request context.
8
+ *
9
+ * This unified context provides:
10
+ * - `auth` - Authentication info (when OAuth is configured)
11
+ * - `req` - Hono request object
12
+ * - All other Hono Context properties and methods
13
+ *
14
+ * @template HasOAuth - Whether OAuth is configured (affects auth availability)
15
+ */
16
+ export type EnhancedPromptContext<HasOAuth extends boolean = false> = McpContext<HasOAuth>;
17
+ /**
18
+ * Extract input type from a prompt definition's schema
19
+ */
20
+ export type InferPromptInput<T> = T extends {
21
+ schema: infer S;
22
+ } ? S extends z.ZodTypeAny ? OptionalizeUndefinedFields<z.infer<S>> : Record<string, any> : Record<string, any>;
23
+ /**
24
+ * Helper interface that uses method signature syntax to enable bivariant parameter checking.
25
+ * @internal
26
+ */
27
+ interface PromptCallbackBivariant<TInput, HasOAuth extends boolean> {
28
+ bivarianceHack(params: TInput, ctx: EnhancedPromptContext<HasOAuth>): Promise<CallToolResult | GetPromptResult | TypedCallToolResult<any>>;
29
+ }
30
+ /**
31
+ * Callback type for prompt execution - supports both CallToolResult (from helpers) and GetPromptResult (old API).
32
+ * Uses bivariant parameter checking for flexible destructuring patterns.
33
+ *
34
+ * @template TInput - Input parameters type
35
+ * @template HasOAuth - Whether OAuth is configured (affects ctx.auth availability)
36
+ */
37
+ export type PromptCallback<TInput = Record<string, any>, HasOAuth extends boolean = false> = PromptCallbackBivariant<TInput, HasOAuth>["bivarianceHack"];
38
+ /**
39
+ * Prompt definition with cb callback (old API)
40
+ */
41
+ export interface PromptDefinition<TInput = Record<string, any>, HasOAuth extends boolean = false> {
5
42
  /** Unique identifier for the prompt */
6
43
  name: string;
7
44
  /** Human-readable title for the prompt */
8
45
  title?: string;
9
46
  /** Description of what the prompt does */
10
47
  description?: string;
11
- /** Argument definitions */
48
+ /** Argument definitions (legacy, use schema instead) */
12
49
  args?: InputDefinition[];
50
+ /** Zod schema for input validation (preferred) */
51
+ schema?: z.ZodObject<any>;
13
52
  /** Async callback function that generates the prompt */
14
- cb: PromptCallback;
53
+ cb: PromptCallback<TInput, HasOAuth>;
54
+ }
55
+ /**
56
+ * Prompt definition without cb callback (new API with separate callback parameter)
57
+ */
58
+ export interface PromptDefinitionWithoutCallback {
59
+ /** Unique identifier for the prompt */
60
+ name: string;
61
+ /** Human-readable title for the prompt */
62
+ title?: string;
63
+ /** Description of what the prompt does */
64
+ description?: string;
65
+ /** Argument definitions (legacy, use schema instead) */
66
+ args?: InputDefinition[];
67
+ /** Zod schema for input validation (preferred) */
68
+ schema?: z.ZodObject<any>;
15
69
  }
70
+ export {};
16
71
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../src/server/types/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,gBAAgB,KACrB,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IACzB,wDAAwD;IACxD,EAAE,EAAE,cAAc,CAAC;CACpB"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../src/server/types/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,OAAO,GAAG,KAAK,IAChE,UAAU,CAAC,QAAQ,CAAC,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC3D,CAAC,SAAS,CAAC,CAAC,UAAU,GACpB,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACrB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExB;;;GAGG;AACH,UAAU,uBAAuB,CAAC,MAAM,EAAE,QAAQ,SAAS,OAAO;IAChE,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACnC,OAAO,CAAC,cAAc,GAAG,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;CACzE;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,CACxB,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,QAAQ,SAAS,OAAO,GAAG,KAAK,IAC9B,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAC/B,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,QAAQ,SAAS,OAAO,GAAG,KAAK;IAEhC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IACzB,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,wDAAwD;IACxD,EAAE,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IACzB,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CAC3B"}
@@ -1,6 +1,8 @@
1
- import type { ReadResourceResult } from "@modelcontextprotocol/sdk/types.js";
1
+ import type { ReadResourceResult, CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
2
  import type { ResourceAnnotations } from "./common.js";
3
3
  import type { AdaptersConfig } from "@mcp-ui/server";
4
+ import type { TypedCallToolResult } from "../utils/response-helpers.js";
5
+ import type { McpContext } from "./context.js";
4
6
  export type UIResourceContent = {
5
7
  type: "resource";
6
8
  resource: {
@@ -68,8 +70,45 @@ export interface AppsSdkToolMetadata extends Record<string, unknown> {
68
70
  /** Whether this tool result can produce a widget */
69
71
  "openai/resultCanProduceWidget"?: boolean;
70
72
  }
71
- export type ReadResourceCallback = () => Promise<ReadResourceResult>;
72
- export type ReadResourceTemplateCallback = (uri: URL, params: Record<string, any>) => Promise<ReadResourceResult>;
73
+ /**
74
+ * Enhanced Resource Context that provides access to request context.
75
+ *
76
+ * This unified context provides:
77
+ * - `auth` - Authentication info (when OAuth is configured)
78
+ * - `req` - Hono request object
79
+ * - All other Hono Context properties and methods
80
+ *
81
+ * @template HasOAuth - Whether OAuth is configured (affects auth availability)
82
+ */
83
+ export type EnhancedResourceContext<HasOAuth extends boolean = false> = McpContext<HasOAuth>;
84
+ /**
85
+ * Helper interface for bivariant parameter checking on resource callbacks.
86
+ * @internal
87
+ */
88
+ interface ReadResourceCallbackBivariant<HasOAuth extends boolean> {
89
+ bivarianceHack(ctx: EnhancedResourceContext<HasOAuth>): Promise<CallToolResult | ReadResourceResult | TypedCallToolResult<any>>;
90
+ }
91
+ /**
92
+ * Helper interface for bivariant parameter checking on resource template callbacks.
93
+ * @internal
94
+ */
95
+ interface ReadResourceTemplateCallbackBivariant<HasOAuth extends boolean> {
96
+ bivarianceHack(uri: URL, params: Record<string, any>, ctx: EnhancedResourceContext<HasOAuth>): Promise<CallToolResult | ReadResourceResult | TypedCallToolResult<any>>;
97
+ }
98
+ /**
99
+ * Callback type for reading a static resource.
100
+ * Supports both CallToolResult (from helpers) and ReadResourceResult (old API).
101
+ *
102
+ * @template HasOAuth - Whether OAuth is configured (affects ctx.auth availability)
103
+ */
104
+ export type ReadResourceCallback<HasOAuth extends boolean = false> = ReadResourceCallbackBivariant<HasOAuth>["bivarianceHack"];
105
+ /**
106
+ * Callback type for reading a resource template with parameters.
107
+ * Supports both CallToolResult (from helpers) and ReadResourceResult (old API).
108
+ *
109
+ * @template HasOAuth - Whether OAuth is configured (affects ctx.auth availability)
110
+ */
111
+ export type ReadResourceTemplateCallback<HasOAuth extends boolean = false> = ReadResourceTemplateCallbackBivariant<HasOAuth>["bivarianceHack"];
73
112
  /**
74
113
  * Configuration for a resource template
75
114
  */
@@ -83,16 +122,33 @@ export interface ResourceTemplateConfig {
83
122
  /** Description of the resource */
84
123
  description?: string;
85
124
  }
86
- export interface ResourceTemplateDefinition {
125
+ /**
126
+ * Resource template definition with readCallback (old API)
127
+ */
128
+ export interface ResourceTemplateDefinition<HasOAuth extends boolean = false> {
129
+ name: string;
130
+ resourceTemplate: ResourceTemplateConfig;
131
+ title?: string;
132
+ description?: string;
133
+ annotations?: ResourceAnnotations;
134
+ readCallback: ReadResourceTemplateCallback<HasOAuth>;
135
+ _meta?: Record<string, unknown>;
136
+ }
137
+ /**
138
+ * Resource template definition without readCallback (new API with separate callback parameter)
139
+ */
140
+ export interface ResourceTemplateDefinitionWithoutCallback {
87
141
  name: string;
88
142
  resourceTemplate: ResourceTemplateConfig;
89
143
  title?: string;
90
144
  description?: string;
91
145
  annotations?: ResourceAnnotations;
92
- readCallback: ReadResourceTemplateCallback;
93
146
  _meta?: Record<string, unknown>;
94
147
  }
95
- export interface ResourceDefinition {
148
+ /**
149
+ * Resource definition with readCallback (old API)
150
+ */
151
+ export interface ResourceDefinition<HasOAuth extends boolean = false> {
96
152
  /** Unique identifier for the resource */
97
153
  name: string;
98
154
  /** URI pattern for accessing the resource (e.g., 'config://app-settings') */
@@ -101,12 +157,31 @@ export interface ResourceDefinition {
101
157
  title?: string;
102
158
  /** Optional description of the resource */
103
159
  description?: string;
104
- /** MIME type of the resource content (required) */
160
+ /** MIME type of the resource content (required for old API) */
105
161
  mimeType: string;
106
162
  /** Optional annotations for the resource */
107
163
  annotations?: ResourceAnnotations;
108
164
  /** Async callback function that returns the resource content */
109
- readCallback: ReadResourceCallback;
165
+ readCallback: ReadResourceCallback<HasOAuth>;
166
+ _meta?: Record<string, unknown>;
167
+ }
168
+ /**
169
+ * Resource definition without readCallback (new API with separate callback parameter)
170
+ * MIME type is optional when using response helpers - it's inferred from the helper
171
+ */
172
+ export interface ResourceDefinitionWithoutCallback {
173
+ /** Unique identifier for the resource */
174
+ name: string;
175
+ /** URI pattern for accessing the resource (e.g., 'config://app-settings') */
176
+ uri: string;
177
+ /** Optional title for the resource */
178
+ title?: string;
179
+ /** Optional description of the resource */
180
+ description?: string;
181
+ /** MIME type (optional - inferred from response helpers like text(), object(), etc.) */
182
+ mimeType?: string;
183
+ /** Optional annotations for the resource */
184
+ annotations?: ResourceAnnotations;
110
185
  _meta?: Record<string, unknown>;
111
186
  }
112
187
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../../src/server/types/resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../../src/server/types/resource.ts"],"names":[],"mappings":"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"}