@theorvane/type-mcp 0.2.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.
- package/LICENSE +21 -0
- package/README.md +151 -0
- package/dist/chunk-64DS4UNF.js +106 -0
- package/dist/chunk-64DS4UNF.js.map +1 -0
- package/dist/http.cjs +114 -0
- package/dist/http.cjs.map +1 -0
- package/dist/http.d.cts +24 -0
- package/dist/http.d.ts +24 -0
- package/dist/http.js +89 -0
- package/dist/http.js.map +1 -0
- package/dist/index.cjs +438 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +51 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.js +318 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-resolver-BdKelIch.d.cts +46 -0
- package/dist/instance-resolver-BdKelIch.d.ts +46 -0
- package/dist/langchain.cjs +161 -0
- package/dist/langchain.cjs.map +1 -0
- package/dist/langchain.d.cts +11 -0
- package/dist/langchain.d.ts +11 -0
- package/dist/langchain.js +43 -0
- package/dist/langchain.js.map +1 -0
- package/package.json +82 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
McpPrompt: () => McpPrompt,
|
|
24
|
+
McpResource: () => McpResource,
|
|
25
|
+
McpServer: () => McpServer2,
|
|
26
|
+
McpTool: () => McpTool,
|
|
27
|
+
TypeMcpDefinitionError: () => TypeMcpDefinitionError,
|
|
28
|
+
createMcpServer: () => createMcpServer,
|
|
29
|
+
defaultInstanceResolver: () => defaultInstanceResolver,
|
|
30
|
+
getMcpServerDefinition: () => getMcpServerDefinition,
|
|
31
|
+
readMcpServerDefinition: () => readMcpServerDefinition,
|
|
32
|
+
resolveMcpServerInstance: () => resolveMcpServerInstance,
|
|
33
|
+
startStdioServer: () => startStdioServer
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(src_exports);
|
|
36
|
+
|
|
37
|
+
// src/compiler/create-mcp-server.ts
|
|
38
|
+
var import_mcp = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
39
|
+
|
|
40
|
+
// src/errors.ts
|
|
41
|
+
var TypeMcpDefinitionError = class extends Error {
|
|
42
|
+
constructor(message) {
|
|
43
|
+
super(message);
|
|
44
|
+
this.name = "TypeMcpDefinitionError";
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// src/metadata/definitions.ts
|
|
49
|
+
var serverDefinitions = /* @__PURE__ */ new WeakMap();
|
|
50
|
+
function storeMcpServerDefinition(target, definition) {
|
|
51
|
+
serverDefinitions.set(target, freezeServerDefinition(definition));
|
|
52
|
+
}
|
|
53
|
+
function getMcpServerDefinition(target) {
|
|
54
|
+
const definition = serverDefinitions.get(target);
|
|
55
|
+
return definition === void 0 ? void 0 : freezeServerDefinition(definition);
|
|
56
|
+
}
|
|
57
|
+
function freezeServerDefinition(definition) {
|
|
58
|
+
return Object.freeze({
|
|
59
|
+
name: definition.name,
|
|
60
|
+
version: definition.version,
|
|
61
|
+
tools: Object.freeze(
|
|
62
|
+
definition.tools.map(
|
|
63
|
+
(tool) => Object.freeze({
|
|
64
|
+
name: tool.name,
|
|
65
|
+
methodName: tool.methodName,
|
|
66
|
+
description: tool.description,
|
|
67
|
+
input: tool.input
|
|
68
|
+
})
|
|
69
|
+
)
|
|
70
|
+
),
|
|
71
|
+
resources: Object.freeze(
|
|
72
|
+
definition.resources.map(
|
|
73
|
+
(resource) => Object.freeze({
|
|
74
|
+
name: resource.name,
|
|
75
|
+
methodName: resource.methodName,
|
|
76
|
+
uri: resource.uri,
|
|
77
|
+
mimeType: resource.mimeType,
|
|
78
|
+
description: resource.description
|
|
79
|
+
})
|
|
80
|
+
)
|
|
81
|
+
),
|
|
82
|
+
prompts: Object.freeze(
|
|
83
|
+
definition.prompts.map(
|
|
84
|
+
(prompt) => Object.freeze({
|
|
85
|
+
name: prompt.name,
|
|
86
|
+
methodName: prompt.methodName,
|
|
87
|
+
description: prompt.description
|
|
88
|
+
})
|
|
89
|
+
)
|
|
90
|
+
)
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// src/metadata/read-server-definition.ts
|
|
95
|
+
function readMcpServerDefinition(target) {
|
|
96
|
+
const definition = getMcpServerDefinition(target);
|
|
97
|
+
const className = target.name || "<anonymous>";
|
|
98
|
+
if (definition === void 0) {
|
|
99
|
+
throw new TypeMcpDefinitionError(
|
|
100
|
+
`MCP server definition is missing for ${className}`
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
assertUniqueNames("tool", definition.tools, className);
|
|
104
|
+
assertUniqueNames("resource", definition.resources, className);
|
|
105
|
+
assertUniqueNames("prompt", definition.prompts, className);
|
|
106
|
+
return definition;
|
|
107
|
+
}
|
|
108
|
+
function assertUniqueNames(componentType, definitions, className) {
|
|
109
|
+
const names = /* @__PURE__ */ new Set();
|
|
110
|
+
for (const definition of definitions) {
|
|
111
|
+
if (names.has(definition.name)) {
|
|
112
|
+
throw new TypeMcpDefinitionError(
|
|
113
|
+
`Duplicate MCP ${componentType} name "${definition.name}" on ${className}`
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
names.add(definition.name);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// src/resolver/default-instance-resolver.ts
|
|
121
|
+
var defaultInstanceResolver = {
|
|
122
|
+
resolve(serverClass) {
|
|
123
|
+
return new serverClass();
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
// src/resolver/resolve-server-instance.ts
|
|
128
|
+
async function resolveMcpServerInstance(serverClass, resolver) {
|
|
129
|
+
if (resolver) {
|
|
130
|
+
return resolver.resolve(serverClass);
|
|
131
|
+
}
|
|
132
|
+
return defaultInstanceResolver.resolve(
|
|
133
|
+
serverClass
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// src/compiler/normalize-resource-prompt-result.ts
|
|
138
|
+
var import_types = require("@modelcontextprotocol/sdk/types.js");
|
|
139
|
+
function isRecord(result) {
|
|
140
|
+
return typeof result === "object" && result !== null;
|
|
141
|
+
}
|
|
142
|
+
function serializeResult(result) {
|
|
143
|
+
if (typeof result === "string") {
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
const json = JSON.stringify(result);
|
|
147
|
+
if (json === void 0) {
|
|
148
|
+
throw new TypeError("MCP handler result must be JSON-compatible");
|
|
149
|
+
}
|
|
150
|
+
return json;
|
|
151
|
+
}
|
|
152
|
+
function normalizeResourceResult(result, uri, mimeType) {
|
|
153
|
+
if (isRecord(result) && Array.isArray(result.contents)) {
|
|
154
|
+
const parsed = import_types.ReadResourceResultSchema.safeParse(result);
|
|
155
|
+
if (parsed.success) {
|
|
156
|
+
return parsed.data;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
contents: [
|
|
161
|
+
{
|
|
162
|
+
uri: uri.toString(),
|
|
163
|
+
text: serializeResult(result),
|
|
164
|
+
...mimeType === void 0 ? {} : { mimeType }
|
|
165
|
+
}
|
|
166
|
+
]
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
function normalizePromptResult(result) {
|
|
170
|
+
if (isRecord(result) && Array.isArray(result.messages)) {
|
|
171
|
+
const parsed = import_types.GetPromptResultSchema.safeParse(result);
|
|
172
|
+
if (parsed.success) {
|
|
173
|
+
return parsed.data;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
messages: [
|
|
178
|
+
{
|
|
179
|
+
role: "user",
|
|
180
|
+
content: { type: "text", text: serializeResult(result) }
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// src/compiler/normalize-tool-result.ts
|
|
187
|
+
var import_types2 = require("@modelcontextprotocol/sdk/types.js");
|
|
188
|
+
function isRecord2(result) {
|
|
189
|
+
return typeof result === "object" && result !== null;
|
|
190
|
+
}
|
|
191
|
+
function isMcpToolResultCandidate(result) {
|
|
192
|
+
return isRecord2(result) && (Array.isArray(result.content) || "structuredContent" in result || "isError" in result);
|
|
193
|
+
}
|
|
194
|
+
function normalizeToolResult(result) {
|
|
195
|
+
if (typeof result === "string") {
|
|
196
|
+
return { content: [{ type: "text", text: result }] };
|
|
197
|
+
}
|
|
198
|
+
if (isMcpToolResultCandidate(result)) {
|
|
199
|
+
const parsed = import_types2.CallToolResultSchema.safeParse(result);
|
|
200
|
+
if (parsed.success) {
|
|
201
|
+
return parsed.data;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const json = JSON.stringify(result);
|
|
205
|
+
if (json === void 0) {
|
|
206
|
+
throw new TypeError("Tool result must be JSON-compatible");
|
|
207
|
+
}
|
|
208
|
+
return { content: [{ type: "text", text: json }] };
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// src/compiler/create-mcp-server.ts
|
|
212
|
+
async function createMcpServer(serverClass, resolver) {
|
|
213
|
+
const definition = readMcpServerDefinition(serverClass);
|
|
214
|
+
const instance = resolver ? await resolveMcpServerInstance(serverClass, resolver) : await resolveMcpServerInstance(
|
|
215
|
+
serverClass
|
|
216
|
+
);
|
|
217
|
+
const server = new import_mcp.McpServer({
|
|
218
|
+
name: definition.name,
|
|
219
|
+
version: definition.version
|
|
220
|
+
});
|
|
221
|
+
for (const tool of definition.tools) {
|
|
222
|
+
server.registerTool(
|
|
223
|
+
tool.name,
|
|
224
|
+
{
|
|
225
|
+
inputSchema: tool.input,
|
|
226
|
+
...tool.description === void 0 ? {} : { description: tool.description }
|
|
227
|
+
},
|
|
228
|
+
async (input) => {
|
|
229
|
+
try {
|
|
230
|
+
const result = await invokeTool(instance, tool.methodName, input);
|
|
231
|
+
return normalizeToolResult(result);
|
|
232
|
+
} catch {
|
|
233
|
+
return {
|
|
234
|
+
content: [{ type: "text", text: "Tool execution failed" }],
|
|
235
|
+
isError: true
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
for (const resource of definition.resources) {
|
|
242
|
+
server.registerResource(
|
|
243
|
+
resource.name,
|
|
244
|
+
resource.uri,
|
|
245
|
+
{
|
|
246
|
+
...resource.description === void 0 ? {} : { description: resource.description },
|
|
247
|
+
...resource.mimeType === void 0 ? {} : { mimeType: resource.mimeType }
|
|
248
|
+
},
|
|
249
|
+
async (uri) => {
|
|
250
|
+
try {
|
|
251
|
+
const result = await invokeMethod(instance, resource.methodName, []);
|
|
252
|
+
return normalizeResourceResult(result, uri, resource.mimeType);
|
|
253
|
+
} catch {
|
|
254
|
+
return normalizeResourceResult(
|
|
255
|
+
"Resource execution failed",
|
|
256
|
+
uri,
|
|
257
|
+
resource.mimeType
|
|
258
|
+
);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
);
|
|
262
|
+
}
|
|
263
|
+
for (const prompt of definition.prompts) {
|
|
264
|
+
server.registerPrompt(
|
|
265
|
+
prompt.name,
|
|
266
|
+
{
|
|
267
|
+
...prompt.description === void 0 ? {} : { description: prompt.description }
|
|
268
|
+
},
|
|
269
|
+
async () => {
|
|
270
|
+
try {
|
|
271
|
+
const result = await invokeMethod(instance, prompt.methodName, []);
|
|
272
|
+
return normalizePromptResult(result);
|
|
273
|
+
} catch {
|
|
274
|
+
return normalizePromptResult("Prompt execution failed");
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
return server;
|
|
280
|
+
}
|
|
281
|
+
function invokeTool(instance, methodName, input) {
|
|
282
|
+
return invokeMethod(instance, methodName, [input]);
|
|
283
|
+
}
|
|
284
|
+
function invokeMethod(instance, methodName, arguments_) {
|
|
285
|
+
const method = Reflect.get(instance, methodName);
|
|
286
|
+
if (typeof method !== "function") {
|
|
287
|
+
throw new TypeError("Decorated MCP method is not callable");
|
|
288
|
+
}
|
|
289
|
+
return Reflect.apply(method, instance, arguments_);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// src/metadata/keys.ts
|
|
293
|
+
var symbolWithMetadata = Symbol;
|
|
294
|
+
if (symbolWithMetadata.metadata === void 0) {
|
|
295
|
+
Object.defineProperty(Symbol, "metadata", {
|
|
296
|
+
configurable: true,
|
|
297
|
+
value: /* @__PURE__ */ Symbol("Symbol.metadata")
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
var MCP_TOOLS_METADATA_KEY = /* @__PURE__ */ Symbol("type-mcp:tools");
|
|
301
|
+
var MCP_RESOURCES_METADATA_KEY = /* @__PURE__ */ Symbol("type-mcp:resources");
|
|
302
|
+
var MCP_PROMPTS_METADATA_KEY = /* @__PURE__ */ Symbol("type-mcp:prompts");
|
|
303
|
+
|
|
304
|
+
// src/metadata/metadata.ts
|
|
305
|
+
function hasOwnMetadata(metadata, key) {
|
|
306
|
+
return Object.prototype.hasOwnProperty.call(metadata, key);
|
|
307
|
+
}
|
|
308
|
+
function appendDefinition(metadata, key, definition) {
|
|
309
|
+
const existing = hasOwnMetadata(metadata, key) ? metadata[key] : void 0;
|
|
310
|
+
const definitions = Array.isArray(existing) ? existing : [];
|
|
311
|
+
Object.defineProperty(metadata, key, {
|
|
312
|
+
configurable: true,
|
|
313
|
+
enumerable: false,
|
|
314
|
+
value: [...definitions, definition],
|
|
315
|
+
writable: true
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
function readDefinitions(metadata, key) {
|
|
319
|
+
const definitions = hasOwnMetadata(metadata, key) ? metadata[key] : void 0;
|
|
320
|
+
return Array.isArray(definitions) ? [...definitions] : [];
|
|
321
|
+
}
|
|
322
|
+
function appendToolDefinition(metadata, definition) {
|
|
323
|
+
appendDefinition(metadata, MCP_TOOLS_METADATA_KEY, definition);
|
|
324
|
+
}
|
|
325
|
+
function appendResourceDefinition(metadata, definition) {
|
|
326
|
+
appendDefinition(metadata, MCP_RESOURCES_METADATA_KEY, definition);
|
|
327
|
+
}
|
|
328
|
+
function appendPromptDefinition(metadata, definition) {
|
|
329
|
+
appendDefinition(metadata, MCP_PROMPTS_METADATA_KEY, definition);
|
|
330
|
+
}
|
|
331
|
+
function readToolDefinitions(metadata) {
|
|
332
|
+
return readDefinitions(metadata, MCP_TOOLS_METADATA_KEY);
|
|
333
|
+
}
|
|
334
|
+
function readResourceDefinitions(metadata) {
|
|
335
|
+
return readDefinitions(
|
|
336
|
+
metadata,
|
|
337
|
+
MCP_RESOURCES_METADATA_KEY
|
|
338
|
+
);
|
|
339
|
+
}
|
|
340
|
+
function readPromptDefinitions(metadata) {
|
|
341
|
+
return readDefinitions(
|
|
342
|
+
metadata,
|
|
343
|
+
MCP_PROMPTS_METADATA_KEY
|
|
344
|
+
);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// src/decorators/mcp-prompt.ts
|
|
348
|
+
function McpPrompt(options) {
|
|
349
|
+
return function(_value, context) {
|
|
350
|
+
const methodName = getMethodName(context);
|
|
351
|
+
appendPromptDefinition(context.metadata, {
|
|
352
|
+
name: options.name ?? methodName,
|
|
353
|
+
methodName,
|
|
354
|
+
description: options.description
|
|
355
|
+
});
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
function getMethodName(context) {
|
|
359
|
+
if (typeof context.name !== "string") {
|
|
360
|
+
throw new TypeError("MCP decorators require string-named methods");
|
|
361
|
+
}
|
|
362
|
+
return context.name;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// src/decorators/mcp-resource.ts
|
|
366
|
+
function McpResource(options) {
|
|
367
|
+
return function(_value, context) {
|
|
368
|
+
const methodName = getMethodName2(context);
|
|
369
|
+
appendResourceDefinition(context.metadata, {
|
|
370
|
+
name: options.name ?? methodName,
|
|
371
|
+
methodName,
|
|
372
|
+
uri: options.uri,
|
|
373
|
+
mimeType: options.mimeType,
|
|
374
|
+
description: options.description
|
|
375
|
+
});
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
function getMethodName2(context) {
|
|
379
|
+
if (typeof context.name !== "string") {
|
|
380
|
+
throw new TypeError("MCP decorators require string-named methods");
|
|
381
|
+
}
|
|
382
|
+
return context.name;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// src/decorators/mcp-server.ts
|
|
386
|
+
function McpServer2(options) {
|
|
387
|
+
return function(target, context) {
|
|
388
|
+
storeMcpServerDefinition(target, {
|
|
389
|
+
name: options.name,
|
|
390
|
+
version: options.version,
|
|
391
|
+
tools: readToolDefinitions(context.metadata),
|
|
392
|
+
resources: readResourceDefinitions(context.metadata),
|
|
393
|
+
prompts: readPromptDefinitions(context.metadata)
|
|
394
|
+
});
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
// src/decorators/mcp-tool.ts
|
|
399
|
+
function McpTool(options) {
|
|
400
|
+
return function(_value, context) {
|
|
401
|
+
const methodName = getMethodName3(context);
|
|
402
|
+
appendToolDefinition(context.metadata, {
|
|
403
|
+
name: options.name ?? methodName,
|
|
404
|
+
methodName,
|
|
405
|
+
description: options.description,
|
|
406
|
+
input: options.input
|
|
407
|
+
});
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
function getMethodName3(context) {
|
|
411
|
+
if (typeof context.name !== "string") {
|
|
412
|
+
throw new TypeError("MCP decorators require string-named methods");
|
|
413
|
+
}
|
|
414
|
+
return context.name;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
// src/transports/stdio.ts
|
|
418
|
+
var import_stdio = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
419
|
+
async function startStdioServer(server, options = {}) {
|
|
420
|
+
const transport = options.transportFactory?.() ?? new import_stdio.StdioServerTransport();
|
|
421
|
+
await server.connect(transport);
|
|
422
|
+
return { server, transport };
|
|
423
|
+
}
|
|
424
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
425
|
+
0 && (module.exports = {
|
|
426
|
+
McpPrompt,
|
|
427
|
+
McpResource,
|
|
428
|
+
McpServer,
|
|
429
|
+
McpTool,
|
|
430
|
+
TypeMcpDefinitionError,
|
|
431
|
+
createMcpServer,
|
|
432
|
+
defaultInstanceResolver,
|
|
433
|
+
getMcpServerDefinition,
|
|
434
|
+
readMcpServerDefinition,
|
|
435
|
+
resolveMcpServerInstance,
|
|
436
|
+
startStdioServer
|
|
437
|
+
});
|
|
438
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/compiler/create-mcp-server.ts","../src/errors.ts","../src/metadata/definitions.ts","../src/metadata/read-server-definition.ts","../src/resolver/default-instance-resolver.ts","../src/resolver/resolve-server-instance.ts","../src/compiler/normalize-resource-prompt-result.ts","../src/compiler/normalize-tool-result.ts","../src/metadata/keys.ts","../src/metadata/metadata.ts","../src/decorators/mcp-prompt.ts","../src/decorators/mcp-resource.ts","../src/decorators/mcp-server.ts","../src/decorators/mcp-tool.ts","../src/transports/stdio.ts"],"sourcesContent":["export { createMcpServer } from \"./compiler/create-mcp-server.js\";\nexport { McpPrompt } from \"./decorators/mcp-prompt.js\";\nexport { McpResource } from \"./decorators/mcp-resource.js\";\nexport { McpServer } from \"./decorators/mcp-server.js\";\nexport { McpTool } from \"./decorators/mcp-tool.js\";\nexport { TypeMcpDefinitionError } from \"./errors.js\";\nexport { getMcpServerDefinition } from \"./metadata/definitions.js\";\nexport { readMcpServerDefinition } from \"./metadata/read-server-definition.js\";\nexport { defaultInstanceResolver } from \"./resolver/default-instance-resolver.js\";\nexport type { InstanceResolver } from \"./resolver/instance-resolver.js\";\nexport { resolveMcpServerInstance } from \"./resolver/resolve-server-instance.js\";\nexport type {\n\tMcpServerConnection,\n\tStartedStdioServer,\n\tStdioServerOptions,\n} from \"./transports/stdio.js\";\nexport { startStdioServer } from \"./transports/stdio.js\";\nexport type {\n\tMcpPromptDefinition,\n\tMcpPromptOptions,\n\tMcpResourceDefinition,\n\tMcpResourceOptions,\n\tMcpServerConstructor,\n\tMcpServerDefinition,\n\tMcpServerOptions,\n\tMcpToolDefinition,\n\tMcpToolOptions,\n} from \"./types.js\";\n","import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { readMcpServerDefinition } from \"../metadata/read-server-definition.js\";\nimport type { InstanceResolver } from \"../resolver/instance-resolver.js\";\nimport { resolveMcpServerInstance } from \"../resolver/resolve-server-instance.js\";\nimport type {\n\tMcpServerConstructor,\n\tZeroArgumentMcpServerConstructor,\n} from \"../types.js\";\nimport {\n\tnormalizePromptResult,\n\tnormalizeResourceResult,\n} from \"./normalize-resource-prompt-result.js\";\nimport { normalizeToolResult } from \"./normalize-tool-result.js\";\n\nexport async function createMcpServer<T extends object>(\n\tserverClass: ZeroArgumentMcpServerConstructor<T>,\n): Promise<McpServer>;\nexport async function createMcpServer<\n\tT extends object,\n\tArguments extends readonly unknown[],\n>(\n\tserverClass: McpServerConstructor<T, Arguments>,\n\tresolver: InstanceResolver<T>,\n): Promise<McpServer>;\nexport async function createMcpServer<\n\tT extends object,\n\tArguments extends readonly unknown[],\n>(\n\tserverClass: McpServerConstructor<T, Arguments>,\n\tresolver?: InstanceResolver<T>,\n): Promise<McpServer> {\n\tconst definition = readMcpServerDefinition(serverClass);\n\tconst instance = resolver\n\t\t? await resolveMcpServerInstance(serverClass, resolver)\n\t\t: await resolveMcpServerInstance(\n\t\t\t\tserverClass as ZeroArgumentMcpServerConstructor<T>,\n\t\t\t);\n\tconst server = new McpServer({\n\t\tname: definition.name,\n\t\tversion: definition.version,\n\t});\n\n\tfor (const tool of definition.tools) {\n\t\tserver.registerTool(\n\t\t\ttool.name,\n\t\t\t{\n\t\t\t\tinputSchema: tool.input,\n\t\t\t\t...(tool.description === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { description: tool.description }),\n\t\t\t},\n\t\t\tasync (input) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await invokeTool(instance, tool.methodName, input);\n\t\t\t\t\treturn normalizeToolResult(result);\n\t\t\t\t} catch {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: \"Tool execution failed\" }],\n\t\t\t\t\t\tisError: true,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n\n\tfor (const resource of definition.resources) {\n\t\tserver.registerResource(\n\t\t\tresource.name,\n\t\t\tresource.uri,\n\t\t\t{\n\t\t\t\t...(resource.description === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { description: resource.description }),\n\t\t\t\t...(resource.mimeType === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { mimeType: resource.mimeType }),\n\t\t\t},\n\t\t\tasync (uri) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await invokeMethod(instance, resource.methodName, []);\n\t\t\t\t\treturn normalizeResourceResult(result, uri, resource.mimeType);\n\t\t\t\t} catch {\n\t\t\t\t\treturn normalizeResourceResult(\n\t\t\t\t\t\t\"Resource execution failed\",\n\t\t\t\t\t\turi,\n\t\t\t\t\t\tresource.mimeType,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n\n\tfor (const prompt of definition.prompts) {\n\t\tserver.registerPrompt(\n\t\t\tprompt.name,\n\t\t\t{\n\t\t\t\t...(prompt.description === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { description: prompt.description }),\n\t\t\t},\n\t\t\tasync () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await invokeMethod(instance, prompt.methodName, []);\n\t\t\t\t\treturn normalizePromptResult(result);\n\t\t\t\t} catch {\n\t\t\t\t\treturn normalizePromptResult(\"Prompt execution failed\");\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n\n\treturn server;\n}\n\nfunction invokeTool(\n\tinstance: object,\n\tmethodName: string,\n\tinput: unknown,\n): unknown | Promise<unknown> {\n\treturn invokeMethod(instance, methodName, [input]);\n}\n\nfunction invokeMethod(\n\tinstance: object,\n\tmethodName: string,\n\targuments_: readonly unknown[],\n): unknown | Promise<unknown> {\n\tconst method = Reflect.get(instance, methodName);\n\tif (typeof method !== \"function\") {\n\t\tthrow new TypeError(\"Decorated MCP method is not callable\");\n\t}\n\n\treturn Reflect.apply(method, instance, arguments_);\n}\n","export class TypeMcpDefinitionError extends Error {\n\tpublic constructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"TypeMcpDefinitionError\";\n\t}\n}\n","import type {\n\tMcpPromptDefinition,\n\tMcpResourceDefinition,\n\tMcpServerConstructor,\n\tMcpServerDefinition,\n\tMcpToolDefinition,\n} from \"../types.js\";\n\nexport interface PendingMcpDefinitions {\n\treadonly tools: readonly McpToolDefinition[];\n\treadonly resources: readonly McpResourceDefinition[];\n\treadonly prompts: readonly McpPromptDefinition[];\n}\n\nconst serverDefinitions = new WeakMap<object, McpServerDefinition>();\n\nexport function storeMcpServerDefinition<\n\tT extends object,\n\tArguments extends readonly unknown[],\n>(\n\ttarget: McpServerConstructor<T, Arguments>,\n\tdefinition: McpServerDefinition,\n): void {\n\tserverDefinitions.set(target, freezeServerDefinition(definition));\n}\n\nexport function getMcpServerDefinition<\n\tT extends object,\n\tArguments extends readonly unknown[],\n>(target: McpServerConstructor<T, Arguments>): McpServerDefinition | undefined {\n\tconst definition = serverDefinitions.get(target);\n\treturn definition === undefined\n\t\t? undefined\n\t\t: freezeServerDefinition(definition);\n}\n\nexport function freezeServerDefinition(\n\tdefinition: McpServerDefinition,\n): McpServerDefinition {\n\treturn Object.freeze({\n\t\tname: definition.name,\n\t\tversion: definition.version,\n\t\ttools: Object.freeze(\n\t\t\tdefinition.tools.map((tool) =>\n\t\t\t\tObject.freeze({\n\t\t\t\t\tname: tool.name,\n\t\t\t\t\tmethodName: tool.methodName,\n\t\t\t\t\tdescription: tool.description,\n\t\t\t\t\tinput: tool.input,\n\t\t\t\t}),\n\t\t\t),\n\t\t),\n\t\tresources: Object.freeze(\n\t\t\tdefinition.resources.map((resource) =>\n\t\t\t\tObject.freeze({\n\t\t\t\t\tname: resource.name,\n\t\t\t\t\tmethodName: resource.methodName,\n\t\t\t\t\turi: resource.uri,\n\t\t\t\t\tmimeType: resource.mimeType,\n\t\t\t\t\tdescription: resource.description,\n\t\t\t\t}),\n\t\t\t),\n\t\t),\n\t\tprompts: Object.freeze(\n\t\t\tdefinition.prompts.map((prompt) =>\n\t\t\t\tObject.freeze({\n\t\t\t\t\tname: prompt.name,\n\t\t\t\t\tmethodName: prompt.methodName,\n\t\t\t\t\tdescription: prompt.description,\n\t\t\t\t}),\n\t\t\t),\n\t\t),\n\t});\n}\n","import { TypeMcpDefinitionError } from \"../errors.js\";\nimport type {\n\tMcpPromptDefinition,\n\tMcpResourceDefinition,\n\tMcpServerConstructor,\n\tMcpServerDefinition,\n\tMcpToolDefinition,\n} from \"../types.js\";\nimport { getMcpServerDefinition } from \"./definitions.js\";\n\ntype NamedDefinition =\n\t| McpToolDefinition\n\t| McpResourceDefinition\n\t| McpPromptDefinition;\n\nexport function readMcpServerDefinition<\n\tT extends object,\n\tArguments extends readonly unknown[],\n>(target: McpServerConstructor<T, Arguments>): McpServerDefinition {\n\tconst definition = getMcpServerDefinition(target);\n\tconst className = target.name || \"<anonymous>\";\n\n\tif (definition === undefined) {\n\t\tthrow new TypeMcpDefinitionError(\n\t\t\t`MCP server definition is missing for ${className}`,\n\t\t);\n\t}\n\n\tassertUniqueNames(\"tool\", definition.tools, className);\n\tassertUniqueNames(\"resource\", definition.resources, className);\n\tassertUniqueNames(\"prompt\", definition.prompts, className);\n\n\treturn definition;\n}\n\nfunction assertUniqueNames(\n\tcomponentType: \"tool\" | \"resource\" | \"prompt\",\n\tdefinitions: readonly NamedDefinition[],\n\tclassName: string,\n): void {\n\tconst names = new Set<string>();\n\n\tfor (const definition of definitions) {\n\t\tif (names.has(definition.name)) {\n\t\t\tthrow new TypeMcpDefinitionError(\n\t\t\t\t`Duplicate MCP ${componentType} name \"${definition.name}\" on ${className}`,\n\t\t\t);\n\t\t}\n\n\t\tnames.add(definition.name);\n\t}\n}\n","import type { ZeroArgumentMcpServerConstructor } from \"../types.js\";\n\nexport const defaultInstanceResolver = {\n\tresolve<T extends object>(\n\t\tserverClass: ZeroArgumentMcpServerConstructor<T>,\n\t): T {\n\t\treturn new serverClass();\n\t},\n};\n","import type {\n\tMcpServerConstructor,\n\tZeroArgumentMcpServerConstructor,\n} from \"../types.js\";\nimport { defaultInstanceResolver } from \"./default-instance-resolver.js\";\nimport type { InstanceResolver } from \"./instance-resolver.js\";\n\nexport function resolveMcpServerInstance<T extends object>(\n\tserverClass: ZeroArgumentMcpServerConstructor<T>,\n): Promise<T>;\nexport function resolveMcpServerInstance<\n\tT extends object,\n\tArguments extends readonly unknown[],\n>(\n\tserverClass: McpServerConstructor<T, Arguments>,\n\tresolver: InstanceResolver<T>,\n): Promise<T>;\nexport async function resolveMcpServerInstance<\n\tT extends object,\n\tArguments extends readonly unknown[],\n>(\n\tserverClass: McpServerConstructor<T, Arguments>,\n\tresolver?: InstanceResolver<T>,\n): Promise<T> {\n\tif (resolver) {\n\t\treturn resolver.resolve(serverClass);\n\t}\n\n\treturn defaultInstanceResolver.resolve(\n\t\tserverClass as ZeroArgumentMcpServerConstructor<T>,\n\t);\n}\n","import {\n\ttype GetPromptResult,\n\tGetPromptResultSchema,\n\ttype ReadResourceResult,\n\tReadResourceResultSchema,\n} from \"@modelcontextprotocol/sdk/types.js\";\n\nfunction isRecord(result: unknown): result is Record<string, unknown> {\n\treturn typeof result === \"object\" && result !== null;\n}\n\nfunction serializeResult(result: unknown): string {\n\tif (typeof result === \"string\") {\n\t\treturn result;\n\t}\n\n\tconst json = JSON.stringify(result);\n\tif (json === undefined) {\n\t\tthrow new TypeError(\"MCP handler result must be JSON-compatible\");\n\t}\n\n\treturn json;\n}\n\nexport function normalizeResourceResult(\n\tresult: unknown,\n\turi: URL,\n\tmimeType: string | undefined,\n): ReadResourceResult {\n\tif (isRecord(result) && Array.isArray(result.contents)) {\n\t\tconst parsed = ReadResourceResultSchema.safeParse(result);\n\t\tif (parsed.success) {\n\t\t\treturn parsed.data;\n\t\t}\n\t}\n\n\treturn {\n\t\tcontents: [\n\t\t\t{\n\t\t\t\turi: uri.toString(),\n\t\t\t\ttext: serializeResult(result),\n\t\t\t\t...(mimeType === undefined ? {} : { mimeType }),\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport function normalizePromptResult(result: unknown): GetPromptResult {\n\tif (isRecord(result) && Array.isArray(result.messages)) {\n\t\tconst parsed = GetPromptResultSchema.safeParse(result);\n\t\tif (parsed.success) {\n\t\t\treturn parsed.data;\n\t\t}\n\t}\n\n\treturn {\n\t\tmessages: [\n\t\t\t{\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: { type: \"text\", text: serializeResult(result) },\n\t\t\t},\n\t\t],\n\t};\n}\n","import {\n\ttype CallToolResult,\n\tCallToolResultSchema,\n} from \"@modelcontextprotocol/sdk/types.js\";\n\nfunction isRecord(result: unknown): result is Record<string, unknown> {\n\treturn typeof result === \"object\" && result !== null;\n}\n\nfunction isMcpToolResultCandidate(result: unknown): boolean {\n\treturn (\n\t\tisRecord(result) &&\n\t\t(Array.isArray(result.content) ||\n\t\t\t\"structuredContent\" in result ||\n\t\t\t\"isError\" in result)\n\t);\n}\n\nexport function normalizeToolResult(result: unknown): CallToolResult {\n\tif (typeof result === \"string\") {\n\t\treturn { content: [{ type: \"text\", text: result }] };\n\t}\n\n\tif (isMcpToolResultCandidate(result)) {\n\t\tconst parsed = CallToolResultSchema.safeParse(result);\n\t\tif (parsed.success) {\n\t\t\treturn parsed.data;\n\t\t}\n\t}\n\n\tconst json = JSON.stringify(result);\n\tif (json === undefined) {\n\t\tthrow new TypeError(\"Tool result must be JSON-compatible\");\n\t}\n\n\treturn { content: [{ type: \"text\", text: json }] };\n}\n","const symbolWithMetadata = Symbol as unknown as {\n\tmetadata?: symbol;\n};\n\nif (symbolWithMetadata.metadata === undefined) {\n\tObject.defineProperty(Symbol, \"metadata\", {\n\t\tconfigurable: true,\n\t\tvalue: Symbol(\"Symbol.metadata\"),\n\t});\n}\n\nexport const MCP_TOOLS_METADATA_KEY = Symbol(\"type-mcp:tools\");\nexport const MCP_RESOURCES_METADATA_KEY = Symbol(\"type-mcp:resources\");\nexport const MCP_PROMPTS_METADATA_KEY = Symbol(\"type-mcp:prompts\");\n","import type {\n\tMcpPromptDefinition,\n\tMcpResourceDefinition,\n\tMcpToolDefinition,\n} from \"../types.js\";\nimport {\n\tMCP_PROMPTS_METADATA_KEY,\n\tMCP_RESOURCES_METADATA_KEY,\n\tMCP_TOOLS_METADATA_KEY,\n} from \"./keys.js\";\n\nfunction hasOwnMetadata(metadata: DecoratorMetadata, key: symbol): boolean {\n\treturn Object.prototype.hasOwnProperty.call(metadata, key);\n}\n\nfunction appendDefinition<T>(\n\tmetadata: DecoratorMetadata,\n\tkey: symbol,\n\tdefinition: T,\n): void {\n\tconst existing = hasOwnMetadata(metadata, key) ? metadata[key] : undefined;\n\tconst definitions = Array.isArray(existing) ? existing : [];\n\n\tObject.defineProperty(metadata, key, {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: [...definitions, definition],\n\t\twritable: true,\n\t});\n}\n\nfunction readDefinitions<T>(\n\tmetadata: DecoratorMetadata,\n\tkey: symbol,\n): readonly T[] {\n\tconst definitions = hasOwnMetadata(metadata, key) ? metadata[key] : undefined;\n\treturn Array.isArray(definitions) ? ([...definitions] as readonly T[]) : [];\n}\n\nexport function appendToolDefinition(\n\tmetadata: DecoratorMetadata,\n\tdefinition: McpToolDefinition,\n): void {\n\tappendDefinition(metadata, MCP_TOOLS_METADATA_KEY, definition);\n}\n\nexport function appendResourceDefinition(\n\tmetadata: DecoratorMetadata,\n\tdefinition: McpResourceDefinition,\n): void {\n\tappendDefinition(metadata, MCP_RESOURCES_METADATA_KEY, definition);\n}\n\nexport function appendPromptDefinition(\n\tmetadata: DecoratorMetadata,\n\tdefinition: McpPromptDefinition,\n): void {\n\tappendDefinition(metadata, MCP_PROMPTS_METADATA_KEY, definition);\n}\n\nexport function readToolDefinitions(\n\tmetadata: DecoratorMetadata,\n): readonly McpToolDefinition[] {\n\treturn readDefinitions<McpToolDefinition>(metadata, MCP_TOOLS_METADATA_KEY);\n}\n\nexport function readResourceDefinitions(\n\tmetadata: DecoratorMetadata,\n): readonly McpResourceDefinition[] {\n\treturn readDefinitions<McpResourceDefinition>(\n\t\tmetadata,\n\t\tMCP_RESOURCES_METADATA_KEY,\n\t);\n}\n\nexport function readPromptDefinitions(\n\tmetadata: DecoratorMetadata,\n): readonly McpPromptDefinition[] {\n\treturn readDefinitions<McpPromptDefinition>(\n\t\tmetadata,\n\t\tMCP_PROMPTS_METADATA_KEY,\n\t);\n}\n","import { appendPromptDefinition } from \"../metadata/metadata.js\";\nimport type { McpPromptOptions } from \"../types.js\";\n\nexport function McpPrompt(options: McpPromptOptions) {\n\treturn function <This>(\n\t\t_value: (this: This) => unknown,\n\t\tcontext: ClassMethodDecoratorContext<This, (this: This) => unknown>,\n\t): void {\n\t\tconst methodName = getMethodName(context);\n\n\t\tappendPromptDefinition(context.metadata, {\n\t\t\tname: options.name ?? methodName,\n\t\t\tmethodName,\n\t\t\tdescription: options.description,\n\t\t});\n\t};\n}\n\nfunction getMethodName(context: { readonly name: string | symbol }): string {\n\tif (typeof context.name !== \"string\") {\n\t\tthrow new TypeError(\"MCP decorators require string-named methods\");\n\t}\n\n\treturn context.name;\n}\n","import { appendResourceDefinition } from \"../metadata/metadata.js\";\nimport type { McpResourceOptions } from \"../types.js\";\n\nexport function McpResource(options: McpResourceOptions) {\n\treturn function (_value: object, context: ClassMethodDecoratorContext): void {\n\t\tconst methodName = getMethodName(context);\n\n\t\tappendResourceDefinition(context.metadata, {\n\t\t\tname: options.name ?? methodName,\n\t\t\tmethodName,\n\t\t\turi: options.uri,\n\t\t\tmimeType: options.mimeType,\n\t\t\tdescription: options.description,\n\t\t});\n\t};\n}\n\nfunction getMethodName(context: ClassMethodDecoratorContext): string {\n\tif (typeof context.name !== \"string\") {\n\t\tthrow new TypeError(\"MCP decorators require string-named methods\");\n\t}\n\n\treturn context.name;\n}\n","import { storeMcpServerDefinition } from \"../metadata/definitions.js\";\nimport {\n\treadPromptDefinitions,\n\treadResourceDefinitions,\n\treadToolDefinitions,\n} from \"../metadata/metadata.js\";\nimport type { McpServerConstructor, McpServerOptions } from \"../types.js\";\n\nexport function McpServer(options: McpServerOptions) {\n\treturn function <T extends McpServerConstructor>(\n\t\ttarget: T,\n\t\tcontext: ClassDecoratorContext,\n\t): void {\n\t\tstoreMcpServerDefinition(target, {\n\t\t\tname: options.name,\n\t\t\tversion: options.version,\n\t\t\ttools: readToolDefinitions(context.metadata),\n\t\t\tresources: readResourceDefinitions(context.metadata),\n\t\t\tprompts: readPromptDefinitions(context.metadata),\n\t\t});\n\t};\n}\n","import { appendToolDefinition } from \"../metadata/metadata.js\";\nimport type { McpToolOptions } from \"../types.js\";\n\nexport function McpTool(options: McpToolOptions) {\n\treturn function (_value: object, context: ClassMethodDecoratorContext): void {\n\t\tconst methodName = getMethodName(context);\n\n\t\tappendToolDefinition(context.metadata, {\n\t\t\tname: options.name ?? methodName,\n\t\t\tmethodName,\n\t\t\tdescription: options.description,\n\t\t\tinput: options.input,\n\t\t});\n\t};\n}\n\nfunction getMethodName(context: ClassMethodDecoratorContext): string {\n\tif (typeof context.name !== \"string\") {\n\t\tthrow new TypeError(\"MCP decorators require string-named methods\");\n\t}\n\n\treturn context.name;\n}\n","import { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport type { Transport } from \"@modelcontextprotocol/sdk/shared/transport.js\";\n\nexport interface McpServerConnection {\n\tconnect(transport: Transport): Promise<void>;\n}\n\nexport interface StdioServerOptions {\n\treadonly transportFactory?: () => Transport;\n}\n\nexport interface StartedStdioServer<Server extends McpServerConnection> {\n\treadonly server: Server;\n\treadonly transport: Transport;\n}\n\n/**\n * Connects an MCP SDK server to Node's standard input and output streams.\n *\n * The optional transport factory exists for deterministic tests. Production\n * callers should rely on the official SDK StdioServerTransport default.\n */\nexport async function startStdioServer<Server extends McpServerConnection>(\n\tserver: Server,\n\toptions: StdioServerOptions = {},\n): Promise<StartedStdioServer<Server>> {\n\tconst transport = options.transportFactory?.() ?? new StdioServerTransport();\n\tawait server.connect(transport);\n\treturn { server, transport };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,iBAA0B;;;ACAnB,IAAM,yBAAN,cAAqC,MAAM;AAAA,EAC1C,YAAY,SAAiB;AACnC,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACb;AACD;;;ACSA,IAAM,oBAAoB,oBAAI,QAAqC;AAE5D,SAAS,yBAIf,QACA,YACO;AACP,oBAAkB,IAAI,QAAQ,uBAAuB,UAAU,CAAC;AACjE;AAEO,SAAS,uBAGd,QAA6E;AAC9E,QAAM,aAAa,kBAAkB,IAAI,MAAM;AAC/C,SAAO,eAAe,SACnB,SACA,uBAAuB,UAAU;AACrC;AAEO,SAAS,uBACf,YACsB;AACtB,SAAO,OAAO,OAAO;AAAA,IACpB,MAAM,WAAW;AAAA,IACjB,SAAS,WAAW;AAAA,IACpB,OAAO,OAAO;AAAA,MACb,WAAW,MAAM;AAAA,QAAI,CAAC,SACrB,OAAO,OAAO;AAAA,UACb,MAAM,KAAK;AAAA,UACX,YAAY,KAAK;AAAA,UACjB,aAAa,KAAK;AAAA,UAClB,OAAO,KAAK;AAAA,QACb,CAAC;AAAA,MACF;AAAA,IACD;AAAA,IACA,WAAW,OAAO;AAAA,MACjB,WAAW,UAAU;AAAA,QAAI,CAAC,aACzB,OAAO,OAAO;AAAA,UACb,MAAM,SAAS;AAAA,UACf,YAAY,SAAS;AAAA,UACrB,KAAK,SAAS;AAAA,UACd,UAAU,SAAS;AAAA,UACnB,aAAa,SAAS;AAAA,QACvB,CAAC;AAAA,MACF;AAAA,IACD;AAAA,IACA,SAAS,OAAO;AAAA,MACf,WAAW,QAAQ;AAAA,QAAI,CAAC,WACvB,OAAO,OAAO;AAAA,UACb,MAAM,OAAO;AAAA,UACb,YAAY,OAAO;AAAA,UACnB,aAAa,OAAO;AAAA,QACrB,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD,CAAC;AACF;;;AC1DO,SAAS,wBAGd,QAAiE;AAClE,QAAM,aAAa,uBAAuB,MAAM;AAChD,QAAM,YAAY,OAAO,QAAQ;AAEjC,MAAI,eAAe,QAAW;AAC7B,UAAM,IAAI;AAAA,MACT,wCAAwC,SAAS;AAAA,IAClD;AAAA,EACD;AAEA,oBAAkB,QAAQ,WAAW,OAAO,SAAS;AACrD,oBAAkB,YAAY,WAAW,WAAW,SAAS;AAC7D,oBAAkB,UAAU,WAAW,SAAS,SAAS;AAEzD,SAAO;AACR;AAEA,SAAS,kBACR,eACA,aACA,WACO;AACP,QAAM,QAAQ,oBAAI,IAAY;AAE9B,aAAW,cAAc,aAAa;AACrC,QAAI,MAAM,IAAI,WAAW,IAAI,GAAG;AAC/B,YAAM,IAAI;AAAA,QACT,iBAAiB,aAAa,UAAU,WAAW,IAAI,QAAQ,SAAS;AAAA,MACzE;AAAA,IACD;AAEA,UAAM,IAAI,WAAW,IAAI;AAAA,EAC1B;AACD;;;ACjDO,IAAM,0BAA0B;AAAA,EACtC,QACC,aACI;AACJ,WAAO,IAAI,YAAY;AAAA,EACxB;AACD;;;ACSA,eAAsB,yBAIrB,aACA,UACa;AACb,MAAI,UAAU;AACb,WAAO,SAAS,QAAQ,WAAW;AAAA,EACpC;AAEA,SAAO,wBAAwB;AAAA,IAC9B;AAAA,EACD;AACD;;;AC/BA,mBAKO;AAEP,SAAS,SAAS,QAAoD;AACrE,SAAO,OAAO,WAAW,YAAY,WAAW;AACjD;AAEA,SAAS,gBAAgB,QAAyB;AACjD,MAAI,OAAO,WAAW,UAAU;AAC/B,WAAO;AAAA,EACR;AAEA,QAAM,OAAO,KAAK,UAAU,MAAM;AAClC,MAAI,SAAS,QAAW;AACvB,UAAM,IAAI,UAAU,4CAA4C;AAAA,EACjE;AAEA,SAAO;AACR;AAEO,SAAS,wBACf,QACA,KACA,UACqB;AACrB,MAAI,SAAS,MAAM,KAAK,MAAM,QAAQ,OAAO,QAAQ,GAAG;AACvD,UAAM,SAAS,sCAAyB,UAAU,MAAM;AACxD,QAAI,OAAO,SAAS;AACnB,aAAO,OAAO;AAAA,IACf;AAAA,EACD;AAEA,SAAO;AAAA,IACN,UAAU;AAAA,MACT;AAAA,QACC,KAAK,IAAI,SAAS;AAAA,QAClB,MAAM,gBAAgB,MAAM;AAAA,QAC5B,GAAI,aAAa,SAAY,CAAC,IAAI,EAAE,SAAS;AAAA,MAC9C;AAAA,IACD;AAAA,EACD;AACD;AAEO,SAAS,sBAAsB,QAAkC;AACvE,MAAI,SAAS,MAAM,KAAK,MAAM,QAAQ,OAAO,QAAQ,GAAG;AACvD,UAAM,SAAS,mCAAsB,UAAU,MAAM;AACrD,QAAI,OAAO,SAAS;AACnB,aAAO,OAAO;AAAA,IACf;AAAA,EACD;AAEA,SAAO;AAAA,IACN,UAAU;AAAA,MACT;AAAA,QACC,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,QAAQ,MAAM,gBAAgB,MAAM,EAAE;AAAA,MACxD;AAAA,IACD;AAAA,EACD;AACD;;;AC/DA,IAAAC,gBAGO;AAEP,SAASC,UAAS,QAAoD;AACrE,SAAO,OAAO,WAAW,YAAY,WAAW;AACjD;AAEA,SAAS,yBAAyB,QAA0B;AAC3D,SACCA,UAAS,MAAM,MACd,MAAM,QAAQ,OAAO,OAAO,KAC5B,uBAAuB,UACvB,aAAa;AAEhB;AAEO,SAAS,oBAAoB,QAAiC;AACpE,MAAI,OAAO,WAAW,UAAU;AAC/B,WAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,CAAC,EAAE;AAAA,EACpD;AAEA,MAAI,yBAAyB,MAAM,GAAG;AACrC,UAAM,SAAS,mCAAqB,UAAU,MAAM;AACpD,QAAI,OAAO,SAAS;AACnB,aAAO,OAAO;AAAA,IACf;AAAA,EACD;AAEA,QAAM,OAAO,KAAK,UAAU,MAAM;AAClC,MAAI,SAAS,QAAW;AACvB,UAAM,IAAI,UAAU,qCAAqC;AAAA,EAC1D;AAEA,SAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,CAAC,EAAE;AAClD;;;APZA,eAAsB,gBAIrB,aACA,UACqB;AACrB,QAAM,aAAa,wBAAwB,WAAW;AACtD,QAAM,WAAW,WACd,MAAM,yBAAyB,aAAa,QAAQ,IACpD,MAAM;AAAA,IACN;AAAA,EACD;AACF,QAAM,SAAS,IAAI,qBAAU;AAAA,IAC5B,MAAM,WAAW;AAAA,IACjB,SAAS,WAAW;AAAA,EACrB,CAAC;AAED,aAAW,QAAQ,WAAW,OAAO;AACpC,WAAO;AAAA,MACN,KAAK;AAAA,MACL;AAAA,QACC,aAAa,KAAK;AAAA,QAClB,GAAI,KAAK,gBAAgB,SACtB,CAAC,IACD,EAAE,aAAa,KAAK,YAAY;AAAA,MACpC;AAAA,MACA,OAAO,UAAU;AAChB,YAAI;AACH,gBAAM,SAAS,MAAM,WAAW,UAAU,KAAK,YAAY,KAAK;AAChE,iBAAO,oBAAoB,MAAM;AAAA,QAClC,QAAQ;AACP,iBAAO;AAAA,YACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,wBAAwB,CAAC;AAAA,YACzD,SAAS;AAAA,UACV;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,aAAW,YAAY,WAAW,WAAW;AAC5C,WAAO;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT;AAAA,QACC,GAAI,SAAS,gBAAgB,SAC1B,CAAC,IACD,EAAE,aAAa,SAAS,YAAY;AAAA,QACvC,GAAI,SAAS,aAAa,SACvB,CAAC,IACD,EAAE,UAAU,SAAS,SAAS;AAAA,MAClC;AAAA,MACA,OAAO,QAAQ;AACd,YAAI;AACH,gBAAM,SAAS,MAAM,aAAa,UAAU,SAAS,YAAY,CAAC,CAAC;AACnE,iBAAO,wBAAwB,QAAQ,KAAK,SAAS,QAAQ;AAAA,QAC9D,QAAQ;AACP,iBAAO;AAAA,YACN;AAAA,YACA;AAAA,YACA,SAAS;AAAA,UACV;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,aAAW,UAAU,WAAW,SAAS;AACxC,WAAO;AAAA,MACN,OAAO;AAAA,MACP;AAAA,QACC,GAAI,OAAO,gBAAgB,SACxB,CAAC,IACD,EAAE,aAAa,OAAO,YAAY;AAAA,MACtC;AAAA,MACA,YAAY;AACX,YAAI;AACH,gBAAM,SAAS,MAAM,aAAa,UAAU,OAAO,YAAY,CAAC,CAAC;AACjE,iBAAO,sBAAsB,MAAM;AAAA,QACpC,QAAQ;AACP,iBAAO,sBAAsB,yBAAyB;AAAA,QACvD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,WACR,UACA,YACA,OAC6B;AAC7B,SAAO,aAAa,UAAU,YAAY,CAAC,KAAK,CAAC;AAClD;AAEA,SAAS,aACR,UACA,YACA,YAC6B;AAC7B,QAAM,SAAS,QAAQ,IAAI,UAAU,UAAU;AAC/C,MAAI,OAAO,WAAW,YAAY;AACjC,UAAM,IAAI,UAAU,sCAAsC;AAAA,EAC3D;AAEA,SAAO,QAAQ,MAAM,QAAQ,UAAU,UAAU;AAClD;;;AQrIA,IAAM,qBAAqB;AAI3B,IAAI,mBAAmB,aAAa,QAAW;AAC9C,SAAO,eAAe,QAAQ,YAAY;AAAA,IACzC,cAAc;AAAA,IACd,OAAO,uBAAO,iBAAiB;AAAA,EAChC,CAAC;AACF;AAEO,IAAM,yBAAyB,uBAAO,gBAAgB;AACtD,IAAM,6BAA6B,uBAAO,oBAAoB;AAC9D,IAAM,2BAA2B,uBAAO,kBAAkB;;;ACFjE,SAAS,eAAe,UAA6B,KAAsB;AAC1E,SAAO,OAAO,UAAU,eAAe,KAAK,UAAU,GAAG;AAC1D;AAEA,SAAS,iBACR,UACA,KACA,YACO;AACP,QAAM,WAAW,eAAe,UAAU,GAAG,IAAI,SAAS,GAAG,IAAI;AACjE,QAAM,cAAc,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC;AAE1D,SAAO,eAAe,UAAU,KAAK;AAAA,IACpC,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,OAAO,CAAC,GAAG,aAAa,UAAU;AAAA,IAClC,UAAU;AAAA,EACX,CAAC;AACF;AAEA,SAAS,gBACR,UACA,KACe;AACf,QAAM,cAAc,eAAe,UAAU,GAAG,IAAI,SAAS,GAAG,IAAI;AACpE,SAAO,MAAM,QAAQ,WAAW,IAAK,CAAC,GAAG,WAAW,IAAqB,CAAC;AAC3E;AAEO,SAAS,qBACf,UACA,YACO;AACP,mBAAiB,UAAU,wBAAwB,UAAU;AAC9D;AAEO,SAAS,yBACf,UACA,YACO;AACP,mBAAiB,UAAU,4BAA4B,UAAU;AAClE;AAEO,SAAS,uBACf,UACA,YACO;AACP,mBAAiB,UAAU,0BAA0B,UAAU;AAChE;AAEO,SAAS,oBACf,UAC+B;AAC/B,SAAO,gBAAmC,UAAU,sBAAsB;AAC3E;AAEO,SAAS,wBACf,UACmC;AACnC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,sBACf,UACiC;AACjC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;;;AC/EO,SAAS,UAAU,SAA2B;AACpD,SAAO,SACN,QACA,SACO;AACP,UAAM,aAAa,cAAc,OAAO;AAExC,2BAAuB,QAAQ,UAAU;AAAA,MACxC,MAAM,QAAQ,QAAQ;AAAA,MACtB;AAAA,MACA,aAAa,QAAQ;AAAA,IACtB,CAAC;AAAA,EACF;AACD;AAEA,SAAS,cAAc,SAAqD;AAC3E,MAAI,OAAO,QAAQ,SAAS,UAAU;AACrC,UAAM,IAAI,UAAU,6CAA6C;AAAA,EAClE;AAEA,SAAO,QAAQ;AAChB;;;ACrBO,SAAS,YAAY,SAA6B;AACxD,SAAO,SAAU,QAAgB,SAA4C;AAC5E,UAAM,aAAaC,eAAc,OAAO;AAExC,6BAAyB,QAAQ,UAAU;AAAA,MAC1C,MAAM,QAAQ,QAAQ;AAAA,MACtB;AAAA,MACA,KAAK,QAAQ;AAAA,MACb,UAAU,QAAQ;AAAA,MAClB,aAAa,QAAQ;AAAA,IACtB,CAAC;AAAA,EACF;AACD;AAEA,SAASA,eAAc,SAA8C;AACpE,MAAI,OAAO,QAAQ,SAAS,UAAU;AACrC,UAAM,IAAI,UAAU,6CAA6C;AAAA,EAClE;AAEA,SAAO,QAAQ;AAChB;;;ACfO,SAASC,WAAU,SAA2B;AACpD,SAAO,SACN,QACA,SACO;AACP,6BAAyB,QAAQ;AAAA,MAChC,MAAM,QAAQ;AAAA,MACd,SAAS,QAAQ;AAAA,MACjB,OAAO,oBAAoB,QAAQ,QAAQ;AAAA,MAC3C,WAAW,wBAAwB,QAAQ,QAAQ;AAAA,MACnD,SAAS,sBAAsB,QAAQ,QAAQ;AAAA,IAChD,CAAC;AAAA,EACF;AACD;;;AClBO,SAAS,QAAQ,SAAyB;AAChD,SAAO,SAAU,QAAgB,SAA4C;AAC5E,UAAM,aAAaC,eAAc,OAAO;AAExC,yBAAqB,QAAQ,UAAU;AAAA,MACtC,MAAM,QAAQ,QAAQ;AAAA,MACtB;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,QAAQ;AAAA,IAChB,CAAC;AAAA,EACF;AACD;AAEA,SAASA,eAAc,SAA8C;AACpE,MAAI,OAAO,QAAQ,SAAS,UAAU;AACrC,UAAM,IAAI,UAAU,6CAA6C;AAAA,EAClE;AAEA,SAAO,QAAQ;AAChB;;;ACtBA,mBAAqC;AAsBrC,eAAsB,iBACrB,QACA,UAA8B,CAAC,GACO;AACtC,QAAM,YAAY,QAAQ,mBAAmB,KAAK,IAAI,kCAAqB;AAC3E,QAAM,OAAO,QAAQ,SAAS;AAC9B,SAAO,EAAE,QAAQ,UAAU;AAC5B;","names":["McpServer","import_types","isRecord","getMethodName","McpServer","getMethodName"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { McpServer as McpServer$1 } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { Z as ZeroArgumentMcpServerConstructor, M as McpServerConstructor, I as InstanceResolver, a as McpPromptOptions, b as McpResourceOptions, c as McpServerOptions, d as McpToolOptions, e as McpServerDefinition } from './instance-resolver-BdKelIch.cjs';
|
|
3
|
+
export { f as McpPromptDefinition, g as McpResourceDefinition, h as McpToolDefinition } from './instance-resolver-BdKelIch.cjs';
|
|
4
|
+
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
5
|
+
import 'zod';
|
|
6
|
+
|
|
7
|
+
declare function createMcpServer<T extends object>(serverClass: ZeroArgumentMcpServerConstructor<T>): Promise<McpServer$1>;
|
|
8
|
+
declare function createMcpServer<T extends object, Arguments extends readonly unknown[]>(serverClass: McpServerConstructor<T, Arguments>, resolver: InstanceResolver<T>): Promise<McpServer$1>;
|
|
9
|
+
|
|
10
|
+
declare function McpPrompt(options: McpPromptOptions): <This>(_value: (this: This) => unknown, context: ClassMethodDecoratorContext<This, (this: This) => unknown>) => void;
|
|
11
|
+
|
|
12
|
+
declare function McpResource(options: McpResourceOptions): (_value: object, context: ClassMethodDecoratorContext) => void;
|
|
13
|
+
|
|
14
|
+
declare function McpServer(options: McpServerOptions): <T extends McpServerConstructor>(target: T, context: ClassDecoratorContext) => void;
|
|
15
|
+
|
|
16
|
+
declare function McpTool(options: McpToolOptions): (_value: object, context: ClassMethodDecoratorContext) => void;
|
|
17
|
+
|
|
18
|
+
declare class TypeMcpDefinitionError extends Error {
|
|
19
|
+
constructor(message: string);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
declare function getMcpServerDefinition<T extends object, Arguments extends readonly unknown[]>(target: McpServerConstructor<T, Arguments>): McpServerDefinition | undefined;
|
|
23
|
+
|
|
24
|
+
declare function readMcpServerDefinition<T extends object, Arguments extends readonly unknown[]>(target: McpServerConstructor<T, Arguments>): McpServerDefinition;
|
|
25
|
+
|
|
26
|
+
declare const defaultInstanceResolver: {
|
|
27
|
+
resolve<T extends object>(serverClass: ZeroArgumentMcpServerConstructor<T>): T;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
declare function resolveMcpServerInstance<T extends object>(serverClass: ZeroArgumentMcpServerConstructor<T>): Promise<T>;
|
|
31
|
+
declare function resolveMcpServerInstance<T extends object, Arguments extends readonly unknown[]>(serverClass: McpServerConstructor<T, Arguments>, resolver: InstanceResolver<T>): Promise<T>;
|
|
32
|
+
|
|
33
|
+
interface McpServerConnection {
|
|
34
|
+
connect(transport: Transport): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
interface StdioServerOptions {
|
|
37
|
+
readonly transportFactory?: () => Transport;
|
|
38
|
+
}
|
|
39
|
+
interface StartedStdioServer<Server extends McpServerConnection> {
|
|
40
|
+
readonly server: Server;
|
|
41
|
+
readonly transport: Transport;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Connects an MCP SDK server to Node's standard input and output streams.
|
|
45
|
+
*
|
|
46
|
+
* The optional transport factory exists for deterministic tests. Production
|
|
47
|
+
* callers should rely on the official SDK StdioServerTransport default.
|
|
48
|
+
*/
|
|
49
|
+
declare function startStdioServer<Server extends McpServerConnection>(server: Server, options?: StdioServerOptions): Promise<StartedStdioServer<Server>>;
|
|
50
|
+
|
|
51
|
+
export { InstanceResolver, McpPrompt, McpPromptOptions, McpResource, McpResourceOptions, McpServer, type McpServerConnection, McpServerConstructor, McpServerDefinition, McpServerOptions, McpTool, McpToolOptions, type StartedStdioServer, type StdioServerOptions, TypeMcpDefinitionError, createMcpServer, defaultInstanceResolver, getMcpServerDefinition, readMcpServerDefinition, resolveMcpServerInstance, startStdioServer };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { McpServer as McpServer$1 } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { Z as ZeroArgumentMcpServerConstructor, M as McpServerConstructor, I as InstanceResolver, a as McpPromptOptions, b as McpResourceOptions, c as McpServerOptions, d as McpToolOptions, e as McpServerDefinition } from './instance-resolver-BdKelIch.js';
|
|
3
|
+
export { f as McpPromptDefinition, g as McpResourceDefinition, h as McpToolDefinition } from './instance-resolver-BdKelIch.js';
|
|
4
|
+
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
5
|
+
import 'zod';
|
|
6
|
+
|
|
7
|
+
declare function createMcpServer<T extends object>(serverClass: ZeroArgumentMcpServerConstructor<T>): Promise<McpServer$1>;
|
|
8
|
+
declare function createMcpServer<T extends object, Arguments extends readonly unknown[]>(serverClass: McpServerConstructor<T, Arguments>, resolver: InstanceResolver<T>): Promise<McpServer$1>;
|
|
9
|
+
|
|
10
|
+
declare function McpPrompt(options: McpPromptOptions): <This>(_value: (this: This) => unknown, context: ClassMethodDecoratorContext<This, (this: This) => unknown>) => void;
|
|
11
|
+
|
|
12
|
+
declare function McpResource(options: McpResourceOptions): (_value: object, context: ClassMethodDecoratorContext) => void;
|
|
13
|
+
|
|
14
|
+
declare function McpServer(options: McpServerOptions): <T extends McpServerConstructor>(target: T, context: ClassDecoratorContext) => void;
|
|
15
|
+
|
|
16
|
+
declare function McpTool(options: McpToolOptions): (_value: object, context: ClassMethodDecoratorContext) => void;
|
|
17
|
+
|
|
18
|
+
declare class TypeMcpDefinitionError extends Error {
|
|
19
|
+
constructor(message: string);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
declare function getMcpServerDefinition<T extends object, Arguments extends readonly unknown[]>(target: McpServerConstructor<T, Arguments>): McpServerDefinition | undefined;
|
|
23
|
+
|
|
24
|
+
declare function readMcpServerDefinition<T extends object, Arguments extends readonly unknown[]>(target: McpServerConstructor<T, Arguments>): McpServerDefinition;
|
|
25
|
+
|
|
26
|
+
declare const defaultInstanceResolver: {
|
|
27
|
+
resolve<T extends object>(serverClass: ZeroArgumentMcpServerConstructor<T>): T;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
declare function resolveMcpServerInstance<T extends object>(serverClass: ZeroArgumentMcpServerConstructor<T>): Promise<T>;
|
|
31
|
+
declare function resolveMcpServerInstance<T extends object, Arguments extends readonly unknown[]>(serverClass: McpServerConstructor<T, Arguments>, resolver: InstanceResolver<T>): Promise<T>;
|
|
32
|
+
|
|
33
|
+
interface McpServerConnection {
|
|
34
|
+
connect(transport: Transport): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
interface StdioServerOptions {
|
|
37
|
+
readonly transportFactory?: () => Transport;
|
|
38
|
+
}
|
|
39
|
+
interface StartedStdioServer<Server extends McpServerConnection> {
|
|
40
|
+
readonly server: Server;
|
|
41
|
+
readonly transport: Transport;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Connects an MCP SDK server to Node's standard input and output streams.
|
|
45
|
+
*
|
|
46
|
+
* The optional transport factory exists for deterministic tests. Production
|
|
47
|
+
* callers should rely on the official SDK StdioServerTransport default.
|
|
48
|
+
*/
|
|
49
|
+
declare function startStdioServer<Server extends McpServerConnection>(server: Server, options?: StdioServerOptions): Promise<StartedStdioServer<Server>>;
|
|
50
|
+
|
|
51
|
+
export { InstanceResolver, McpPrompt, McpPromptOptions, McpResource, McpResourceOptions, McpServer, type McpServerConnection, McpServerConstructor, McpServerDefinition, McpServerOptions, McpTool, McpToolOptions, type StartedStdioServer, type StdioServerOptions, TypeMcpDefinitionError, createMcpServer, defaultInstanceResolver, getMcpServerDefinition, readMcpServerDefinition, resolveMcpServerInstance, startStdioServer };
|