@tyvm/swagger-mcp 0.0.9 → 0.0.10
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/client-generator.d.ts +7 -0
- package/dist/client-generator.d.ts.map +1 -0
- package/dist/client-generator.js +82 -0
- package/dist/client-generator.js.map +1 -0
- package/dist/generator.d.ts +0 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +8 -260
- package/dist/generator.js.map +1 -1
- package/dist/server-generator.d.ts +9 -0
- package/dist/server-generator.d.ts.map +1 -0
- package/dist/server-generator.js +142 -0
- package/dist/server-generator.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-generator.d.ts","sourceRoot":"","sources":["../src/client-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,WAAW;IAIpC,uBAAuB,IAAI,MAAM;CA8ElC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientGenerator = void 0;
|
|
4
|
+
class ClientGenerator {
|
|
5
|
+
constructor(swaggerSpec) {
|
|
6
|
+
this.swaggerSpec = swaggerSpec;
|
|
7
|
+
}
|
|
8
|
+
generateClientFunctions() {
|
|
9
|
+
let clientCode = `\
|
|
10
|
+
import axios, { AxiosInstance, AxiosResponse } from 'axios';
|
|
11
|
+
|
|
12
|
+
export class SwaggerClient {
|
|
13
|
+
private api: AxiosInstance;
|
|
14
|
+
private baseUrl: string;
|
|
15
|
+
|
|
16
|
+
constructor(baseUrl: string, headers: Record<string, string> = {}) {
|
|
17
|
+
this.baseUrl = baseUrl;
|
|
18
|
+
this.api = axios.create({
|
|
19
|
+
baseURL: baseUrl,
|
|
20
|
+
headers: {
|
|
21
|
+
'Content-Type': 'application/json',
|
|
22
|
+
...headers
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
private replacePathParams(path: string, params: Record<string, any>): string {
|
|
28
|
+
let result = path;
|
|
29
|
+
const pathParams = path.match(/{([^}]+)}/g);
|
|
30
|
+
|
|
31
|
+
if (pathParams) {
|
|
32
|
+
for (const param of pathParams) {
|
|
33
|
+
const paramName = param.slice(1, -1);
|
|
34
|
+
if (params[paramName] !== undefined) {
|
|
35
|
+
result = result.replace(param, params[paramName]);
|
|
36
|
+
delete params[paramName];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
for (const [path, pathItem] of Object.entries(this.swaggerSpec.paths)) {
|
|
45
|
+
for (const [method, operation] of Object.entries(pathItem)) {
|
|
46
|
+
if (typeof operation !== "object" || !operation)
|
|
47
|
+
continue;
|
|
48
|
+
const operationId = operation.operationId ||
|
|
49
|
+
`${method}_${path.replace(/[^a-zA-Z0-9]/g, "_")}`;
|
|
50
|
+
const hasRequestBody = operation.requestBody !== undefined;
|
|
51
|
+
clientCode += `
|
|
52
|
+
async ${operationId}(params: Record<string, any> = {}): Promise<any> {
|
|
53
|
+
const path = this.replacePathParams('${path}', { ...params });
|
|
54
|
+
|
|
55
|
+
// Extract remaining params as query parameters
|
|
56
|
+
const queryParams = { ...params };`;
|
|
57
|
+
if (hasRequestBody) {
|
|
58
|
+
clientCode += `
|
|
59
|
+
const requestBody = queryParams.body;
|
|
60
|
+
delete queryParams.body;
|
|
61
|
+
|
|
62
|
+
const response = await this.api.${method}(path, requestBody);`;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
clientCode += `
|
|
66
|
+
const response = await this.api.${method}(path, { params: queryParams });`;
|
|
67
|
+
}
|
|
68
|
+
clientCode += `
|
|
69
|
+
|
|
70
|
+
return response.data;
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
clientCode += `
|
|
76
|
+
}
|
|
77
|
+
`;
|
|
78
|
+
return clientCode;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.ClientGenerator = ClientGenerator;
|
|
82
|
+
//# sourceMappingURL=client-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-generator.js","sourceRoot":"","sources":["../src/client-generator.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAG1B,YAAY,WAAwB;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,uBAAuB;QACrB,IAAI,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCpB,CAAC;QAEE,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YACrE,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC1D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS;oBAAE,SAAS;gBAE1D,MAAM,WAAW,GACf,SAAS,CAAC,WAAW;oBACrB,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC;gBAE3D,UAAU,IAAI;UACZ,WAAW;2CACsB,IAAI;;;uCAGR,CAAC;gBAEhC,IAAI,cAAc,EAAE;oBAClB,UAAU,IAAI;;;;sCAIc,MAAM,sBAAsB,CAAC;iBAC1D;qBAAM;oBACL,UAAU,IAAI;sCACc,MAAM,kCAAkC,CAAC;iBACtE;gBAED,UAAU,IAAI;;;;CAIrB,CAAC;aACK;SACF;QAED,UAAU,IAAI;;CAEjB,CAAC;QAEE,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AArFD,0CAqFC"}
|
package/dist/generator.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ export declare class SwaggerMcpGenerator {
|
|
|
15
15
|
private resolveSchemaRef;
|
|
16
16
|
private resolveSchemaRefOnce;
|
|
17
17
|
generateTools(): Tool[];
|
|
18
|
-
private generateMethodParameters;
|
|
19
18
|
generateClientFunctions(): string;
|
|
20
19
|
generateExpressComposition(): string;
|
|
21
20
|
generateServerFactory(): string;
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;AAItD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA8B;gBAEjC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAOtD,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,KAAK;IASP,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC;IAqCtC,mBAAmB,IAAI,MAAM;IAI7B,cAAc,IAAI,WAAW;IAIpC,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,4BAA4B;IA0DpC,OAAO,CAAC,gBAAgB;IA+DxB,OAAO,CAAC,oBAAoB;IAsB5B,aAAa,IAAI,IAAI,EAAE;IA0GvB,uBAAuB,IAAI,MAAM;IAKjC,0BAA0B,IAAI,MAAM;IAQpC,qBAAqB,IAAI,MAAM;IAS/B,iBAAiB,IAAI,MAAM;IAwCrB,kBAAkB,CAAC,SAAS,GAAE,MAAsB;CAiF3D"}
|
package/dist/generator.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.SwaggerMcpGenerator = void 0;
|
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const path_1 = require("path");
|
|
10
|
+
const client_generator_1 = require("./client-generator");
|
|
11
|
+
const server_generator_1 = require("./server-generator");
|
|
10
12
|
class SwaggerMcpGenerator {
|
|
11
13
|
constructor(swaggerSource, apiBaseUrl) {
|
|
12
14
|
this.headers = {};
|
|
@@ -82,9 +84,9 @@ class SwaggerMcpGenerator {
|
|
|
82
84
|
// Extract base URL from OpenAPI spec servers array as fallback
|
|
83
85
|
if (this.swaggerSpec.servers && this.swaggerSpec.servers.length > 0) {
|
|
84
86
|
const firstServer = this.swaggerSpec.servers[0];
|
|
85
|
-
return firstServer.url ||
|
|
87
|
+
return firstServer.url || "http://localhost";
|
|
86
88
|
}
|
|
87
|
-
return
|
|
89
|
+
return "http://localhost";
|
|
88
90
|
}
|
|
89
91
|
// Extract the base URL from the API base URL (remove any swagger.json path if present)
|
|
90
92
|
const swaggerUrl = new URL(this.apiBaseUrl);
|
|
@@ -312,137 +314,9 @@ class SwaggerMcpGenerator {
|
|
|
312
314
|
}
|
|
313
315
|
return tools;
|
|
314
316
|
}
|
|
315
|
-
generateMethodParameters(path, operation) {
|
|
316
|
-
const pathParams = [];
|
|
317
|
-
const queryParams = [];
|
|
318
|
-
let bodyParam = false;
|
|
319
|
-
const paramParts = [];
|
|
320
|
-
// Extract path parameters from the path itself
|
|
321
|
-
const pathParamMatches = path.match(/{([^}]+)}/g);
|
|
322
|
-
if (pathParamMatches) {
|
|
323
|
-
for (const match of pathParamMatches) {
|
|
324
|
-
const paramName = match.slice(1, -1); // Remove { and }
|
|
325
|
-
pathParams.push(paramName);
|
|
326
|
-
// For path parameters, we'll assume they're strings/numbers based on common patterns
|
|
327
|
-
const paramType = paramName.toLowerCase().includes("id")
|
|
328
|
-
? "number"
|
|
329
|
-
: "string";
|
|
330
|
-
paramParts.push(`${paramName}: ${paramType}`);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
// Add query parameters from operation parameters
|
|
334
|
-
if (operation.parameters) {
|
|
335
|
-
for (const param of operation.parameters) {
|
|
336
|
-
if (param.in === "query") {
|
|
337
|
-
queryParams.push(param.name);
|
|
338
|
-
let paramType = "string";
|
|
339
|
-
// Determine parameter type from schema
|
|
340
|
-
const schema = param.schema || param;
|
|
341
|
-
if (schema.type === "array") {
|
|
342
|
-
paramType = "string[]";
|
|
343
|
-
}
|
|
344
|
-
else if (schema.type === "integer" || schema.type === "number") {
|
|
345
|
-
paramType = "number";
|
|
346
|
-
}
|
|
347
|
-
else if (schema.type === "boolean") {
|
|
348
|
-
paramType = "boolean";
|
|
349
|
-
}
|
|
350
|
-
paramParts.push(`${param.name}: ${paramType}`);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
// Add request body parameter
|
|
355
|
-
if (operation.requestBody) {
|
|
356
|
-
bodyParam = true;
|
|
357
|
-
paramParts.push("body: any");
|
|
358
|
-
}
|
|
359
|
-
// Add headers parameter
|
|
360
|
-
paramParts.push("headers?: Record<string, string>");
|
|
361
|
-
const signature = paramParts.join(", ");
|
|
362
|
-
return { signature, pathParams, queryParams, bodyParam };
|
|
363
|
-
}
|
|
364
317
|
generateClientFunctions() {
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
export class SwaggerClient {
|
|
369
|
-
private axiosInstance: AxiosInstance;
|
|
370
|
-
private baseUrl: string;
|
|
371
|
-
private headers: Record<string, string>;
|
|
372
|
-
|
|
373
|
-
constructor(baseUrl: string, headers?: Record<string, string>) {
|
|
374
|
-
this.baseUrl = baseUrl;
|
|
375
|
-
this.headers = headers || {};
|
|
376
|
-
this.axiosInstance = axios.create({
|
|
377
|
-
baseURL: this.baseUrl,
|
|
378
|
-
headers: this.headers
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
`;
|
|
382
|
-
for (const [path, pathItem] of Object.entries(this.swaggerSpec.paths)) {
|
|
383
|
-
for (const [method, operation] of Object.entries(pathItem)) {
|
|
384
|
-
if (typeof operation !== "object" || !operation)
|
|
385
|
-
continue;
|
|
386
|
-
const operationId = operation.operationId ||
|
|
387
|
-
`${method}_${path.replace(/[^a-zA-Z0-9]/g, "_")}`;
|
|
388
|
-
const { signature, pathParams, queryParams, bodyParam } = this.generateMethodParameters(path, operation);
|
|
389
|
-
// Create URL with template literals for path parameters
|
|
390
|
-
let urlTemplate = path;
|
|
391
|
-
for (const pathParam of pathParams) {
|
|
392
|
-
urlTemplate = urlTemplate.replace(`{${pathParam}}`, `\${${pathParam}}`);
|
|
393
|
-
}
|
|
394
|
-
clientCode += `
|
|
395
|
-
async ${operationId}(${signature}): Promise<AxiosResponse<any>> {
|
|
396
|
-
const url = \`${urlTemplate}\`;`;
|
|
397
|
-
// Build query parameters object
|
|
398
|
-
if (queryParams.length > 0) {
|
|
399
|
-
clientCode += `
|
|
400
|
-
const queryParams = { ${queryParams.join(", ")} };`;
|
|
401
|
-
}
|
|
402
|
-
// Handle different HTTP method cases
|
|
403
|
-
if (bodyParam) {
|
|
404
|
-
// Methods with request body (POST, PUT, PATCH)
|
|
405
|
-
if (queryParams.length > 0) {
|
|
406
|
-
clientCode += `
|
|
407
|
-
const response = await this.axiosInstance.${method}(url, body, {
|
|
408
|
-
params: queryParams,
|
|
409
|
-
headers: { ...this.headers, ...headers }
|
|
410
|
-
});`;
|
|
411
|
-
}
|
|
412
|
-
else {
|
|
413
|
-
clientCode += `
|
|
414
|
-
const response = await this.axiosInstance.${method}(url, body, {
|
|
415
|
-
headers: { ...this.headers, ...headers }
|
|
416
|
-
});`;
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
else {
|
|
420
|
-
// Methods without request body (GET, DELETE)
|
|
421
|
-
if (queryParams.length > 0) {
|
|
422
|
-
clientCode += `
|
|
423
|
-
const response = await this.axiosInstance.${method}(url, {
|
|
424
|
-
params: queryParams,
|
|
425
|
-
headers: { ...this.headers, ...headers }
|
|
426
|
-
});`;
|
|
427
|
-
}
|
|
428
|
-
else {
|
|
429
|
-
clientCode += `
|
|
430
|
-
const response = await this.axiosInstance.${method}(url, {
|
|
431
|
-
headers: { ...this.headers, ...headers }
|
|
432
|
-
});`;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
clientCode += `
|
|
436
|
-
|
|
437
|
-
return response.data;
|
|
438
|
-
}
|
|
439
|
-
`;
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
clientCode += `
|
|
443
|
-
}
|
|
444
|
-
`;
|
|
445
|
-
return clientCode;
|
|
318
|
+
const clientGenerator = new client_generator_1.ClientGenerator(this.swaggerSpec);
|
|
319
|
+
return clientGenerator.generateClientFunctions();
|
|
446
320
|
}
|
|
447
321
|
generateExpressComposition() {
|
|
448
322
|
// Import and use the Express composition template generator
|
|
@@ -450,134 +324,8 @@ export class SwaggerClient {
|
|
|
450
324
|
return generateExpressCompositionTemplate(this);
|
|
451
325
|
}
|
|
452
326
|
generateServerFactory() {
|
|
453
|
-
const
|
|
454
|
-
|
|
455
|
-
const serverName = this.swaggerSpec.info.title
|
|
456
|
-
.toLowerCase()
|
|
457
|
-
.replace(/[^a-z0-9]/g, "-");
|
|
458
|
-
const serverVersion = this.swaggerSpec.info.version;
|
|
459
|
-
return `import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
460
|
-
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
461
|
-
import { SwaggerClient } from './client';
|
|
462
|
-
|
|
463
|
-
// Setup headers from environment variables
|
|
464
|
-
function getHeaders(): Record<string, string> {
|
|
465
|
-
return Object.keys(process.env).filter(key => key.startsWith('HEADER_')).reduce((headers, key) => {
|
|
466
|
-
const headerName = key.substring(7).replace(/_/g, '-');
|
|
467
|
-
headers[headerName] = process.env[key]!;
|
|
468
|
-
return headers;
|
|
469
|
-
}, {} as Record<string, string>);
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
// Merge environment headers with request headers, giving priority to request headers
|
|
473
|
-
// Handles Authorization header and other custom headers from environment variables
|
|
474
|
-
function mergeHeaders(requestHeaders?: Record<string, string>): Record<string, string> {
|
|
475
|
-
const envHeaders = getHeaders();
|
|
476
|
-
return {
|
|
477
|
-
...envHeaders,
|
|
478
|
-
...(requestHeaders || {})
|
|
479
|
-
};
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
/**
|
|
483
|
-
* Creates and configures an MCP server with the specified headers (including Authorization)
|
|
484
|
-
* @param requestHeaders Optional headers to include in API requests
|
|
485
|
-
* @returns Configured MCP Server instance
|
|
486
|
-
*/
|
|
487
|
-
export function createMcpServer(headers?: Record<string, string>): Server {
|
|
488
|
-
const server = new Server({
|
|
489
|
-
name: '${serverName}-mcp',
|
|
490
|
-
version: '${serverVersion}'
|
|
491
|
-
}, {
|
|
492
|
-
capabilities: {
|
|
493
|
-
tools: {}
|
|
494
|
-
}
|
|
495
|
-
});
|
|
496
|
-
|
|
497
|
-
const apiBaseUrl = '${apiBaseUrl}';
|
|
498
|
-
|
|
499
|
-
// Helper function to format responses consistently
|
|
500
|
-
const formatResponse = async (methodName: string, args: any) => {
|
|
501
|
-
// Handle Authorization header and merge with environment headers
|
|
502
|
-
const envHeaders = getHeaders();
|
|
503
|
-
const mergedHeaders = { ...envHeaders, ...headers };
|
|
504
|
-
const client = new SwaggerClient(apiBaseUrl, mergedHeaders);
|
|
505
|
-
|
|
506
|
-
try {
|
|
507
|
-
const result = await (client as any)[methodName](args || {});
|
|
508
|
-
return {
|
|
509
|
-
content: [{
|
|
510
|
-
type: 'text',
|
|
511
|
-
text: typeof result === 'string' ? result : JSON.stringify(result, null, 2)
|
|
512
|
-
}]
|
|
513
|
-
};
|
|
514
|
-
} catch (error: any) {
|
|
515
|
-
let errorMessage = \`Error calling \${methodName}: \${error.message}\`;
|
|
516
|
-
|
|
517
|
-
// If it's an axios error, provide more detailed information
|
|
518
|
-
if (error.response) {
|
|
519
|
-
// The request was made and the server responded with a status code
|
|
520
|
-
// that falls out of the range of 2xx
|
|
521
|
-
errorMessage += \`\\n\\nHTTP Status: \${error.response.status} \${error.response.statusText || ''}\`;
|
|
522
|
-
|
|
523
|
-
if (error.response.data) {
|
|
524
|
-
errorMessage += \`\\nResponse Body: \${typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data, null, 2)}\`;
|
|
525
|
-
}
|
|
526
|
-
} else if (error.request) {
|
|
527
|
-
// The request was made but no response was received
|
|
528
|
-
errorMessage += \`\\n\\nNo response received from server\`;
|
|
529
|
-
// Extract safe request details to avoid circular reference issues
|
|
530
|
-
const requestDetails = {
|
|
531
|
-
method: error.request.method,
|
|
532
|
-
path: error.request.path,
|
|
533
|
-
timeout: error.request.timeout
|
|
534
|
-
};
|
|
535
|
-
errorMessage += \`\\nRequest details: \${JSON.stringify(requestDetails, null, 2)}\`;
|
|
536
|
-
} else {
|
|
537
|
-
// Something happened in setting up the request that triggered an Error
|
|
538
|
-
errorMessage += \`\\nRequest setup error: \${error.message}\`;
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
return {
|
|
542
|
-
content: [{
|
|
543
|
-
type: 'text',
|
|
544
|
-
text: errorMessage
|
|
545
|
-
}]
|
|
546
|
-
};
|
|
547
|
-
}
|
|
548
|
-
};
|
|
549
|
-
|
|
550
|
-
// Handle tool calls
|
|
551
|
-
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
552
|
-
const { name, arguments: args } = request.params as any;
|
|
553
|
-
|
|
554
|
-
switch (name) {
|
|
555
|
-
${tools
|
|
556
|
-
.map((tool) => ` case '${tool.name}':
|
|
557
|
-
return formatResponse('${tool.name}', args);`)
|
|
558
|
-
.join("\n")}
|
|
559
|
-
default:
|
|
560
|
-
throw new Error(\`Unknown tool: \${name}\`);
|
|
561
|
-
}
|
|
562
|
-
});
|
|
563
|
-
|
|
564
|
-
server.setRequestHandler(ListToolsRequestSchema, async (request) => {
|
|
565
|
-
return {
|
|
566
|
-
tools: [
|
|
567
|
-
${tools
|
|
568
|
-
.map((tool) => ` {
|
|
569
|
-
name: '${tool.name}',
|
|
570
|
-
description: '${tool.description}',
|
|
571
|
-
inputSchema: ${JSON.stringify(tool.inputSchema, null, 10)}
|
|
572
|
-
}`)
|
|
573
|
-
.join(",\n")}
|
|
574
|
-
]
|
|
575
|
-
};
|
|
576
|
-
});
|
|
577
|
-
|
|
578
|
-
return server;
|
|
579
|
-
}
|
|
580
|
-
`;
|
|
327
|
+
const serverGenerator = new server_generator_1.ServerGenerator(this.getApiBaseUrl(), this.swaggerSpec, this.generateTools());
|
|
328
|
+
return serverGenerator.generateServerFactory();
|
|
581
329
|
}
|
|
582
330
|
generateMcpServer() {
|
|
583
331
|
const serverFactory = this.generateServerFactory();
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SwaggerSpec, Tool } from "./types";
|
|
2
|
+
export declare class ServerGenerator {
|
|
3
|
+
private baseUrl;
|
|
4
|
+
private swaggerSpec;
|
|
5
|
+
private tools;
|
|
6
|
+
constructor(baseUrl: string, swaggerSpec: SwaggerSpec, tools: Tool[]);
|
|
7
|
+
generateServerFactory(): string;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=server-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-generator.d.ts","sourceRoot":"","sources":["../src/server-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,eAAe;IAExB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;gBAFL,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,IAAI,EAAE;IAGvB,qBAAqB,IAAI,MAAM;CAuIhC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServerGenerator = void 0;
|
|
4
|
+
class ServerGenerator {
|
|
5
|
+
constructor(baseUrl, swaggerSpec, tools) {
|
|
6
|
+
this.baseUrl = baseUrl;
|
|
7
|
+
this.swaggerSpec = swaggerSpec;
|
|
8
|
+
this.tools = tools;
|
|
9
|
+
}
|
|
10
|
+
generateServerFactory() {
|
|
11
|
+
const tools = this.tools;
|
|
12
|
+
const apiBaseUrl = this.baseUrl;
|
|
13
|
+
const serverName = this.swaggerSpec.info.title
|
|
14
|
+
.toLowerCase()
|
|
15
|
+
.replace(/[^a-z0-9]/g, "-");
|
|
16
|
+
const serverVersion = this.swaggerSpec.info.version;
|
|
17
|
+
return `import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
18
|
+
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
19
|
+
import { SwaggerClient } from './client';
|
|
20
|
+
|
|
21
|
+
// Setup headers from environment variables
|
|
22
|
+
function getHeaders(): Record<string, string> {
|
|
23
|
+
return Object.keys(process.env).filter(key => key.startsWith('HEADER_')).reduce((headers, key) => {
|
|
24
|
+
const headerName = key.substring(7).replace(/_/g, '-');
|
|
25
|
+
headers[headerName] = process.env[key]!;
|
|
26
|
+
return headers;
|
|
27
|
+
}, {} as Record<string, string>);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Merge environment headers with request headers, giving priority to request headers
|
|
31
|
+
// Handles Authorization header and other custom headers from environment variables
|
|
32
|
+
function mergeHeaders(requestHeaders?: Record<string, string>): Record<string, string> {
|
|
33
|
+
const envHeaders = getHeaders();
|
|
34
|
+
return {
|
|
35
|
+
...envHeaders,
|
|
36
|
+
...(requestHeaders || {})
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Creates and configures an MCP server with the specified headers (including Authorization)
|
|
42
|
+
* @param requestHeaders Optional headers to include in API requests
|
|
43
|
+
* @returns Configured MCP Server instance
|
|
44
|
+
*/
|
|
45
|
+
export function createMcpServer(headers?: Record<string, string>): Server {
|
|
46
|
+
const server = new Server({
|
|
47
|
+
name: '${serverName}-mcp',
|
|
48
|
+
version: '${serverVersion}'
|
|
49
|
+
}, {
|
|
50
|
+
capabilities: {
|
|
51
|
+
tools: {}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
const apiBaseUrl = '${apiBaseUrl}';
|
|
56
|
+
|
|
57
|
+
// Helper function to format responses consistently
|
|
58
|
+
const formatResponse = async (methodName: string, args: any) => {
|
|
59
|
+
// Handle Authorization header and merge with environment headers
|
|
60
|
+
const envHeaders = getHeaders();
|
|
61
|
+
const mergedHeaders = { ...envHeaders, ...headers };
|
|
62
|
+
const client = new SwaggerClient(apiBaseUrl, mergedHeaders);
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
const result = await (client as any)[methodName](args || {});
|
|
66
|
+
return {
|
|
67
|
+
content: [{
|
|
68
|
+
type: 'text',
|
|
69
|
+
text: typeof result === 'string' ? result : JSON.stringify(result, null, 2)
|
|
70
|
+
}]
|
|
71
|
+
};
|
|
72
|
+
} catch (error: any) {
|
|
73
|
+
let errorMessage = \`Error calling \${methodName}: \${error.message}\`;
|
|
74
|
+
|
|
75
|
+
// If it's an axios error, provide more detailed information
|
|
76
|
+
if (error.response) {
|
|
77
|
+
// The request was made and the server responded with a status code
|
|
78
|
+
// that falls out of the range of 2xx
|
|
79
|
+
errorMessage += \`\\n\\nHTTP Status: \${error.response.status} \${error.response.statusText || ''}\`;
|
|
80
|
+
|
|
81
|
+
if (error.response.data) {
|
|
82
|
+
errorMessage += \`\\nResponse Body: \${typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data, null, 2)}\`;
|
|
83
|
+
}
|
|
84
|
+
} else if (error.request) {
|
|
85
|
+
// The request was made but no response was received
|
|
86
|
+
errorMessage += \`\\n\\nNo response received from server\`;
|
|
87
|
+
// Extract safe request details to avoid circular reference issues
|
|
88
|
+
const requestDetails = {
|
|
89
|
+
method: error.request.method,
|
|
90
|
+
path: error.request.path,
|
|
91
|
+
timeout: error.request.timeout
|
|
92
|
+
};
|
|
93
|
+
errorMessage += \`\\nRequest details: \${JSON.stringify(requestDetails, null, 2)}\`;
|
|
94
|
+
} else {
|
|
95
|
+
// Something happened in setting up the request that triggered an Error
|
|
96
|
+
errorMessage += \`\\nRequest setup error: \${error.message}\`;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return {
|
|
100
|
+
content: [{
|
|
101
|
+
type: 'text',
|
|
102
|
+
text: errorMessage
|
|
103
|
+
}]
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// Handle tool calls
|
|
109
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
110
|
+
const { name, arguments: args } = request.params as any;
|
|
111
|
+
|
|
112
|
+
switch (name) {
|
|
113
|
+
${tools
|
|
114
|
+
.map((tool) => ` case '${tool.name}':
|
|
115
|
+
return formatResponse('${tool.name}', args);`)
|
|
116
|
+
.join("\n")}
|
|
117
|
+
default:
|
|
118
|
+
throw new Error(\`Unknown tool: \${name}\`);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
server.setRequestHandler(ListToolsRequestSchema, async (request) => {
|
|
123
|
+
return {
|
|
124
|
+
tools: [
|
|
125
|
+
${tools
|
|
126
|
+
.map((tool) => ` {
|
|
127
|
+
name: '${tool.name}',
|
|
128
|
+
description: '${tool.description}',
|
|
129
|
+
inputSchema: ${JSON.stringify(tool.inputSchema, null, 10)}
|
|
130
|
+
}`)
|
|
131
|
+
.join(",\n")}
|
|
132
|
+
]
|
|
133
|
+
};
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
return server;
|
|
137
|
+
}
|
|
138
|
+
`;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
exports.ServerGenerator = ServerGenerator;
|
|
142
|
+
//# sourceMappingURL=server-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-generator.js","sourceRoot":"","sources":["../src/server-generator.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAC1B,YACU,OAAe,EACf,WAAwB,EACxB,KAAa;QAFb,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAa;QACxB,UAAK,GAAL,KAAK,CAAQ;IACpB,CAAC;IAEJ,qBAAqB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;aAC3C,WAAW,EAAE;aACb,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QAEpD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8BE,UAAU;gBACP,aAAa;;;;;;;wBAOL,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DhC,KAAK;aACJ,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,IAAI,CAAC,IAAI;iCACL,IAAI,CAAC,IAAI,WAAW,CAClD;aACA,IAAI,CAAC,IAAI,CAAC;;;;;;;;;EASX,KAAK;aACJ,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CAAC;mBACK,IAAI,CAAC,IAAI;0BACF,IAAI,CAAC,WAAW;yBACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;UACzD,CACP;aACA,IAAI,CAAC,KAAK,CAAC;;;;;;;CAOb,CAAC;IACA,CAAC;CACF;AA9ID,0CA8IC"}
|