elasticsearch-mcp-vsee 0.5.13 → 0.5.15

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 (59) hide show
  1. package/build/server.d.ts +2 -9
  2. package/build/server.d.ts.map +1 -1
  3. package/build/server.js +24 -445
  4. package/build/server.js.map +1 -1
  5. package/build/tools/base-tool.d.ts +4 -2
  6. package/build/tools/base-tool.d.ts.map +1 -1
  7. package/build/tools/base-tool.js +10 -3
  8. package/build/tools/base-tool.js.map +1 -1
  9. package/build/tools/find-entities-by-metric.d.ts +1 -0
  10. package/build/tools/find-entities-by-metric.d.ts.map +1 -1
  11. package/build/tools/find-entities-by-metric.js +4 -2
  12. package/build/tools/find-entities-by-metric.js.map +1 -1
  13. package/build/tools/get-index-fields.d.ts +38 -4
  14. package/build/tools/get-index-fields.d.ts.map +1 -1
  15. package/build/tools/get-index-fields.js +36 -49
  16. package/build/tools/get-index-fields.js.map +1 -1
  17. package/build/tools/get-platform-breakdown.d.ts +1 -0
  18. package/build/tools/get-platform-breakdown.d.ts.map +1 -1
  19. package/build/tools/get-platform-breakdown.js +7 -5
  20. package/build/tools/get-platform-breakdown.js.map +1 -1
  21. package/build/tools/get-rating-distribution.d.ts +1 -0
  22. package/build/tools/get-rating-distribution.d.ts.map +1 -1
  23. package/build/tools/get-rating-distribution.js +6 -4
  24. package/build/tools/get-rating-distribution.js.map +1 -1
  25. package/build/tools/get-subscription-breakdown.d.ts +1 -0
  26. package/build/tools/get-subscription-breakdown.d.ts.map +1 -1
  27. package/build/tools/get-subscription-breakdown.js +5 -3
  28. package/build/tools/get-subscription-breakdown.js.map +1 -1
  29. package/build/tools/get-usage-leaderboard.d.ts +1 -0
  30. package/build/tools/get-usage-leaderboard.d.ts.map +1 -1
  31. package/build/tools/get-usage-leaderboard.js +6 -4
  32. package/build/tools/get-usage-leaderboard.js.map +1 -1
  33. package/build/tools/get-usage-profile.d.ts +1 -0
  34. package/build/tools/get-usage-profile.d.ts.map +1 -1
  35. package/build/tools/get-usage-profile.js +5 -3
  36. package/build/tools/get-usage-profile.js.map +1 -1
  37. package/build/tools/get-visit-trends.d.ts +7 -6
  38. package/build/tools/get-visit-trends.d.ts.map +1 -1
  39. package/build/tools/get-visit-trends.js +16 -3
  40. package/build/tools/get-visit-trends.js.map +1 -1
  41. package/build/tools/health-check.d.ts +20 -0
  42. package/build/tools/health-check.d.ts.map +1 -0
  43. package/build/tools/health-check.js +40 -0
  44. package/build/tools/health-check.js.map +1 -0
  45. package/build/tools/top-change.d.ts +1 -0
  46. package/build/tools/top-change.d.ts.map +1 -1
  47. package/build/tools/top-change.js +7 -5
  48. package/build/tools/top-change.js.map +1 -1
  49. package/build/tools/types.d.ts +1 -2
  50. package/build/tools/types.d.ts.map +1 -1
  51. package/build/utils/date-math.d.ts +7 -1
  52. package/build/utils/date-math.d.ts.map +1 -1
  53. package/build/utils/date-math.js +74 -29
  54. package/build/utils/date-math.js.map +1 -1
  55. package/build/utils/schema-converter.d.ts +17 -0
  56. package/build/utils/schema-converter.d.ts.map +1 -0
  57. package/build/utils/schema-converter.js +101 -0
  58. package/build/utils/schema-converter.js.map +1 -0
  59. package/package.json +1 -1
@@ -8,43 +8,88 @@ exports.parseDateMath = parseDateMath;
8
8
  exports.capTimePeriod = capTimePeriod;
9
9
  /**
10
10
  * Resolve a date string (ISO or relative math) to a Javascript Date object
11
- * @param dateStr - Date string (e.g., "now", "now-30d", "2023-01-01")
11
+ * Supports:
12
+ * - "now"
13
+ * - Relative math: "now-1d", "now+2w", "now-1M"
14
+ * - Rounding: "now/d", "now/M", "now/y"
15
+ * - Combined: "now-1d/d"
16
+ *
17
+ * @param dateStr - Date string
12
18
  * @returns Date object
13
19
  * @throws Error if date format is invalid
14
20
  */
15
21
  function resolveDate(dateStr) {
16
- // Handle "now"
17
22
  if (dateStr === 'now') {
18
23
  return new Date();
19
24
  }
20
- // Handle relative math "now-..."
21
- if (dateStr.startsWith('now-')) {
22
- const match = dateStr.match(/now-(\d+)([dwMy]|\+)?/);
23
- if (!match) {
24
- throw new Error(`Invalid relative date format: ${dateStr}`);
25
- }
26
- const value = parseInt(match[1], 10);
27
- const unit = match[2];
25
+ // Handle standard Elasticsearch date math: now[+|-][num][unit][/rounding]
26
+ if (dateStr.startsWith('now')) {
28
27
  const now = new Date();
29
- switch (unit) {
30
- case 'd':
31
- case 'D':
32
- now.setDate(now.getDate() - value);
33
- break;
34
- case 'w':
35
- case 'W':
36
- now.setDate(now.getDate() - (value * 7));
37
- break;
38
- case 'M':
39
- now.setMonth(now.getMonth() - value);
40
- break;
41
- case 'y':
42
- case 'Y':
43
- now.setFullYear(now.getFullYear() - value);
44
- break;
45
- default:
46
- // Default to days if unit is missing or unknown (safe fallback for simple cases)
47
- now.setDate(now.getDate() - value);
28
+ let workingStr = dateStr.substring(3); // Remove 'now'
29
+ // 1. Parse Offset (e.g. -1d, +2w)
30
+ // Match optional +/- followed by digits and unit
31
+ const offsetMatch = workingStr.match(/^([+-])(\d+)([dMwYy])/);
32
+ if (offsetMatch) {
33
+ const operator = offsetMatch[1];
34
+ const value = parseInt(offsetMatch[2], 10);
35
+ const unit = offsetMatch[3];
36
+ const multiplier = operator === '-' ? -1 : 1;
37
+ const amount = value * multiplier;
38
+ switch (unit) {
39
+ case 'd':
40
+ case 'D':
41
+ now.setDate(now.getDate() + amount);
42
+ break;
43
+ case 'w':
44
+ case 'W':
45
+ now.setDate(now.getDate() + (amount * 7));
46
+ break;
47
+ case 'M':
48
+ now.setMonth(now.getMonth() + amount);
49
+ break;
50
+ case 'y':
51
+ case 'Y':
52
+ now.setFullYear(now.getFullYear() + amount);
53
+ break;
54
+ }
55
+ // Advance string past the offset
56
+ workingStr = workingStr.substring(offsetMatch[0].length);
57
+ }
58
+ // 2. Parse Rounding (e.g. /d, /M)
59
+ // Check if remaining string starts with /
60
+ if (workingStr.startsWith('/')) {
61
+ const roundingUnit = workingStr.substring(1, 2); // get char after /
62
+ switch (roundingUnit) {
63
+ case 'd':
64
+ case 'D':
65
+ now.setHours(0, 0, 0, 0);
66
+ break;
67
+ case 'w':
68
+ case 'W':
69
+ // Set to previous Monday (or Sunday depending on locale, standard ES is Monday iirc but let's stick to simple day rounding for now or 0 day of week)
70
+ // For simplicity/safety let's assume Sunday=0. ES uses Monday as start of week usually.
71
+ // Let's implement Monday rounding:
72
+ const day = now.getDay();
73
+ const diff = now.getDate() - day + (day === 0 ? -6 : 1); // adjust when day is sunday
74
+ now.setDate(diff);
75
+ now.setHours(0, 0, 0, 0);
76
+ break;
77
+ case 'M':
78
+ now.setDate(1);
79
+ now.setHours(0, 0, 0, 0);
80
+ break;
81
+ case 'y':
82
+ case 'Y':
83
+ now.setMonth(0, 1);
84
+ now.setHours(0, 0, 0, 0);
85
+ break;
86
+ }
87
+ workingStr = workingStr.substring(2);
88
+ }
89
+ if (workingStr.length > 0) {
90
+ // If there's still junk left, it might be invalid or unsupported syntax
91
+ // For now, if we processed something, ignoring trailing junk might be risky, but throwing is safer
92
+ throw new Error(`Invalid or unsupported date math format: ${dateStr}`);
48
93
  }
49
94
  return now;
50
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date-math.js","sourceRoot":"","sources":["../../src/utils/date-math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-math.js","sourceRoot":"","sources":["../../src/utils/date-math.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAcH,kCA2FC;AAMD,sCAsBC;AAUD,sCAuBC;AApKD;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CAAC,OAAe;IACzC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,0EAA0E;IAC1E,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QAEtD,kCAAkC;QAClC,iDAAiD;QACjD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAE5B,MAAM,UAAU,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;YAElC,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;oBACpC,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC1C,MAAM;gBACR,KAAK,GAAG;oBACN,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;oBACtC,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC;oBAC5C,MAAM;YACV,CAAC;YAED,iCAAiC;YACjC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,kCAAkC;QAClC,0CAA0C;QAC1C,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB;YAEpE,QAAQ,YAAY,EAAE,CAAC;gBACrB,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzB,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,qJAAqJ;oBACrJ,wFAAwF;oBACxF,mCAAmC;oBACnC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;oBACrF,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzB,MAAM;gBACR,KAAK,GAAG;oBACN,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACf,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzB,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzB,MAAM;YACV,CAAC;YACD,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,wEAAwE;YACxE,mGAAmG;YACnG,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,gGAAgG;QAChG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,OAAO,KAAK,CAAC;YAC/C,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,OAAO,KAAK,GAAG,CAAC,CAAC;YACnD,IAAI,IAAI,KAAK,GAAG;gBAAE,OAAO,KAAK,GAAG,EAAE,CAAC;YACpC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,OAAO,KAAK,GAAG,GAAG,CAAC;YACrD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAC3B,SAAiB,EACjB,OAAe,EACf,OAAe,EACf,MAAsD;IAEtD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;IAEjD,IAAI,UAAU,GAAG,OAAO,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;YAC7D,iBAAiB,EAAE,SAAS;YAC5B,eAAe,EAAE,OAAO;YACxB,kBAAkB,EAAE,UAAU;YAC9B,iBAAiB,EAAE,aAAa;YAChC,eAAe,EAAE,OAAO;YACxB,kBAAkB,EAAE,OAAO;SAC5B,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ export interface ToolDefinition {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: 'object';
7
+ properties: Record<string, any>;
8
+ required: string[];
9
+ additionalProperties: boolean;
10
+ };
11
+ }
12
+ /**
13
+ * Converts a Zod schema to an MCP-compatible JSON schema for tool inputs.
14
+ * Takes metadata from .describe() and validation constraints.
15
+ */
16
+ export declare function zodToMcpToolSchema(schema: z.ZodObject<any> | z.ZodEffects<any>): ToolDefinition['inputSchema'];
17
+ //# sourceMappingURL=schema-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-converter.d.ts","sourceRoot":"","sources":["../../src/utils/schema-converter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACT,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,oBAAoB,EAAE,OAAO,CAAC;KACjC,CAAC;CACL;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,CA6F9G"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zodToMcpToolSchema = zodToMcpToolSchema;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Converts a Zod schema to an MCP-compatible JSON schema for tool inputs.
7
+ * Takes metadata from .describe() and validation constraints.
8
+ */
9
+ function zodToMcpToolSchema(schema) {
10
+ // Unwrap effects (refinements/transforms) to get the underlying object schema
11
+ let effectiveSchema = schema;
12
+ while (effectiveSchema instanceof zod_1.z.ZodEffects) {
13
+ effectiveSchema = effectiveSchema._def.schema;
14
+ }
15
+ if (!(effectiveSchema instanceof zod_1.z.ZodObject)) {
16
+ throw new Error(`Tool schema must be a ZodObject or ZodEffects wrapping a ZodObject. Got: ${effectiveSchema.constructor.name}`);
17
+ }
18
+ const shape = effectiveSchema.shape;
19
+ const properties = {};
20
+ const required = [];
21
+ for (const [key, value] of Object.entries(shape)) {
22
+ const fieldSchema = value; // Helper cast
23
+ const description = fieldSchema.description;
24
+ // Determine type and constraints
25
+ let type = 'string'; // default
26
+ let enumValues;
27
+ let minimum;
28
+ let maximum;
29
+ let defaultVal;
30
+ let items;
31
+ // Unwrap optional/default to get inner type
32
+ let innerSchema = fieldSchema;
33
+ let isOptional = false;
34
+ // Handle Optional/Default wrappers loop
35
+ while (innerSchema instanceof zod_1.z.ZodOptional || innerSchema instanceof zod_1.z.ZodDefault) {
36
+ if (innerSchema instanceof zod_1.z.ZodOptional) {
37
+ isOptional = true;
38
+ innerSchema = innerSchema.unwrap();
39
+ }
40
+ else if (innerSchema instanceof zod_1.z.ZodDefault) {
41
+ isOptional = true; // Defaults are effectively optional inputs
42
+ defaultVal = innerSchema._def.defaultValue();
43
+ innerSchema = innerSchema.removeDefault();
44
+ }
45
+ }
46
+ // Inspect inner type
47
+ if (innerSchema instanceof zod_1.z.ZodString) {
48
+ type = 'string';
49
+ }
50
+ else if (innerSchema instanceof zod_1.z.ZodNumber) {
51
+ type = 'number';
52
+ if (innerSchema.minValue !== null)
53
+ minimum = innerSchema.minValue;
54
+ if (innerSchema.maxValue !== null)
55
+ maximum = innerSchema.maxValue;
56
+ // Int check? (Zod doesn't expose easily without checking checks array)
57
+ }
58
+ else if (innerSchema instanceof zod_1.z.ZodBoolean) {
59
+ type = 'boolean';
60
+ }
61
+ else if (innerSchema instanceof zod_1.z.ZodEnum) {
62
+ type = 'string';
63
+ enumValues = innerSchema._def.values;
64
+ }
65
+ else if (innerSchema instanceof zod_1.z.ZodArray) {
66
+ type = 'array';
67
+ // Simplified array handling (assuming object array for now based on known usage)
68
+ if (innerSchema.element instanceof zod_1.z.ZodObject) {
69
+ items = {
70
+ type: 'object',
71
+ properties: zodToMcpToolSchema(innerSchema.element).properties,
72
+ required: zodToMcpToolSchema(innerSchema.element).required,
73
+ additionalProperties: false
74
+ };
75
+ }
76
+ else {
77
+ // Fallback for primitive arrays if needed, though mostly unused in current tools
78
+ items = { type: 'string' };
79
+ }
80
+ }
81
+ if (!isOptional) {
82
+ required.push(key);
83
+ }
84
+ properties[key] = {
85
+ type,
86
+ description,
87
+ ...(enumValues && { enum: enumValues }),
88
+ ...(minimum !== undefined && { minimum }),
89
+ ...(maximum !== undefined && { maximum }),
90
+ ...(defaultVal !== undefined && { default: defaultVal }),
91
+ ...(items && { items })
92
+ };
93
+ }
94
+ return {
95
+ type: 'object',
96
+ properties,
97
+ required,
98
+ additionalProperties: false,
99
+ };
100
+ }
101
+ //# sourceMappingURL=schema-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-converter.js","sourceRoot":"","sources":["../../src/utils/schema-converter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elasticsearch-mcp-vsee",
3
- "version": "0.5.13",
3
+ "version": "0.5.15",
4
4
  "description": "Secure MCP server for Elasticsearch integration with comprehensive tools and Elastic Cloud support (fork with improved health check, get_index_fields tool, enhanced query flexibility, and consolidated analytics tools)",
5
5
  "main": "build/index.js",
6
6
  "bin": {