easy-mcp-nest 0.3.0 → 0.5.0

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 (96) hide show
  1. package/README.md +280 -29
  2. package/dist/EasyMCP.js +0 -3
  3. package/dist/EasyMCP.js.map +1 -1
  4. package/dist/adapters/express/express-adapter.js +10 -0
  5. package/dist/adapters/express/express-adapter.js.map +1 -1
  6. package/dist/config/config-validator.js +36 -14
  7. package/dist/config/config-validator.js.map +1 -1
  8. package/dist/config/mcp-config.interface.d.ts +9 -4
  9. package/dist/core/batch/batch-executor.service.d.ts +21 -0
  10. package/dist/core/batch/batch-executor.service.js +101 -0
  11. package/dist/core/batch/batch-executor.service.js.map +1 -0
  12. package/dist/core/documentation/openapi-generator.service.d.ts +13 -0
  13. package/dist/core/documentation/openapi-generator.service.js +116 -0
  14. package/dist/core/documentation/openapi-generator.service.js.map +1 -0
  15. package/dist/core/errors/error-handler.interface.d.ts +11 -0
  16. package/dist/core/errors/error-handler.interface.js +3 -0
  17. package/dist/core/errors/error-handler.interface.js.map +1 -0
  18. package/dist/core/health/health-check.service.d.ts +33 -0
  19. package/dist/core/health/health-check.service.js +71 -0
  20. package/dist/core/health/health-check.service.js.map +1 -0
  21. package/dist/core/mcp-server/mcp-server.service.d.ts +14 -1
  22. package/dist/core/mcp-server/mcp-server.service.js +198 -4
  23. package/dist/core/mcp-server/mcp-server.service.js.map +1 -1
  24. package/dist/core/middleware/middleware-executor.service.d.ts +8 -0
  25. package/dist/core/middleware/middleware-executor.service.js +46 -0
  26. package/dist/core/middleware/middleware-executor.service.js.map +1 -0
  27. package/dist/core/middleware/middleware.interface.d.ts +6 -0
  28. package/dist/core/middleware/middleware.interface.js +3 -0
  29. package/dist/core/middleware/middleware.interface.js.map +1 -0
  30. package/dist/core/observability/metrics.service.d.ts +29 -0
  31. package/dist/core/observability/metrics.service.js +124 -0
  32. package/dist/core/observability/metrics.service.js.map +1 -0
  33. package/dist/core/observability/tracing.service.d.ts +12 -0
  34. package/dist/core/observability/tracing.service.js +88 -0
  35. package/dist/core/observability/tracing.service.js.map +1 -0
  36. package/dist/core/progress/progress-notifier.service.d.ts +16 -0
  37. package/dist/core/progress/progress-notifier.service.js +96 -0
  38. package/dist/core/progress/progress-notifier.service.js.map +1 -0
  39. package/dist/core/rate-limiting/rate-limit.interface.d.ts +11 -0
  40. package/dist/core/rate-limiting/rate-limit.interface.js +3 -0
  41. package/dist/core/rate-limiting/rate-limit.interface.js.map +1 -0
  42. package/dist/core/rate-limiting/rate-limiter.service.d.ts +13 -0
  43. package/dist/core/rate-limiting/rate-limiter.service.js +147 -0
  44. package/dist/core/rate-limiting/rate-limiter.service.js.map +1 -0
  45. package/dist/core/resilience/circuit-breaker.interface.d.ts +15 -0
  46. package/dist/core/resilience/circuit-breaker.interface.js +3 -0
  47. package/dist/core/resilience/circuit-breaker.interface.js.map +1 -0
  48. package/dist/core/resilience/circuit-breaker.service.d.ts +11 -0
  49. package/dist/core/resilience/circuit-breaker.service.js +117 -0
  50. package/dist/core/resilience/circuit-breaker.service.js.map +1 -0
  51. package/dist/core/resilience/retry.service.d.ts +6 -0
  52. package/dist/core/resilience/retry.service.js +66 -0
  53. package/dist/core/resilience/retry.service.js.map +1 -0
  54. package/dist/core/utils/decorator-scanner.d.ts +4 -0
  55. package/dist/core/utils/decorator-scanner.js +112 -0
  56. package/dist/core/utils/decorator-scanner.js.map +1 -0
  57. package/dist/core/utils/sanitize.util.d.ts +1 -0
  58. package/dist/core/utils/sanitize.util.js +19 -0
  59. package/dist/core/utils/sanitize.util.js.map +1 -1
  60. package/dist/decorators/index.d.ts +3 -0
  61. package/dist/decorators/index.js +12 -1
  62. package/dist/decorators/index.js.map +1 -1
  63. package/dist/decorators/mcp-error-handler.decorator.d.ts +4 -0
  64. package/dist/decorators/mcp-error-handler.decorator.js +15 -0
  65. package/dist/decorators/mcp-error-handler.decorator.js.map +1 -0
  66. package/dist/decorators/mcp-middleware.decorator.d.ts +4 -0
  67. package/dist/decorators/mcp-middleware.decorator.js +17 -0
  68. package/dist/decorators/mcp-middleware.decorator.js.map +1 -0
  69. package/dist/decorators/mcp-tool.decorator.d.ts +28 -0
  70. package/dist/decorators/mcp-tool.decorator.js +36 -0
  71. package/dist/decorators/mcp-tool.decorator.js.map +1 -0
  72. package/dist/index.d.ts +4 -4
  73. package/dist/index.js +5 -1
  74. package/dist/index.js.map +1 -1
  75. package/dist/interface/interface.interface.d.ts +2 -0
  76. package/dist/interface/mcp-protocol.interface.d.ts +14 -0
  77. package/dist/interface/mcp-protocol.interface.js.map +1 -1
  78. package/dist/resources/resource-registry.service.d.ts +3 -2
  79. package/dist/resources/resource-registry.service.js +7 -3
  80. package/dist/resources/resource-registry.service.js.map +1 -1
  81. package/dist/resources/resource.interface.d.ts +2 -1
  82. package/dist/standalone/core-services.d.ts +5 -0
  83. package/dist/standalone/core-services.js +18 -2
  84. package/dist/standalone/core-services.js.map +1 -1
  85. package/dist/tooling/tool-registry/tool-registry.service.d.ts +7 -1
  86. package/dist/tooling/tool-registry/tool-registry.service.js +54 -7
  87. package/dist/tooling/tool-registry/tool-registry.service.js.map +1 -1
  88. package/dist/tooling/tool.interface.d.ts +7 -1
  89. package/dist/tsconfig.build.tsbuildinfo +1 -1
  90. package/dist/validation/index.d.ts +1 -1
  91. package/dist/validation/index.js +2 -1
  92. package/dist/validation/index.js.map +1 -1
  93. package/dist/validation/zod-integration.d.ts +1 -0
  94. package/dist/validation/zod-integration.js +14 -0
  95. package/dist/validation/zod-integration.js.map +1 -1
  96. package/package.json +1 -1
@@ -30,6 +30,13 @@ const logger_util_1 = require("../utils/logger.util");
30
30
  const sanitize_util_1 = require("../utils/sanitize.util");
31
31
  const constants_3 = require("../../config/constants");
32
32
  const context_provider_service_1 = require("../context/context-provider.service");
33
+ const progress_notifier_service_1 = require("../progress/progress-notifier.service");
34
+ const metrics_service_1 = require("../observability/metrics.service");
35
+ const rate_limiter_service_1 = require("../rate-limiting/rate-limiter.service");
36
+ const retry_service_1 = require("../resilience/retry.service");
37
+ const circuit_breaker_service_1 = require("../resilience/circuit-breaker.service");
38
+ const batch_executor_service_1 = require("../batch/batch-executor.service");
39
+ const common_2 = require("@nestjs/common");
33
40
  let McpServerService = class McpServerService {
34
41
  toolRegistry;
35
42
  resourceRegistry;
@@ -38,9 +45,15 @@ let McpServerService = class McpServerService {
38
45
  stdioGatewayService;
39
46
  configHolder;
40
47
  contextProvider;
48
+ progressNotifier;
49
+ metricsService;
50
+ rateLimiter;
51
+ retryService;
52
+ circuitBreaker;
53
+ batchExecutor;
41
54
  clientIdentifier = "stdio-client";
42
55
  cancellationTokens = new Map();
43
- constructor(toolRegistry, resourceRegistry, promptRegistry, interfaceLayer, stdioGatewayService, configHolder, contextProvider) {
56
+ constructor(toolRegistry, resourceRegistry, promptRegistry, interfaceLayer, stdioGatewayService, configHolder, contextProvider, progressNotifier, metricsService, rateLimiter, retryService, circuitBreaker, batchExecutor) {
44
57
  this.toolRegistry = toolRegistry;
45
58
  this.resourceRegistry = resourceRegistry;
46
59
  this.promptRegistry = promptRegistry;
@@ -48,6 +61,12 @@ let McpServerService = class McpServerService {
48
61
  this.stdioGatewayService = stdioGatewayService;
49
62
  this.configHolder = configHolder;
50
63
  this.contextProvider = contextProvider;
64
+ this.progressNotifier = progressNotifier;
65
+ this.metricsService = metricsService;
66
+ this.rateLimiter = rateLimiter;
67
+ this.retryService = retryService;
68
+ this.circuitBreaker = circuitBreaker;
69
+ this.batchExecutor = batchExecutor;
51
70
  }
52
71
  getServerInfo() {
53
72
  const config = this.configHolder.getConfig();
@@ -120,6 +139,10 @@ let McpServerService = class McpServerService {
120
139
  case "tools/call":
121
140
  response = await this.handleCallTool(request);
122
141
  return response;
142
+ case "tools/batch":
143
+ response = await this.handleBatchTools(request);
144
+ logger_util_1.logger.audit("McpServerService", "tools/batch", response.error ? "failure" : "success", { method: request.method }, request.id, this.getActorIdentifier(request));
145
+ return response;
123
146
  case "resources/list":
124
147
  response = this.handleListResources(request);
125
148
  logger_util_1.logger.audit("McpServerService", "resources/list", response.error ? "failure" : "success", { method: request.method }, request.id, this.getActorIdentifier(request));
@@ -319,8 +342,40 @@ let McpServerService = class McpServerService {
319
342
  this.cancellationTokens.set(request.id, cancellationToken);
320
343
  }
321
344
  const context = this.contextProvider.extractContext(request);
345
+ if (this.circuitBreaker?.isOpen(toolName)) {
346
+ logger_util_1.logger.audit("McpServerService", "tools/call", "failure", {
347
+ reason: "Circuit breaker open",
348
+ toolName: (0, sanitize_util_1.sanitizeName)(toolName),
349
+ method: request.method,
350
+ }, request.id, actorId);
351
+ return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, mcp_protocol_interface_1.McpErrorCode.ToolExecutionError, "Service temporarily unavailable");
352
+ }
353
+ if (tool.rateLimit && this.rateLimiter) {
354
+ const rawIdentifier = context?.userId || context?.sessionId || context?.metadata?.ip || "anonymous";
355
+ const identifier = (0, sanitize_util_1.hashRateLimitIdentifier)(rawIdentifier);
356
+ const rateLimitResult = this.rateLimiter.checkRateLimit(toolName, identifier, tool.rateLimit);
357
+ if (!rateLimitResult.allowed) {
358
+ logger_util_1.logger.audit("McpServerService", "tools/call", "failure", {
359
+ reason: "Rate limit exceeded",
360
+ toolName: (0, sanitize_util_1.sanitizeName)(toolName),
361
+ method: request.method,
362
+ }, request.id, actorId);
363
+ return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, jsonrpc_interface_1.JsonRpcErrorCode.InvalidRequest, `Rate limit exceeded. Try again after ${new Date(rateLimitResult.resetTime).toISOString()}`);
364
+ }
365
+ }
366
+ const progressCallback = this.progressNotifier?.createProgressCallback(request.id);
367
+ const executeTool = async () => {
368
+ return await this.toolRegistry.executeTool(toolName, args, cancellationToken, context, progressCallback);
369
+ };
322
370
  try {
323
- const toolResult = await this.toolRegistry.executeTool(toolName, args, cancellationToken, context);
371
+ let toolResult;
372
+ if (tool.retry && this.retryService) {
373
+ toolResult = await this.retryService.executeWithRetry(executeTool, tool.retry);
374
+ }
375
+ else {
376
+ toolResult = await executeTool();
377
+ }
378
+ this.circuitBreaker?.recordSuccess(toolName);
324
379
  if (cancellationToken.isCancelled) {
325
380
  return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, mcp_protocol_interface_1.McpErrorCode.RequestCancelled, "Request was cancelled");
326
381
  }
@@ -342,6 +397,7 @@ let McpServerService = class McpServerService {
342
397
  return (0, jsonrpc_interface_1.createJsonRpcSuccess)(request.id, result);
343
398
  }
344
399
  catch (error) {
400
+ this.circuitBreaker?.recordFailure(toolName);
345
401
  if (error instanceof easy_mcp_error_1.ToolNotFoundError) {
346
402
  logger_util_1.logger.audit("McpServerService", "tools/call", "failure", {
347
403
  reason: "ToolNotFoundError",
@@ -374,7 +430,132 @@ let McpServerService = class McpServerService {
374
430
  finally {
375
431
  if (request.id !== null && request.id !== undefined) {
376
432
  this.cancellationTokens.delete(request.id);
433
+ this.progressNotifier?.cleanup(request.id);
434
+ }
435
+ }
436
+ }
437
+ async handleBatchTools(request) {
438
+ const params = request.params;
439
+ const actorId = this.getActorIdentifier(request);
440
+ if (!params || !Array.isArray(params.tools)) {
441
+ return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, jsonrpc_interface_1.JsonRpcErrorCode.InvalidParams, "Missing or invalid tools array");
442
+ }
443
+ if (params.tools.length > 100) {
444
+ return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, jsonrpc_interface_1.JsonRpcErrorCode.InvalidParams, "Batch size exceeds maximum limit of 100 tools");
445
+ }
446
+ if (!this.batchExecutor) {
447
+ return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, jsonrpc_interface_1.JsonRpcErrorCode.MethodNotFound, "Batch execution not available");
448
+ }
449
+ const context = this.contextProvider.extractContext(request);
450
+ const cancellationToken = {
451
+ isCancelled: false,
452
+ onCancel: () => { },
453
+ cancel: () => {
454
+ cancellationToken.isCancelled = true;
455
+ },
456
+ };
457
+ if (request.id != null) {
458
+ this.cancellationTokens.set(request.id, cancellationToken);
459
+ }
460
+ const progressCallback = this.progressNotifier?.createProgressCallback(request.id);
461
+ try {
462
+ const batchRequests = [];
463
+ const validationErrors = [];
464
+ for (const toolRequest of params.tools) {
465
+ if (!toolRequest.name || typeof toolRequest.name !== "string") {
466
+ validationErrors.push({
467
+ tool: String(toolRequest.name || "[unknown]"),
468
+ error: "Invalid tool name",
469
+ });
470
+ continue;
471
+ }
472
+ const toolName = toolRequest.name.trim();
473
+ if (toolName.length === 0) {
474
+ validationErrors.push({
475
+ tool: toolName,
476
+ error: "Tool name cannot be empty",
477
+ });
478
+ continue;
479
+ }
480
+ let args = {};
481
+ if (toolRequest.arguments !== undefined && toolRequest.arguments !== null) {
482
+ if (typeof toolRequest.arguments !== "object" || Array.isArray(toolRequest.arguments)) {
483
+ validationErrors.push({
484
+ tool: toolName,
485
+ error: "Arguments must be a plain object",
486
+ });
487
+ continue;
488
+ }
489
+ args = toolRequest.arguments;
490
+ }
491
+ const tool = this.toolRegistry.getTool(toolName);
492
+ if (!tool) {
493
+ validationErrors.push({
494
+ tool: toolName,
495
+ error: "Tool not found",
496
+ });
497
+ continue;
498
+ }
499
+ const validationError = (0, schema_validator_1.validateToolArguments)(args, tool.inputSchema);
500
+ if (validationError) {
501
+ validationErrors.push({
502
+ tool: toolName,
503
+ error: validationError,
504
+ });
505
+ continue;
506
+ }
507
+ batchRequests.push({
508
+ tool: toolName,
509
+ args,
510
+ });
511
+ }
512
+ if (validationErrors.length > 0) {
513
+ logger_util_1.logger.audit("McpServerService", "tools/batch", "failure", {
514
+ method: request.method,
515
+ validationErrors: validationErrors.length,
516
+ }, request.id, actorId);
517
+ return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, jsonrpc_interface_1.JsonRpcErrorCode.InvalidParams, `Batch validation failed: ${validationErrors.length} tool(s) have invalid parameters`);
518
+ }
519
+ const batchResults = await this.batchExecutor.executeBatch(batchRequests, cancellationToken, context, progressCallback);
520
+ for (const result of batchResults) {
521
+ logger_util_1.logger.audit("McpServerService", "tools/batch/tool", result.success ? "success" : "failure", {
522
+ method: request.method,
523
+ toolName: (0, sanitize_util_1.sanitizeName)(result.tool),
524
+ batchRequestId: request.id,
525
+ }, request.id, actorId);
526
+ }
527
+ const result = {
528
+ results: batchResults.map((br) => ({
529
+ tool: br.tool,
530
+ success: br.success,
531
+ result: br.success
532
+ ? {
533
+ content: [
534
+ {
535
+ type: "text",
536
+ text: (0, sanitize_util_1.sanitizeToolResult)(br.result),
537
+ },
538
+ ],
539
+ isError: false,
540
+ }
541
+ : undefined,
542
+ error: br.success ? undefined : br.error,
543
+ })),
544
+ };
545
+ return (0, jsonrpc_interface_1.createJsonRpcSuccess)(request.id, result);
546
+ }
547
+ catch (error) {
548
+ logger_util_1.logger.error("McpServerService", "Batch tool execution failed", {
549
+ component: "Layer 3",
550
+ error: (0, sanitize_util_1.sanitizeErrorMessage)(error),
551
+ });
552
+ return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, mcp_protocol_interface_1.McpErrorCode.ToolExecutionError, "Batch execution failed");
553
+ }
554
+ finally {
555
+ if (request.id != null) {
556
+ this.cancellationTokens.delete(request.id);
377
557
  }
558
+ this.progressNotifier?.cleanup(request.id);
378
559
  }
379
560
  }
380
561
  handleCancelRequest(request) {
@@ -418,8 +599,9 @@ let McpServerService = class McpServerService {
418
599
  });
419
600
  return (0, jsonrpc_interface_1.createJsonRpcError)(request.id, mcp_protocol_interface_1.McpErrorCode.ResourceNotFound, "Resource not found");
420
601
  }
602
+ const context = this.contextProvider.extractContext(request);
421
603
  try {
422
- const content = await this.resourceRegistry.getResourceContent(params.uri);
604
+ const content = await this.resourceRegistry.getResourceContent(params.uri, context);
423
605
  let contents;
424
606
  let contentSize;
425
607
  let contentData;
@@ -570,10 +752,22 @@ exports.McpServerService = McpServerService = __decorate([
570
752
  (0, common_1.Injectable)(),
571
753
  __param(3, (0, common_1.Inject)(constants_1.INTERFACE_LAYER_TOKEN)),
572
754
  __param(5, (0, common_1.Inject)(constants_2.CONFIG_TOKEN)),
755
+ __param(7, (0, common_2.Optional)()),
756
+ __param(8, (0, common_2.Optional)()),
757
+ __param(9, (0, common_2.Optional)()),
758
+ __param(10, (0, common_2.Optional)()),
759
+ __param(11, (0, common_2.Optional)()),
760
+ __param(12, (0, common_2.Optional)()),
573
761
  __metadata("design:paramtypes", [tool_registry_service_1.ToolRegistryService,
574
762
  resource_registry_service_1.ResourceRegistryService,
575
763
  prompt_registry_service_1.PromptRegistryService, Object, stdio_gateway_service_1.StdioGatewayService,
576
764
  config_holder_service_1.ConfigHolderService,
577
- context_provider_service_1.ContextProviderService])
765
+ context_provider_service_1.ContextProviderService,
766
+ progress_notifier_service_1.ProgressNotifierService,
767
+ metrics_service_1.MetricsService,
768
+ rate_limiter_service_1.RateLimiterService,
769
+ retry_service_1.RetryService,
770
+ circuit_breaker_service_1.CircuitBreakerService,
771
+ batch_executor_service_1.BatchExecutorService])
578
772
  ], McpServerService);
579
773
  //# sourceMappingURL=mcp-server.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.service.js","sourceRoot":"","sources":["../../../src/core/mcp-server/mcp-server.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.service.js","sourceRoot":"","sources":["../../../src/core/mcp-server/mcp-server.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { JsonRpcRequest, JsonRpcResponse } from "../../interface/jsonrpc.interface";
2
+ import { McpContext } from "../context/mcp-context.interface";
3
+ import { Middleware } from "./middleware.interface";
4
+ export declare class MiddlewareExecutorService {
5
+ private globalMiddlewares;
6
+ registerMiddleware(middleware: Middleware): void;
7
+ execute(request: JsonRpcRequest, context: McpContext | undefined, handler: () => Promise<JsonRpcResponse>, additionalMiddlewares?: Middleware[]): Promise<JsonRpcResponse>;
8
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MiddlewareExecutorService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const logger_util_1 = require("../utils/logger.util");
12
+ const sanitize_util_1 = require("../utils/sanitize.util");
13
+ let MiddlewareExecutorService = class MiddlewareExecutorService {
14
+ globalMiddlewares = [];
15
+ registerMiddleware(middleware) {
16
+ this.globalMiddlewares.push(middleware);
17
+ }
18
+ async execute(request, context, handler, additionalMiddlewares = []) {
19
+ const allMiddlewares = [...this.globalMiddlewares, ...additionalMiddlewares];
20
+ let index = 0;
21
+ const next = async () => {
22
+ if (index >= allMiddlewares.length) {
23
+ return handler();
24
+ }
25
+ const middleware = allMiddlewares[index++];
26
+ try {
27
+ return await middleware(request, context, next);
28
+ }
29
+ catch (error) {
30
+ const sanitizedError = (0, sanitize_util_1.sanitizeErrorMessage)(error);
31
+ logger_util_1.logger.error("MiddlewareExecutorService", "Middleware execution failed", {
32
+ component: "Middleware",
33
+ middlewareIndex: index - 1,
34
+ error: sanitizedError,
35
+ });
36
+ throw error;
37
+ }
38
+ };
39
+ return next();
40
+ }
41
+ };
42
+ exports.MiddlewareExecutorService = MiddlewareExecutorService;
43
+ exports.MiddlewareExecutorService = MiddlewareExecutorService = __decorate([
44
+ (0, common_1.Injectable)()
45
+ ], MiddlewareExecutorService);
46
+ //# sourceMappingURL=middleware-executor.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware-executor.service.js","sourceRoot":"","sources":["../../../src/core/middleware/middleware-executor.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAI5C,sDAA8C;AAC9C,0DAA8D;AAMvD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAC5B,iBAAiB,GAAiB,EAAE,CAAC;IAK7C,kBAAkB,CAAC,UAAsB;QACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAKD,KAAK,CAAC,OAAO,CACX,OAAuB,EACvB,OAA+B,EAC/B,OAAuC,EACvC,wBAAsC,EAAE;QAExC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,qBAAqB,CAAC,CAAC;QAG7E,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,KAAK,IAA8B,EAAE;YAChD,IAAI,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;gBACnC,OAAO,OAAO,EAAE,CAAC;YACnB,CAAC;YAED,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,OAAO,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAEf,MAAM,cAAc,GAAG,IAAA,oCAAoB,EAAC,KAAK,CAAC,CAAC;gBACnD,oBAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,6BAA6B,EAAE;oBACvE,SAAS,EAAE,YAAY;oBACvB,eAAe,EAAE,KAAK,GAAG,CAAC;oBAC1B,KAAK,EAAE,cAAc;iBACtB,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;CACF,CAAA;AA7CY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;GACA,yBAAyB,CA6CrC"}
@@ -0,0 +1,6 @@
1
+ import { JsonRpcRequest, JsonRpcResponse } from "../../interface/jsonrpc.interface";
2
+ import { McpContext } from "../context/mcp-context.interface";
3
+ export type Middleware = (request: JsonRpcRequest, context: McpContext | undefined, next: () => Promise<JsonRpcResponse>) => Promise<JsonRpcResponse>;
4
+ export interface MiddlewareConfig {
5
+ middlewares: Middleware[];
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=middleware.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.interface.js","sourceRoot":"","sources":["../../../src/core/middleware/middleware.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { OnModuleInit } from "@nestjs/common";
2
+ export interface ToolMetrics {
3
+ toolName: string;
4
+ executionCount: number;
5
+ totalExecutionTime: number;
6
+ errorCount: number;
7
+ lastExecutionTime?: number;
8
+ }
9
+ export declare class MetricsService implements OnModuleInit {
10
+ private toolMetrics;
11
+ private requestCount;
12
+ private activeRequests;
13
+ private startTime;
14
+ onModuleInit(): void;
15
+ recordToolStart(toolName: string): () => void;
16
+ recordToolError(toolName: string): void;
17
+ getToolMetrics(toolName: string): ToolMetrics | undefined;
18
+ getAllToolMetrics(): ToolMetrics[];
19
+ getAverageExecutionTime(toolName: string): number;
20
+ getErrorRate(toolName: string): number;
21
+ getServerMetrics(): {
22
+ totalRequests: number;
23
+ activeRequests: number;
24
+ uptime: number;
25
+ toolCount: number;
26
+ };
27
+ getPrometheusMetrics(): string;
28
+ reset(): void;
29
+ }
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MetricsService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const logger_util_1 = require("../utils/logger.util");
12
+ let MetricsService = class MetricsService {
13
+ toolMetrics = new Map();
14
+ requestCount = 0;
15
+ activeRequests = 0;
16
+ startTime = Date.now();
17
+ onModuleInit() {
18
+ logger_util_1.logger.info("MetricsService", "Metrics collection initialized", {
19
+ component: "Observability",
20
+ });
21
+ }
22
+ recordToolStart(toolName) {
23
+ const startTime = Date.now();
24
+ this.activeRequests++;
25
+ this.requestCount++;
26
+ return () => {
27
+ const executionTime = Date.now() - startTime;
28
+ this.activeRequests--;
29
+ const metrics = this.toolMetrics.get(toolName) || {
30
+ toolName,
31
+ executionCount: 0,
32
+ totalExecutionTime: 0,
33
+ errorCount: 0,
34
+ };
35
+ metrics.executionCount++;
36
+ metrics.totalExecutionTime += executionTime;
37
+ metrics.lastExecutionTime = Date.now();
38
+ this.toolMetrics.set(toolName, metrics);
39
+ };
40
+ }
41
+ recordToolError(toolName) {
42
+ const metrics = this.toolMetrics.get(toolName) || {
43
+ toolName,
44
+ executionCount: 0,
45
+ totalExecutionTime: 0,
46
+ errorCount: 0,
47
+ };
48
+ metrics.errorCount++;
49
+ this.toolMetrics.set(toolName, metrics);
50
+ }
51
+ getToolMetrics(toolName) {
52
+ return this.toolMetrics.get(toolName);
53
+ }
54
+ getAllToolMetrics() {
55
+ return Array.from(this.toolMetrics.values());
56
+ }
57
+ getAverageExecutionTime(toolName) {
58
+ const metrics = this.toolMetrics.get(toolName);
59
+ if (!metrics || metrics.executionCount === 0) {
60
+ return 0;
61
+ }
62
+ return metrics.totalExecutionTime / metrics.executionCount;
63
+ }
64
+ getErrorRate(toolName) {
65
+ const metrics = this.toolMetrics.get(toolName);
66
+ if (!metrics || metrics.executionCount === 0) {
67
+ return 0;
68
+ }
69
+ return metrics.errorCount / metrics.executionCount;
70
+ }
71
+ getServerMetrics() {
72
+ return {
73
+ totalRequests: this.requestCount,
74
+ activeRequests: this.activeRequests,
75
+ uptime: Date.now() - this.startTime,
76
+ toolCount: this.toolMetrics.size,
77
+ };
78
+ }
79
+ getPrometheusMetrics() {
80
+ const lines = [];
81
+ const serverMetrics = this.getServerMetrics();
82
+ lines.push(`# HELP mcp_server_total_requests Total number of requests`);
83
+ lines.push(`# TYPE mcp_server_total_requests counter`);
84
+ lines.push(`mcp_server_total_requests ${serverMetrics.totalRequests}`);
85
+ lines.push(`# HELP mcp_server_active_requests Current number of active requests`);
86
+ lines.push(`# TYPE mcp_server_active_requests gauge`);
87
+ lines.push(`mcp_server_active_requests ${serverMetrics.activeRequests}`);
88
+ lines.push(`# HELP mcp_server_uptime_seconds Server uptime in seconds`);
89
+ lines.push(`# TYPE mcp_server_uptime_seconds gauge`);
90
+ lines.push(`mcp_server_uptime_seconds ${Math.floor(serverMetrics.uptime / 1000)}`);
91
+ for (const metrics of this.toolMetrics.values()) {
92
+ const toolName = metrics.toolName.replace(/[^a-zA-Z0-9_]/g, "_");
93
+ lines.push(`# HELP mcp_tool_executions_total Total number of tool executions`);
94
+ lines.push(`# TYPE mcp_tool_executions_total counter`);
95
+ lines.push(`mcp_tool_executions_total{tool="${toolName}"} ${metrics.executionCount}`);
96
+ lines.push(`# HELP mcp_tool_execution_time_seconds Total execution time in seconds`);
97
+ lines.push(`# TYPE mcp_tool_execution_time_seconds counter`);
98
+ lines.push(`mcp_tool_execution_time_seconds{tool="${toolName}"} ${metrics.totalExecutionTime / 1000}`);
99
+ lines.push(`# HELP mcp_tool_errors_total Total number of tool errors`);
100
+ lines.push(`# TYPE mcp_tool_errors_total counter`);
101
+ lines.push(`mcp_tool_errors_total{tool="${toolName}"} ${metrics.errorCount}`);
102
+ const avgTime = this.getAverageExecutionTime(metrics.toolName);
103
+ lines.push(`# HELP mcp_tool_avg_execution_time_seconds Average execution time in seconds`);
104
+ lines.push(`# TYPE mcp_tool_avg_execution_time_seconds gauge`);
105
+ lines.push(`mcp_tool_avg_execution_time_seconds{tool="${toolName}"} ${avgTime / 1000}`);
106
+ const errorRate = this.getErrorRate(metrics.toolName);
107
+ lines.push(`# HELP mcp_tool_error_rate Error rate (0.0 to 1.0)`);
108
+ lines.push(`# TYPE mcp_tool_error_rate gauge`);
109
+ lines.push(`mcp_tool_error_rate{tool="${toolName}"} ${errorRate}`);
110
+ }
111
+ return lines.join("\n");
112
+ }
113
+ reset() {
114
+ this.toolMetrics.clear();
115
+ this.requestCount = 0;
116
+ this.activeRequests = 0;
117
+ this.startTime = Date.now();
118
+ }
119
+ };
120
+ exports.MetricsService = MetricsService;
121
+ exports.MetricsService = MetricsService = __decorate([
122
+ (0, common_1.Injectable)()
123
+ ], MetricsService);
124
+ //# sourceMappingURL=metrics.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.service.js","sourceRoot":"","sources":["../../../src/core/observability/metrics.service.ts"],"names":[],"mappings":"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"}