kleanmcp 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,554 @@
1
+ var __create = Object.create;
2
+ var __getProtoOf = Object.getPrototypeOf;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ function __accessProp(key) {
8
+ return this[key];
9
+ }
10
+ var __toESMCache_node;
11
+ var __toESMCache_esm;
12
+ var __toESM = (mod, isNodeMode, target) => {
13
+ var canCache = mod != null && typeof mod === "object";
14
+ if (canCache) {
15
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
16
+ var cached = cache.get(mod);
17
+ if (cached)
18
+ return cached;
19
+ }
20
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
21
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
+ for (let key of __getOwnPropNames(mod))
23
+ if (!__hasOwnProp.call(to, key))
24
+ __defProp(to, key, {
25
+ get: __accessProp.bind(mod, key),
26
+ enumerable: true
27
+ });
28
+ if (canCache)
29
+ cache.set(mod, to);
30
+ return to;
31
+ };
32
+ var __toCommonJS = (from) => {
33
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
34
+ if (entry)
35
+ return entry;
36
+ entry = __defProp({}, "__esModule", { value: true });
37
+ if (from && typeof from === "object" || typeof from === "function") {
38
+ for (var key of __getOwnPropNames(from))
39
+ if (!__hasOwnProp.call(entry, key))
40
+ __defProp(entry, key, {
41
+ get: __accessProp.bind(from, key),
42
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
43
+ });
44
+ }
45
+ __moduleCache.set(from, entry);
46
+ return entry;
47
+ };
48
+ var __moduleCache;
49
+ var __returnValue = (v) => v;
50
+ function __exportSetter(name, newValue) {
51
+ this[name] = __returnValue.bind(null, newValue);
52
+ }
53
+ var __export = (target, all) => {
54
+ for (var name in all)
55
+ __defProp(target, name, {
56
+ get: all[name],
57
+ enumerable: true,
58
+ configurable: true,
59
+ set: __exportSetter.bind(all, name)
60
+ });
61
+ };
62
+
63
+ // src/types.ts
64
+ var exports_types = {};
65
+ __export(exports_types, {
66
+ methodDefs: () => jb,
67
+ defaultJSONRPCHandler: () => e,
68
+ ToolDefinition: () => ToolDefinition,
69
+ ToolArgsToParameterList: () => ToolArgsToParameterList,
70
+ StatusMap: () => import_elysia.StatusMap,
71
+ OpenRPCSupportedVersionsSchema: () => m2,
72
+ OpenRPCServerObjectSchema: () => Y2,
73
+ OpenRPCSchema: () => R2,
74
+ OpenRPCReferenceObjectSchema: () => p,
75
+ OpenRPCMethodObjectSchema: () => d,
76
+ OpenRPCLicenseObjectSchema: () => E,
77
+ OpenRPCInfoObjectSchema: () => I,
78
+ OpenRPCExternalDocumentationObjectSchema: () => s,
79
+ OpenRPCContentDescriptorSchema: () => F,
80
+ OpenRPCContactObjectSchema: () => u,
81
+ OpenRPCComponentsObjectSchema: () => r,
82
+ OPENRPC_VERSION: () => q,
83
+ MCPError: () => _,
84
+ JSONRPC_VERSION: () => _2,
85
+ JSONRPCSupportedVersionsSchema: () => n,
86
+ JSONRPCSchema: () => A,
87
+ JSONRPCResultSchema: () => f,
88
+ JSONRPCResultResponseSchema: () => j,
89
+ JSONRPCResponseSchema: () => X2,
90
+ JSONRPCRequestSchema: () => W2,
91
+ JSONRPCRequestIdSchema: () => G2,
92
+ JSONRPCParamsSchema: () => U,
93
+ JSONRPCNotificationSchema: () => H,
94
+ JSONRPCMessageSchema: () => P2,
95
+ JSONRPCHandlerReturnTypeSchema: () => a,
96
+ JSONRPCHandlerArgumentSchema: () => C2,
97
+ JSONRPCException: () => i,
98
+ JSONRPCErrorSchema: () => b2,
99
+ JSONRPCErrorResponseSchema: () => D,
100
+ JSONRPCErrorCode: () => O,
101
+ InvertedStatusMap: () => import_elysia.InvertedStatusMap,
102
+ InputSchemaFromParameters: () => InputSchemaFromParameters,
103
+ DEFAULT_OPTIONS: () => r2
104
+ });
105
+ module.exports = __toCommonJS(exports_types);
106
+
107
+ // ../elysia-jsonrpc/dist/mcp.types.js
108
+ var import_v4 = require("zod/v4");
109
+ var P = Object.create;
110
+ var { getPrototypeOf: Q, defineProperty: m, getOwnPropertyNames: R } = Object;
111
+ var W = Object.prototype.hasOwnProperty;
112
+ function X(l) {
113
+ return this[l];
114
+ }
115
+ var Y;
116
+ var Z;
117
+ var $ = (l, u, U) => {
118
+ var j = l != null && typeof l === "object";
119
+ if (j) {
120
+ var A = u ? Y ??= new WeakMap : Z ??= new WeakMap, I = A.get(l);
121
+ if (I)
122
+ return I;
123
+ }
124
+ U = l != null ? P(Q(l)) : {};
125
+ let V = u || !l || !l.__esModule ? m(U, "default", { value: l, enumerable: true }) : U;
126
+ for (let F of R(l))
127
+ if (!W.call(V, F))
128
+ m(V, F, { get: X.bind(l, F), enumerable: true });
129
+ if (j)
130
+ A.set(l, V);
131
+ return V;
132
+ };
133
+ var B = (l, u) => () => (u || l((u = { exports: {} }).exports, u), u.exports);
134
+ var C = B((v) => {
135
+ Object.defineProperty(v, "__esModule", { value: true });
136
+ });
137
+ var G = B((D) => {
138
+ Object.defineProperty(D, "__esModule", { value: true });
139
+ var d = Symbol("inverted"), i = Symbol("expectNull"), o = Symbol("expectUndefined"), y = Symbol("expectNumber"), h = Symbol("expectString"), t = Symbol("expectBoolean"), k = Symbol("expectVoid"), a = Symbol("expectFunction"), O = Symbol("expectObject"), x = Symbol("expectArray"), r = Symbol("expectSymbol"), T = Symbol("expectAny"), s = Symbol("expectUnknown"), e = Symbol("expectNever"), f = Symbol("expectNullable"), p = Symbol("expectBigInt");
140
+ });
141
+ var J = B((H) => {
142
+ Object.defineProperty(H, "__esModule", { value: true });
143
+ });
144
+ var L = B((K) => {
145
+ Object.defineProperty(K, "__esModule", { value: true });
146
+ var lb = Symbol("secret"), Sb = Symbol("mismatch"), cb = Symbol("avalue");
147
+ });
148
+ var M = B((c) => {
149
+ var n = c && c.__createBinding || (Object.create ? function(l, u, U, j) {
150
+ if (j === undefined)
151
+ j = U;
152
+ var A = Object.getOwnPropertyDescriptor(u, U);
153
+ if (!A || ("get" in A ? !u.__esModule : A.writable || A.configurable))
154
+ A = { enumerable: true, get: function() {
155
+ return u[U];
156
+ } };
157
+ Object.defineProperty(l, j, A);
158
+ } : function(l, u, U, j) {
159
+ if (j === undefined)
160
+ j = U;
161
+ l[j] = u[U];
162
+ }), w = c && c.__exportStar || function(l, u) {
163
+ for (var U in l)
164
+ if (U !== "default" && !Object.prototype.hasOwnProperty.call(u, U))
165
+ n(u, l, U);
166
+ };
167
+ Object.defineProperty(c, "__esModule", { value: true });
168
+ c.expectTypeOf = undefined;
169
+ w(C(), c);
170
+ w(G(), c);
171
+ w(J(), c);
172
+ w(L(), c);
173
+ var N = () => true, q = (l) => {
174
+ let u = ["parameters", "returns", "resolves", "not", "items", "constructorParameters", "thisParameter", "instance", "guards", "asserts", "branded"], U = { toBeAny: N, toBeUnknown: N, toBeNever: N, toBeFunction: N, toBeObject: N, toBeArray: N, toBeString: N, toBeNumber: N, toBeBoolean: N, toBeVoid: N, toBeSymbol: N, toBeNull: N, toBeUndefined: N, toBeNullable: N, toBeBigInt: N, toMatchTypeOf: N, toEqualTypeOf: N, toBeConstructibleWith: N, toMatchObjectType: N, toExtend: N, map: c.expectTypeOf, toBeCallableWith: c.expectTypeOf, extract: c.expectTypeOf, exclude: c.expectTypeOf, pick: c.expectTypeOf, omit: c.expectTypeOf, toHaveProperty: c.expectTypeOf, parameter: c.expectTypeOf };
175
+ return u.forEach((A) => Object.defineProperty(U, A, { get: () => (0, c.expectTypeOf)({}) })), U;
176
+ };
177
+ c.expectTypeOf = q;
178
+ });
179
+ var S = $(M(), 1);
180
+ var jb = { initialize: { params: import_v4.z.object({ protocolVersion: import_v4.z.string(), capabilities: import_v4.z.any(), clientInfo: import_v4.z.any() }), result: import_v4.z.object({ protocolVersion: import_v4.z.string(), capabilities: import_v4.z.any(), serverInfo: import_v4.z.any() }) }, ping: { params: import_v4.z.object({}), result: import_v4.z.object({}) }, prompts: { list: { params: import_v4.z.object({ cursor: import_v4.z.string().optional() }), result: import_v4.z.object({ prompts: import_v4.z.array(import_v4.z.object({ name: import_v4.z.string(), description: import_v4.z.string().optional(), arguments: import_v4.z.array(import_v4.z.object({ name: import_v4.z.string(), description: import_v4.z.string().optional(), required: import_v4.z.boolean().optional() })).optional() })), nextCursor: import_v4.z.string().optional() }), description: "" }, get: { params: import_v4.z.object({ name: import_v4.z.string(), arguments: import_v4.z.record(import_v4.z.string(), import_v4.z.string()).optional() }), result: import_v4.z.object({ description: import_v4.z.string().optional(), messages: import_v4.z.array(import_v4.z.object({ role: import_v4.z.enum(["user", "assistant"]), content: import_v4.z.object({ type: import_v4.z.literal("text"), text: import_v4.z.string() }) })) }) } }, resources: { list: { params: import_v4.z.object({ cursor: import_v4.z.string().optional() }), result: import_v4.z.object({ resources: import_v4.z.array(import_v4.z.object({ uri: import_v4.z.string(), name: import_v4.z.string(), description: import_v4.z.string().optional(), mimeType: import_v4.z.string().optional() })), nextCursor: import_v4.z.string().optional() }) }, read: { params: import_v4.z.object({ uri: import_v4.z.string() }), result: import_v4.z.object({ contents: import_v4.z.array(import_v4.z.object({ uri: import_v4.z.string(), mimeType: import_v4.z.string().optional(), text: import_v4.z.string().optional(), blob: import_v4.z.string().optional() })) }) }, subscribe: { params: import_v4.z.object({ uri: import_v4.z.string() }), result: import_v4.z.object({}) }, templates: { list: { params: import_v4.z.object({ cursor: import_v4.z.string().optional() }), result: import_v4.z.object({ resourceTemplates: import_v4.z.array(import_v4.z.object({ uriTemplate: import_v4.z.string(), name: import_v4.z.string(), description: import_v4.z.string().optional(), mimeType: import_v4.z.string().optional() })), nextCursor: import_v4.z.string().optional() }) } } }, tools: { list: { params: import_v4.z.object({ cursor: import_v4.z.string().optional() }), result: import_v4.z.object({ tools: import_v4.z.array(import_v4.z.object({ name: import_v4.z.string(), description: import_v4.z.string().optional(), inputSchema: import_v4.z.object({ type: import_v4.z.literal("object"), properties: import_v4.z.record(import_v4.z.string(), import_v4.z.any()).optional(), required: import_v4.z.array(import_v4.z.string()).optional() }) })), nextCursor: import_v4.z.string().optional() }) }, call: { params: import_v4.z.object({ name: import_v4.z.string(), arguments: import_v4.z.record(import_v4.z.string(), import_v4.z.any()).optional() }), result: import_v4.z.object({ content: import_v4.z.array(import_v4.z.object({ type: import_v4.z.enum(["text", "image", "resource"]), text: import_v4.z.string().optional(), data: import_v4.z.string().optional(), mimeType: import_v4.z.string().optional() })), isError: import_v4.z.boolean().optional() }) } }, notifications: { "prompts/list_changed": null, "resources/list_changed": null, "resources/updated": null, "tools/list_changed": null, cancelled: null } };
181
+
182
+ class _ extends Error {
183
+ args;
184
+ constructor(l, u) {
185
+ super(`MCPError: ${l} with args ${u || {}}`);
186
+ this.args = u;
187
+ }
188
+ }
189
+ S.expectTypeOf().toEqualTypeOf();
190
+ S.expectTypeOf().not.toEqualTypeOf();
191
+ S.expectTypeOf().not.toEqualTypeOf();
192
+ S.expectTypeOf().toEqualTypeOf();
193
+ S.expectTypeOf().toEqualTypeOf();
194
+ S.expectTypeOf({ a: 1, b: 1 }).toMatchObjectType();
195
+ S.expectTypeOf().toEqualTypeOf();
196
+ S.expectTypeOf().toEqualTypeOf();
197
+ S.expectTypeOf().toEqualTypeOf();
198
+ S.expectTypeOf().toEqualTypeOf();
199
+ S.expectTypeOf().toEqualTypeOf();
200
+ S.expectTypeOf().toEqualTypeOf();
201
+ S.expectTypeOf().toEqualTypeOf();
202
+ S.expectTypeOf().toEqualTypeOf();
203
+ S.expectTypeOf().toEqualTypeOf();
204
+ S.expectTypeOf().toEqualTypeOf();
205
+ S.expectTypeOf().toEqualTypeOf();
206
+ S.expectTypeOf().toEqualTypeOf();
207
+ S.expectTypeOf().toEqualTypeOf();
208
+ S.expectTypeOf().toEqualTypeOf();
209
+ S.expectTypeOf().toEqualTypeOf();
210
+ S.expectTypeOf().toEqualTypeOf();
211
+ // ../elysia-jsonrpc/dist/rpc.types.js
212
+ var import_v42 = __toESM(require("zod/v4"));
213
+ var _2 = "2.0";
214
+ var q = "1.3.2";
215
+ var A = import_v42.default.string();
216
+ var n = import_v42.default.enum([_2]);
217
+ var m2 = import_v42.default.enum([q]);
218
+ var G2 = import_v42.default.union([import_v42.default.string(), import_v42.default.number(), import_v42.default.null()]);
219
+ var U = import_v42.default.union([import_v42.default.array(import_v42.default.unknown()), import_v42.default.record(import_v42.default.any(), import_v42.default.unknown())]).optional();
220
+ var b2 = import_v42.default.object({ code: import_v42.default.number().int(), message: import_v42.default.string(), data: import_v42.default.unknown().optional() });
221
+ var W2 = import_v42.default.object({ jsonrpc: A, method: import_v42.default.string(), params: U, id: G2 });
222
+ var H = import_v42.default.object({ jsonrpc: A, method: import_v42.default.string(), params: U });
223
+ var f = import_v42.default.unknown();
224
+ var j = import_v42.default.object({ jsonrpc: A, result: f, id: G2 });
225
+ var D = import_v42.default.object({ jsonrpc: A, error: b2, id: G2 });
226
+ var X2 = import_v42.default.union([j, D]);
227
+ var P2 = import_v42.default.union([W2, H, X2]);
228
+ var C2 = import_v42.default.union([W2, H]);
229
+ var a = import_v42.default.union([X2, H]);
230
+ var O = { ParseError: -32700, InvalidRequest: -32600, MethodNotFound: -32601, InvalidParams: -32602, InternalError: -32603 };
231
+ var u = import_v42.default.object({ name: import_v42.default.string().optional(), url: import_v42.default.url().optional(), email: import_v42.default.email().optional() });
232
+ var E = import_v42.default.object({ name: import_v42.default.string(), url: import_v42.default.url().optional() });
233
+ var I = import_v42.default.object({ title: import_v42.default.string(), version: import_v42.default.string(), description: import_v42.default.string().optional(), termsOfService: import_v42.default.string().optional(), contact: u.optional(), license: E.optional() });
234
+ var Y2 = import_v42.default.object({ name: import_v42.default.string(), url: import_v42.default.string(), summary: import_v42.default.string().optional(), description: import_v42.default.string().optional(), variables: import_v42.default.record(import_v42.default.string(), import_v42.default.any()).optional() });
235
+ var F = import_v42.default.object({ name: import_v42.default.string(), summary: import_v42.default.string().optional(), description: import_v42.default.string().optional(), required: import_v42.default.boolean().optional(), schema: import_v42.default.any(), deprecated: import_v42.default.boolean().optional() });
236
+ var d = import_v42.default.object({ name: import_v42.default.string(), tags: import_v42.default.array(import_v42.default.object({ name: import_v42.default.string(), description: import_v42.default.string().optional() })).optional(), summary: import_v42.default.string().optional(), description: import_v42.default.string().optional(), externalDocs: import_v42.default.object({ description: import_v42.default.string().optional(), url: import_v42.default.string() }).optional(), params: import_v42.default.array(F).optional(), result: F, deprecated: import_v42.default.boolean().optional(), servers: import_v42.default.array(Y2).optional(), errors: import_v42.default.array(import_v42.default.any()).optional(), links: import_v42.default.array(import_v42.default.any()).optional(), examples: import_v42.default.array(import_v42.default.any()).optional(), paramStructure: import_v42.default.enum(["by-name", "by-position", "either"]).optional() });
237
+ var p = import_v42.default.object({ $ref: import_v42.default.string() });
238
+ var r = import_v42.default.object({ schemas: import_v42.default.record(import_v42.default.string(), import_v42.default.any()).optional(), links: import_v42.default.record(import_v42.default.string(), import_v42.default.any()).optional(), errors: import_v42.default.record(import_v42.default.string(), import_v42.default.any()).optional(), examples: import_v42.default.record(import_v42.default.string(), import_v42.default.any()).optional(), examplePairings: import_v42.default.record(import_v42.default.string(), import_v42.default.any()).optional(), contentDescriptors: import_v42.default.record(import_v42.default.string(), F).optional(), tags: import_v42.default.record(import_v42.default.string(), import_v42.default.any()).optional() });
239
+ var s = import_v42.default.object({ description: import_v42.default.string().optional(), url: import_v42.default.string() });
240
+ var R2 = import_v42.default.object({ openrpc: import_v42.default.string(), info: I, servers: import_v42.default.array(Y2).optional(), methods: import_v42.default.array(import_v42.default.union([d, p])), components: r.optional(), externalDocs: s.optional() });
241
+
242
+ class i extends Error {
243
+ code;
244
+ message;
245
+ originalError;
246
+ constructor(v, w, y) {
247
+ super(`JSONRPCException ${v}: ${w}`);
248
+ this.code = v;
249
+ this.message = w;
250
+ this.originalError = y;
251
+ }
252
+ }
253
+ // ../elysia-jsonrpc/dist/index.js
254
+ var import_v43 = __toESM(require("zod/v4"));
255
+ var import_elysia = __toESM(require("elysia"));
256
+ var B2 = "2.0";
257
+ var I2 = "1.3.2";
258
+ var j2 = import_v43.default.string();
259
+ var b3 = import_v43.default.enum([B2]);
260
+ var AG = import_v43.default.enum([I2]);
261
+ var _3 = import_v43.default.union([import_v43.default.string(), import_v43.default.number(), import_v43.default.null()]);
262
+ var D2 = import_v43.default.union([import_v43.default.array(import_v43.default.unknown()), import_v43.default.record(import_v43.default.any(), import_v43.default.unknown())]).optional();
263
+ var n2 = import_v43.default.object({ code: import_v43.default.number().int(), message: import_v43.default.string(), data: import_v43.default.unknown().optional() });
264
+ var V = import_v43.default.object({ jsonrpc: j2, method: import_v43.default.string(), params: D2, id: _3 });
265
+ var M2 = import_v43.default.object({ jsonrpc: j2, method: import_v43.default.string(), params: D2 });
266
+ var i2 = import_v43.default.unknown();
267
+ var R3 = import_v43.default.object({ jsonrpc: j2, result: i2, id: _3 });
268
+ var S2 = import_v43.default.object({ jsonrpc: j2, error: n2, id: _3 });
269
+ var v = import_v43.default.union([R3, S2]);
270
+ var LG = import_v43.default.union([V, M2, v]);
271
+ var UG = import_v43.default.union([V, M2]);
272
+ var kG = import_v43.default.union([v, M2]);
273
+ var w = { ParseError: -32700, InvalidRequest: -32600, MethodNotFound: -32601, InvalidParams: -32602, InternalError: -32603 };
274
+ var c = import_v43.default.object({ name: import_v43.default.string().optional(), url: import_v43.default.url().optional(), email: import_v43.default.email().optional() });
275
+ var p2 = import_v43.default.object({ name: import_v43.default.string(), url: import_v43.default.url().optional() });
276
+ var d2 = import_v43.default.object({ title: import_v43.default.string(), version: import_v43.default.string(), description: import_v43.default.string().optional(), termsOfService: import_v43.default.string().optional(), contact: c.optional(), license: p2.optional() });
277
+ var l = import_v43.default.object({ name: import_v43.default.string(), url: import_v43.default.string(), summary: import_v43.default.string().optional(), description: import_v43.default.string().optional(), variables: import_v43.default.record(import_v43.default.string(), import_v43.default.any()).optional() });
278
+ var x = import_v43.default.object({ name: import_v43.default.string(), summary: import_v43.default.string().optional(), description: import_v43.default.string().optional(), required: import_v43.default.boolean().optional(), schema: import_v43.default.any(), deprecated: import_v43.default.boolean().optional() });
279
+ var a2 = import_v43.default.object({ name: import_v43.default.string(), tags: import_v43.default.array(import_v43.default.object({ name: import_v43.default.string(), description: import_v43.default.string().optional() })).optional(), summary: import_v43.default.string().optional(), description: import_v43.default.string().optional(), externalDocs: import_v43.default.object({ description: import_v43.default.string().optional(), url: import_v43.default.string() }).optional(), params: import_v43.default.array(x).optional(), result: x, deprecated: import_v43.default.boolean().optional(), servers: import_v43.default.array(l).optional(), errors: import_v43.default.array(import_v43.default.any()).optional(), links: import_v43.default.array(import_v43.default.any()).optional(), examples: import_v43.default.array(import_v43.default.any()).optional(), paramStructure: import_v43.default.enum(["by-name", "by-position", "either"]).optional() });
280
+ var s2 = import_v43.default.object({ $ref: import_v43.default.string() });
281
+ var o = import_v43.default.object({ schemas: import_v43.default.record(import_v43.default.string(), import_v43.default.any()).optional(), links: import_v43.default.record(import_v43.default.string(), import_v43.default.any()).optional(), errors: import_v43.default.record(import_v43.default.string(), import_v43.default.any()).optional(), examples: import_v43.default.record(import_v43.default.string(), import_v43.default.any()).optional(), examplePairings: import_v43.default.record(import_v43.default.string(), import_v43.default.any()).optional(), contentDescriptors: import_v43.default.record(import_v43.default.string(), x).optional(), tags: import_v43.default.record(import_v43.default.string(), import_v43.default.any()).optional() });
282
+ var t = import_v43.default.object({ description: import_v43.default.string().optional(), url: import_v43.default.string() });
283
+ var HG = import_v43.default.object({ openrpc: import_v43.default.string(), info: d2, servers: import_v43.default.array(l).optional(), methods: import_v43.default.array(import_v43.default.union([a2, s2])), components: o.optional(), externalDocs: t.optional() });
284
+
285
+ class z extends Error {
286
+ code;
287
+ message;
288
+ originalError;
289
+ constructor(Q2, K, Z2) {
290
+ super(`JSONRPCException ${Q2}: ${K}`);
291
+ this.code = Q2;
292
+ this.message = K;
293
+ this.originalError = Z2;
294
+ }
295
+ }
296
+ var r2 = { version: B2, debug: false, dns_rebind_origin: undefined, rpcHandler: e, onError: undefined, onResponse: undefined, onRequest: undefined, service: null, cors: "*" };
297
+ async function e(Q2, K, Z2) {
298
+ let A2 = J2(Q2, Z2.method), L2 = GG(Z2.params), U2 = await A2.apply(Q2, [L2]);
299
+ return { id: K, jsonrpc: "2.0", result: U2 };
300
+ }
301
+ function J2(Q2, K) {
302
+ if (!Q2)
303
+ throw new z(w.MethodNotFound, "Invalid Method");
304
+ let Z2 = Q2[K];
305
+ if (!Z2) {
306
+ let A2 = K.split("/");
307
+ if (A2.length > 1)
308
+ return J2(Q2[A2[0]], A2.slice(1).join("/"));
309
+ throw new z(w.MethodNotFound, "Method not found");
310
+ }
311
+ return Z2;
312
+ }
313
+ function y(Q2) {
314
+ let K = b3.safeParse(Q2);
315
+ if (!K.success)
316
+ throw new z(w.InvalidRequest, "Invalid JSON RPC Version");
317
+ return K.success;
318
+ }
319
+ function GG(Q2) {
320
+ let K = D2.safeParse(Q2);
321
+ if (!K.success)
322
+ throw new z(w.InvalidParams, "Invalid Params");
323
+ return K.data;
324
+ }
325
+ function KG(Q2) {
326
+ try {
327
+ let K = typeof Q2 === "string" ? JSON.parse(Q2) : Q2;
328
+ if (typeof Q2 == "object")
329
+ return K;
330
+ throw new z(w.ParseError, "body is not an object");
331
+ } catch (K) {
332
+ throw new z(w.ParseError, "failed json parse", K);
333
+ }
334
+ }
335
+ function E2(Q2, K, Z2 = false) {
336
+ return { id: Q2, jsonrpc: "2.0", error: { code: K?.code || w.InvalidRequest, message: K?.message || "InvalidRequest", data: Z2 && K ? K.originalError ?? {} : undefined } };
337
+ }
338
+ function QG(Q2) {
339
+ let K = { ...r2, ...Q2 }, Z2 = async function(X3) {
340
+ let $2 = null;
341
+ try {
342
+ let W3 = V.safeParse(X3), Y3 = M2.safeParse(X3 || {});
343
+ if (W3.success) {
344
+ y(W3.data.jsonrpc), $2 = W3.data?.id;
345
+ try {
346
+ if (K.onRequest)
347
+ K.onRequest(W3.data);
348
+ } catch (T) {}
349
+ return await K.rpcHandler(K.service, $2, W3.data);
350
+ } else if (Y3.success) {
351
+ y(Y3.data.jsonrpc);
352
+ try {
353
+ if (K.onRequest)
354
+ K.onRequest(Y3.data);
355
+ } catch (H2) {}
356
+ } else
357
+ throw new z(w.InvalidRequest, "Invalid Request", W3.error);
358
+ } catch (W3) {
359
+ let Y3 = E2($2, W3, K.debug);
360
+ try {
361
+ if (K.onError)
362
+ K.onError(Y3);
363
+ } catch (H2) {}
364
+ return Y3;
365
+ }
366
+ };
367
+ function A2() {
368
+ return function(X3) {
369
+ return X3;
370
+ };
371
+ }
372
+ let L2 = async function({ body: X3, set: $2 }) {
373
+ $2.headers["Content-Type"] = "application/json";
374
+ try {
375
+ let W3 = KG(X3);
376
+ if (Array.isArray(W3)) {
377
+ let Y3 = [];
378
+ if (W3.length == 0)
379
+ throw new z(w.InvalidRequest, "Batch empty");
380
+ for (let H2 of W3) {
381
+ let T = await Z2(H2);
382
+ try {
383
+ if (T && K.onResponse)
384
+ K.onResponse(T);
385
+ } catch (YG) {}
386
+ if (T)
387
+ Y3.push(T);
388
+ }
389
+ return Y3;
390
+ } else {
391
+ let Y3 = await Z2(W3);
392
+ try {
393
+ if (Y3 && K.onResponse)
394
+ K.onResponse(Y3);
395
+ } catch (H2) {}
396
+ return Y3;
397
+ }
398
+ } catch (W3) {
399
+ let Y3 = E2(null, W3, K.debug);
400
+ try {
401
+ if (K.onError)
402
+ K.onError(Y3);
403
+ } catch (H2) {}
404
+ return Y3;
405
+ }
406
+ }, U2 = new import_elysia.default().options("sse", async ({ set: X3 }) => {
407
+ X3.headers.Allow = ["GET", "POST", "OPTIONS"].join(",");
408
+ }).get("sse", async function* ({ set: X3 }) {
409
+ X3.headers["Content-Type"] = "text/event-stream";
410
+ for await (let $2 of [])
411
+ yield import_elysia.sse({ data: $2, event: "message" });
412
+ yield import_elysia.sse({ event: "done" });
413
+ }).post("sse", ({ body: X3 }) => {}), k2 = new import_elysia.default().options("stream", async ({ set: X3, status: $2 }) => {
414
+ X3.headers.Allow = ["POST", "OPTIONS"].join(",");
415
+ }).post("stream", L2, {}), F2 = new import_elysia.default().get("/openrpc.json", async ({}) => {
416
+ let X3 = Object.getPrototypeOf(K.service), $2 = Object.getOwnPropertyNames(X3).filter((W3) => W3 !== "constructor" && typeof K.service[W3] === "function");
417
+ return { openrpc: I2, info: { title: K.title || "JSON RPC Server", version: K.version }, methods: $2.map((W3) => {
418
+ return { name: W3, params: [], result: { name: "", schema: "" } };
419
+ }) };
420
+ });
421
+ return new import_elysia.default({ name: "jsonRPC" }).onRequest(({ request: X3, status: $2 }) => {
422
+ if (K.dns_rebind_origin !== undefined) {
423
+ if (X3.headers.get("Origin") != K.dns_rebind_origin)
424
+ return $2(400, "Wrong domain");
425
+ }
426
+ }).use(U2).use(k2).use(F2);
427
+ }
428
+
429
+ // src/types.ts
430
+ function InputSchemaFromParameters(params) {
431
+ return {
432
+ type: "object",
433
+ properties: Object.fromEntries(Object.entries(params).map(([k2, v2]) => [
434
+ k2,
435
+ {
436
+ description: v2.description,
437
+ type: v2.type,
438
+ default: v2.default
439
+ }
440
+ ])),
441
+ required: Object.entries(params).map(([k2, v2]) => v2.required ? k2 : undefined).filter((v2) => v2 !== undefined)
442
+ };
443
+ }
444
+ function ToolArgsToParameterList(toolArgs, params) {
445
+ let res = [];
446
+ for (const param of params) {
447
+ res.push(toolArgs[param.name] ?? param.default ?? undefined);
448
+ }
449
+ return res;
450
+ }
451
+ function ToolDefinition(methodName, methodDescription, params) {
452
+ return (callback) => {
453
+ return {
454
+ name: methodName,
455
+ description: methodDescription,
456
+ params,
457
+ callback
458
+ };
459
+ };
460
+ }
461
+
462
+ // src/index.ts
463
+ var exports_src = {};
464
+ __export(exports_src, {
465
+ elysiaJsonRPC: () => QG,
466
+ MCPServerService: () => MCPServerService
467
+ });
468
+ module.exports = __toCommonJS(exports_src);
469
+ class MCPServerService {
470
+ serverTitle;
471
+ serverVersion;
472
+ serverInstructions;
473
+ getReferenceInstanceForToolCall;
474
+ toolsets;
475
+ constructor(serverTitle, serverVersion, serverInstructions, getReferenceInstanceForToolCall, toolsets) {
476
+ this.serverTitle = serverTitle;
477
+ this.serverVersion = serverVersion;
478
+ this.serverInstructions = serverInstructions;
479
+ this.getReferenceInstanceForToolCall = getReferenceInstanceForToolCall;
480
+ this.toolsets = toolsets;
481
+ }
482
+ initialize(params) {
483
+ return Promise.resolve({
484
+ capabilities: {
485
+ tools: {}
486
+ },
487
+ serverInfo: {
488
+ name: this.serverTitle,
489
+ version: this.serverVersion
490
+ },
491
+ protocolVersion: "2025-11-25",
492
+ instructions: this.serverInstructions
493
+ });
494
+ }
495
+ ping(params) {
496
+ return Promise.resolve({});
497
+ }
498
+ "tools/list"(params) {
499
+ return Promise.resolve({
500
+ tools: this.toolsets.flatMap((toolset) => {
501
+ return toolset.getTools().map((tool) => {
502
+ return {
503
+ name: tool.name,
504
+ description: tool.description,
505
+ inputSchema: InputSchemaFromParameters(tool.params)
506
+ };
507
+ });
508
+ })
509
+ });
510
+ }
511
+ getTool(toolName) {
512
+ for (const toolset of this.toolsets) {
513
+ const maybeTool = toolset.getTool(toolName);
514
+ if (maybeTool)
515
+ return maybeTool;
516
+ }
517
+ return null;
518
+ }
519
+ async "tools/call"(params) {
520
+ const toolName = params.name;
521
+ const toolArgs = params.arguments || {};
522
+ const tool = this.getTool(toolName);
523
+ if (!tool)
524
+ throw new _("Tool not found!", { toolName });
525
+ const referenceInstance = this.getReferenceInstanceForToolCall(toolName);
526
+ const result = await tool.callback(referenceInstance, ...ToolArgsToParameterList(toolArgs, tool.params), {});
527
+ return ((result2) => {
528
+ return {
529
+ toolUseId: "",
530
+ content: result2.content,
531
+ type: "tool_result",
532
+ isError: result2.isError || false
533
+ };
534
+ })(result);
535
+ }
536
+ "prompts/list"(params) {
537
+ throw new Error("Method not implemented.");
538
+ }
539
+ "prompts/get"(params) {
540
+ throw new Error("Method not implemented.");
541
+ }
542
+ "resources/list"(params) {
543
+ throw new Error("Method not implemented.");
544
+ }
545
+ "resources/read"(params) {
546
+ throw new Error("Method not implemented.");
547
+ }
548
+ "resources/subscribe"(params) {
549
+ throw new Error("Method not implemented.");
550
+ }
551
+ "resources/templates/list"(params) {
552
+ throw new Error("Method not implemented.");
553
+ }
554
+ }