fmea-api-mcp-server 1.1.39 → 1.1.41

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/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.39",
31
+ version: "1.1.41",
32
32
  }, {
33
33
  capabilities: {
34
34
  resources: {},
package/dist/synonyms.js CHANGED
@@ -60,6 +60,7 @@ export const RESOURCE_ALIASES = {
60
60
  'process-symbol': ['process symbol', 'process symbols', 'flow chart symbol', 'flowchart symbol', 'process flow'], // [R30] Process flow chart symbols
61
61
  'additional-info': ['additional info', 'additional information', 'extra info', 'supplementary info', 'custom field', 'custom attribute', 'form field'], // [R31] Additional info template management
62
62
  'notice': ['notice', 'notices', 'announcement', 'bulletin', 'notification'], // [R32] Notice CRUD and visibility
63
+ 'tree-search': ['tree search', 'tree query', 'structure search', 'pattern search', 'subtree match', 'anchor pattern', 'context completion', 'reference node'], // [R35] Tree search query
63
64
  };
64
65
  export const SYNONYM_GROUPS = {
65
66
  // Read / Retrieve
@@ -13,11 +13,11 @@ export class ScoreCalculator {
13
13
  // [R17] Related Resources Whitelist (Bidirectional validity)
14
14
  // These pairs are considered "safe" and will NOT trigger a mismatch penalty.
15
15
  static RELATED_RESOURCES = {
16
- 'block-diagram': ['block-node', 'node'],
16
+ 'block-diagram': ['block-node', 'node', 'tree-search'], // [R35]
17
17
  'block-node': ['block-diagram'],
18
18
  'fault-tree': ['failure-mode'],
19
19
  'failure-mode': ['fault-tree', 'fmm-diagram'], // FTA contains failure modes, FMM is a diagram view
20
- 'fmm-diagram': ['failure-mode'], // [R19] FMM diagram is closely related to failure modes
20
+ 'fmm-diagram': ['failure-mode', 'tree-search'], // [R19] [R35]
21
21
  'project': ['document', 'file', 'member', 'join-request', 'worksheet', 'block-diagram'], // Project contains everything
22
22
  'knowledge': ['category'],
23
23
  'category': ['knowledge'],
@@ -27,6 +27,7 @@ export class ScoreCalculator {
27
27
  'system': ['context-version'],
28
28
  'evaluation': ['significance-criteria'], // [R33]
29
29
  'significance-criteria': ['evaluation'], // [R33]
30
+ 'tree-search': ['block-diagram', 'fmm-diagram', 'failure-mode'], // [R35] Tree search spans FMM and block-diagram domains
30
31
  'join-request': ['project', 'user', 'member'],
31
32
  'admin-user': ['user'], // [R19]
32
33
  'user': ['admin-user'] // [R19]
@@ -345,7 +345,7 @@
345
345
  {
346
346
  "name": "page",
347
347
  "in": "query",
348
- "description": "Page number (0 = all, default: 1)",
348
+ "description": "Page number (default: 1)",
349
349
  "schema": {
350
350
  "type": "integer",
351
351
  "default": 1,
@@ -355,7 +355,7 @@
355
355
  {
356
356
  "name": "size",
357
357
  "in": "query",
358
- "description": "Page size (default: 50)",
358
+ "description": "Page size (default: 50, max: 1000)",
359
359
  "schema": {
360
360
  "type": "integer",
361
361
  "default": 50,
@@ -33,7 +33,7 @@
33
33
  {
34
34
  "name": "page",
35
35
  "in": "query",
36
- "description": "Page number (0 = all, default: 1)",
36
+ "description": "Page number (default: 1)",
37
37
  "schema": {
38
38
  "type": "integer",
39
39
  "default": 1,
@@ -43,7 +43,7 @@
43
43
  {
44
44
  "name": "size",
45
45
  "in": "query",
46
- "description": "Page size (default: 50)",
46
+ "description": "Page size (default: 50, max: 1000)",
47
47
  "schema": {
48
48
  "type": "integer",
49
49
  "default": 50,
@@ -530,7 +530,7 @@
530
530
  {
531
531
  "name": "page",
532
532
  "in": "query",
533
- "description": "Page number (0 = all, default: 1)",
533
+ "description": "Page number (default: 1)",
534
534
  "schema": {
535
535
  "type": "integer",
536
536
  "default": 1,
@@ -540,7 +540,7 @@
540
540
  {
541
541
  "name": "size",
542
542
  "in": "query",
543
- "description": "Page size (default: 50)",
543
+ "description": "Page size (default: 50, max: 1000)",
544
544
  "schema": {
545
545
  "type": "integer",
546
546
  "default": 50,
@@ -91,7 +91,7 @@
91
91
  {
92
92
  "name": "page",
93
93
  "in": "query",
94
- "description": "Page number (0 = all, default: 1)",
94
+ "description": "Page number (default: 1)",
95
95
  "schema": {
96
96
  "type": "integer",
97
97
  "default": 1,
@@ -101,7 +101,7 @@
101
101
  {
102
102
  "name": "size",
103
103
  "in": "query",
104
- "description": "Page size (default: 50)",
104
+ "description": "Page size (default: 50, max: 1000)",
105
105
  "schema": {
106
106
  "type": "integer",
107
107
  "default": 50,
@@ -442,7 +442,7 @@
442
442
  {
443
443
  "name": "page",
444
444
  "in": "query",
445
- "description": "Page number (0 = all, default: 1)",
445
+ "description": "Page number (default: 1)",
446
446
  "schema": {
447
447
  "type": "integer",
448
448
  "default": 1,
@@ -452,7 +452,7 @@
452
452
  {
453
453
  "name": "size",
454
454
  "in": "query",
455
- "description": "Page size (default: 50)",
455
+ "description": "Page size (default: 50, max: 1000)",
456
456
  "schema": {
457
457
  "type": "integer",
458
458
  "default": 50,
@@ -82,7 +82,7 @@
82
82
  {
83
83
  "name": "page",
84
84
  "in": "query",
85
- "description": "Page number (0 = all, default: 1)",
85
+ "description": "Page number (default: 1)",
86
86
  "schema": {
87
87
  "type": "integer",
88
88
  "default": 1,
@@ -92,7 +92,7 @@
92
92
  {
93
93
  "name": "size",
94
94
  "in": "query",
95
- "description": "Page size (default: 50)",
95
+ "description": "Page size (default: 50, max: 1000)",
96
96
  "schema": {
97
97
  "type": "integer",
98
98
  "default": 50,
@@ -72,7 +72,7 @@
72
72
  {
73
73
  "name": "page",
74
74
  "in": "query",
75
- "description": "Page number (default: 1, 0 = all only when q is provided)",
75
+ "description": "Page number (default: 1)",
76
76
  "schema": {
77
77
  "type": "integer",
78
78
  "default": 1,
@@ -130,6 +130,9 @@
130
130
  "name": {
131
131
  "type": "string"
132
132
  },
133
+ "blockDiagramId": {
134
+ "type": "string"
135
+ },
133
136
  "blockType": {
134
137
  "type": "string",
135
138
  "enum": [
@@ -380,7 +383,7 @@
380
383
  {
381
384
  "name": "page",
382
385
  "in": "query",
383
- "description": "Page number (0 = all, default: 1)",
386
+ "description": "Page number (default: 1)",
384
387
  "schema": {
385
388
  "type": "integer",
386
389
  "default": 1,
@@ -390,7 +393,7 @@
390
393
  {
391
394
  "name": "size",
392
395
  "in": "query",
393
- "description": "Page size (default: 50)",
396
+ "description": "Page size (default: 50, max: 1000)",
394
397
  "schema": {
395
398
  "type": "integer",
396
399
  "default": 50,
@@ -76,7 +76,7 @@
76
76
  "method": "GET",
77
77
  "operationId": "list_11",
78
78
  "summary": "List synonym groups",
79
- "description": "Returns synonym groups with optional keyword filtering and paging. Use page=0 to retrieve all groups without paging.",
79
+ "description": "Returns synonym groups with optional keyword filtering and paging.",
80
80
  "tags": [
81
81
  "Synonym"
82
82
  ],
@@ -101,7 +101,7 @@
101
101
  {
102
102
  "name": "page",
103
103
  "in": "query",
104
- "description": "Page number (0 = all, default: 1)",
104
+ "description": "Page number (default: 1)",
105
105
  "schema": {
106
106
  "type": "integer",
107
107
  "default": 1,
@@ -111,7 +111,7 @@
111
111
  {
112
112
  "name": "size",
113
113
  "in": "query",
114
- "description": "Page size (default: 50)",
114
+ "description": "Page size (default: 50, max: 1000)",
115
115
  "schema": {
116
116
  "type": "integer",
117
117
  "default": 50,
@@ -0,0 +1,269 @@
1
+ {
2
+ "category": "Tree Search",
3
+ "version": "v2",
4
+ "description": "",
5
+ "endpoints": [
6
+ {
7
+ "path": "/api/v2/tree-search/{domain}/query",
8
+ "method": "POST",
9
+ "operationId": "query",
10
+ "summary": "Execute tree search query",
11
+ "description": "Executes a tree-search query for the selected domain using referenceNode, anchorPattern, or contextCompletion mode. Validates query structure, size limits, and domain availability, then returns paged tree search matches.",
12
+ "tags": [
13
+ "Tree Search"
14
+ ],
15
+ "parameters": [
16
+ {
17
+ "name": "domain",
18
+ "in": "path",
19
+ "description": "Tree search domain path segment. Allowed values are fmm or block-diagram.",
20
+ "required": true,
21
+ "schema": {
22
+ "type": "string"
23
+ }
24
+ }
25
+ ],
26
+ "requestBody": {
27
+ "content": {
28
+ "application/json": {
29
+ "schema": {
30
+ "type": "object",
31
+ "properties": {
32
+ "queryMode": {
33
+ "type": "string",
34
+ "enum": [
35
+ "referenceNode",
36
+ "anchorPattern",
37
+ "contextCompletion"
38
+ ]
39
+ },
40
+ "query": {
41
+ "type": "object"
42
+ },
43
+ "scope": {
44
+ "type": "object",
45
+ "properties": {
46
+ "projectId": {
47
+ "type": "string"
48
+ },
49
+ "projectIds": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string"
53
+ }
54
+ },
55
+ "scope": {
56
+ "type": "string",
57
+ "enum": [
58
+ "MY",
59
+ "DIVISION",
60
+ "ALL"
61
+ ]
62
+ }
63
+ }
64
+ },
65
+ "options": {
66
+ "type": "object",
67
+ "properties": {
68
+ "ignoreSiblingOrder": {
69
+ "type": "boolean"
70
+ },
71
+ "allowExtraChildren": {
72
+ "type": "boolean"
73
+ },
74
+ "allowDescendantMatch": {
75
+ "type": "boolean"
76
+ },
77
+ "depthTolerance": {
78
+ "type": "integer",
79
+ "format": "int32"
80
+ },
81
+ "minScore": {
82
+ "type": "number",
83
+ "format": "double"
84
+ }
85
+ }
86
+ },
87
+ "page": {
88
+ "type": "integer",
89
+ "format": "int32"
90
+ },
91
+ "size": {
92
+ "type": "integer",
93
+ "format": "int32"
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ },
100
+ "responses": {
101
+ "default": {
102
+ "description": "default response",
103
+ "content": {
104
+ "application/json": {
105
+ "schema": {
106
+ "type": "object",
107
+ "properties": {
108
+ "items": {
109
+ "type": "array",
110
+ "items": {
111
+ "type": "object",
112
+ "properties": {
113
+ "candidateId": {
114
+ "type": "string"
115
+ },
116
+ "matchedNodeId": {
117
+ "type": "string"
118
+ },
119
+ "projectId": {
120
+ "type": "string"
121
+ },
122
+ "projectName": {
123
+ "type": "string"
124
+ },
125
+ "domain": {
126
+ "type": "string"
127
+ },
128
+ "score": {
129
+ "type": "number",
130
+ "format": "double"
131
+ },
132
+ "reasons": {
133
+ "type": "array",
134
+ "items": {
135
+ "type": "string"
136
+ }
137
+ },
138
+ "subtree": {
139
+ "type": "object",
140
+ "properties": {
141
+ "id": {
142
+ "type": "string"
143
+ },
144
+ "typeKey": {
145
+ "type": "string"
146
+ },
147
+ "name": {
148
+ "type": "string"
149
+ },
150
+ "attributes": {
151
+ "type": "object"
152
+ },
153
+ "children": {
154
+ "type": "array",
155
+ "items": {
156
+ "type": "object",
157
+ "description": "(circular: TreeSearchNodeDTO)"
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ },
165
+ "comparison": {
166
+ "type": "object",
167
+ "properties": {
168
+ "effectCandidates": {
169
+ "type": "array",
170
+ "items": {
171
+ "type": "object",
172
+ "properties": {
173
+ "candidateId": {
174
+ "type": "string"
175
+ },
176
+ "projectId": {
177
+ "type": "string"
178
+ },
179
+ "typeKey": {
180
+ "type": "string"
181
+ },
182
+ "name": {
183
+ "type": "string"
184
+ },
185
+ "typedName": {
186
+ "type": "string"
187
+ },
188
+ "score": {
189
+ "type": "number",
190
+ "format": "double"
191
+ }
192
+ }
193
+ }
194
+ },
195
+ "causeCandidates": {
196
+ "type": "array",
197
+ "items": {
198
+ "type": "object",
199
+ "properties": {
200
+ "candidateId": {
201
+ "type": "string"
202
+ },
203
+ "projectId": {
204
+ "type": "string"
205
+ },
206
+ "typeKey": {
207
+ "type": "string"
208
+ },
209
+ "name": {
210
+ "type": "string"
211
+ },
212
+ "typedName": {
213
+ "type": "string"
214
+ },
215
+ "score": {
216
+ "type": "number",
217
+ "format": "double"
218
+ }
219
+ }
220
+ }
221
+ },
222
+ "factorCandidates": {
223
+ "type": "array",
224
+ "items": {
225
+ "type": "object",
226
+ "properties": {
227
+ "candidateId": {
228
+ "type": "string"
229
+ },
230
+ "projectId": {
231
+ "type": "string"
232
+ },
233
+ "typeKey": {
234
+ "type": "string"
235
+ },
236
+ "name": {
237
+ "type": "string"
238
+ },
239
+ "typedName": {
240
+ "type": "string"
241
+ },
242
+ "score": {
243
+ "type": "number",
244
+ "format": "double"
245
+ }
246
+ }
247
+ }
248
+ }
249
+ }
250
+ },
251
+ "page": {
252
+ "type": "integer"
253
+ },
254
+ "size": {
255
+ "type": "integer"
256
+ },
257
+ "total": {
258
+ "type": "integer",
259
+ "format": "int64"
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ }
268
+ ]
269
+ }
@@ -54,7 +54,7 @@
54
54
  {
55
55
  "name": "page",
56
56
  "in": "query",
57
- "description": "Page number (0 = all, default: 1)",
57
+ "description": "Page number (default: 1)",
58
58
  "schema": {
59
59
  "type": "integer",
60
60
  "default": 1,
@@ -64,7 +64,7 @@
64
64
  {
65
65
  "name": "size",
66
66
  "in": "query",
67
- "description": "Page size (default: 50)",
67
+ "description": "Page size (default: 50, max: 1000)",
68
68
  "schema": {
69
69
  "type": "integer",
70
70
  "default": 50,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmea-api-mcp-server",
3
- "version": "1.1.39",
3
+ "version": "1.1.41",
4
4
  "description": "MCP server for serving API documentation from endpoints directory",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",