@ananay-nag/mcp-decorators 1.0.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 (214) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +561 -0
  3. package/banner.svg +111 -0
  4. package/dist/cjs/index.d.ts +3 -0
  5. package/dist/cjs/index.d.ts.map +1 -0
  6. package/dist/cjs/index.js +36 -0
  7. package/dist/cjs/index.js.map +1 -0
  8. package/dist/cjs/package.json +1 -0
  9. package/dist/cjs/src/client/decorators/client.decorator.d.ts +66 -0
  10. package/dist/cjs/src/client/decorators/client.decorator.d.ts.map +1 -0
  11. package/dist/cjs/src/client/decorators/client.decorator.js +206 -0
  12. package/dist/cjs/src/client/decorators/client.decorator.js.map +1 -0
  13. package/dist/cjs/src/client/decorators/index.d.ts +4 -0
  14. package/dist/cjs/src/client/decorators/index.d.ts.map +1 -0
  15. package/dist/cjs/src/client/decorators/index.js +23 -0
  16. package/dist/cjs/src/client/decorators/index.js.map +1 -0
  17. package/dist/cjs/src/client/decorators/notification.decorator.d.ts +8 -0
  18. package/dist/cjs/src/client/decorators/notification.decorator.d.ts.map +1 -0
  19. package/dist/cjs/src/client/decorators/notification.decorator.js +19 -0
  20. package/dist/cjs/src/client/decorators/notification.decorator.js.map +1 -0
  21. package/dist/cjs/src/client/decorators/requestHandler.decorator.d.ts +7 -0
  22. package/dist/cjs/src/client/decorators/requestHandler.decorator.d.ts.map +1 -0
  23. package/dist/cjs/src/client/decorators/requestHandler.decorator.js +18 -0
  24. package/dist/cjs/src/client/decorators/requestHandler.decorator.js.map +1 -0
  25. package/dist/cjs/src/client/index.d.ts +4 -0
  26. package/dist/cjs/src/client/index.d.ts.map +1 -0
  27. package/dist/cjs/src/client/index.js +20 -0
  28. package/dist/cjs/src/client/index.js.map +1 -0
  29. package/dist/cjs/src/client/types/client/client.d.ts +14 -0
  30. package/dist/cjs/src/client/types/client/client.d.ts.map +1 -0
  31. package/dist/cjs/src/client/types/client/client.js +3 -0
  32. package/dist/cjs/src/client/types/client/client.js.map +1 -0
  33. package/dist/cjs/src/client/types/index.d.ts +3 -0
  34. package/dist/cjs/src/client/types/index.d.ts.map +1 -0
  35. package/dist/cjs/src/client/types/index.js +19 -0
  36. package/dist/cjs/src/client/types/index.js.map +1 -0
  37. package/dist/cjs/src/client/utils/clientRegistry.d.ts +10 -0
  38. package/dist/cjs/src/client/utils/clientRegistry.d.ts.map +1 -0
  39. package/dist/cjs/src/client/utils/clientRegistry.js +38 -0
  40. package/dist/cjs/src/client/utils/clientRegistry.js.map +1 -0
  41. package/dist/cjs/src/client/utils/index.d.ts +2 -0
  42. package/dist/cjs/src/client/utils/index.d.ts.map +1 -0
  43. package/dist/cjs/src/client/utils/index.js +18 -0
  44. package/dist/cjs/src/client/utils/index.js.map +1 -0
  45. package/dist/cjs/src/server/decorators/action.decorator.d.ts +11 -0
  46. package/dist/cjs/src/server/decorators/action.decorator.d.ts.map +1 -0
  47. package/dist/cjs/src/server/decorators/action.decorator.js +23 -0
  48. package/dist/cjs/src/server/decorators/action.decorator.js.map +1 -0
  49. package/dist/cjs/src/server/decorators/completion.decorator.d.ts +12 -0
  50. package/dist/cjs/src/server/decorators/completion.decorator.d.ts.map +1 -0
  51. package/dist/cjs/src/server/decorators/completion.decorator.js +22 -0
  52. package/dist/cjs/src/server/decorators/completion.decorator.js.map +1 -0
  53. package/dist/cjs/src/server/decorators/index.d.ts +10 -0
  54. package/dist/cjs/src/server/decorators/index.d.ts.map +1 -0
  55. package/dist/cjs/src/server/decorators/index.js +25 -0
  56. package/dist/cjs/src/server/decorators/index.js.map +1 -0
  57. package/dist/cjs/src/server/decorators/notification.decorator.d.ts +11 -0
  58. package/dist/cjs/src/server/decorators/notification.decorator.d.ts.map +1 -0
  59. package/dist/cjs/src/server/decorators/notification.decorator.js +23 -0
  60. package/dist/cjs/src/server/decorators/notification.decorator.js.map +1 -0
  61. package/dist/cjs/src/server/decorators/prompt.decorator.d.ts +19 -0
  62. package/dist/cjs/src/server/decorators/prompt.decorator.d.ts.map +1 -0
  63. package/dist/cjs/src/server/decorators/prompt.decorator.js +23 -0
  64. package/dist/cjs/src/server/decorators/prompt.decorator.js.map +1 -0
  65. package/dist/cjs/src/server/decorators/requestHandler.decorator.d.ts +10 -0
  66. package/dist/cjs/src/server/decorators/requestHandler.decorator.d.ts.map +1 -0
  67. package/dist/cjs/src/server/decorators/requestHandler.decorator.js +33 -0
  68. package/dist/cjs/src/server/decorators/requestHandler.decorator.js.map +1 -0
  69. package/dist/cjs/src/server/decorators/resource.decorator.d.ts +27 -0
  70. package/dist/cjs/src/server/decorators/resource.decorator.d.ts.map +1 -0
  71. package/dist/cjs/src/server/decorators/resource.decorator.js +40 -0
  72. package/dist/cjs/src/server/decorators/resource.decorator.js.map +1 -0
  73. package/dist/cjs/src/server/decorators/server.decorator.d.ts +18 -0
  74. package/dist/cjs/src/server/decorators/server.decorator.d.ts.map +1 -0
  75. package/dist/cjs/src/server/decorators/server.decorator.js +385 -0
  76. package/dist/cjs/src/server/decorators/server.decorator.js.map +1 -0
  77. package/dist/cjs/src/server/decorators/subscribe.decorator.d.ts +13 -0
  78. package/dist/cjs/src/server/decorators/subscribe.decorator.d.ts.map +1 -0
  79. package/dist/cjs/src/server/decorators/subscribe.decorator.js +26 -0
  80. package/dist/cjs/src/server/decorators/subscribe.decorator.js.map +1 -0
  81. package/dist/cjs/src/server/decorators/tool.decorator.d.ts +15 -0
  82. package/dist/cjs/src/server/decorators/tool.decorator.d.ts.map +1 -0
  83. package/dist/cjs/src/server/decorators/tool.decorator.js +23 -0
  84. package/dist/cjs/src/server/decorators/tool.decorator.js.map +1 -0
  85. package/dist/cjs/src/server/index.d.ts +4 -0
  86. package/dist/cjs/src/server/index.d.ts.map +1 -0
  87. package/dist/cjs/src/server/index.js +33 -0
  88. package/dist/cjs/src/server/index.js.map +1 -0
  89. package/dist/cjs/src/server/types/index.d.ts +3 -0
  90. package/dist/cjs/src/server/types/index.d.ts.map +1 -0
  91. package/dist/cjs/src/server/types/index.js +19 -0
  92. package/dist/cjs/src/server/types/index.js.map +1 -0
  93. package/dist/cjs/src/server/types/server/index.d.ts +2 -0
  94. package/dist/cjs/src/server/types/server/index.d.ts.map +1 -0
  95. package/dist/cjs/src/server/types/server/index.js +18 -0
  96. package/dist/cjs/src/server/types/server/index.js.map +1 -0
  97. package/dist/cjs/src/server/types/server/server.d.ts +35 -0
  98. package/dist/cjs/src/server/types/server/server.d.ts.map +1 -0
  99. package/dist/cjs/src/server/types/server/server.js +3 -0
  100. package/dist/cjs/src/server/types/server/server.js.map +1 -0
  101. package/dist/cjs/src/server/utils/index.d.ts +2 -0
  102. package/dist/cjs/src/server/utils/index.d.ts.map +1 -0
  103. package/dist/cjs/src/server/utils/index.js +18 -0
  104. package/dist/cjs/src/server/utils/index.js.map +1 -0
  105. package/dist/cjs/src/server/utils/serverRegistry.d.ts +81 -0
  106. package/dist/cjs/src/server/utils/serverRegistry.d.ts.map +1 -0
  107. package/dist/cjs/src/server/utils/serverRegistry.js +151 -0
  108. package/dist/cjs/src/server/utils/serverRegistry.js.map +1 -0
  109. package/dist/esm/index.d.ts +3 -0
  110. package/dist/esm/index.d.ts.map +1 -0
  111. package/dist/esm/index.js +3 -0
  112. package/dist/esm/index.js.map +1 -0
  113. package/dist/esm/package.json +1 -0
  114. package/dist/esm/src/client/decorators/client.decorator.d.ts +66 -0
  115. package/dist/esm/src/client/decorators/client.decorator.d.ts.map +1 -0
  116. package/dist/esm/src/client/decorators/client.decorator.js +198 -0
  117. package/dist/esm/src/client/decorators/client.decorator.js.map +1 -0
  118. package/dist/esm/src/client/decorators/index.d.ts +4 -0
  119. package/dist/esm/src/client/decorators/index.d.ts.map +1 -0
  120. package/dist/esm/src/client/decorators/index.js +4 -0
  121. package/dist/esm/src/client/decorators/index.js.map +1 -0
  122. package/dist/esm/src/client/decorators/notification.decorator.d.ts +8 -0
  123. package/dist/esm/src/client/decorators/notification.decorator.d.ts.map +1 -0
  124. package/dist/esm/src/client/decorators/notification.decorator.js +15 -0
  125. package/dist/esm/src/client/decorators/notification.decorator.js.map +1 -0
  126. package/dist/esm/src/client/decorators/requestHandler.decorator.d.ts +7 -0
  127. package/dist/esm/src/client/decorators/requestHandler.decorator.d.ts.map +1 -0
  128. package/dist/esm/src/client/decorators/requestHandler.decorator.js +14 -0
  129. package/dist/esm/src/client/decorators/requestHandler.decorator.js.map +1 -0
  130. package/dist/esm/src/client/index.d.ts +4 -0
  131. package/dist/esm/src/client/index.d.ts.map +1 -0
  132. package/dist/esm/src/client/index.js +4 -0
  133. package/dist/esm/src/client/index.js.map +1 -0
  134. package/dist/esm/src/client/types/client/client.d.ts +14 -0
  135. package/dist/esm/src/client/types/client/client.d.ts.map +1 -0
  136. package/dist/esm/src/client/types/client/client.js +2 -0
  137. package/dist/esm/src/client/types/client/client.js.map +1 -0
  138. package/dist/esm/src/client/types/index.d.ts +3 -0
  139. package/dist/esm/src/client/types/index.d.ts.map +1 -0
  140. package/dist/esm/src/client/types/index.js +3 -0
  141. package/dist/esm/src/client/types/index.js.map +1 -0
  142. package/dist/esm/src/client/utils/clientRegistry.d.ts +10 -0
  143. package/dist/esm/src/client/utils/clientRegistry.d.ts.map +1 -0
  144. package/dist/esm/src/client/utils/clientRegistry.js +33 -0
  145. package/dist/esm/src/client/utils/clientRegistry.js.map +1 -0
  146. package/dist/esm/src/client/utils/index.d.ts +2 -0
  147. package/dist/esm/src/client/utils/index.d.ts.map +1 -0
  148. package/dist/esm/src/client/utils/index.js +2 -0
  149. package/dist/esm/src/client/utils/index.js.map +1 -0
  150. package/dist/esm/src/server/decorators/action.decorator.d.ts +11 -0
  151. package/dist/esm/src/server/decorators/action.decorator.d.ts.map +1 -0
  152. package/dist/esm/src/server/decorators/action.decorator.js +19 -0
  153. package/dist/esm/src/server/decorators/action.decorator.js.map +1 -0
  154. package/dist/esm/src/server/decorators/completion.decorator.d.ts +12 -0
  155. package/dist/esm/src/server/decorators/completion.decorator.d.ts.map +1 -0
  156. package/dist/esm/src/server/decorators/completion.decorator.js +18 -0
  157. package/dist/esm/src/server/decorators/completion.decorator.js.map +1 -0
  158. package/dist/esm/src/server/decorators/index.d.ts +10 -0
  159. package/dist/esm/src/server/decorators/index.d.ts.map +1 -0
  160. package/dist/esm/src/server/decorators/index.js +10 -0
  161. package/dist/esm/src/server/decorators/index.js.map +1 -0
  162. package/dist/esm/src/server/decorators/notification.decorator.d.ts +11 -0
  163. package/dist/esm/src/server/decorators/notification.decorator.d.ts.map +1 -0
  164. package/dist/esm/src/server/decorators/notification.decorator.js +19 -0
  165. package/dist/esm/src/server/decorators/notification.decorator.js.map +1 -0
  166. package/dist/esm/src/server/decorators/prompt.decorator.d.ts +19 -0
  167. package/dist/esm/src/server/decorators/prompt.decorator.d.ts.map +1 -0
  168. package/dist/esm/src/server/decorators/prompt.decorator.js +19 -0
  169. package/dist/esm/src/server/decorators/prompt.decorator.js.map +1 -0
  170. package/dist/esm/src/server/decorators/requestHandler.decorator.d.ts +10 -0
  171. package/dist/esm/src/server/decorators/requestHandler.decorator.d.ts.map +1 -0
  172. package/dist/esm/src/server/decorators/requestHandler.decorator.js +29 -0
  173. package/dist/esm/src/server/decorators/requestHandler.decorator.js.map +1 -0
  174. package/dist/esm/src/server/decorators/resource.decorator.d.ts +27 -0
  175. package/dist/esm/src/server/decorators/resource.decorator.d.ts.map +1 -0
  176. package/dist/esm/src/server/decorators/resource.decorator.js +35 -0
  177. package/dist/esm/src/server/decorators/resource.decorator.js.map +1 -0
  178. package/dist/esm/src/server/decorators/server.decorator.d.ts +18 -0
  179. package/dist/esm/src/server/decorators/server.decorator.d.ts.map +1 -0
  180. package/dist/esm/src/server/decorators/server.decorator.js +378 -0
  181. package/dist/esm/src/server/decorators/server.decorator.js.map +1 -0
  182. package/dist/esm/src/server/decorators/subscribe.decorator.d.ts +13 -0
  183. package/dist/esm/src/server/decorators/subscribe.decorator.d.ts.map +1 -0
  184. package/dist/esm/src/server/decorators/subscribe.decorator.js +21 -0
  185. package/dist/esm/src/server/decorators/subscribe.decorator.js.map +1 -0
  186. package/dist/esm/src/server/decorators/tool.decorator.d.ts +15 -0
  187. package/dist/esm/src/server/decorators/tool.decorator.d.ts.map +1 -0
  188. package/dist/esm/src/server/decorators/tool.decorator.js +19 -0
  189. package/dist/esm/src/server/decorators/tool.decorator.js.map +1 -0
  190. package/dist/esm/src/server/index.d.ts +4 -0
  191. package/dist/esm/src/server/index.d.ts.map +1 -0
  192. package/dist/esm/src/server/index.js +4 -0
  193. package/dist/esm/src/server/index.js.map +1 -0
  194. package/dist/esm/src/server/types/index.d.ts +3 -0
  195. package/dist/esm/src/server/types/index.d.ts.map +1 -0
  196. package/dist/esm/src/server/types/index.js +3 -0
  197. package/dist/esm/src/server/types/index.js.map +1 -0
  198. package/dist/esm/src/server/types/server/index.d.ts +2 -0
  199. package/dist/esm/src/server/types/server/index.d.ts.map +1 -0
  200. package/dist/esm/src/server/types/server/index.js +2 -0
  201. package/dist/esm/src/server/types/server/index.js.map +1 -0
  202. package/dist/esm/src/server/types/server/server.d.ts +35 -0
  203. package/dist/esm/src/server/types/server/server.d.ts.map +1 -0
  204. package/dist/esm/src/server/types/server/server.js +2 -0
  205. package/dist/esm/src/server/types/server/server.js.map +1 -0
  206. package/dist/esm/src/server/utils/index.d.ts +2 -0
  207. package/dist/esm/src/server/utils/index.d.ts.map +1 -0
  208. package/dist/esm/src/server/utils/index.js +2 -0
  209. package/dist/esm/src/server/utils/index.js.map +1 -0
  210. package/dist/esm/src/server/utils/serverRegistry.d.ts +81 -0
  211. package/dist/esm/src/server/utils/serverRegistry.d.ts.map +1 -0
  212. package/dist/esm/src/server/utils/serverRegistry.js +140 -0
  213. package/dist/esm/src/server/utils/serverRegistry.js.map +1 -0
  214. package/package.json +50 -0
@@ -0,0 +1,378 @@
1
+ import { getServer, registerServer, getOrCreateServerRegistration, matchUriTemplate } from "../utils/serverRegistry.js";
2
+ import { z } from "zod";
3
+ import { zodToJsonSchema } from "zod-to-json-schema";
4
+ import { ListToolsRequestSchema, CallToolRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListResourceTemplatesRequestSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, CompleteRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
+ import { NOTIFICATION_META } from "./notification.decorator.js";
6
+ import { TOOL_META } from "./tool.decorator.js";
7
+ import { PROMPT_META } from "./prompt.decorator.js";
8
+ import { RESOURCE_META, RESOURCE_TEMPLATE_META } from "./resource.decorator.js";
9
+ import { SUBSCRIBE_META, UNSUBSCRIBE_META } from "./subscribe.decorator.js";
10
+ import { COMPLETION_META } from "./completion.decorator.js";
11
+ /**
12
+ * @description
13
+ * This decorator is used to register a server instance.
14
+ * @returns {ClassDecorator} A class decorator that registers the server instance.
15
+ */
16
+ export function RegisterServer() {
17
+ return function (target) {
18
+ const originalConstructor = target;
19
+ const newConstructor = function (...args) {
20
+ let serverInfo = args[0];
21
+ const instance = new originalConstructor(...args);
22
+ console.log(`[Server] Registering server "${JSON.stringify(serverInfo)}"`);
23
+ // Relaxed check to support both SDK v1 Server and SDK v2 McpServer
24
+ if (instance && (typeof instance.connect === "function")) {
25
+ registerServer(serverInfo, instance);
26
+ }
27
+ return instance;
28
+ };
29
+ newConstructor.prototype = originalConstructor.prototype;
30
+ return newConstructor;
31
+ };
32
+ }
33
+ // Modular: Register request handlers grouped by method string + actionName
34
+ export function registerRequestHandlers(target, instance, server) {
35
+ const pendingHandlers = target.prototype._pendingHandlers || [];
36
+ const actionsMap = target.prototype._actionsMap || {};
37
+ console.error("[Server Debug] pendingHandlers:", pendingHandlers);
38
+ console.error("[Server Debug] actionsMap:", actionsMap);
39
+ const methodGroups = new Map();
40
+ for (const { schema, methodName } of pendingHandlers) {
41
+ const handlerFn = instance[methodName].bind(instance);
42
+ const actionName = actionsMap[methodName];
43
+ const methodKey = typeof schema === "string"
44
+ ? schema
45
+ : (schema && schema.shape && schema.shape.method && schema.shape.method.value)
46
+ ? schema.shape.method.value
47
+ : String(schema);
48
+ if (!methodGroups.has(methodKey)) {
49
+ methodGroups.set(methodKey, {
50
+ schema: null,
51
+ handlers: {}
52
+ });
53
+ }
54
+ const group = methodGroups.get(methodKey);
55
+ if (typeof schema !== "string") {
56
+ if (!group.schema) {
57
+ group.schema = schema;
58
+ }
59
+ }
60
+ if (actionName) {
61
+ group.handlers[actionName] = handlerFn;
62
+ console.log(`[Server] ✅ Registered action "${actionName}" for method "${methodKey}" -> ${String(methodName)}`);
63
+ }
64
+ else {
65
+ group.handlers["*"] = handlerFn;
66
+ console.log(`[Server] ✅ Registered fallback for method "${methodKey}" -> ${String(methodName)}`);
67
+ }
68
+ }
69
+ // Final dispatcher setup per method
70
+ for (const [methodKey, group] of methodGroups.entries()) {
71
+ let finalSchema = group.schema;
72
+ if (!finalSchema) {
73
+ finalSchema = z.object({
74
+ method: z.literal(methodKey),
75
+ params: z.any().optional(),
76
+ });
77
+ }
78
+ const dispatcher = async (request, extra) => {
79
+ var _a;
80
+ const action = (_a = request === null || request === void 0 ? void 0 : request.params) === null || _a === void 0 ? void 0 : _a.name;
81
+ const handler = group.handlers[action] || group.handlers["*"];
82
+ if (!handler) {
83
+ throw new Error(`No handler for method "${methodKey}" / action "${action}".`);
84
+ }
85
+ return handler(request, extra);
86
+ };
87
+ server.setRequestHandler(finalSchema, dispatcher);
88
+ console.log(`[Server] ✅ Bound dispatcher for method "${methodKey}"`);
89
+ }
90
+ }
91
+ // Modular: Register notification handlers
92
+ export function registerNotificationHandlers(target, instance, server) {
93
+ const pendingNotifications = target.prototype[NOTIFICATION_META] || [];
94
+ for (const { method, methodName } of pendingNotifications) {
95
+ const handlerFn = instance[methodName].bind(instance);
96
+ // Normalize notification method if string is passed
97
+ let normalizedSchema = method;
98
+ if (typeof method === "string") {
99
+ normalizedSchema = z.object({
100
+ method: z.literal(method),
101
+ params: z.any().optional(),
102
+ });
103
+ }
104
+ server.setNotificationHandler(normalizedSchema, handlerFn);
105
+ console.log(`[Server] ✅ Registered notification "${typeof method === "string" ? method : method.shape.method.value}" -> ${String(methodName)}`);
106
+ }
107
+ }
108
+ /**
109
+ * @description
110
+ * This decorator is used to inject a server instance into a class.
111
+ * It fetches the server instance from the registry and injects it into the class.
112
+ * @param {UseServerOptions} options - Options for the decorator.
113
+ * @returns {ClassDecorator} A class decorator that injects the server instance.
114
+ */
115
+ export function UseServer(options) {
116
+ return function (target) {
117
+ const originalConstructor = target;
118
+ function newConstructor(...args) {
119
+ const instance = new originalConstructor(...args);
120
+ if (!options.name) {
121
+ throw new Error("Server name is required in @UseServer options.");
122
+ }
123
+ const server = getServer(options);
124
+ if (!server) {
125
+ throw new Error(`Server with name "${options.name}" not found.`);
126
+ }
127
+ const isMcpServer = typeof server.registerTool === "function" || typeof server.tool === "function";
128
+ const underlyingServer = server.server || server;
129
+ instance.server = server;
130
+ // 1. Register low-level Request and Notification handlers
131
+ registerRequestHandlers(target, instance, underlyingServer);
132
+ registerNotificationHandlers(target, instance, underlyingServer);
133
+ // 2. Fetch/create server registration for decorators
134
+ const reg = getOrCreateServerRegistration(underlyingServer);
135
+ // 3. Register Tools
136
+ const pendingTools = target.prototype[TOOL_META] || [];
137
+ for (const { options: toolOpts, methodName } of pendingTools) {
138
+ const handlerFn = instance[methodName].bind(instance);
139
+ if (isMcpServer) {
140
+ const regTool = server.registerTool || server.tool;
141
+ regTool.call(server, toolOpts.name, {
142
+ description: toolOpts.description,
143
+ inputSchema: toolOpts.inputSchema
144
+ }, (args, extra) => handlerFn(args, extra === null || extra === void 0 ? void 0 : extra.mcpReq, extra));
145
+ console.log(`[Server] Registered Tool Decorator "${toolOpts.name}" natively on McpServer`);
146
+ }
147
+ else {
148
+ reg.tools.set(toolOpts.name, { options: toolOpts, handler: handlerFn });
149
+ console.log(`[Server] Registered Tool Decorator "${toolOpts.name}" -> ${String(methodName)}`);
150
+ }
151
+ }
152
+ // 4. Register Prompts
153
+ const pendingPrompts = target.prototype[PROMPT_META] || [];
154
+ for (const { options: promptOpts, methodName } of pendingPrompts) {
155
+ const handlerFn = instance[methodName].bind(instance);
156
+ if (isMcpServer) {
157
+ const regPrompt = server.registerPrompt || server.prompt;
158
+ regPrompt.call(server, promptOpts.name, {
159
+ description: promptOpts.description,
160
+ arguments: promptOpts.arguments
161
+ }, (args, extra) => handlerFn(args, extra === null || extra === void 0 ? void 0 : extra.mcpReq, extra));
162
+ console.log(`[Server] Registered Prompt Decorator "${promptOpts.name}" natively on McpServer`);
163
+ }
164
+ else {
165
+ reg.prompts.set(promptOpts.name, { options: promptOpts, handler: handlerFn });
166
+ console.log(`[Server] Registered Prompt Decorator "${promptOpts.name}" -> ${String(methodName)}`);
167
+ }
168
+ }
169
+ // 5. Register Resources
170
+ const pendingResources = target.prototype[RESOURCE_META] || [];
171
+ for (const { options: resOpts, methodName } of pendingResources) {
172
+ const handlerFn = instance[methodName].bind(instance);
173
+ if (isMcpServer) {
174
+ const regRes = server.registerResource || server.resource;
175
+ regRes.call(server, resOpts.name, resOpts.uri, {
176
+ description: resOpts.description,
177
+ mimeType: resOpts.mimeType
178
+ }, (uri, extra) => handlerFn(uri.href || String(uri), extra === null || extra === void 0 ? void 0 : extra.mcpReq, extra));
179
+ console.log(`[Server] Registered Resource Decorator "${resOpts.uri}" natively on McpServer`);
180
+ }
181
+ else {
182
+ reg.resources.set(resOpts.uri, { options: resOpts, handler: handlerFn });
183
+ console.log(`[Server] Registered Resource Decorator "${resOpts.uri}" -> ${String(methodName)}`);
184
+ }
185
+ }
186
+ // 6. Register Resource Templates
187
+ const pendingTemplates = target.prototype[RESOURCE_TEMPLATE_META] || [];
188
+ for (const { options: tempOpts, methodName } of pendingTemplates) {
189
+ const handlerFn = instance[methodName].bind(instance);
190
+ if (isMcpServer) {
191
+ const regRes = server.registerResource || server.resource;
192
+ regRes.call(server, tempOpts.name, tempOpts.uriTemplate, {
193
+ description: tempOpts.description,
194
+ mimeType: tempOpts.mimeType
195
+ }, (uri, extra) => {
196
+ const uriStr = uri.href || String(uri);
197
+ const params = matchUriTemplate(tempOpts.uriTemplate, uriStr) || {};
198
+ return handlerFn(params, uriStr, extra === null || extra === void 0 ? void 0 : extra.mcpReq, extra);
199
+ });
200
+ console.log(`[Server] Registered Resource Template Decorator "${tempOpts.uriTemplate}" natively on McpServer`);
201
+ }
202
+ else {
203
+ reg.resourceTemplates.set(tempOpts.uriTemplate, { options: tempOpts, handler: handlerFn });
204
+ console.log(`[Server] Registered Resource Template Decorator "${tempOpts.uriTemplate}" -> ${String(methodName)}`);
205
+ }
206
+ }
207
+ // 7. Register Subscribe/Unsubscribe
208
+ if (target.prototype[SUBSCRIBE_META]) {
209
+ reg.subscribeHandler = instance[target.prototype[SUBSCRIBE_META]].bind(instance);
210
+ console.log(`[Server] Registered Subscribe Decorator -> ${String(target.prototype[SUBSCRIBE_META])}`);
211
+ }
212
+ if (target.prototype[UNSUBSCRIBE_META]) {
213
+ reg.unsubscribeHandler = instance[target.prototype[UNSUBSCRIBE_META]].bind(instance);
214
+ console.log(`[Server] Registered Unsubscribe Decorator -> ${String(target.prototype[UNSUBSCRIBE_META])}`);
215
+ }
216
+ // 8. Register Completions
217
+ const pendingCompletions = target.prototype[COMPLETION_META] || [];
218
+ for (const { ref, methodName } of pendingCompletions) {
219
+ const handlerFn = instance[methodName].bind(instance);
220
+ reg.completionHandlers.push({ ref, handler: handlerFn });
221
+ console.log(`[Server] Registered Completion Decorator for "${ref.type}:${ref.name}" -> ${String(methodName)}`);
222
+ }
223
+ // 9. Auto-register capabilities dynamically (For Server v1 only)
224
+ if (!isMcpServer) {
225
+ const caps = {};
226
+ if (reg.tools.size > 0)
227
+ caps.tools = {};
228
+ if (reg.prompts.size > 0)
229
+ caps.prompts = {};
230
+ if (reg.resources.size > 0 || reg.resourceTemplates.size > 0)
231
+ caps.resources = {};
232
+ if (reg.completionHandlers.length > 0)
233
+ caps.completions = {};
234
+ if (Object.keys(caps).length > 0) {
235
+ underlyingServer.registerCapabilities(caps);
236
+ }
237
+ }
238
+ // 10. Bind Aggregated Dispatchers
239
+ bindAggregatedDispatchers(underlyingServer, reg);
240
+ return instance;
241
+ }
242
+ newConstructor.prototype = originalConstructor.prototype;
243
+ return newConstructor;
244
+ };
245
+ }
246
+ /**
247
+ * Binds aggregated handlers to the server for core schemas.
248
+ */
249
+ function bindAggregatedDispatchers(server, reg) {
250
+ // --- Tools Dispatchers ---
251
+ if (reg.tools.size > 0) {
252
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
253
+ const tools = Array.from(reg.tools.values()).map((t) => {
254
+ let inputSchema = { type: "object", properties: {} };
255
+ if (t.options.inputSchema) {
256
+ if (t.options.inputSchema._def || t.options.inputSchema._zod) {
257
+ inputSchema = zodToJsonSchema(t.options.inputSchema);
258
+ }
259
+ else {
260
+ inputSchema = t.options.inputSchema;
261
+ }
262
+ }
263
+ return {
264
+ name: t.options.name,
265
+ description: t.options.description,
266
+ inputSchema
267
+ };
268
+ });
269
+ return { tools };
270
+ });
271
+ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
272
+ const toolName = request.params.name;
273
+ const tool = reg.tools.get(toolName);
274
+ if (!tool) {
275
+ throw new Error(`Tool "${toolName}" not found.`);
276
+ }
277
+ return tool.handler(request.params.arguments || {}, request, extra);
278
+ });
279
+ }
280
+ // --- Prompts Dispatchers ---
281
+ if (reg.prompts.size > 0) {
282
+ server.setRequestHandler(ListPromptsRequestSchema, async () => {
283
+ const prompts = Array.from(reg.prompts.values()).map((p) => ({
284
+ name: p.options.name,
285
+ description: p.options.description,
286
+ arguments: p.options.arguments
287
+ }));
288
+ return { prompts };
289
+ });
290
+ server.setRequestHandler(GetPromptRequestSchema, async (request, extra) => {
291
+ const promptName = request.params.name;
292
+ const prompt = reg.prompts.get(promptName);
293
+ if (!prompt) {
294
+ throw new Error(`Prompt "${promptName}" not found.`);
295
+ }
296
+ return prompt.handler(request.params.arguments || {}, request, extra);
297
+ });
298
+ }
299
+ // --- Resources & Templates Dispatchers ---
300
+ if (reg.resources.size > 0 || reg.resourceTemplates.size > 0) {
301
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
302
+ const resources = Array.from(reg.resources.values()).map((r) => ({
303
+ uri: r.options.uri,
304
+ name: r.options.name,
305
+ description: r.options.description,
306
+ mimeType: r.options.mimeType
307
+ }));
308
+ return { resources };
309
+ });
310
+ server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
311
+ const resourceTemplates = Array.from(reg.resourceTemplates.values()).map((rt) => ({
312
+ uriTemplate: rt.options.uriTemplate,
313
+ name: rt.options.name,
314
+ description: rt.options.description,
315
+ mimeType: rt.options.mimeType
316
+ }));
317
+ return { resourceTemplates };
318
+ });
319
+ server.setRequestHandler(ReadResourceRequestSchema, async (request, extra) => {
320
+ const uri = request.params.uri;
321
+ const resource = reg.resources.get(uri);
322
+ if (resource) {
323
+ return resource.handler(uri, request, extra);
324
+ }
325
+ for (const [uriTemplate, template] of reg.resourceTemplates.entries()) {
326
+ const params = matchUriTemplate(uriTemplate, uri);
327
+ if (params) {
328
+ return template.handler(params, uri, request, extra);
329
+ }
330
+ }
331
+ throw new Error(`Resource "${uri}" not found.`);
332
+ });
333
+ }
334
+ // --- Subscriptions Dispatchers ---
335
+ server.setRequestHandler(SubscribeRequestSchema, async (request, extra) => {
336
+ const { uri } = request.params;
337
+ const sessionId = extra.sessionId || "default";
338
+ if (!reg.subscribers.has(uri)) {
339
+ reg.subscribers.set(uri, new Set());
340
+ }
341
+ reg.subscribers.get(uri).add(sessionId);
342
+ if (reg.subscribeHandler) {
343
+ const res = await reg.subscribeHandler(uri, request, extra);
344
+ return res !== undefined ? res : {};
345
+ }
346
+ return {};
347
+ });
348
+ server.setRequestHandler(UnsubscribeRequestSchema, async (request, extra) => {
349
+ const { uri } = request.params;
350
+ const sessionId = extra.sessionId || "default";
351
+ if (reg.subscribers.has(uri)) {
352
+ reg.subscribers.get(uri).delete(sessionId);
353
+ }
354
+ if (reg.unsubscribeHandler) {
355
+ const res = await reg.unsubscribeHandler(uri, request, extra);
356
+ return res !== undefined ? res : {};
357
+ }
358
+ return {};
359
+ });
360
+ // --- Completion Dispatchers ---
361
+ if (reg.completionHandlers.length > 0) {
362
+ server.setRequestHandler(CompleteRequestSchema, async (request, extra) => {
363
+ const { ref, argument } = request.params;
364
+ const normalizedType = ref.type === "ref/prompt" ? "prompt" : ref.type === "ref/resource" ? "resource" : ref.type;
365
+ const refName = ref.type === "ref/prompt" ? ref.name : ref.type === "ref/resource" ? ref.uri : "";
366
+ for (const item of reg.completionHandlers) {
367
+ if (item.ref.type === normalizedType && item.ref.name === refName) {
368
+ return item.handler({
369
+ argument: argument.name,
370
+ value: argument.value
371
+ }, request, extra);
372
+ }
373
+ }
374
+ return { completion: { values: [] } };
375
+ });
376
+ }
377
+ }
378
+ //# sourceMappingURL=server.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.decorator.js","sourceRoot":"","sources":["../../../../../src/server/decorators/server.decorator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare const SUBSCRIBE_META: unique symbol;
2
+ export declare const UNSUBSCRIBE_META: unique symbol;
3
+ /**
4
+ * @description
5
+ * Decorator to register a method as an MCP Resource Subscribe handler.
6
+ */
7
+ export declare function Subscribe(): MethodDecorator;
8
+ /**
9
+ * @description
10
+ * Decorator to register a method as an MCP Resource Unsubscribe handler.
11
+ */
12
+ export declare function Unsubscribe(): MethodDecorator;
13
+ //# sourceMappingURL=subscribe.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/server/decorators/subscribe.decorator.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAAyB,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAA2B,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,eAAe,CAI3C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,eAAe,CAI7C"}
@@ -0,0 +1,21 @@
1
+ export const SUBSCRIBE_META = Symbol("mcpSubscribe");
2
+ export const UNSUBSCRIBE_META = Symbol("mcpUnsubscribe");
3
+ /**
4
+ * @description
5
+ * Decorator to register a method as an MCP Resource Subscribe handler.
6
+ */
7
+ export function Subscribe() {
8
+ return function (target, propertyKey) {
9
+ target[SUBSCRIBE_META] = propertyKey;
10
+ };
11
+ }
12
+ /**
13
+ * @description
14
+ * Decorator to register a method as an MCP Resource Unsubscribe handler.
15
+ */
16
+ export function Unsubscribe() {
17
+ return function (target, propertyKey) {
18
+ target[UNSUBSCRIBE_META] = propertyKey;
19
+ };
20
+ }
21
+ //# sourceMappingURL=subscribe.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.decorator.js","sourceRoot":"","sources":["../../../../../src/server/decorators/subscribe.decorator.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ export interface ToolOptions {
3
+ name: string;
4
+ description: string;
5
+ inputSchema?: Record<string, any> | z.ZodObject<any>;
6
+ }
7
+ export declare const TOOL_META: unique symbol;
8
+ /**
9
+ * @description
10
+ * Decorator to register a method as an MCP Tool.
11
+ * Handlers are dynamically collected and registered on the server.
12
+ * @param options - Options for the tool including name, description, and schema.
13
+ */
14
+ export declare function Tool(options: ToolOptions): MethodDecorator;
15
+ //# sourceMappingURL=tool.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/server/decorators/tool.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACtD;AAED,eAAO,MAAM,SAAS,eAAqB,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAU1D"}
@@ -0,0 +1,19 @@
1
+ export const TOOL_META = Symbol("mcpTools");
2
+ /**
3
+ * @description
4
+ * Decorator to register a method as an MCP Tool.
5
+ * Handlers are dynamically collected and registered on the server.
6
+ * @param options - Options for the tool including name, description, and schema.
7
+ */
8
+ export function Tool(options) {
9
+ return function (target, propertyKey) {
10
+ if (!target[TOOL_META]) {
11
+ target[TOOL_META] = [];
12
+ }
13
+ target[TOOL_META].push({
14
+ options,
15
+ methodName: propertyKey,
16
+ });
17
+ };
18
+ }
19
+ //# sourceMappingURL=tool.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.decorator.js","sourceRoot":"","sources":["../../../../../src/server/decorators/tool.decorator.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,OAAoB;IACvC,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YACtB,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACxB;QACD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YACrB,OAAO;YACP,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./types/index.js";
2
+ export * from "./utils/index.js";
3
+ export { RequestHandler, RegisterServer, UseServer, ActionHandler, NotificationHandler, Tool, Prompt, Resource, ResourceTemplate, Subscribe, Unsubscribe, Completion } from "./decorators/index.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,UAAU,EACX,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./types/index.js";
2
+ export * from "./utils/index.js";
3
+ export { RequestHandler, RegisterServer, UseServer, ActionHandler, NotificationHandler, Tool, Prompt, Resource, ResourceTemplate, Subscribe, Unsubscribe, Completion } from "./decorators/index.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,UAAU,EACX,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "@modelcontextprotocol/sdk/types.js";
2
+ export * from "./server/server.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "@modelcontextprotocol/sdk/types.js";
2
+ export * from "./server/server.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./server.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/types/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./server.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/server/types/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @description
3
+ * This interface defines the options for registering a server.
4
+ * The name is a required field, while the version is optional.
5
+ * additional properties can be added as needed.
6
+ */
7
+ interface BaseServer {
8
+ name: string;
9
+ version?: string;
10
+ [key: string]: any;
11
+ }
12
+ /**
13
+ * @description
14
+ * This interface defines the options for registering a server.
15
+ * The name is a required field, while the version is optional.
16
+ */
17
+ export interface RegisterServerOptions extends BaseServer {
18
+ }
19
+ /**
20
+ * @description
21
+ * This interface defines the options for using a server.
22
+ * The name is a required field, while the version is optional.
23
+ */
24
+ export interface UseServerOptions extends BaseServer {
25
+ }
26
+ /**
27
+ * @description
28
+ * This interface defines the metadata for a server.
29
+ * It includes the server name is required, version is optional, and the server instance itself.
30
+ */
31
+ export interface ServerMetadata extends BaseServer {
32
+ server: any;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../../src/server/types/server/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,UAAU;CAAG;AAE5D;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;CAAG;AAEvD;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,EAAE,GAAG,CAAC;CACb"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../../src/server/types/server/server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "./serverRegistry.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./serverRegistry.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}