fmea-api-mcp-server 1.1.53 → 1.1.55

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.
@@ -0,0 +1,565 @@
1
+ {
2
+ "generated_at": "2026-03-21T23:44:38.946938",
3
+ "count": 70,
4
+ "enums": {
5
+ "ErrorCode": [
6
+ "INVALID_REQUEST_TYPE_ERROR",
7
+ "INVALID_REQUEST_ERROR",
8
+ "INVALID_PARAMETER_ERROR",
9
+ "TIMEOUT_ERROR",
10
+ "BAD_FORMAT_ERROR",
11
+ "METHOD_NOT_ALLOWED_ERROR",
12
+ "DATA_TYPE_ERROR",
13
+ "DATA_RANGE_ERROR",
14
+ "REQUEST_LIMIT_EXCEEDED",
15
+ "DUPLICATE_ERROR",
16
+ "DUPLICATED_USER_ID",
17
+ "WORKSHEET_ALREADY_EXISTS",
18
+ "ALREADY_PROJECT_MEMBER",
19
+ "ALREADY_PROCESSED_REQUEST",
20
+ "PROJECT_LOCKED",
21
+ "INTERNAL_SERVER_ERROR",
22
+ "DB_ERROR",
23
+ "SERVER_TIMEOUT_ERROR",
24
+ "NOT_FOUND",
25
+ "PROJECT_NOT_FOUND",
26
+ "PROJECT_JOIN_REQUEST_NOT_FOUND",
27
+ "DIVISION_NOT_FOUND",
28
+ "BLOCK_DIAGRAM_NOT_FOUND",
29
+ "FAILURE_MODE_NOT_FOUND",
30
+ "WORKSHEET_NOT_FOUND",
31
+ "WORKSHEET_TEMPLATE_NOT_FOUND",
32
+ "USER_NOT_FOUND",
33
+ "FILE_NOT_FOUND",
34
+ "EXPORT_HEADER_NOT_FOUND",
35
+ "BLOCK_DIAGRAM_NODE_NOT_FOUND",
36
+ "BLOCK_DIAGRAM_TYPE_NOT_FOUND",
37
+ "KNOWLEDGE_NOT_FOUND",
38
+ "NOTICE_NOT_FOUND",
39
+ "FILE_READ_ERROR",
40
+ "UNAUTHORIZED",
41
+ "AUTHENTICATION_ERROR",
42
+ "ACCESS_DENIED_ERROR",
43
+ "FORBIDDEN",
44
+ "USER_INACTIVATED",
45
+ "UNSUPPORTED_OPERATION_ERROR",
46
+ "DEPRECATED_ENDPOINT_ERROR",
47
+ "NOT_IMPLEMENTED"
48
+ ],
49
+ "AuthenticationMethod": [
50
+ "BASIC_AUTH",
51
+ "BEARER_TOKEN",
52
+ "API_KEY"
53
+ ],
54
+ "FTANodeType": [
55
+ "EVENT",
56
+ "BASIC_EVENT",
57
+ "UNDEVELOPED_EVENT",
58
+ "NORMAL_EVENT",
59
+ "TRANSFER_SYMBOL_IN",
60
+ "TRANSFER_SYMBOL_OUT",
61
+ "AND_GATE",
62
+ "OR_GATE",
63
+ "INHIBIT_GATE",
64
+ "NOT_GATE",
65
+ "MODIFIER_AND",
66
+ "MODIFIER_OR"
67
+ ],
68
+ "ProjectType": [
69
+ "DESIGN",
70
+ "PROCESS",
71
+ "EQUIPMENT",
72
+ "FA",
73
+ "FTA",
74
+ "CPLAN"
75
+ ],
76
+ "RecommendationRowStatus": [
77
+ "UNKNOWN",
78
+ "COMPLETED",
79
+ "IN_PROGRESS",
80
+ "DELAY"
81
+ ],
82
+ "TokenType": [
83
+ "BASIC",
84
+ "BEARER"
85
+ ],
86
+ "UserLevel": [
87
+ "ADMIN",
88
+ "NORMAL",
89
+ "READER"
90
+ ],
91
+ "ValidationType": [
92
+ "NOT_FOUND",
93
+ "CONFLICT",
94
+ "INVALID_PARAMETER"
95
+ ],
96
+ "ActionType": [
97
+ "ADD",
98
+ "DELETE",
99
+ "UPDATE"
100
+ ],
101
+ "BlockNodeCategory": [
102
+ "FUNCTION",
103
+ "STRUCTURE",
104
+ "PROCESS",
105
+ "SUPER_SYSTEM"
106
+ ],
107
+ "RatingCategory": [
108
+ "SEVERITY",
109
+ "OCCURRENCE",
110
+ "DETECTION"
111
+ ],
112
+ "APType": [
113
+ "AIAG",
114
+ "MSR"
115
+ ],
116
+ "ActionPriority": [
117
+ "LOW",
118
+ "MEDIUM",
119
+ "HIGH"
120
+ ],
121
+ "BlockNodeExcelColumnMapping": [
122
+ "LEVEL",
123
+ "ITEM",
124
+ "FUNCTION",
125
+ "REQUIREMENT",
126
+ "PROCESS_NUMBER",
127
+ "PROCESS_SYMBOL",
128
+ "PROCESS_CATEGORY",
129
+ "ORDER",
130
+ "TYPE"
131
+ ],
132
+ "ClientIdMappingTarget": [
133
+ "WORKSHEET_ID",
134
+ "FAILURE_MODE_WORKSHEET_ID",
135
+ "WORKSHEET_ROW_ID",
136
+ "BLOCK_NODE_ID",
137
+ "BLOCK_REFERENCED_ID",
138
+ "FMM_OBJECT_ID"
139
+ ],
140
+ "CauseClassification": [
141
+ "UNRATED",
142
+ "NO_CONTROL",
143
+ "BEFORE_ACTION",
144
+ "AFTER_ACTION"
145
+ ],
146
+ "ProjectStatusGroup": [
147
+ "IN_PROGRESS",
148
+ "UNDER_REVIEW",
149
+ "COMPLETED",
150
+ "REFUSED"
151
+ ],
152
+ "RpnBucket": [
153
+ "RANGE_1_20",
154
+ "RANGE_21_40",
155
+ "RANGE_41_100",
156
+ "RANGE_101_200",
157
+ "RANGE_201_PLUS"
158
+ ],
159
+ "ConstraintDirection": [
160
+ "ANCESTOR",
161
+ "DESCENDANT"
162
+ ],
163
+ "ConstraintMatchType": [
164
+ "EXACT",
165
+ "CONTAINS"
166
+ ],
167
+ "TreeSearchQueryMode": [
168
+ "REFERENCE_NODE",
169
+ "ANCHOR_PATTERN",
170
+ "CONTEXT_COMPLETION"
171
+ ],
172
+ "ExcelFileStatus": [
173
+ "CREATABLE",
174
+ "UPDATABLE",
175
+ "OUTDATED",
176
+ "UNKNOWN"
177
+ ],
178
+ "WorksheetCreationType": [
179
+ "NEW",
180
+ "REVISION"
181
+ ],
182
+ "AdditionalInfoFieldType": [
183
+ "TEXT",
184
+ "DATE",
185
+ "SELECT",
186
+ "LIST"
187
+ ],
188
+ "AdditionalInfoTypeMode": [
189
+ "TEXT",
190
+ "DATE",
191
+ "SELECT",
192
+ "LIST",
193
+ "LIST_PMS"
194
+ ],
195
+ "ApprovalAction": [
196
+ "APPROVE",
197
+ "REFUSE",
198
+ "ACCEPT",
199
+ "REJECT"
200
+ ],
201
+ "ApprovalBoardStatus": [
202
+ "REVIEW",
203
+ "ASK_MODIFY",
204
+ "REVIEWED",
205
+ "APPROVE",
206
+ "ASK_MODIFY_REVIEWED",
207
+ "APPROVED",
208
+ "SCORE",
209
+ "ASK_MODIFY_APPROVED",
210
+ "REFUSED",
211
+ "SCORE_PASS",
212
+ "SCORE_FAIL",
213
+ "COMPLETED",
214
+ "CONFIRM_VALIDITY",
215
+ "DATE_EXPIRED"
216
+ ],
217
+ "ApprovalStatus": [
218
+ "IN_PROGRESS",
219
+ "REFUSED",
220
+ "SELF_COMPLETED",
221
+ "REVIEW",
222
+ "APPROVE",
223
+ "SCORE",
224
+ "COMPLETED",
225
+ "ASK_MODIFY_REVIEW",
226
+ "ASK_MODIFY_APPROVE",
227
+ "DELAY",
228
+ "NA",
229
+ "CAN_MODIFY"
230
+ ],
231
+ "ApprovalStep": [
232
+ "WRITE",
233
+ "REVIEW",
234
+ "APPROVE",
235
+ "SCORE"
236
+ ],
237
+ "ApprovalStepItem": [
238
+ "REVIEW_OPINION",
239
+ "APPROVAL_OPINION",
240
+ "APPROVAL_DECISION",
241
+ "REVIEW_REFUSAL",
242
+ "SCORE_PASS",
243
+ "SCORE_FAIL",
244
+ "SCORE_REFUSAL"
245
+ ],
246
+ "ApprovalStepStatus": [
247
+ "PENDING",
248
+ "ACTIVE",
249
+ "COMPLETED",
250
+ "REFUSED"
251
+ ],
252
+ "BlockDiagramType": [
253
+ "FUNCTION",
254
+ "STRUCTURE",
255
+ "FUNCTION_STRUCTURE",
256
+ "STRUCTURE_FUNCTION",
257
+ "PROCESS",
258
+ "SUPER_SYSTEM",
259
+ "FUNCTION_ANALYSIS"
260
+ ],
261
+ "BlockNodeType": [
262
+ "FUNCTION",
263
+ "PART",
264
+ "SUB_FUNCTION",
265
+ "ASSEMBLY",
266
+ "NEW_CHANGE_ASSEMBLY",
267
+ "NEW_CHANGE_PART",
268
+ "NEW_CHANGE_PROCESS",
269
+ "SUPER_SYSTEM",
270
+ "TARGET"
271
+ ],
272
+ "BoardCategory": [
273
+ "APPROVAL",
274
+ "BLOCK_DIAGRAM",
275
+ "FMM_DIAGRAM",
276
+ "WORKSHEET",
277
+ "FTA",
278
+ "CONTROL_PLAN",
279
+ "INFO"
280
+ ],
281
+ "SymbolType": [
282
+ "TEXT",
283
+ "IMAGE"
284
+ ],
285
+ "AccessScope": [
286
+ "MY",
287
+ "DIVISION",
288
+ "ALL"
289
+ ],
290
+ "MailStatus": [
291
+ "CREATED",
292
+ "ACCEPTED",
293
+ "SEND_READY",
294
+ "SEND_OK",
295
+ "UNUSED",
296
+ "TEMPLATE_INFO_NOT_FOUND",
297
+ "TEMPLATE_FILE_NOT_FOUND",
298
+ "TEMPLATE_ERROR",
299
+ "UNKNOWN_DATA_MODEL_TYPE",
300
+ "DATA_MODEL_ERROR",
301
+ "CONNECTION_FAIL",
302
+ "SEND_FAIL",
303
+ "UNKNOWN_ERROR",
304
+ "HOLD"
305
+ ],
306
+ "FMMDiagramType": [
307
+ "UNUSED",
308
+ "NOT_SELECTED",
309
+ "TYPE_A",
310
+ "TYPE_C"
311
+ ],
312
+ "FmCheckpointNodeType": [
313
+ "ROOT",
314
+ "CATEGORY",
315
+ "GROUP",
316
+ "ITEM"
317
+ ],
318
+ "FMMBlockDiagramType": [
319
+ "FMM_FUNCTION",
320
+ "FMM_STRUCTURE",
321
+ "FMM_FUNCTION_STRUCTURE",
322
+ "FMM_STRUCTURE_FUNCTION",
323
+ "FMM_PROCESS"
324
+ ],
325
+ "FMMObjectType": [
326
+ "FAILURE_MODE",
327
+ "EFFECT",
328
+ "ITEM",
329
+ "EXTERNAL_ITEM",
330
+ "GROUP",
331
+ "CAUSE_U",
332
+ "CAUSE_I",
333
+ "STRESS",
334
+ "DESIGN",
335
+ "PROCESS"
336
+ ],
337
+ "FourMCategory": [
338
+ "MAN",
339
+ "MACHINE",
340
+ "MATERIAL",
341
+ "ENVIRONMENT"
342
+ ],
343
+ "CauseAnalysisLevel": [
344
+ "FIRST",
345
+ "SECOND"
346
+ ],
347
+ "ProjectJoinRequestStatus": [
348
+ "PENDING",
349
+ "APPROVED",
350
+ "REJECTED"
351
+ ],
352
+ "ProjectMemberRole": [
353
+ "LEADER",
354
+ "MEMBER",
355
+ "REVIEWER",
356
+ "APPROVAL",
357
+ "COMPLETION_REVIEWER",
358
+ "NONE"
359
+ ],
360
+ "ProjectTag": [
361
+ "NORMAL",
362
+ "MASTER",
363
+ "REFERENCE"
364
+ ],
365
+ "RecommendationItemStatus": [
366
+ "NOT_COMPLETED",
367
+ "IN_PROGRESS",
368
+ "DELAY",
369
+ "COMPLETED",
370
+ "ALL"
371
+ ],
372
+ "ScoringItemType": [
373
+ "SCORING_TYPE",
374
+ "S_PART",
375
+ "S_SCORING",
376
+ "S_VALUE"
377
+ ],
378
+ "FailureModeSortField": [
379
+ "NAME",
380
+ "RPN"
381
+ ],
382
+ "ProjectGroupBy": [
383
+ "DIVISION",
384
+ "ITEM"
385
+ ],
386
+ "MailTemplateCode": [
387
+ "CA0",
388
+ "CA1",
389
+ "CF1",
390
+ "CF2",
391
+ "CR3",
392
+ "CS1",
393
+ "CS2",
394
+ "FA2",
395
+ "FW2",
396
+ "HD0",
397
+ "NPW",
398
+ "PA2",
399
+ "PA4",
400
+ "PA6",
401
+ "PA8",
402
+ "PA9",
403
+ "PF2",
404
+ "PF4",
405
+ "PF6",
406
+ "PF8",
407
+ "PF9",
408
+ "PS0",
409
+ "PS2",
410
+ "PS4",
411
+ "PS6",
412
+ "PS8",
413
+ "PS9",
414
+ "PW1",
415
+ "PW2",
416
+ "PW4",
417
+ "PW6",
418
+ "PW8",
419
+ "PW9",
420
+ "TL0",
421
+ "TL1",
422
+ "PJ1",
423
+ "PJ2",
424
+ "PJ3",
425
+ "PJ4",
426
+ "PJ5"
427
+ ],
428
+ "ColumnDataType": [
429
+ "integer",
430
+ "boolean",
431
+ "text",
432
+ "date",
433
+ "refer"
434
+ ],
435
+ "ColumnTypeGroup": [
436
+ "ITEM_FUNCTION_GROUP",
437
+ "FAILURE_MODE_GROUP",
438
+ "FAILURE_EFFECT_GROUP",
439
+ "FAILURE_CAUSE_GROUP",
440
+ "RECOMMENDED_ACTION_GROUP"
441
+ ],
442
+ "WorksheetTemplateCategory": [
443
+ "AIAG",
444
+ "AIAG-VDA",
445
+ "FMEA-MSR",
446
+ "STANDARD"
447
+ ],
448
+ "ConditionLibraryType": [
449
+ "STRESS",
450
+ "DESIGN",
451
+ "PROCESS"
452
+ ],
453
+ "DocumentCategory": [
454
+ "SYSTEM_DEFINITION",
455
+ "WORKSHEET",
456
+ "BLOCK_DIAGRAM",
457
+ "FMM_DIAGRAM"
458
+ ],
459
+ "DocumentType": [
460
+ "UPLOAD",
461
+ "URL"
462
+ ],
463
+ "HighItemType": [
464
+ "HIGH_ITEM",
465
+ "HIGH_EFFECT"
466
+ ],
467
+ "RevisionActionCode": [
468
+ "CREATE_PROJECT",
469
+ "MODIFY_PROJECT",
470
+ "DELETE_PROJECT",
471
+ "JOIN_REQUEST",
472
+ "JOIN_APPROVED",
473
+ "JOIN_REJECTED",
474
+ "CREATE",
475
+ "COPY",
476
+ "MODIFY",
477
+ "UPDATE",
478
+ "REVISE",
479
+ "DELETE"
480
+ ],
481
+ "RevisionMenuCode": [
482
+ "PROJECT",
483
+ "BLOCK",
484
+ "FMM",
485
+ "WORKSHEET",
486
+ "ATTACHED_FILE",
487
+ "WORKSHEET_UNIT",
488
+ "CONTROL_PLAN"
489
+ ],
490
+ "SystemDefinitionConditionScope": [
491
+ "OWNED",
492
+ "CANDIDATE",
493
+ "ALL"
494
+ ],
495
+ "MatchType": [
496
+ "EXACT",
497
+ "CONTAINS"
498
+ ],
499
+ "ScoreFactor": [
500
+ "NODE_TYPE_MATCH",
501
+ "ATTRIBUTE_MATCH",
502
+ "ANCESTOR_MATCH",
503
+ "DESCENDANT_MATCH",
504
+ "TEXT_RELEVANCE",
505
+ "DEPTH_PENALTY"
506
+ ],
507
+ "ValidationStatus": [
508
+ "UNKNOWN",
509
+ "DUPLICATED_VALUE",
510
+ "INVALID_VALUE",
511
+ "INVALID_ID",
512
+ "INVALID_TYPE",
513
+ "INVALID_DATA_TYPE_INTEGER",
514
+ "INVALID_DATA_TYPE_BOOLEAN",
515
+ "INVALID_DATE_FORMAT",
516
+ "VALUE_OUT_OF_RANGE",
517
+ "ID_NOT_FOUND",
518
+ "REFERENCED_ID_NOT_FOUND",
519
+ "MISSING_ROOT",
520
+ "INVALID_RELATIONSHIP",
521
+ "ALREADY_PROCESSED"
522
+ ],
523
+ "MarkerType": [
524
+ "EXTERNAL_ITEM"
525
+ ],
526
+ "Risk": [
527
+ "H",
528
+ "M",
529
+ "L",
530
+ "NA"
531
+ ],
532
+ "WsColumnStylePreset": [
533
+ "WS_HEADER_LIGHT_TURQUOISE",
534
+ "WS_HEADER_GREY_25",
535
+ "WS_HEADER_LIGHT_BLUE",
536
+ "WS_HEADER_LIGHT_YELLOW",
537
+ "WS_HEADER_LIGHT_RED",
538
+ "WS_DATA",
539
+ "WS_DATA_READONLY"
540
+ ],
541
+ "WsFontStylePreset": [
542
+ "WS_FONT",
543
+ "WS_FONT_EFFECT",
544
+ "WS_FONT_DESIGN",
545
+ "WS_FONT_I_CAUSE",
546
+ "WS_FONT_PROCESS",
547
+ "WS_FONT_STRESS",
548
+ "WS_FONT_U_CAUSE",
549
+ "WS_FONT_CAUSE",
550
+ "WS_FONT_R",
551
+ "WS_FONT_RED",
552
+ "WS_FONT_GREEN",
553
+ "WS_FONT_EXTERNAL_ITEM"
554
+ ],
555
+ "WorksheetSaveFields": [
556
+ "FAILURE_MODE_WORKSHEET_ID",
557
+ "ROW_ID"
558
+ ],
559
+ "ExcelreportTemplate": [
560
+ "IDX_1",
561
+ "IDX_2",
562
+ "IDX_3"
563
+ ]
564
+ }
565
+ }
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ class ApiDocsServer {
28
28
  constructor() {
29
29
  this.server = new Server({
30
30
  name: "api-docs-mcp",
31
- version: "1.1.53",
31
+ version: "1.1.55",
32
32
  }, {
33
33
  capabilities: {
34
34
  resources: {},
@@ -192,7 +192,7 @@ class ApiDocsServer {
192
192
  },
193
193
  {
194
194
  name: "get_changes",
195
- description: "Get API endpoint changelog. Shows what endpoints/parameters were added, removed, or modified across versions.",
195
+ description: "Get API endpoint changelog. Shows what endpoints/parameters were added, removed, or modified across versions. Includes enum changes when available.",
196
196
  inputSchema: {
197
197
  type: "object",
198
198
  properties: {
@@ -208,6 +208,20 @@ class ApiDocsServer {
208
208
  required: [],
209
209
  },
210
210
  },
211
+ {
212
+ name: "get_enums",
213
+ description: "Get all Java enum definitions from the API codebase. Returns enum names and their constant values.",
214
+ inputSchema: {
215
+ type: "object",
216
+ properties: {
217
+ name: {
218
+ type: "string",
219
+ description: "Filter by enum name (partial match, case-insensitive). Omit to get all enums.",
220
+ },
221
+ },
222
+ required: [],
223
+ },
224
+ },
211
225
  ],
212
226
  };
213
227
  });
@@ -315,14 +329,8 @@ class ApiDocsServer {
315
329
  };
316
330
  }
317
331
  if (request.params.name === "get_changes") {
318
- const changelogPath = path.join(DATA_DIR, "changelog.json");
332
+ const changelogDir = path.join(DATA_DIR, "changelog");
319
333
  try {
320
- const raw = await fs.readFile(changelogPath, "utf-8");
321
- const changelog = JSON.parse(raw);
322
- const sinceVersion = request.params.arguments?.since_version
323
- ? String(request.params.arguments.since_version) : undefined;
324
- const exactVersion = request.params.arguments?.version
325
- ? String(request.params.arguments.version) : undefined;
326
334
  const parseVer = (v) => v.split(".").map(Number);
327
335
  const cmpVer = (a, b) => {
328
336
  for (let i = 0; i < 3; i++) {
@@ -331,18 +339,41 @@ class ApiDocsServer {
331
339
  }
332
340
  return 0;
333
341
  };
342
+ // Read all version files from changelog/
343
+ const files = await fs.readdir(changelogDir).catch(() => []);
344
+ const changelog = {};
345
+ for (const file of files) {
346
+ if (!file.endsWith(".json"))
347
+ continue;
348
+ const ver = file.replace(".json", "");
349
+ const raw = await fs.readFile(path.join(changelogDir, file), "utf-8");
350
+ changelog[ver] = JSON.parse(raw);
351
+ }
352
+ const sinceVersion = request.params.arguments?.since_version
353
+ ? String(request.params.arguments.since_version) : undefined;
354
+ const exactVersion = request.params.arguments?.version
355
+ ? String(request.params.arguments.version) : undefined;
334
356
  let result;
335
357
  if (exactVersion) {
336
358
  result = changelog[exactVersion] ? { [exactVersion]: changelog[exactVersion] } : {};
337
359
  }
338
360
  else if (sinceVersion) {
339
361
  const sinceArr = parseVer(sinceVersion);
340
- result = Object.fromEntries(Object.entries(changelog).filter(([v]) => cmpVer(parseVer(v), sinceArr) >= 0));
362
+ result = Object.fromEntries(Object.entries(changelog)
363
+ .filter(([v]) => v !== "next" && cmpVer(parseVer(v), sinceArr) >= 0)
364
+ .sort(([a], [b]) => cmpVer(parseVer(a), parseVer(b))));
365
+ // include "next" if present
366
+ if (changelog["next"])
367
+ result["next"] = changelog["next"];
341
368
  }
342
369
  else {
343
- // Latest version only
344
- const versions = Object.keys(changelog).sort((a, b) => cmpVer(parseVer(b), parseVer(a)));
370
+ // Latest numbered version only (+ "next" if present)
371
+ const versions = Object.keys(changelog)
372
+ .filter(v => v !== "next")
373
+ .sort((a, b) => cmpVer(parseVer(b), parseVer(a)));
345
374
  result = versions.length > 0 ? { [versions[0]]: changelog[versions[0]] } : {};
375
+ if (changelog["next"])
376
+ result["next"] = changelog["next"];
346
377
  }
347
378
  return {
348
379
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
@@ -354,6 +385,34 @@ class ApiDocsServer {
354
385
  };
355
386
  }
356
387
  }
388
+ if (request.params.name === "get_enums") {
389
+ const enumsPath = path.join(DATA_DIR, "enums.json");
390
+ try {
391
+ const raw = await fs.readFile(enumsPath, "utf-8");
392
+ const data = JSON.parse(raw);
393
+ const nameFilter = request.params.arguments?.name
394
+ ? String(request.params.arguments.name).toLowerCase() : undefined;
395
+ let enums = data.enums ?? {};
396
+ if (nameFilter) {
397
+ enums = Object.fromEntries(Object.entries(enums).filter(([k]) => k.toLowerCase().includes(nameFilter)));
398
+ }
399
+ return {
400
+ content: [{
401
+ type: "text",
402
+ text: JSON.stringify({
403
+ generated_at: data.generated_at,
404
+ count: Object.keys(enums).length,
405
+ enums,
406
+ }, null, 2),
407
+ }],
408
+ };
409
+ }
410
+ catch (_error) {
411
+ return {
412
+ content: [{ type: "text", text: JSON.stringify({ message: "No enum data available. Run collect_enums.py first." }) }],
413
+ };
414
+ }
415
+ }
357
416
  throw new McpError(ErrorCode.MethodNotFound, "Tool not found");
358
417
  });
359
418
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmea-api-mcp-server",
3
- "version": "1.1.53",
3
+ "version": "1.1.55",
4
4
  "description": "MCP server for serving API documentation from endpoints directory",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",