elasticsearch-mcp-vsee-stage 0.5.13

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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +304 -0
  3. package/build/config.d.ts +76 -0
  4. package/build/config.d.ts.map +1 -0
  5. package/build/config.js +63 -0
  6. package/build/config.js.map +1 -0
  7. package/build/elasticsearch/client.d.ts +26 -0
  8. package/build/elasticsearch/client.d.ts.map +1 -0
  9. package/build/elasticsearch/client.js +131 -0
  10. package/build/elasticsearch/client.js.map +1 -0
  11. package/build/errors/handlers.d.ts +44 -0
  12. package/build/errors/handlers.d.ts.map +1 -0
  13. package/build/errors/handlers.js +231 -0
  14. package/build/errors/handlers.js.map +1 -0
  15. package/build/index.d.ts +9 -0
  16. package/build/index.d.ts.map +1 -0
  17. package/build/index.js +28 -0
  18. package/build/index.js.map +1 -0
  19. package/build/logger.d.ts +31 -0
  20. package/build/logger.d.ts.map +1 -0
  21. package/build/logger.js +81 -0
  22. package/build/logger.js.map +1 -0
  23. package/build/server.d.ts +23 -0
  24. package/build/server.d.ts.map +1 -0
  25. package/build/server.js +571 -0
  26. package/build/server.js.map +1 -0
  27. package/build/tools/find-entities-by-metric.d.ts +51 -0
  28. package/build/tools/find-entities-by-metric.d.ts.map +1 -0
  29. package/build/tools/find-entities-by-metric.js +375 -0
  30. package/build/tools/find-entities-by-metric.js.map +1 -0
  31. package/build/tools/get-index-fields.d.ts +26 -0
  32. package/build/tools/get-index-fields.d.ts.map +1 -0
  33. package/build/tools/get-index-fields.js +94 -0
  34. package/build/tools/get-index-fields.js.map +1 -0
  35. package/build/tools/get-platform-breakdown.d.ts +42 -0
  36. package/build/tools/get-platform-breakdown.d.ts.map +1 -0
  37. package/build/tools/get-platform-breakdown.js +305 -0
  38. package/build/tools/get-platform-breakdown.js.map +1 -0
  39. package/build/tools/get-rating-distribution.d.ts +48 -0
  40. package/build/tools/get-rating-distribution.d.ts.map +1 -0
  41. package/build/tools/get-rating-distribution.js +283 -0
  42. package/build/tools/get-rating-distribution.js.map +1 -0
  43. package/build/tools/get-subscription-breakdown.d.ts +34 -0
  44. package/build/tools/get-subscription-breakdown.d.ts.map +1 -0
  45. package/build/tools/get-subscription-breakdown.js +179 -0
  46. package/build/tools/get-subscription-breakdown.js.map +1 -0
  47. package/build/tools/get-usage-leaderboard.d.ts +38 -0
  48. package/build/tools/get-usage-leaderboard.d.ts.map +1 -0
  49. package/build/tools/get-usage-leaderboard.js +177 -0
  50. package/build/tools/get-usage-leaderboard.js.map +1 -0
  51. package/build/tools/get-usage-profile.d.ts +52 -0
  52. package/build/tools/get-usage-profile.d.ts.map +1 -0
  53. package/build/tools/get-usage-profile.js +273 -0
  54. package/build/tools/get-usage-profile.js.map +1 -0
  55. package/build/tools/get-visit-trends.d.ts +37 -0
  56. package/build/tools/get-visit-trends.d.ts.map +1 -0
  57. package/build/tools/get-visit-trends.js +289 -0
  58. package/build/tools/get-visit-trends.js.map +1 -0
  59. package/build/tools/index.d.ts +19 -0
  60. package/build/tools/index.d.ts.map +1 -0
  61. package/build/tools/index.js +22 -0
  62. package/build/tools/index.js.map +1 -0
  63. package/build/tools/top-change.d.ts +34 -0
  64. package/build/tools/top-change.d.ts.map +1 -0
  65. package/build/tools/top-change.js +262 -0
  66. package/build/tools/top-change.js.map +1 -0
  67. package/build/utils/aggregation-limits.d.ts +23 -0
  68. package/build/utils/aggregation-limits.d.ts.map +1 -0
  69. package/build/utils/aggregation-limits.js +32 -0
  70. package/build/utils/aggregation-limits.js.map +1 -0
  71. package/build/utils/date-math.d.ts +31 -0
  72. package/build/utils/date-math.d.ts.map +1 -0
  73. package/build/utils/date-math.js +116 -0
  74. package/build/utils/date-math.js.map +1 -0
  75. package/build/utils/field-constants.d.ts +23 -0
  76. package/build/utils/field-constants.d.ts.map +1 -0
  77. package/build/utils/field-constants.js +26 -0
  78. package/build/utils/field-constants.js.map +1 -0
  79. package/build/validation/schemas.d.ts +243 -0
  80. package/build/validation/schemas.d.ts.map +1 -0
  81. package/build/validation/schemas.js +151 -0
  82. package/build/validation/schemas.js.map +1 -0
  83. package/package.json +65 -0
@@ -0,0 +1,44 @@
1
+ import { Logger } from '../logger.js';
2
+ export declare class ElasticMCPError extends Error {
3
+ readonly code: string;
4
+ readonly statusCode: number;
5
+ readonly context: Record<string, unknown> | undefined;
6
+ constructor(message: string, code: string, statusCode?: number, context?: Record<string, unknown>);
7
+ }
8
+ export declare class ValidationError extends ElasticMCPError {
9
+ constructor(message: string, context?: Record<string, unknown>);
10
+ }
11
+ export declare class ConnectionError extends ElasticMCPError {
12
+ constructor(message: string, context?: Record<string, unknown>);
13
+ }
14
+ export declare class AuthenticationError extends ElasticMCPError {
15
+ constructor(message: string, context?: Record<string, unknown>);
16
+ }
17
+ export declare class NotFoundError extends ElasticMCPError {
18
+ constructor(message: string, context?: Record<string, unknown>);
19
+ }
20
+ export declare class RateLimitError extends ElasticMCPError {
21
+ constructor(message: string, context?: Record<string, unknown>);
22
+ }
23
+ export declare class ElasticsearchError extends ElasticMCPError {
24
+ constructor(message: string, originalError?: Error, context?: Record<string, unknown>);
25
+ static fromResponseError(error: any, toolName: string, args?: unknown): ElasticsearchError;
26
+ }
27
+ export interface ErrorResponse {
28
+ error: {
29
+ code: string;
30
+ message: string;
31
+ statusCode: number;
32
+ context: Record<string, unknown> | undefined;
33
+ timestamp: string;
34
+ requestId: string | undefined;
35
+ };
36
+ }
37
+ export declare class ErrorHandler {
38
+ private logger;
39
+ constructor(logger: Logger);
40
+ handleError(error: unknown, requestId?: string): ErrorResponse;
41
+ isRetryableError(error: unknown): boolean;
42
+ sanitizeError(error: ErrorResponse): ErrorResponse;
43
+ }
44
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/errors/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAG3D,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUpC;AAED,qBAAa,eAAgB,SAAQ,eAAe;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,eAAgB,SAAQ,eAAe;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,mBAAoB,SAAQ,eAAe;gBAC1C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,aAAc,SAAQ,eAAe;gBACpC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,cAAe,SAAQ,eAAe;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,kBAAmB,SAAQ,eAAe;gBACzC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWrF,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,kBAAkB;CAkF3F;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;QAC7C,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;KAC/B,CAAC;CACH;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa;IA+D9D,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAwBzC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa;CA2BnD"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorHandler = exports.ElasticsearchError = exports.RateLimitError = exports.NotFoundError = exports.AuthenticationError = exports.ConnectionError = exports.ValidationError = exports.ElasticMCPError = void 0;
4
+ class ElasticMCPError extends Error {
5
+ code;
6
+ statusCode;
7
+ context;
8
+ constructor(message, code, statusCode = 500, context) {
9
+ super(message);
10
+ this.name = 'ElasticMCPError';
11
+ this.code = code;
12
+ this.statusCode = statusCode;
13
+ this.context = context;
14
+ Error.captureStackTrace(this, ElasticMCPError);
15
+ }
16
+ }
17
+ exports.ElasticMCPError = ElasticMCPError;
18
+ class ValidationError extends ElasticMCPError {
19
+ constructor(message, context) {
20
+ super(message, 'VALIDATION_ERROR', 400, context);
21
+ this.name = 'ValidationError';
22
+ }
23
+ }
24
+ exports.ValidationError = ValidationError;
25
+ class ConnectionError extends ElasticMCPError {
26
+ constructor(message, context) {
27
+ super(message, 'CONNECTION_ERROR', 503, context);
28
+ this.name = 'ConnectionError';
29
+ }
30
+ }
31
+ exports.ConnectionError = ConnectionError;
32
+ class AuthenticationError extends ElasticMCPError {
33
+ constructor(message, context) {
34
+ super(message, 'AUTHENTICATION_ERROR', 401, context);
35
+ this.name = 'AuthenticationError';
36
+ }
37
+ }
38
+ exports.AuthenticationError = AuthenticationError;
39
+ class NotFoundError extends ElasticMCPError {
40
+ constructor(message, context) {
41
+ super(message, 'NOT_FOUND', 404, context);
42
+ this.name = 'NotFoundError';
43
+ }
44
+ }
45
+ exports.NotFoundError = NotFoundError;
46
+ class RateLimitError extends ElasticMCPError {
47
+ constructor(message, context) {
48
+ super(message, 'RATE_LIMIT_EXCEEDED', 429, context);
49
+ this.name = 'RateLimitError';
50
+ }
51
+ }
52
+ exports.RateLimitError = RateLimitError;
53
+ class ElasticsearchError extends ElasticMCPError {
54
+ constructor(message, originalError, context) {
55
+ super(message, 'ELASTICSEARCH_ERROR', 500, {
56
+ ...context,
57
+ originalError: originalError ? {
58
+ name: originalError.name,
59
+ message: originalError.message,
60
+ } : undefined,
61
+ });
62
+ this.name = 'ElasticsearchError';
63
+ }
64
+ static fromResponseError(error, toolName, args) {
65
+ // Check for circuit breaking exception (data too large)
66
+ const errorBody = error.body || error.meta?.body || {};
67
+ const errorType = errorBody.error?.type || errorBody.type;
68
+ const errorReason = errorBody.error?.reason || errorBody.reason || error.message || '';
69
+ // Check for circuit breaking or data-related errors
70
+ if (errorType === 'circuit_breaking_exception' ||
71
+ errorReason.toLowerCase().includes('circuit_breaking_exception') ||
72
+ errorReason.toLowerCase().includes('data too large') ||
73
+ errorReason.toLowerCase().includes('would be') ||
74
+ errorReason.toLowerCase().includes('larger than the limit')) {
75
+ const rootCauses = errorBody.error?.root_cause || [];
76
+ const dataSizeInfo = rootCauses.find((cause) => cause.reason?.includes('would be') || cause.reason?.includes('larger than'));
77
+ let dataUsageMessage = 'Query exceeded Elasticsearch data usage limits. ';
78
+ if (dataSizeInfo?.reason) {
79
+ dataUsageMessage += dataSizeInfo.reason;
80
+ }
81
+ else if (errorReason) {
82
+ dataUsageMessage += errorReason;
83
+ }
84
+ else {
85
+ dataUsageMessage += 'The query requires too much memory to execute.';
86
+ }
87
+ dataUsageMessage += ' Try reducing the date range, adding filters (account/group/subscription), or using a smaller time interval.';
88
+ return new ElasticsearchError(dataUsageMessage, error, {
89
+ tool: toolName,
90
+ args,
91
+ errorType: 'DATA_USAGE_LIMIT_EXCEEDED',
92
+ elasticsearchError: {
93
+ type: errorType,
94
+ reason: errorReason,
95
+ rootCauses: rootCauses.map((cause) => ({
96
+ type: cause.type,
97
+ reason: cause.reason,
98
+ })),
99
+ },
100
+ });
101
+ }
102
+ // Check for other common Elasticsearch errors
103
+ if (errorType === 'query_shard_exception' || errorReason.toLowerCase().includes('query_shard_exception')) {
104
+ return new ElasticsearchError(`Elasticsearch query error: ${errorReason || 'Query execution failed'}. Try adjusting your query parameters.`, error, {
105
+ tool: toolName,
106
+ args,
107
+ errorType: 'QUERY_ERROR',
108
+ elasticsearchError: {
109
+ type: errorType,
110
+ reason: errorReason,
111
+ },
112
+ });
113
+ }
114
+ // Generic Elasticsearch error with more context
115
+ return new ElasticsearchError(`Elasticsearch error: ${errorReason || error.message || 'Unknown error occurred'}`, error, {
116
+ tool: toolName,
117
+ args,
118
+ errorType: errorType || 'UNKNOWN',
119
+ elasticsearchError: {
120
+ type: errorType,
121
+ reason: errorReason,
122
+ },
123
+ });
124
+ }
125
+ }
126
+ exports.ElasticsearchError = ElasticsearchError;
127
+ class ErrorHandler {
128
+ logger;
129
+ constructor(logger) {
130
+ this.logger = logger.child({ component: 'error-handler' });
131
+ }
132
+ handleError(error, requestId) {
133
+ if (error instanceof ElasticMCPError) {
134
+ this.logger.warn('Handled error occurred', {
135
+ code: error.code,
136
+ message: error.message,
137
+ statusCode: error.statusCode,
138
+ context: error.context,
139
+ requestId,
140
+ });
141
+ return {
142
+ error: {
143
+ code: error.code,
144
+ message: error.message,
145
+ statusCode: error.statusCode,
146
+ context: error.context,
147
+ timestamp: new Date().toISOString(),
148
+ requestId,
149
+ },
150
+ };
151
+ }
152
+ if (error instanceof Error) {
153
+ this.logger.error('Unhandled error occurred', {
154
+ name: error.name,
155
+ message: error.message,
156
+ stack: error.stack,
157
+ requestId,
158
+ }, error);
159
+ // Include the actual error message for debugging
160
+ return {
161
+ error: {
162
+ code: 'INTERNAL_ERROR',
163
+ message: error.message || 'An unexpected error occurred',
164
+ statusCode: 500,
165
+ context: {
166
+ name: error.name,
167
+ stack: error.stack,
168
+ },
169
+ timestamp: new Date().toISOString(),
170
+ requestId,
171
+ },
172
+ };
173
+ }
174
+ this.logger.error('Unknown error occurred', {
175
+ error: String(error),
176
+ requestId,
177
+ });
178
+ return {
179
+ error: {
180
+ code: 'UNKNOWN_ERROR',
181
+ message: 'An unknown error occurred',
182
+ statusCode: 500,
183
+ context: undefined,
184
+ timestamp: new Date().toISOString(),
185
+ requestId,
186
+ },
187
+ };
188
+ }
189
+ isRetryableError(error) {
190
+ if (error instanceof ConnectionError) {
191
+ return true;
192
+ }
193
+ if (error instanceof ElasticsearchError) {
194
+ return true;
195
+ }
196
+ if (error instanceof Error) {
197
+ const message = error.message.toLowerCase();
198
+ return (message.includes('timeout') ||
199
+ message.includes('connection') ||
200
+ message.includes('network') ||
201
+ message.includes('503') ||
202
+ message.includes('502') ||
203
+ message.includes('504'));
204
+ }
205
+ return false;
206
+ }
207
+ sanitizeError(error) {
208
+ const sanitized = { ...error };
209
+ if (sanitized.error.context) {
210
+ const context = { ...sanitized.error.context };
211
+ const sensitiveKeys = [
212
+ 'password',
213
+ 'apiKey',
214
+ 'token',
215
+ 'secret',
216
+ 'auth',
217
+ 'authorization',
218
+ 'credential',
219
+ ];
220
+ for (const key of Object.keys(context)) {
221
+ if (sensitiveKeys.some(sensitive => key.toLowerCase().includes(sensitive))) {
222
+ context[key] = '***';
223
+ }
224
+ }
225
+ sanitized.error.context = context;
226
+ }
227
+ return sanitized;
228
+ }
229
+ }
230
+ exports.ErrorHandler = ErrorHandler;
231
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/errors/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Elastic MCP Server Entry Point
4
+ *
5
+ * This is the main entry point for the Elastic MCP server that provides
6
+ * standardized tools for interacting with Elasticsearch clusters.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
package/build/index.js ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Elastic MCP Server Entry Point
5
+ *
6
+ * This is the main entry point for the Elastic MCP server that provides
7
+ * standardized tools for interacting with Elasticsearch clusters.
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ const server_js_1 = __importDefault(require("./server.js"));
14
+ async function main() {
15
+ try {
16
+ const server = new server_js_1.default();
17
+ await server.start();
18
+ }
19
+ catch (error) {
20
+ console.error('Failed to start Elastic MCP Server:', error);
21
+ process.exit(1);
22
+ }
23
+ }
24
+ main().catch((error) => {
25
+ console.error('Unhandled error in main:', error);
26
+ process.exit(1);
27
+ });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;GAKG;;;;;AAEH,4DAA2C;AAE3C,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,mBAAgB,EAAE,CAAC;QACtC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ export declare enum LogLevel {
2
+ ERROR = 0,
3
+ WARN = 1,
4
+ INFO = 2,
5
+ DEBUG = 3
6
+ }
7
+ export interface LogEntry {
8
+ timestamp: string;
9
+ level: string;
10
+ message: string;
11
+ context: Record<string, unknown> | undefined;
12
+ error: {
13
+ name: string;
14
+ message: string;
15
+ stack?: string;
16
+ } | undefined;
17
+ }
18
+ export declare class Logger {
19
+ private level;
20
+ private format;
21
+ constructor(level?: 'error' | 'warn' | 'info' | 'debug', format?: 'json' | 'text');
22
+ private shouldLog;
23
+ private formatMessage;
24
+ private log;
25
+ error(message: string, context?: Record<string, unknown>, error?: Error): void;
26
+ warn(message: string, context?: Record<string, unknown>): void;
27
+ info(message: string, context?: Record<string, unknown>): void;
28
+ debug(message: string, context?: Record<string, unknown>): void;
29
+ child(context: Record<string, unknown>): Logger;
30
+ }
31
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC7C,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,SAAS,CAAC;CACf;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAkB;gBAEpB,KAAK,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAgB,EAAE,MAAM,GAAE,MAAM,GAAG,MAAe;IAKjG,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,GAAG;IAuBX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAI9E,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI/D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;CAehD"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = exports.LogLevel = void 0;
4
+ var LogLevel;
5
+ (function (LogLevel) {
6
+ LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
7
+ LogLevel[LogLevel["WARN"] = 1] = "WARN";
8
+ LogLevel[LogLevel["INFO"] = 2] = "INFO";
9
+ LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
10
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
11
+ class Logger {
12
+ level;
13
+ format;
14
+ constructor(level = 'info', format = 'text') {
15
+ this.level = LogLevel[level.toUpperCase()];
16
+ this.format = format;
17
+ }
18
+ shouldLog(level) {
19
+ return level <= this.level;
20
+ }
21
+ formatMessage(entry) {
22
+ if (this.format === 'json') {
23
+ return JSON.stringify(entry);
24
+ }
25
+ const { timestamp, level, message, context, error } = entry;
26
+ let output = `[${timestamp}] ${level.toUpperCase()}: ${message}`;
27
+ if (context && Object.keys(context).length > 0) {
28
+ output += ` ${JSON.stringify(context)}`;
29
+ }
30
+ if (error) {
31
+ output += `\nError: ${error.name}: ${error.message}`;
32
+ if (error.stack) {
33
+ output += `\n${error.stack}`;
34
+ }
35
+ }
36
+ return output;
37
+ }
38
+ log(level, levelName, message, context, error) {
39
+ if (!this.shouldLog(level)) {
40
+ return;
41
+ }
42
+ const entry = {
43
+ timestamp: new Date().toISOString(),
44
+ level: levelName,
45
+ message,
46
+ context,
47
+ error: error ? {
48
+ name: error.name,
49
+ message: error.message,
50
+ ...(error.stack && { stack: error.stack }),
51
+ } : undefined,
52
+ };
53
+ const output = this.formatMessage(entry);
54
+ // Write to stderr only (MCP uses stdout for protocol communication)
55
+ process.stderr.write(output + '\n');
56
+ }
57
+ error(message, context, error) {
58
+ this.log(LogLevel.ERROR, 'error', message, context, error);
59
+ }
60
+ warn(message, context) {
61
+ this.log(LogLevel.WARN, 'warn', message, context);
62
+ }
63
+ info(message, context) {
64
+ this.log(LogLevel.INFO, 'info', message, context);
65
+ }
66
+ debug(message, context) {
67
+ this.log(LogLevel.DEBUG, 'debug', message, context);
68
+ }
69
+ child(context) {
70
+ const childLogger = new Logger(Object.keys(LogLevel)[this.level], this.format);
71
+ const originalLog = childLogger.log.bind(childLogger);
72
+ const boundLog = (level, levelName, message, messageContext, error) => {
73
+ const mergedContext = { ...context, ...messageContext };
74
+ originalLog(level, levelName, message, mergedContext, error);
75
+ };
76
+ childLogger.log = boundLog;
77
+ return childLogger;
78
+ }
79
+ }
80
+ exports.Logger = Logger;
81
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export declare class ElasticMCPServer {
2
+ private server;
3
+ private config;
4
+ private logger;
5
+ private elasticsearch;
6
+ private errorHandler;
7
+ private isShuttingDown;
8
+ private getIndexFieldsTool;
9
+ private topChangeTool;
10
+ private periodSummaryTool;
11
+ private getPlatformBreakdownTool;
12
+ private getRatingDistributionTool;
13
+ private getVisitTrendsTool;
14
+ private getUsageProfileTool;
15
+ private findEntitiesByMetricTool;
16
+ private getUsageLeaderboardTool;
17
+ constructor();
18
+ private setupHandlers;
19
+ private setupGracefulShutdown;
20
+ start(): Promise<void>;
21
+ }
22
+ export default ElasticMCPServer;
23
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAoBA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,uBAAuB,CAA0B;;IAkCzD,OAAO,CAAC,aAAa;IA4drB,OAAO,CAAC,qBAAqB;IAoCvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB7B;AAED,eAAe,gBAAgB,CAAC"}