@slbdn/mcp-tester 1.4.0 → 1.4.3
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/CHANGELOG.md +60 -0
- package/README.md +3 -3
- package/dist/cli/index.js +48 -139
- package/dist/cli/index.js.map +1 -1
- package/dist/client/MCPClient.d.ts +16 -2
- package/dist/client/MCPClient.d.ts.map +1 -1
- package/dist/client/MCPClient.js +77 -20
- package/dist/client/MCPClient.js.map +1 -1
- package/dist/generate-tests.d.ts +55 -0
- package/dist/generate-tests.d.ts.map +1 -0
- package/dist/generate-tests.js +314 -0
- package/dist/generate-tests.js.map +1 -0
- package/dist/generate-types.d.ts +86 -0
- package/dist/generate-types.d.ts.map +1 -0
- package/dist/generate-types.js +484 -0
- package/dist/generate-types.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/masking.d.ts +2 -2
- package/dist/utils/masking.d.ts.map +1 -1
- package/dist/utils/masking.js +57 -6
- package/dist/utils/masking.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +9 -0
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/version.d.ts +13 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +81 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +8 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-tests.js","sourceRoot":"","sources":["../src/generate-tests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript type generator — connects to an MCP server, reads tool schemas,
|
|
3
|
+
* and generates a `.d.ts` TypeScript declaration file with typed interfaces.
|
|
4
|
+
*
|
|
5
|
+
* @module generate-types
|
|
6
|
+
*/
|
|
7
|
+
import { MCPClient } from './client/MCPClient.js';
|
|
8
|
+
/**
|
|
9
|
+
* Options for type generation.
|
|
10
|
+
*/
|
|
11
|
+
export interface GenerateTypesOptions {
|
|
12
|
+
/** Command to run the MCP server. */
|
|
13
|
+
command: string;
|
|
14
|
+
/** Arguments for the server command. */
|
|
15
|
+
args?: string[];
|
|
16
|
+
/** Timeout in ms for connecting to the server. @defaultValue 30000 */
|
|
17
|
+
timeout?: number;
|
|
18
|
+
/** Include resource URI types. @defaultValue true */
|
|
19
|
+
includeResources?: boolean;
|
|
20
|
+
/** Include prompt argument types. @defaultValue true */
|
|
21
|
+
includePrompts?: boolean;
|
|
22
|
+
/** Module name for the import type. @defaultValue '@slbdn/mcp-tester' */
|
|
23
|
+
moduleName?: string;
|
|
24
|
+
}
|
|
25
|
+
type JsonSchema = Record<string, unknown>;
|
|
26
|
+
/**
|
|
27
|
+
* Convert a JSON Schema type to a TypeScript type string.
|
|
28
|
+
* Handles primitives, arrays, objects, enums, nullable, and compositions.
|
|
29
|
+
* Exported for unit testing.
|
|
30
|
+
*/
|
|
31
|
+
export declare function schemaToType(schema: JsonSchema, indent?: number): string;
|
|
32
|
+
/**
|
|
33
|
+
* Emit TypeScript aliases for every `$ref`-referenced schema, resolved from the
|
|
34
|
+
* schema's `$defs` / `definitions`. Unresolved refs fall back to `unknown` so the
|
|
35
|
+
* generated file always type-checks instead of referencing undefined types.
|
|
36
|
+
*/
|
|
37
|
+
export declare function generateRefTypes(schema: JsonSchema): string;
|
|
38
|
+
/** Escape a property name for use in TypeScript (quote if needed). Exported for testing. */
|
|
39
|
+
export declare function escapePropertyName(name: string): string;
|
|
40
|
+
/** Sanitize a tool/prompt name into a valid TypeScript identifier. Exported for testing. */
|
|
41
|
+
export declare function toTypeName(name: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* Options for {@link generateTypesFromClient}.
|
|
44
|
+
*/
|
|
45
|
+
export interface GenerateTypesFromClientOptions {
|
|
46
|
+
/** Module name for the import hint. @defaultValue '@slbdn/mcp-tester' */
|
|
47
|
+
moduleName?: string;
|
|
48
|
+
/** Include resource URI types. @defaultValue true */
|
|
49
|
+
includeResources?: boolean;
|
|
50
|
+
/** Include prompt argument types. @defaultValue true */
|
|
51
|
+
includePrompts?: boolean;
|
|
52
|
+
/** Human-readable label for the server, used only in the generated header. */
|
|
53
|
+
serverLabel?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Generate TypeScript type declarations from an already-connected client.
|
|
57
|
+
*
|
|
58
|
+
* Unlike {@link generateTypes}, this supports any transport (stdio, HTTP, SSE)
|
|
59
|
+
* because the caller owns the connection.
|
|
60
|
+
*
|
|
61
|
+
* @param client - A connected MCPClient instance
|
|
62
|
+
* @param options - Generation options
|
|
63
|
+
* @returns The generated `.d.ts` file content
|
|
64
|
+
*/
|
|
65
|
+
export declare function generateTypesFromClient(client: MCPClient, options?: GenerateTypesFromClientOptions): Promise<string>;
|
|
66
|
+
/**
|
|
67
|
+
* Connect to an MCP server, inspect tool schemas, and generate TypeScript type declarations.
|
|
68
|
+
*
|
|
69
|
+
* @returns The generated `.d.ts` file content
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* import { generateTypes } from '@slbdn/mcp-tester';
|
|
74
|
+
* import { writeFileSync } from 'fs';
|
|
75
|
+
*
|
|
76
|
+
* const types = await generateTypes({
|
|
77
|
+
* command: 'node',
|
|
78
|
+
* args: ['./my-server.js'],
|
|
79
|
+
* });
|
|
80
|
+
*
|
|
81
|
+
* writeFileSync('my-server-types.d.ts', types);
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export declare function generateTypes(options: GenerateTypesOptions): Promise<string>;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=generate-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../src/generate-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMlD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAwE3E;AAmHD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA+B3D;AASD,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS/C;AA0ND;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBlF"}
|
|
@@ -0,0 +1,484 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript type generator — connects to an MCP server, reads tool schemas,
|
|
3
|
+
* and generates a `.d.ts` TypeScript declaration file with typed interfaces.
|
|
4
|
+
*
|
|
5
|
+
* @module generate-types
|
|
6
|
+
*/
|
|
7
|
+
import { MCPClient } from './client/MCPClient.js';
|
|
8
|
+
import { getPackageVersion } from './utils/version.js';
|
|
9
|
+
/**
|
|
10
|
+
* Convert a JSON Schema type to a TypeScript type string.
|
|
11
|
+
* Handles primitives, arrays, objects, enums, nullable, and compositions.
|
|
12
|
+
* Exported for unit testing.
|
|
13
|
+
*/
|
|
14
|
+
export function schemaToType(schema, indent = 0) {
|
|
15
|
+
// Handle enum
|
|
16
|
+
if (schema['enum'] && Array.isArray(schema['enum']) && schema['enum'].length > 0) {
|
|
17
|
+
return schema['enum']
|
|
18
|
+
.map((v) => (typeof v === 'string' ? `'${escapeString(v)}'` : String(v)))
|
|
19
|
+
.join(' | ');
|
|
20
|
+
}
|
|
21
|
+
// Handle oneOf / anyOf → union type
|
|
22
|
+
if (schema.oneOf && Array.isArray(schema.oneOf)) {
|
|
23
|
+
return schema.oneOf
|
|
24
|
+
.map((s) => wrapNullable(schemaToType(s, indent), s))
|
|
25
|
+
.join(' | ');
|
|
26
|
+
}
|
|
27
|
+
if (schema.anyOf && Array.isArray(schema.anyOf)) {
|
|
28
|
+
return schema.anyOf
|
|
29
|
+
.map((s) => wrapNullable(schemaToType(s, indent), s))
|
|
30
|
+
.join(' | ');
|
|
31
|
+
}
|
|
32
|
+
// Handle allOf → intersection
|
|
33
|
+
if (schema.allOf && Array.isArray(schema.allOf)) {
|
|
34
|
+
return schema.allOf.map((s) => schemaToType(s, indent)).join(' & ');
|
|
35
|
+
}
|
|
36
|
+
// Handle $ref
|
|
37
|
+
if (schema.$ref && typeof schema.$ref === 'string') {
|
|
38
|
+
return refToTypeName(schema.$ref);
|
|
39
|
+
}
|
|
40
|
+
const type = schema.type;
|
|
41
|
+
// Handle const
|
|
42
|
+
if (schema.const !== undefined) {
|
|
43
|
+
if (typeof schema.const === 'string')
|
|
44
|
+
return `'${escapeString(schema.const)}'`;
|
|
45
|
+
if (typeof schema.const === 'number' || typeof schema.const === 'boolean')
|
|
46
|
+
return String(schema.const);
|
|
47
|
+
return JSON.stringify(schema.const);
|
|
48
|
+
}
|
|
49
|
+
// No type — check if it has properties (implicit object)
|
|
50
|
+
if (!type) {
|
|
51
|
+
if (schema.properties)
|
|
52
|
+
return objectToType(schema, indent);
|
|
53
|
+
if (schema.additionalProperties) {
|
|
54
|
+
const valType = schemaToType(typeof schema.additionalProperties === 'object'
|
|
55
|
+
? schema.additionalProperties
|
|
56
|
+
: {}, indent);
|
|
57
|
+
return `Record<string, ${valType}>`;
|
|
58
|
+
}
|
|
59
|
+
return 'unknown';
|
|
60
|
+
}
|
|
61
|
+
switch (type) {
|
|
62
|
+
case 'string':
|
|
63
|
+
return 'string';
|
|
64
|
+
case 'number':
|
|
65
|
+
case 'integer':
|
|
66
|
+
return 'number';
|
|
67
|
+
case 'boolean':
|
|
68
|
+
return 'boolean';
|
|
69
|
+
case 'null':
|
|
70
|
+
return 'null';
|
|
71
|
+
case 'array':
|
|
72
|
+
return arrayToType(schema, indent);
|
|
73
|
+
case 'object':
|
|
74
|
+
return objectToType(schema, indent);
|
|
75
|
+
default:
|
|
76
|
+
return 'unknown';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Generate an array type from a schema.
|
|
81
|
+
*/
|
|
82
|
+
function arrayToType(schema, indent) {
|
|
83
|
+
if (schema.items && typeof schema.items === 'object' && !Array.isArray(schema.items)) {
|
|
84
|
+
const itemType = schemaToType(schema.items, indent);
|
|
85
|
+
// Wrap complex types in parens
|
|
86
|
+
if (itemType.includes('|') || itemType.includes('&') || itemType.includes('{')) {
|
|
87
|
+
return `Array<${itemType}>`;
|
|
88
|
+
}
|
|
89
|
+
return `${itemType}[]`;
|
|
90
|
+
}
|
|
91
|
+
if (Array.isArray(schema.items)) {
|
|
92
|
+
const types = schema.items.map((s) => schemaToType(s, indent));
|
|
93
|
+
return `[${types.join(', ')}]`;
|
|
94
|
+
}
|
|
95
|
+
return 'unknown[]';
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Generate an object type from a schema.
|
|
99
|
+
*/
|
|
100
|
+
function objectToType(schema, indent) {
|
|
101
|
+
const props = schema.properties;
|
|
102
|
+
const required = new Set(schema.required || []);
|
|
103
|
+
const pad = ' '.repeat(indent + 1);
|
|
104
|
+
const closePad = ' '.repeat(indent);
|
|
105
|
+
if (!props || Object.keys(props).length === 0) {
|
|
106
|
+
// Check additionalProperties
|
|
107
|
+
if (schema.additionalProperties) {
|
|
108
|
+
const valType = typeof schema.additionalProperties === 'object'
|
|
109
|
+
? schemaToType(schema.additionalProperties, indent)
|
|
110
|
+
: 'unknown';
|
|
111
|
+
return `Record<string, ${valType}>`;
|
|
112
|
+
}
|
|
113
|
+
return 'Record<string, unknown>';
|
|
114
|
+
}
|
|
115
|
+
const lines = ['{'];
|
|
116
|
+
for (const [name, propSchema] of Object.entries(props)) {
|
|
117
|
+
const isRequired = required.has(name);
|
|
118
|
+
const tsType = schemaToType(propSchema, indent + 1);
|
|
119
|
+
const opt = isRequired ? '' : '?';
|
|
120
|
+
const desc = propSchema.description
|
|
121
|
+
? `${pad}/** ${safeDoc(String(propSchema.description))} */\n`
|
|
122
|
+
: '';
|
|
123
|
+
lines.push(`${desc}${pad}${escapePropertyName(name)}${opt}: ${tsType};`);
|
|
124
|
+
}
|
|
125
|
+
lines.push(`${closePad}}`);
|
|
126
|
+
return lines.join('\n');
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Wrap a type in `null` union if the schema is nullable.
|
|
130
|
+
*/
|
|
131
|
+
function wrapNullable(tsType, schema) {
|
|
132
|
+
if (schema.type && schema.type !== 'null')
|
|
133
|
+
return tsType;
|
|
134
|
+
// JSON Schema nullable conventions
|
|
135
|
+
if (schema.nullable === true)
|
|
136
|
+
return `${tsType} | null`;
|
|
137
|
+
return tsType;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Convert a $ref path like "#/definitions/MyType" to "MyType".
|
|
141
|
+
*/
|
|
142
|
+
function refToTypeName(ref) {
|
|
143
|
+
const parts = ref.split('/');
|
|
144
|
+
return parts[parts.length - 1];
|
|
145
|
+
}
|
|
146
|
+
/** Neutralise comment terminators inside generated JSDoc blocks. */
|
|
147
|
+
function safeDoc(text) {
|
|
148
|
+
return text.replace(/\*\//g, '*\\/');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Collect JSON Schema definitions from `$defs` / `definitions`.
|
|
152
|
+
*/
|
|
153
|
+
function collectDefinitions(schema) {
|
|
154
|
+
const defs = new Map();
|
|
155
|
+
for (const key of ['$defs', 'definitions']) {
|
|
156
|
+
const bag = schema[key];
|
|
157
|
+
if (bag && typeof bag === 'object' && !Array.isArray(bag)) {
|
|
158
|
+
for (const [name, def] of Object.entries(bag)) {
|
|
159
|
+
if (def && typeof def === 'object')
|
|
160
|
+
defs.set(name, def);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return defs;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Recursively collect every `$ref` target name found in a schema.
|
|
168
|
+
*/
|
|
169
|
+
function collectRefs(schema, refs, seen) {
|
|
170
|
+
if (!schema || typeof schema !== 'object')
|
|
171
|
+
return;
|
|
172
|
+
if (seen.has(schema))
|
|
173
|
+
return;
|
|
174
|
+
seen.add(schema);
|
|
175
|
+
if (Array.isArray(schema)) {
|
|
176
|
+
for (const item of schema)
|
|
177
|
+
collectRefs(item, refs, seen);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const obj = schema;
|
|
181
|
+
if (typeof obj.$ref === 'string')
|
|
182
|
+
refs.add(refToTypeName(obj.$ref));
|
|
183
|
+
for (const value of Object.values(obj))
|
|
184
|
+
collectRefs(value, refs, seen);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Emit TypeScript aliases for every `$ref`-referenced schema, resolved from the
|
|
188
|
+
* schema's `$defs` / `definitions`. Unresolved refs fall back to `unknown` so the
|
|
189
|
+
* generated file always type-checks instead of referencing undefined types.
|
|
190
|
+
*/
|
|
191
|
+
export function generateRefTypes(schema) {
|
|
192
|
+
const defs = collectDefinitions(schema);
|
|
193
|
+
const queue = [];
|
|
194
|
+
const seenRefs = new Set();
|
|
195
|
+
const enqueueFrom = (source) => {
|
|
196
|
+
const refs = new Set();
|
|
197
|
+
collectRefs(source, refs, new WeakSet());
|
|
198
|
+
for (const name of refs) {
|
|
199
|
+
if (!seenRefs.has(name)) {
|
|
200
|
+
seenRefs.add(name);
|
|
201
|
+
queue.push(name);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
enqueueFrom(schema);
|
|
206
|
+
const lines = [];
|
|
207
|
+
while (queue.length > 0) {
|
|
208
|
+
const name = queue.shift();
|
|
209
|
+
const def = defs.get(name);
|
|
210
|
+
if (def) {
|
|
211
|
+
lines.push(`export type ${name} = ${schemaToType(def, 0)};`);
|
|
212
|
+
enqueueFrom(def);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
lines.push(`export type ${name} = unknown; // unresolved $ref`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return lines.join('\n');
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Escape a string for use in a TypeScript string literal.
|
|
222
|
+
*/
|
|
223
|
+
function escapeString(s) {
|
|
224
|
+
return s.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
225
|
+
}
|
|
226
|
+
/** Escape a property name for use in TypeScript (quote if needed). Exported for testing. */
|
|
227
|
+
export function escapePropertyName(name) {
|
|
228
|
+
if (/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(name))
|
|
229
|
+
return name;
|
|
230
|
+
return `'${escapeString(name)}'`;
|
|
231
|
+
}
|
|
232
|
+
/** Sanitize a tool/prompt name into a valid TypeScript identifier. Exported for testing. */
|
|
233
|
+
export function toTypeName(name) {
|
|
234
|
+
// Split on non-alphanumeric, capitalize each segment
|
|
235
|
+
const parts = name.split(/[^a-zA-Z0-9]+/).filter(Boolean);
|
|
236
|
+
return parts
|
|
237
|
+
.map((p) => {
|
|
238
|
+
const lower = p.toLowerCase();
|
|
239
|
+
return lower.charAt(0).toUpperCase() + lower.slice(1);
|
|
240
|
+
})
|
|
241
|
+
.join('');
|
|
242
|
+
}
|
|
243
|
+
// ─── Type File Generation ───────────────────────────────────────────
|
|
244
|
+
/**
|
|
245
|
+
* Generate TypeScript interfaces for a single tool.
|
|
246
|
+
*/
|
|
247
|
+
function generateToolInterface(tool) {
|
|
248
|
+
const typeName = toTypeName(tool.name);
|
|
249
|
+
const desc = tool.description ? `/** ${safeDoc(tool.description)} */\n` : '';
|
|
250
|
+
const schema = tool.inputSchema;
|
|
251
|
+
// If the schema has properties, generate an interface; otherwise unknown
|
|
252
|
+
if (schema && schema.properties && typeof schema.properties === 'object') {
|
|
253
|
+
const tsType = schemaToType(schema, 0);
|
|
254
|
+
const refTypes = generateRefTypes(schema);
|
|
255
|
+
const suffix = refTypes ? `\n${refTypes}` : '';
|
|
256
|
+
return `${desc}export interface ${typeName}Args ${tsType}${suffix}`;
|
|
257
|
+
}
|
|
258
|
+
return `${desc}export type ${typeName}Args = Record<string, unknown>`;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Generate a ToolInfo interface for a tool (name + arguments type).
|
|
262
|
+
*/
|
|
263
|
+
function generateToolInfoType(tool) {
|
|
264
|
+
const typeName = toTypeName(tool.name);
|
|
265
|
+
return ` | { name: '${escapeString(tool.name)}'; arguments: ${typeName}Args }`;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Generate type for a resource.
|
|
269
|
+
*/
|
|
270
|
+
function generateResourceType(resource) {
|
|
271
|
+
const desc = resource.description ? ` /** ${safeDoc(resource.description)} */` : '';
|
|
272
|
+
return ` | '${escapeString(resource.uri)}'${desc}`;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Generate type for a prompt's arguments.
|
|
276
|
+
*/
|
|
277
|
+
function generatePromptType(prompt) {
|
|
278
|
+
const typeName = toTypeName(prompt.name);
|
|
279
|
+
const desc = prompt.description ? `/** ${safeDoc(prompt.description)} */\n` : '';
|
|
280
|
+
if (!prompt.arguments || !Array.isArray(prompt.arguments) || prompt.arguments.length === 0) {
|
|
281
|
+
return `${desc}export type ${typeName}Args = Record<string, never>`;
|
|
282
|
+
}
|
|
283
|
+
const lines = ['{'];
|
|
284
|
+
for (const arg of prompt.arguments) {
|
|
285
|
+
const opt = arg.required ? '' : '?';
|
|
286
|
+
const argDesc = arg.description ? ` /** ${safeDoc(arg.description)} */` : '';
|
|
287
|
+
lines.push(` ${escapePropertyName(arg.name)}${opt}: string;${argDesc}`);
|
|
288
|
+
}
|
|
289
|
+
lines.push('}');
|
|
290
|
+
return `${desc}export interface ${typeName}Args ${lines.join('\n')}`;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Generate prompt info type.
|
|
294
|
+
*/
|
|
295
|
+
function generatePromptInfoType(prompt) {
|
|
296
|
+
const typeName = toTypeName(prompt.name);
|
|
297
|
+
return ` | { name: '${escapeString(prompt.name)}'; arguments: ${typeName}Args }`;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Build the complete type declaration file.
|
|
301
|
+
*/
|
|
302
|
+
function buildTypeFile(tools, resources, prompts, options) {
|
|
303
|
+
const moduleName = options.moduleName || '@slbdn/mcp-tester';
|
|
304
|
+
const includeResources = options.includeResources !== false;
|
|
305
|
+
const includePrompts = options.includePrompts !== false;
|
|
306
|
+
const includeTools = tools.length > 0;
|
|
307
|
+
const sections = [];
|
|
308
|
+
// Header
|
|
309
|
+
sections.push('/**');
|
|
310
|
+
sections.push(` * TypeScript types generated from MCP server.`);
|
|
311
|
+
sections.push(` *`);
|
|
312
|
+
sections.push(` * Server: ${options.command}${options.args ? ' ' + options.args.join(' ') : ''}`);
|
|
313
|
+
sections.push(` * Tools: ${tools.length} | Resources: ${resources.length} | Prompts: ${prompts.length}`);
|
|
314
|
+
sections.push(` *`);
|
|
315
|
+
sections.push(` * Generated by @slbdn/mcp-tester v${getPackageVersion()}`);
|
|
316
|
+
sections.push(` * Re-generate: npx mcp-tester generate-types -- ${options.command}${options.args ? ' ' + options.args.join(' ') : ''}`);
|
|
317
|
+
sections.push(' */');
|
|
318
|
+
sections.push('');
|
|
319
|
+
// Tool argument interfaces
|
|
320
|
+
if (includeTools) {
|
|
321
|
+
sections.push('// ─── Tool Argument Types ─────────────────────────────────────────');
|
|
322
|
+
sections.push('');
|
|
323
|
+
for (const tool of tools) {
|
|
324
|
+
sections.push(generateToolInterface(tool));
|
|
325
|
+
sections.push('');
|
|
326
|
+
}
|
|
327
|
+
// Tool name union
|
|
328
|
+
sections.push('/** Union of all tool names */');
|
|
329
|
+
sections.push(`export type ToolName = ${tools.map((t) => `'${escapeString(t.name)}'`).join(' | ')};`);
|
|
330
|
+
sections.push('');
|
|
331
|
+
// Arguments lookup type
|
|
332
|
+
sections.push('/** Look up the argument type for a tool by name */');
|
|
333
|
+
sections.push('export interface ToolArgsMap {');
|
|
334
|
+
for (const tool of tools) {
|
|
335
|
+
sections.push(` '${escapeString(tool.name)}': ${toTypeName(tool.name)}Args;`);
|
|
336
|
+
}
|
|
337
|
+
sections.push('}');
|
|
338
|
+
sections.push('');
|
|
339
|
+
// Typed callTool overload helper
|
|
340
|
+
sections.push('/**');
|
|
341
|
+
sections.push(' * Typed tool call — use with callTool():');
|
|
342
|
+
sections.push(' *');
|
|
343
|
+
sections.push(` * import { MCPClient } from '${moduleName}';`);
|
|
344
|
+
sections.push(` * import type { ToolArgsMap, ToolName } from './server-types.js';`);
|
|
345
|
+
sections.push(' *');
|
|
346
|
+
sections.push(' * const result = await client.callTool({');
|
|
347
|
+
sections.push(" * name: 'add',");
|
|
348
|
+
sections.push(" * arguments: { a: 1, b: 2 } as ToolArgsMap['add'],");
|
|
349
|
+
sections.push(' * });');
|
|
350
|
+
sections.push(' */');
|
|
351
|
+
// ToolInfo discriminated union
|
|
352
|
+
sections.push('export type ToolCall =');
|
|
353
|
+
for (const tool of tools) {
|
|
354
|
+
sections.push(generateToolInfoType(tool));
|
|
355
|
+
}
|
|
356
|
+
sections.push(';');
|
|
357
|
+
sections.push('');
|
|
358
|
+
}
|
|
359
|
+
// Resource URI types
|
|
360
|
+
if (includeResources && resources.length > 0) {
|
|
361
|
+
sections.push('// ─── Resource URI Types ─────────────────────────────────────────');
|
|
362
|
+
sections.push('');
|
|
363
|
+
sections.push('/** Union of all resource URIs */');
|
|
364
|
+
sections.push('export type ResourceUri =');
|
|
365
|
+
for (const resource of resources) {
|
|
366
|
+
sections.push(generateResourceType(resource));
|
|
367
|
+
}
|
|
368
|
+
sections.push(';');
|
|
369
|
+
sections.push('');
|
|
370
|
+
}
|
|
371
|
+
// Prompt argument types
|
|
372
|
+
if (includePrompts && prompts.length > 0) {
|
|
373
|
+
sections.push('// ─── Prompt Argument Types ────────────────────────────────────────');
|
|
374
|
+
sections.push('');
|
|
375
|
+
for (const prompt of prompts) {
|
|
376
|
+
sections.push(generatePromptType(prompt));
|
|
377
|
+
sections.push('');
|
|
378
|
+
}
|
|
379
|
+
// Prompt name union
|
|
380
|
+
sections.push('/** Union of all prompt names */');
|
|
381
|
+
sections.push(`export type PromptName = ${prompts.map((p) => `'${escapeString(p.name)}'`).join(' | ')};`);
|
|
382
|
+
sections.push('');
|
|
383
|
+
// Prompt args lookup
|
|
384
|
+
sections.push('/** Look up the argument type for a prompt by name */');
|
|
385
|
+
sections.push('export interface PromptArgsMap {');
|
|
386
|
+
for (const prompt of prompts) {
|
|
387
|
+
sections.push(` '${escapeString(prompt.name)}': ${toTypeName(prompt.name)}Args;`);
|
|
388
|
+
}
|
|
389
|
+
sections.push('}');
|
|
390
|
+
sections.push('');
|
|
391
|
+
// PromptCall discriminated union
|
|
392
|
+
sections.push('export type PromptCall =');
|
|
393
|
+
for (const prompt of prompts) {
|
|
394
|
+
sections.push(generatePromptInfoType(prompt));
|
|
395
|
+
}
|
|
396
|
+
sections.push(';');
|
|
397
|
+
sections.push('');
|
|
398
|
+
}
|
|
399
|
+
// Server overview interface
|
|
400
|
+
sections.push('// ─── Server Overview ─────────────────────────────────────────────');
|
|
401
|
+
sections.push('');
|
|
402
|
+
sections.push('/**');
|
|
403
|
+
sections.push(' * Typed overview of the MCP server capabilities.');
|
|
404
|
+
sections.push(' * Useful for runtime type checking and IDE autocomplete.');
|
|
405
|
+
sections.push(' */');
|
|
406
|
+
sections.push('export interface ServerCapabilities {');
|
|
407
|
+
if (includeTools) {
|
|
408
|
+
sections.push(` tools: ToolName[];`);
|
|
409
|
+
}
|
|
410
|
+
if (includeResources && resources.length > 0) {
|
|
411
|
+
sections.push(` resources: ResourceUri[];`);
|
|
412
|
+
}
|
|
413
|
+
if (includePrompts && prompts.length > 0) {
|
|
414
|
+
sections.push(` prompts: PromptName[];`);
|
|
415
|
+
}
|
|
416
|
+
sections.push('}');
|
|
417
|
+
sections.push('');
|
|
418
|
+
return sections.join('\n');
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Generate TypeScript type declarations from an already-connected client.
|
|
422
|
+
*
|
|
423
|
+
* Unlike {@link generateTypes}, this supports any transport (stdio, HTTP, SSE)
|
|
424
|
+
* because the caller owns the connection.
|
|
425
|
+
*
|
|
426
|
+
* @param client - A connected MCPClient instance
|
|
427
|
+
* @param options - Generation options
|
|
428
|
+
* @returns The generated `.d.ts` file content
|
|
429
|
+
*/
|
|
430
|
+
export async function generateTypesFromClient(client, options = {}) {
|
|
431
|
+
const [tools, resources, prompts] = await Promise.all([
|
|
432
|
+
client.listTools(),
|
|
433
|
+
options.includeResources === false ? Promise.resolve([]) : client.listResources(),
|
|
434
|
+
options.includePrompts === false ? Promise.resolve([]) : client.listPrompts(),
|
|
435
|
+
]);
|
|
436
|
+
return buildTypeFile(tools, resources, prompts, {
|
|
437
|
+
command: options.serverLabel || 'remote server',
|
|
438
|
+
moduleName: options.moduleName,
|
|
439
|
+
includeResources: options.includeResources,
|
|
440
|
+
includePrompts: options.includePrompts,
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Connect to an MCP server, inspect tool schemas, and generate TypeScript type declarations.
|
|
445
|
+
*
|
|
446
|
+
* @returns The generated `.d.ts` file content
|
|
447
|
+
*
|
|
448
|
+
* @example
|
|
449
|
+
* ```typescript
|
|
450
|
+
* import { generateTypes } from '@slbdn/mcp-tester';
|
|
451
|
+
* import { writeFileSync } from 'fs';
|
|
452
|
+
*
|
|
453
|
+
* const types = await generateTypes({
|
|
454
|
+
* command: 'node',
|
|
455
|
+
* args: ['./my-server.js'],
|
|
456
|
+
* });
|
|
457
|
+
*
|
|
458
|
+
* writeFileSync('my-server-types.d.ts', types);
|
|
459
|
+
* ```
|
|
460
|
+
*/
|
|
461
|
+
export async function generateTypes(options) {
|
|
462
|
+
const client = new MCPClient({
|
|
463
|
+
name: 'mcp-tester-gen-types',
|
|
464
|
+
version: '1.0.0',
|
|
465
|
+
timeout: options.timeout || 30000,
|
|
466
|
+
logLevel: 'none',
|
|
467
|
+
});
|
|
468
|
+
try {
|
|
469
|
+
await client.start({
|
|
470
|
+
command: options.command,
|
|
471
|
+
args: options.args,
|
|
472
|
+
});
|
|
473
|
+
return await generateTypesFromClient(client, {
|
|
474
|
+
moduleName: options.moduleName,
|
|
475
|
+
includeResources: options.includeResources,
|
|
476
|
+
includePrompts: options.includePrompts,
|
|
477
|
+
serverLabel: `${options.command}${options.args ? ' ' + options.args.join(' ') : ''}`,
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
finally {
|
|
481
|
+
await client.stop();
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
//# sourceMappingURL=generate-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../src/generate-types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
export { MCPClient, type ServerConfig, type StdioServerConfig, type StreamableHttpServerConfig, type SseServerConfig,
|
|
30
30
|
/** @deprecated Use StdioServerConfig */
|
|
31
31
|
type MCPServerConfig, type MCPClientOptions, type ToolCallOptions, type NotificationHandler, type RetryOptions, type HealthStatus, type HealthMonitorOptions, } from './client/index.js';
|
|
32
|
+
export type { TransportType } from './utils/validation.js';
|
|
32
33
|
export { MCPClientError, MCPTimeoutError, MCPConnectionError, MCPNotStartedError, MCPAlreadyStartedError, MCPServerError, } from './utils/errors.js';
|
|
33
34
|
export type { Logger, LoggerOptions, LogLevel } from './utils/logger.js';
|
|
34
35
|
export { startTimer, prettyPrint } from './utils/logger.js';
|
|
@@ -37,8 +38,9 @@ export type { SecretPattern } from './utils/masking.js';
|
|
|
37
38
|
export * as assert from './assert.js';
|
|
38
39
|
export { AssertionError } from './assert.js';
|
|
39
40
|
export { toHaveTool, toHaveResource, toHavePrompt, toHaveToolWithSchema, toHaveToolCount, toHaveResourceCount, toHavePromptCount, toHaveResourceByName, toHavePromptWithArgs, toReturnText, toReturnTextContaining, toReturnError, toReturnOk, toReturnJson, toReturnContentCount, toReturnImage, toReturnResourceText, toReturnResourceTextContaining, toReturnPromptTextContaining, toReturnPromptMessageCount, setupJestMatchers, setupVitestMatchers, setupCustomMatchers, assertToolText, assertToolTextContains, assertHasTool, assertHasResource, assertHasPrompt, } from './matchers.js';
|
|
40
|
-
export { generateTests } from './generate-tests.js';
|
|
41
|
-
export type { GenerateTestOptions } from './generate-tests.js';
|
|
42
|
-
export { generateTypes } from './generate-types.js';
|
|
43
|
-
export type { GenerateTypesOptions } from './generate-types.js';
|
|
41
|
+
export { generateTests, generateTestsFromClient } from './generate-tests.js';
|
|
42
|
+
export type { GenerateTestOptions, GenerateTestsFromClientOptions } from './generate-tests.js';
|
|
43
|
+
export { generateTypes, generateTypesFromClient } from './generate-types.js';
|
|
44
|
+
export type { GenerateTypesOptions, GenerateTypesFromClientOptions } from './generate-types.js';
|
|
45
|
+
export { getPackageVersion } from './utils/version.js';
|
|
44
46
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,eAAe;AACpB,wCAAwC;AACxC,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,eAAe;AACpB,wCAAwC;AACxC,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
|