swagger-parser-mcp-server 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/index.js +126 -206
  2. package/dist/index.js.map +1 -1
  3. package/dist/schemas.d.ts +58 -0
  4. package/dist/schemas.d.ts.map +1 -0
  5. package/dist/schemas.js +32 -0
  6. package/dist/schemas.js.map +1 -0
  7. package/dist/tests/edgeCases.test.d.ts +2 -0
  8. package/dist/tests/edgeCases.test.d.ts.map +1 -0
  9. package/dist/tests/edgeCases.test.js +364 -0
  10. package/dist/tests/edgeCases.test.js.map +1 -0
  11. package/dist/tests/integration.test.d.ts +2 -0
  12. package/dist/tests/integration.test.d.ts.map +1 -0
  13. package/dist/tests/integration.test.js +382 -0
  14. package/dist/tests/integration.test.js.map +1 -0
  15. package/dist/tests/realWorldValidation.test.d.ts +2 -0
  16. package/dist/tests/realWorldValidation.test.d.ts.map +1 -0
  17. package/dist/tests/realWorldValidation.test.js +398 -0
  18. package/dist/tests/realWorldValidation.test.js.map +1 -0
  19. package/dist/tests/schemaResolver.test.d.ts +2 -0
  20. package/dist/tests/schemaResolver.test.d.ts.map +1 -0
  21. package/dist/tests/schemaResolver.test.js +322 -0
  22. package/dist/tests/schemaResolver.test.js.map +1 -0
  23. package/dist/utils/schemaResolver.d.ts +34 -0
  24. package/dist/utils/schemaResolver.d.ts.map +1 -0
  25. package/dist/utils/schemaResolver.js +255 -0
  26. package/dist/utils/schemaResolver.js.map +1 -0
  27. package/dist/utils/swaggerCache.d.ts +53 -0
  28. package/dist/utils/swaggerCache.d.ts.map +1 -0
  29. package/dist/utils/swaggerCache.js +146 -0
  30. package/dist/utils/swaggerCache.js.map +1 -0
  31. package/dist/utils/types.d.ts +73 -0
  32. package/dist/utils/types.d.ts.map +1 -0
  33. package/dist/utils/types.js +20 -0
  34. package/dist/utils/types.js.map +1 -0
  35. package/package.json +31 -9
package/dist/index.js CHANGED
@@ -1,16 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  // swagger-parser-server.ts
3
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
4
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
- import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
6
- import axios from "axios";
3
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
4
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
5
+ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
6
+ import { SwaggerCache } from './utils/swaggerCache.js';
7
+ import { SchemaResolver } from './utils/schemaResolver.js';
8
+ import { loadSwaggerSchema, getControllersSchema, getPathsByControllerSchema, getPathDetailsSchema, resolveSchemaSchema, } from './schemas.js';
7
9
  class SwaggerParserServer {
8
10
  server;
9
- swaggerCache = new Map();
11
+ swaggerCache;
12
+ schemaResolver;
10
13
  constructor() {
14
+ this.swaggerCache = new SwaggerCache();
15
+ this.schemaResolver = new SchemaResolver({
16
+ maxDepth: 10,
17
+ includeCircularRefs: false, // Prevent stack overflow by default
18
+ circularRefPlaceholder: '[Circular Reference]',
19
+ });
11
20
  this.server = new Server({
12
- name: "swagger-parser-server",
13
- version: "1.0.0",
21
+ name: 'swagger-parser-server',
22
+ version: '1.0.0',
14
23
  }, {
15
24
  capabilities: {
16
25
  tools: {},
@@ -20,93 +29,32 @@ class SwaggerParserServer {
20
29
  }
21
30
  setupHandlers() {
22
31
  // 도구 목록 제공
23
- this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
32
+ this.server.setRequestHandler(ListToolsRequestSchema, () => ({
24
33
  tools: [
25
34
  {
26
- name: "load_swagger",
27
- description: "Swagger/OpenAPI JSON URL을 로드합니다",
28
- inputSchema: {
29
- type: "object",
30
- properties: {
31
- url: {
32
- type: "string",
33
- description: "Swagger JSON URL",
34
- },
35
- },
36
- required: ["url"],
37
- },
35
+ name: 'load_swagger',
36
+ description: 'Swagger/OpenAPI JSON URL을 로드합니다',
37
+ inputSchema: loadSwaggerSchema,
38
38
  },
39
39
  {
40
- name: "get_controllers",
41
- description: "모든 컨트롤러(태그) 목록을 가져옵니다",
42
- inputSchema: {
43
- type: "object",
44
- properties: {
45
- url: {
46
- type: "string",
47
- description: "Swagger JSON URL",
48
- },
49
- },
50
- required: ["url"],
51
- },
40
+ name: 'get_controllers',
41
+ description: '모든 컨트롤러(태그) 목록을 가져옵니다',
42
+ inputSchema: getControllersSchema,
52
43
  },
53
44
  {
54
- name: "get_paths_by_controller",
55
- description: "특정 컨트롤러의 모든 path를 가져옵니다",
56
- inputSchema: {
57
- type: "object",
58
- properties: {
59
- url: {
60
- type: "string",
61
- description: "Swagger JSON URL",
62
- },
63
- controller: {
64
- type: "string",
65
- description: "컨트롤러 이름 (태그)",
66
- },
67
- },
68
- required: ["url", "controller"],
69
- },
45
+ name: 'get_paths_by_controller',
46
+ description: '특정 컨트롤러의 모든 path를 가져옵니다',
47
+ inputSchema: getPathsByControllerSchema,
70
48
  },
71
49
  {
72
- name: "get_path_details",
73
- description: "특정 path의 상세 정보를 가져옵니다",
74
- inputSchema: {
75
- type: "object",
76
- properties: {
77
- url: {
78
- type: "string",
79
- description: "Swagger JSON URL",
80
- },
81
- path: {
82
- type: "string",
83
- description: "API path (예: /users/{id})",
84
- },
85
- method: {
86
- type: "string",
87
- description: "HTTP method (get, post, put, delete 등)",
88
- },
89
- },
90
- required: ["url", "path", "method"],
91
- },
50
+ name: 'get_path_details',
51
+ description: '특정 path의 상세 정보를 가져옵니다',
52
+ inputSchema: getPathDetailsSchema,
92
53
  },
93
54
  {
94
- name: "resolve_schema",
95
- description: "$ref를 해결하여 실제 스키마를 가져옵니다",
96
- inputSchema: {
97
- type: "object",
98
- properties: {
99
- url: {
100
- type: "string",
101
- description: "Swagger JSON URL",
102
- },
103
- ref: {
104
- type: "string",
105
- description: "$ref 경로 (예: #/components/schemas/User)",
106
- },
107
- },
108
- required: ["url", "ref"],
109
- },
55
+ name: 'resolve_schema',
56
+ description: '$ref를 해결하여 실제 스키마를 가져옵니다',
57
+ inputSchema: resolveSchemaSchema,
110
58
  },
111
59
  ],
112
60
  }));
@@ -115,26 +63,37 @@ class SwaggerParserServer {
115
63
  const { name, arguments: args } = request.params;
116
64
  try {
117
65
  switch (name) {
118
- case "load_swagger":
119
- return await this.loadSwagger(args?.url);
120
- case "get_controllers":
121
- return await this.getControllers(args?.url);
122
- case "get_paths_by_controller":
123
- return await this.getPathsByController(args?.url, args?.controller);
124
- case "get_path_details":
125
- return await this.getPathDetails(args?.url, args?.path, args?.method);
126
- case "resolve_schema":
127
- return await this.resolveSchema(args?.url, args?.ref);
66
+ case 'load_swagger': {
67
+ const validatedArgs = loadSwaggerSchema.parse(args);
68
+ return await this.loadSwagger(validatedArgs.url);
69
+ }
70
+ case 'get_controllers': {
71
+ const validatedArgs = getControllersSchema.parse(args);
72
+ return await this.getControllers(validatedArgs.url);
73
+ }
74
+ case 'get_paths_by_controller': {
75
+ const validatedArgs = getPathsByControllerSchema.parse(args);
76
+ return await this.getPathsByController(validatedArgs.url, validatedArgs.controller);
77
+ }
78
+ case 'get_path_details': {
79
+ const validatedArgs = getPathDetailsSchema.parse(args);
80
+ return await this.getPathDetails(validatedArgs.url, validatedArgs.path, validatedArgs.method);
81
+ }
82
+ case 'resolve_schema': {
83
+ const validatedArgs = resolveSchemaSchema.parse(args);
84
+ return await this.resolveSchema(validatedArgs.url, validatedArgs.ref);
85
+ }
128
86
  default:
129
87
  throw new Error(`Unknown tool: ${name}`);
130
88
  }
131
89
  }
132
90
  catch (error) {
91
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
133
92
  return {
134
93
  content: [
135
94
  {
136
- type: "text",
137
- text: `Error: ${error.message}`,
95
+ type: 'text',
96
+ text: `Error: ${errorMessage}`,
138
97
  },
139
98
  ],
140
99
  };
@@ -143,13 +102,11 @@ class SwaggerParserServer {
143
102
  }
144
103
  async loadSwagger(url) {
145
104
  try {
146
- const response = await axios.get(url);
147
- const swagger = response.data;
148
- this.swaggerCache.set(url, swagger);
105
+ const swagger = await this.swaggerCache.load(url);
149
106
  return {
150
107
  content: [
151
108
  {
152
- type: "text",
109
+ type: 'text',
153
110
  text: JSON.stringify({
154
111
  success: true,
155
112
  info: swagger.info,
@@ -161,21 +118,24 @@ class SwaggerParserServer {
161
118
  };
162
119
  }
163
120
  catch (error) {
164
- throw new Error(`Failed to load Swagger: ${error.message}`);
121
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
122
+ throw new Error(`Failed to load Swagger: ${errorMessage}`);
165
123
  }
166
124
  }
167
125
  async getSwagger(url) {
168
- if (!this.swaggerCache.has(url)) {
169
- await this.loadSwagger(url);
170
- }
171
- return this.swaggerCache.get(url);
126
+ return await this.swaggerCache.getOrLoad(url);
172
127
  }
173
128
  async getControllers(url) {
174
129
  const swagger = await this.getSwagger(url);
175
130
  const controllers = new Set();
176
- Object.values(swagger.paths).forEach(pathItem => {
177
- Object.values(pathItem).forEach((operation) => {
178
- if (operation.tags) {
131
+ Object.values(swagger.paths || {}).forEach(pathItem => {
132
+ if (!pathItem)
133
+ return;
134
+ // Check each HTTP method
135
+ const methods = ['get', 'post', 'put', 'delete', 'patch', 'head', 'options'];
136
+ methods.forEach(method => {
137
+ const operation = pathItem[method];
138
+ if (operation?.tags) {
179
139
  operation.tags.forEach((tag) => controllers.add(tag));
180
140
  }
181
141
  });
@@ -183,7 +143,7 @@ class SwaggerParserServer {
183
143
  return {
184
144
  content: [
185
145
  {
186
- type: "text",
146
+ type: 'text',
187
147
  text: JSON.stringify({
188
148
  controllers: Array.from(controllers),
189
149
  count: controllers.size,
@@ -195,9 +155,14 @@ class SwaggerParserServer {
195
155
  async getPathsByController(url, controller) {
196
156
  const swagger = await this.getSwagger(url);
197
157
  const paths = [];
198
- Object.entries(swagger.paths).forEach(([path, pathItem]) => {
199
- Object.entries(pathItem).forEach(([method, operation]) => {
200
- if (operation.tags?.includes(controller)) {
158
+ Object.entries(swagger.paths || {}).forEach(([path, pathItem]) => {
159
+ if (!pathItem)
160
+ return;
161
+ // Check each HTTP method
162
+ const methods = ['get', 'post', 'put', 'delete', 'patch', 'head', 'options'];
163
+ methods.forEach(method => {
164
+ const operation = pathItem[method];
165
+ if (operation?.tags?.includes(controller)) {
201
166
  paths.push({
202
167
  path,
203
168
  method,
@@ -211,7 +176,7 @@ class SwaggerParserServer {
211
176
  return {
212
177
  content: [
213
178
  {
214
- type: "text",
179
+ type: 'text',
215
180
  text: JSON.stringify({
216
181
  controller,
217
182
  paths,
@@ -223,28 +188,43 @@ class SwaggerParserServer {
223
188
  }
224
189
  async getPathDetails(url, path, method) {
225
190
  const swagger = await this.getSwagger(url);
226
- const operation = swagger.paths[path]?.[method.toLowerCase()];
227
- if (!operation) {
191
+ const pathItem = swagger.paths?.[path];
192
+ const operation = pathItem?.[method.toLowerCase()];
193
+ if (!operation || typeof operation !== 'object') {
228
194
  throw new Error(`Path ${method.toUpperCase()} ${path} not found`);
229
195
  }
230
196
  // 파라미터 정보 추출
231
- const parameters = operation.parameters?.map(param => ({
232
- name: param.name,
233
- in: param.in,
234
- required: param.required,
235
- description: param.description,
236
- schema: this.resolveSchemaReference(param.schema, swagger),
237
- })) || [];
197
+ const parameters = operation.parameters?.map(param => {
198
+ // Handle $ref parameters by resolving them first
199
+ if ('$ref' in param) {
200
+ const resolvedParam = this.schemaResolver.resolveRef(param.$ref, swagger);
201
+ return {
202
+ name: resolvedParam.name,
203
+ in: resolvedParam.in,
204
+ required: resolvedParam.required,
205
+ description: resolvedParam.description,
206
+ schema: this.schemaResolver.resolveSchemaReference(resolvedParam.schema, swagger),
207
+ };
208
+ }
209
+ return {
210
+ name: param.name,
211
+ in: param.in,
212
+ required: param.required,
213
+ description: param.description,
214
+ schema: this.schemaResolver.resolveSchemaReference(param.schema, swagger),
215
+ };
216
+ }) || [];
238
217
  // Request Body 정보 추출
239
218
  let requestBody = null;
240
- if (operation.requestBody?.content) {
219
+ if (operation.requestBody && 'content' in operation.requestBody && operation.requestBody.content) {
241
220
  const content = operation.requestBody.content;
242
221
  const mediaType = Object.keys(content)[0];
243
- if (content[mediaType]?.schema) {
222
+ const mediaTypeObj = content[mediaType];
223
+ if (mediaTypeObj?.schema) {
244
224
  requestBody = {
245
225
  required: operation.requestBody.required,
246
226
  mediaType,
247
- schema: this.resolveSchemaReference(content[mediaType].schema, swagger),
227
+ schema: this.schemaResolver.resolveSchemaReference(mediaTypeObj.schema, swagger),
248
228
  };
249
229
  }
250
230
  }
@@ -252,112 +232,52 @@ class SwaggerParserServer {
252
232
  const responses = {};
253
233
  if (operation.responses) {
254
234
  Object.entries(operation.responses).forEach(([statusCode, response]) => {
255
- if (response.content) {
235
+ if (response && typeof response === 'object' && 'content' in response && response.content) {
256
236
  const content = response.content;
257
237
  const mediaType = Object.keys(content)[0];
258
- if (content[mediaType]?.schema) {
238
+ const mediaTypeObj = content[mediaType];
239
+ if (mediaTypeObj?.schema) {
259
240
  responses[statusCode] = {
260
241
  description: response.description,
261
242
  mediaType,
262
- schema: this.resolveSchemaReference(content[mediaType].schema, swagger),
243
+ schema: this.schemaResolver.resolveSchemaReference(mediaTypeObj.schema, swagger),
263
244
  };
264
245
  }
265
246
  }
266
- else {
247
+ else if (response && typeof response === 'object' && 'description' in response) {
267
248
  responses[statusCode] = {
268
249
  description: response.description,
269
250
  };
270
251
  }
271
252
  });
272
253
  }
254
+ const pathDetails = {
255
+ path,
256
+ method: method.toUpperCase(),
257
+ operationId: operation.operationId,
258
+ summary: operation.summary,
259
+ description: operation.description,
260
+ tags: operation.tags,
261
+ parameters,
262
+ requestBody: requestBody || undefined,
263
+ responses,
264
+ };
273
265
  return {
274
266
  content: [
275
267
  {
276
- type: "text",
277
- text: JSON.stringify({
278
- path,
279
- method: method.toUpperCase(),
280
- operationId: operation.operationId,
281
- summary: operation.summary,
282
- description: operation.description,
283
- tags: operation.tags,
284
- parameters,
285
- requestBody,
286
- responses,
287
- }, null, 2),
268
+ type: 'text',
269
+ text: JSON.stringify(pathDetails, null, 2),
288
270
  },
289
271
  ],
290
272
  };
291
273
  }
292
- resolveSchemaReference(schema, swagger) {
293
- if (!schema)
294
- return null;
295
- if (schema.$ref) {
296
- const resolved = this.resolveRef(schema.$ref, swagger);
297
- return {
298
- $ref: schema.$ref,
299
- resolved,
300
- };
301
- }
302
- if (schema.type === "array" && schema.items) {
303
- return {
304
- type: "array",
305
- items: this.resolveSchemaReference(schema.items, swagger),
306
- };
307
- }
308
- if (schema.type === "object" && schema.properties) {
309
- const properties = {};
310
- Object.entries(schema.properties).forEach(([key, value]) => {
311
- properties[key] = this.resolveSchemaReference(value, swagger);
312
- });
313
- return {
314
- type: "object",
315
- properties,
316
- required: schema.required,
317
- };
318
- }
319
- return schema;
320
- }
321
- resolveRef(ref, swagger) {
322
- const parts = ref.split("/");
323
- let current = swagger;
324
- for (let i = 1; i < parts.length; i++) {
325
- current = current[parts[i]];
326
- if (!current) {
327
- throw new Error(`Cannot resolve reference: ${ref}`);
328
- }
329
- }
330
- // 재귀적으로 중첩된 $ref도 해결
331
- if (current.$ref) {
332
- return this.resolveRef(current.$ref, swagger);
333
- }
334
- // 객체 속성에 있는 $ref도 해결
335
- if (current.type === "object" && current.properties) {
336
- const resolvedProperties = {};
337
- Object.entries(current.properties).forEach(([key, value]) => {
338
- resolvedProperties[key] = this.resolveSchemaReference(value, swagger);
339
- });
340
- return {
341
- ...current,
342
- properties: resolvedProperties,
343
- };
344
- }
345
- // 배열 아이템의 $ref도 해결
346
- if (current.type === "array" && current.items) {
347
- return {
348
- ...current,
349
- items: this.resolveSchemaReference(current.items, swagger),
350
- };
351
- }
352
- return current;
353
- }
354
274
  async resolveSchema(url, ref) {
355
275
  const swagger = await this.getSwagger(url);
356
- const resolved = this.resolveRef(ref, swagger);
276
+ const resolved = this.schemaResolver.resolveRef(ref, swagger);
357
277
  return {
358
278
  content: [
359
279
  {
360
- type: "text",
280
+ type: 'text',
361
281
  text: JSON.stringify({
362
282
  ref,
363
283
  resolved,
@@ -369,7 +289,7 @@ class SwaggerParserServer {
369
289
  async run() {
370
290
  const transport = new StdioServerTransport();
371
291
  await this.server.connect(transport);
372
- console.error("Swagger Parser MCP Server running on stdio");
292
+ console.error('Swagger Parser MCP Server running on stdio');
373
293
  }
374
294
  }
375
295
  // 서버 실행
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schemas for MCP tool input validation
4
+ * These schemas provide runtime validation and type safety for all MCP tools
5
+ */
6
+ export declare const loadSwaggerSchema: z.ZodObject<{
7
+ url: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ url: string;
10
+ }, {
11
+ url: string;
12
+ }>;
13
+ export declare const getControllersSchema: z.ZodObject<{
14
+ url: z.ZodString;
15
+ }, "strip", z.ZodTypeAny, {
16
+ url: string;
17
+ }, {
18
+ url: string;
19
+ }>;
20
+ export declare const getPathsByControllerSchema: z.ZodObject<{
21
+ url: z.ZodString;
22
+ controller: z.ZodString;
23
+ }, "strip", z.ZodTypeAny, {
24
+ url: string;
25
+ controller: string;
26
+ }, {
27
+ url: string;
28
+ controller: string;
29
+ }>;
30
+ export declare const getPathDetailsSchema: z.ZodObject<{
31
+ url: z.ZodString;
32
+ path: z.ZodString;
33
+ method: z.ZodEnum<["get", "post", "put", "delete", "patch", "head", "options"]>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ path: string;
36
+ url: string;
37
+ method: "get" | "post" | "put" | "delete" | "patch" | "head" | "options";
38
+ }, {
39
+ path: string;
40
+ url: string;
41
+ method: "get" | "post" | "put" | "delete" | "patch" | "head" | "options";
42
+ }>;
43
+ export declare const resolveSchemaSchema: z.ZodObject<{
44
+ url: z.ZodString;
45
+ ref: z.ZodString;
46
+ }, "strip", z.ZodTypeAny, {
47
+ url: string;
48
+ ref: string;
49
+ }, {
50
+ url: string;
51
+ ref: string;
52
+ }>;
53
+ export type LoadSwaggerInput = z.infer<typeof loadSwaggerSchema>;
54
+ export type GetControllersInput = z.infer<typeof getControllersSchema>;
55
+ export type GetPathsByControllerInput = z.infer<typeof getPathsByControllerSchema>;
56
+ export type GetPathDetailsInput = z.infer<typeof getPathDetailsSchema>;
57
+ export type ResolveSchemaInput = z.infer<typeof resolveSchemaSchema>;
58
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AAGH,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;EAGrC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAM/B,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAGH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACnF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schemas for MCP tool input validation
4
+ * These schemas provide runtime validation and type safety for all MCP tools
5
+ */
6
+ // Schema for load_swagger tool
7
+ export const loadSwaggerSchema = z.object({
8
+ url: z.string().url('Must be a valid URL'),
9
+ });
10
+ // Schema for get_controllers tool
11
+ export const getControllersSchema = z.object({
12
+ url: z.string().url('Must be a valid URL'),
13
+ });
14
+ // Schema for get_paths_by_controller tool
15
+ export const getPathsByControllerSchema = z.object({
16
+ url: z.string().url('Must be a valid URL'),
17
+ controller: z.string().min(1, 'Controller name is required'),
18
+ });
19
+ // Schema for get_path_details tool
20
+ export const getPathDetailsSchema = z.object({
21
+ url: z.string().url('Must be a valid URL'),
22
+ path: z.string().min(1, 'Path is required'),
23
+ method: z.enum(['get', 'post', 'put', 'delete', 'patch', 'head', 'options'], {
24
+ errorMap: () => ({ message: 'Method must be a valid HTTP method' }),
25
+ }),
26
+ });
27
+ // Schema for resolve_schema tool
28
+ export const resolveSchemaSchema = z.object({
29
+ url: z.string().url('Must be a valid URL'),
30
+ ref: z.string().regex(/^#\//, 'Reference must start with #/ (e.g., #/components/schemas/User)'),
31
+ });
32
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AAEH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;CAC3C,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;CAC3C,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;CAC7D,CAAC,CAAC;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAC3E,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;KACpE,CAAC;CACH,CAAC,CAAC;AAEH,iCAAiC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,gEAAgE,CAAC;CAChG,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=edgeCases.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgeCases.test.d.ts","sourceRoot":"","sources":["../../src/tests/edgeCases.test.ts"],"names":[],"mappings":""}