fmea-api-mcp-server 1.1.32 → 1.1.34

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.32",
31
+ version: "1.1.34",
32
32
  }, {
33
33
  capabilities: {
34
34
  resources: {},
@@ -257,13 +257,24 @@ export class OramaSearchService {
257
257
  // [R22] Apply tiny path-length penalty to break ties in same-resource results
258
258
  // Only applies when scores are extremely close (within 0.005)
259
259
  // This prevents over-specific sub-paths from outranking their parent paths
260
+ // [R30] Path-component match boost: when query tokens match a path segment, boost instead of penalize
260
261
  if (results.length > 1 && intent.resource) {
262
+ const queryTokens = safeQuery.toLowerCase().split(/\s+/).filter(t => t.length >= 2);
261
263
  const maxScore = results[0]?.score || 0;
262
264
  for (const r of results) {
263
265
  if (maxScore - (r.score || 0) < 0.005) {
264
- // Tiny penalty based on path segment count (prefer shallower paths within same resource)
265
- const pathSegments = (r.path || '').split('/').filter(Boolean).length;
266
- r.score = (r.score || 0) - pathSegments * 0.0001;
266
+ const pathSegments = (r.path || '').split('/').filter(Boolean);
267
+ // Check if any query token matches a non-parameterized path segment
268
+ const pathLeafSegments = pathSegments.filter(s => !s.startsWith('{'));
269
+ const hasPathTokenMatch = queryTokens.some(token => pathLeafSegments.some(seg => seg === token || seg.split('-').includes(token)));
270
+ if (hasPathTokenMatch) {
271
+ // Boost results where query tokens match path components
272
+ r.score = (r.score || 0) + 0.001;
273
+ }
274
+ else {
275
+ // Tiny penalty based on path segment count (prefer shallower paths within same resource)
276
+ r.score = (r.score || 0) - pathSegments.length * 0.0001;
277
+ }
267
278
  }
268
279
  }
269
280
  }
package/dist/synonyms.js CHANGED
@@ -48,10 +48,13 @@ export const RESOURCE_ALIASES = {
48
48
  'high-item': ['high item', 'high items', 'high priority item', 'high priority risk', 'high priority', 'top item', 'top risk', 'risk ranking', 'high risk', 'priority list', 'batch upsert items', 'reorder items'], // [R23] High items resource
49
49
  'workspace-bootstrap': ['bootstrap', 'workspace bootstrap', 'workspace init', 'workspace setup'], // [R21] Workspace bootstrap data
50
50
  'search-failure-mode': ['global failure mode', 'search failure mode', 'failure mode search', 'global search failure', 'cross-project failure mode'], // [R25] Global failure mode search
51
- 'dashboard': ['dashboard', 'dashboard summary', 'my projects summary', 'projects overview'], // [R25] Dashboard summary resource
52
- 'evaluation': ['evaluation', 'evaluation criteria', 'assessment', 'rating criteria', 'grading', 'scoring criteria'], // [R27] Evaluation criteria resource
51
+ 'dashboard': ['dashboard', 'dashboard summary', 'my projects summary', 'projects overview', 'action items', 'overdue', 'rpn distribution', 'project status'], // [R25] [R29] Dashboard summary resource
52
+ 'evaluation': ['evaluation', 'evaluation criteria', 'assessment', 'rating criteria', 'grading'], // [R27] Evaluation criteria resource — removed 'scoring criteria' (now dedicated resource [R30])
53
53
  'significance-criteria': ['significance criteria', 'significance', 'sod threshold', 'rpn threshold', 'severity occurrence detection', 'sod criteria'], // [R27] Significance criteria sub-resource
54
- 'classification': ['classification', 'classification group', 'classification item', 'symbol', 'label group', 'risk classification'], // [R28] Classification groups and items
54
+ 'classification': ['classification', 'classification group', 'classification item', 'symbol', 'label group', 'risk classification', 'project classification'], // [R28] [R29] Classification groups and items
55
+ 'fm-checkpoint': ['fm checkpoint', 'failure mode checkpoint', 'checkpoint', 'checklist', 'check item'], // [R30] FM Checkpoint tree management
56
+ 'scoring-criteria': ['scoring criteria', 'scoring', 'score criteria', 'completeness scoring', 'scoring tree'], // [R30] Scoring criteria tree management
57
+ 'process-symbol': ['process symbol', 'process symbols', 'flow chart symbol', 'flowchart symbol', 'process flow'], // [R30] Process flow chart symbols
55
58
  };
56
59
  export const SYNONYM_GROUPS = {
57
60
  // Read / Retrieve
@@ -151,6 +154,9 @@ export const SYNONYM_GROUPS = {
151
154
  // [R28] Classification Domain
152
155
  "classification": ["category", "label", "symbol", "group", "class", "tag"],
153
156
  "symbol": ["icon", "marker", "badge", "image", "label"],
157
+ // [R30] FM Checkpoint & Scoring Domain
158
+ "checkpoint": ["checklist", "check item", "verification", "audit item"],
159
+ "breadcrumb": ["path", "navigation", "hierarchy path", "ancestor"],
154
160
  };
155
161
  /**
156
162
  * Expands a single token into a list of synonyms including itself.
@@ -191,9 +191,9 @@
191
191
  "userLevel": {
192
192
  "type": "string",
193
193
  "enum": [
194
- "A",
195
- "N",
196
- "R"
194
+ "ADMIN",
195
+ "NORMAL",
196
+ "READER"
197
197
  ]
198
198
  },
199
199
  "createdAt": {
@@ -396,9 +396,9 @@
396
396
  "userLevel": {
397
397
  "type": "string",
398
398
  "enum": [
399
- "A",
400
- "N",
401
- "R"
399
+ "ADMIN",
400
+ "NORMAL",
401
+ "READER"
402
402
  ]
403
403
  },
404
404
  "createdAt": {
@@ -453,9 +453,9 @@
453
453
  "userLevel": {
454
454
  "type": "string",
455
455
  "enum": [
456
- "A",
457
- "N",
458
- "R"
456
+ "ADMIN",
457
+ "NORMAL",
458
+ "READER"
459
459
  ]
460
460
  }
461
461
  }
@@ -725,9 +725,9 @@
725
725
  "userLevel": {
726
726
  "type": "string",
727
727
  "enum": [
728
- "A",
729
- "N",
730
- "R"
728
+ "ADMIN",
729
+ "NORMAL",
730
+ "READER"
731
731
  ]
732
732
  },
733
733
  "createdAt": {
@@ -125,9 +125,9 @@
125
125
  "userLevel": {
126
126
  "type": "string",
127
127
  "enum": [
128
- "A",
129
- "N",
130
- "R"
128
+ "ADMIN",
129
+ "NORMAL",
130
+ "READER"
131
131
  ]
132
132
  },
133
133
  "creationDate": {
@@ -331,9 +331,9 @@
331
331
  "userLevel": {
332
332
  "type": "string",
333
333
  "enum": [
334
- "A",
335
- "N",
336
- "R"
334
+ "ADMIN",
335
+ "NORMAL",
336
+ "READER"
337
337
  ]
338
338
  },
339
339
  "creationDate": {