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
package/README.md CHANGED
@@ -111,24 +111,27 @@ interface McpConfig {
111
111
  Each tool must implement:
112
112
 
113
113
  ```typescript
114
- interface ToolRegistrationInput {
114
+ interface ToolRegistrationInput<TArgs = Record<string, any>> {
115
115
  name: string;
116
116
  description: string;
117
- function: (args: Record<string, any>) => Promise<any>;
118
- inputSchema: {
119
- type: 'object'; // JSON Schema 2020-12 format
120
- properties?: Record<string, {
121
- type: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
122
- description?: string;
123
- enum?: (string | number | boolean)[];
124
- default?: any;
125
- // Additional JSON Schema 2020-12 properties supported
126
- [key: string]: any;
127
- }>;
128
- required?: string[];
129
- [key: string]: any; // Additional JSON Schema 2020-12 properties
130
- };
117
+ /**
118
+ * Tool function that accepts args, optional cancellationToken, optional context, and optional progress callback.
119
+ * For backward compatibility, only the args parameter is required.
120
+ */
121
+ function: (
122
+ args: TArgs,
123
+ cancellationToken?: CancellationToken,
124
+ context?: McpContext,
125
+ progress?: ProgressCallback
126
+ ) => Promise<any>;
127
+ /**
128
+ * Input schema in JSON Schema 2020-12 format or Zod schema.
129
+ * If a Zod schema is provided, it will be converted to JSON Schema internally.
130
+ */
131
+ inputSchema: JsonSchema2020_12 | z.ZodType<TArgs>;
131
132
  icon?: string; // Optional icon URI
133
+ /** Required scopes/permissions for this tool */
134
+ requiredScopes?: string[];
132
135
  }
133
136
  ```
134
137
 
@@ -145,8 +148,14 @@ interface ServerInfo {
145
148
 
146
149
  ### Example Tool
147
150
 
151
+ #### Using JSON Schema
152
+
148
153
  ```typescript
149
- async function searchDatabase(args: { query: string; limit?: number }): Promise<string> {
154
+ async function searchDatabase(
155
+ args: { query: string; limit?: number },
156
+ cancellationToken?: CancellationToken,
157
+ context?: McpContext
158
+ ): Promise<string> {
150
159
  const results = await db.search(args.query, args.limit || 10);
151
160
  return JSON.stringify(results);
152
161
  }
@@ -155,20 +164,86 @@ const searchTool: ToolRegistrationInput = {
155
164
  name: 'searchDatabase',
156
165
  description: 'Searches the database for matching records',
157
166
  function: searchDatabase,
158
- inputSchema: {
159
- type: 'object', // JSON Schema 2020-12 format
160
- properties: {
161
- query: {
162
- type: 'string',
163
- description: 'The search query',
164
- },
165
- limit: {
166
- type: 'integer',
167
- description: 'Maximum number of results to return',
168
- },
169
- },
170
- required: ['query'],
167
+ inputSchema: {
168
+ type: 'object', // JSON Schema 2020-12 format
169
+ properties: {
170
+ query: {
171
+ type: 'string',
172
+ description: 'The search query',
171
173
  },
174
+ limit: {
175
+ type: 'integer',
176
+ description: 'Maximum number of results to return',
177
+ },
178
+ },
179
+ required: ['query'],
180
+ },
181
+ requiredScopes: ['database:read'], // Optional: require specific permissions
182
+ };
183
+ ```
184
+
185
+ #### Using Zod Schema (Recommended)
186
+
187
+ ```typescript
188
+ import { z } from 'zod';
189
+
190
+ const SearchSchema = z.object({
191
+ query: z.string().describe('The search query'),
192
+ limit: z.number().int().positive().optional().describe('Maximum number of results to return'),
193
+ });
194
+
195
+ type SearchParams = z.infer<typeof SearchSchema>;
196
+
197
+ async function searchDatabase(
198
+ args: SearchParams,
199
+ cancellationToken?: CancellationToken,
200
+ context?: McpContext
201
+ ): Promise<string> {
202
+ // args is fully typed as SearchParams
203
+ const results = await db.search(args.query, args.limit || 10);
204
+ return JSON.stringify(results);
205
+ }
206
+
207
+ const searchTool: ToolRegistrationInput<SearchParams> = {
208
+ name: 'searchDatabase',
209
+ description: 'Searches the database for matching records',
210
+ function: searchDatabase,
211
+ inputSchema: SearchSchema, // Direct Zod schema - no conversion needed!
212
+ requiredScopes: ['database:read'],
213
+ };
214
+ ```
215
+
216
+ ### ResourceRegistrationInput
217
+
218
+ Resources can now access context (user info, scopes, etc.):
219
+
220
+ ```typescript
221
+ interface ResourceRegistrationInput {
222
+ uri: string;
223
+ name: string;
224
+ description?: string;
225
+ mimeType?: string;
226
+ icon?: string;
227
+ /**
228
+ * Function that returns the resource content.
229
+ * Context is provided when the resource is accessed.
230
+ */
231
+ getContent: (context?: McpContext) => Promise<string | { type: string; data: string; mimeType?: string }>;
232
+ }
233
+ ```
234
+
235
+ #### Example Resource
236
+
237
+ ```typescript
238
+ const buildingListResource: ResourceRegistrationInput = {
239
+ uri: 'building://list',
240
+ name: 'Building List',
241
+ description: 'List of buildings accessible to the user',
242
+ getContent: async (context) => {
243
+ // Context is now available!
244
+ const buildings = await getBuildingService().getBuildings(context?.userId);
245
+ return JSON.stringify(buildings);
246
+ },
172
247
  };
173
248
  ```
174
249
 
@@ -460,6 +535,182 @@ Debug mode provides detailed information about:
460
535
 
461
536
  **Note**: The `DEBUG` environment variable accepts either `'1'` or `'true'` (case-sensitive) to enable debug logging.
462
537
 
538
+ ## High-Value Framework Features
539
+
540
+ EasyMCP provides production-ready features out of the box:
541
+
542
+ ### 1. Declarative Tool Registration with @McpTool
543
+
544
+ Define tools using decorators for automatic discovery and registration:
545
+
546
+ ```typescript
547
+ import { McpTool, McpParam, McpContext } from 'easy-mcp-nest';
548
+ import { z } from 'zod';
549
+
550
+ const CreateBuildingSchema = z.object({
551
+ name: z.string(),
552
+ address: z.string(),
553
+ });
554
+
555
+ @McpTool({
556
+ name: 'create_building',
557
+ description: 'Creates a new building',
558
+ requiredScopes: ['building:write'],
559
+ rateLimit: { max: 10, window: '1m' },
560
+ retry: { maxAttempts: 3, backoff: 'exponential' }
561
+ })
562
+ async createBuilding(
563
+ @McpParam(CreateBuildingSchema) params: z.infer<typeof CreateBuildingSchema>,
564
+ @McpContext() context: McpContext
565
+ ) {
566
+ return this.service.createBuilding(context.userId, params);
567
+ }
568
+ ```
569
+
570
+ ### 2. Automatic Scope Checking
571
+
572
+ Declarative scope validation - framework handles security automatically:
573
+
574
+ ```typescript
575
+ @McpTool({
576
+ name: 'delete_building',
577
+ requiredScopes: ['building:write', 'building:delete']
578
+ })
579
+ ```
580
+
581
+ ### 3. Progress Notifications
582
+
583
+ Report progress for long-running operations:
584
+
585
+ ```typescript
586
+ @McpTool({ name: 'analyze_debts' })
587
+ async analyzeDebts(
588
+ args: any,
589
+ cancellationToken?: CancellationToken,
590
+ context?: McpContext,
591
+ progress?: ProgressCallback
592
+ ) {
593
+ progress?.({ progress: 0.1, message: 'Fetching payment data...' });
594
+ // ... work ...
595
+ progress?.({ progress: 0.5, message: 'Processing 5/10 apartments...' });
596
+ // ... work ...
597
+ progress?.({ progress: 1.0, message: 'Complete!' });
598
+ }
599
+ ```
600
+
601
+ ### 4. Built-in Observability
602
+
603
+ Automatic metrics collection and Prometheus-compatible endpoints:
604
+
605
+ - Tool execution count
606
+ - Average execution time
607
+ - Error rate by tool
608
+ - Request tracing
609
+ - Performance monitoring
610
+
611
+ Access metrics at `/metrics` endpoint (Prometheus format).
612
+
613
+ ### 5. Rate Limiting
614
+
615
+ Per-tool rate limiting with configurable limits:
616
+
617
+ ```typescript
618
+ @McpTool({
619
+ name: 'create_building',
620
+ rateLimit: { max: 10, window: '1m' } // 10 requests per minute
621
+ })
622
+ ```
623
+
624
+ ### 6. Retry Logic
625
+
626
+ Automatic retry with exponential backoff:
627
+
628
+ ```typescript
629
+ @McpTool({
630
+ name: 'create_building',
631
+ retry: {
632
+ maxAttempts: 3,
633
+ backoff: 'exponential',
634
+ initialDelay: 100,
635
+ maxDelay: 10000
636
+ }
637
+ })
638
+ ```
639
+
640
+ ### 7. Circuit Breaker
641
+
642
+ Automatic circuit breaking when error rate exceeds threshold:
643
+
644
+ - Prevents overwhelming system during outages
645
+ - Automatic recovery with half-open state
646
+ - Per-tool circuit breakers
647
+
648
+ ### 8. Error Handling Hooks
649
+
650
+ Centralized error handling with decorators:
651
+
652
+ ```typescript
653
+ @McpErrorHandler((error, context) => {
654
+ logErrorSecurely('MCP error', error, context);
655
+ return sanitizeError(error);
656
+ })
657
+ export class MyErrorHandler {}
658
+ ```
659
+
660
+ ### 9. Middleware System
661
+
662
+ Pre/post execution hooks for cross-cutting concerns:
663
+
664
+ ```typescript
665
+ @McpMiddleware(async (req, context, next) => {
666
+ const start = Date.now();
667
+ const result = await next();
668
+ logPerformance(req.method, Date.now() - start);
669
+ return result;
670
+ })
671
+ export class PerformanceMiddleware {}
672
+ ```
673
+
674
+ ### 10. Batch Tool Execution
675
+
676
+ Execute multiple tools in parallel:
677
+
678
+ ```typescript
679
+ // JSON-RPC request
680
+ {
681
+ "jsonrpc": "2.0",
682
+ "method": "tools/batch",
683
+ "params": {
684
+ "tools": [
685
+ { "name": "create_building", "arguments": {...} },
686
+ { "name": "add_apartment", "arguments": {...} }
687
+ ]
688
+ }
689
+ }
690
+ ```
691
+
692
+ ### 11. Health Check Endpoints
693
+
694
+ Production-ready health checks:
695
+
696
+ - `GET /health` - Basic health check
697
+ - `GET /health/ready` - Readiness probe
698
+ - `GET /health/live` - Liveness probe
699
+ - `GET /metrics` - Prometheus metrics
700
+
701
+ ### 12. Testing Utilities
702
+
703
+ Easy testing with test helpers:
704
+
705
+ ```typescript
706
+ import { createMcpTestApp, mockMcpContext } from 'easy-mcp-nest';
707
+
708
+ const app = await createMcpTestApp([BuildingTools]);
709
+ const context = mockMcpContext({ userId: '123', scopes: ['read', 'write'] });
710
+ const result = await app.callTool('create_building', params, context);
711
+ await app.close();
712
+ ```
713
+
463
714
  ## New Features
464
715
 
465
716
  ### Express Adapter
package/dist/EasyMCP.js CHANGED
@@ -35,7 +35,6 @@ class EasyMCP {
35
35
  toolRegistry.registerToolFromConfig(tool);
36
36
  }
37
37
  catch (error) {
38
- const errorMessage = error instanceof Error ? error.message : String(error);
39
38
  const sanitizedToolName = (0, sanitize_util_1.sanitizeName)(tool.name);
40
39
  logger_util_1.logger.error("EasyMCP", "Failed to register tool", {
41
40
  component: "EasyMCP",
@@ -57,7 +56,6 @@ class EasyMCP {
57
56
  resourceRegistry.registerResourceFromConfig(resource);
58
57
  }
59
58
  catch (error) {
60
- const errorMessage = error instanceof Error ? error.message : String(error);
61
59
  const sanitizedUri = (0, sanitize_util_1.sanitizeUri)(resource.uri);
62
60
  logger_util_1.logger.error("EasyMCP", "Failed to register resource", {
63
61
  component: "EasyMCP",
@@ -79,7 +77,6 @@ class EasyMCP {
79
77
  promptRegistry.registerPromptFromConfig(prompt);
80
78
  }
81
79
  catch (error) {
82
- const errorMessage = error instanceof Error ? error.message : String(error);
83
80
  const sanitizedPromptName = (0, sanitize_util_1.sanitizeName)(prompt.name);
84
81
  logger_util_1.logger.error("EasyMCP", "Failed to register prompt", {
85
82
  component: "EasyMCP",
@@ -1 +1 @@
1
- {"version":3,"file":"EasyMCP.js","sourceRoot":"","sources":["../src/EasyMCP.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EasyMCP.js","sourceRoot":"","sources":["../src/EasyMCP.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,16 @@ function createMcpExpressRouter(options) {
120
120
  version: config.serverInfo?.version || "unknown",
121
121
  });
122
122
  });
123
+ router.get(`${pathPrefix}/health/ready`, (req, res) => {
124
+ const ready = tools.length > 0;
125
+ res.status(ready ? 200 : 503).json({ ready });
126
+ });
127
+ router.get(`${pathPrefix}/health/live`, (req, res) => {
128
+ res.status(200).json({ alive: true });
129
+ });
130
+ router.get(`${pathPrefix}/metrics`, (req, res) => {
131
+ res.status(200).set("Content-Type", "text/plain").send("# Metrics endpoint - implement with MetricsService");
132
+ });
123
133
  return router;
124
134
  }
125
135
  //# sourceMappingURL=express-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"express-adapter.js","sourceRoot":"","sources":["../../../src/adapters/express/express-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express-adapter.js","sourceRoot":"","sources":["../../../src/adapters/express/express-adapter.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConfigValidator = void 0;
4
4
  const easy_mcp_error_1 = require("../core/errors/easy-mcp-error");
5
5
  const tool_naming_validator_1 = require("../core/utils/tool-naming-validator");
6
+ const zod_integration_1 = require("../validation/zod-integration");
6
7
  class ConfigValidator {
7
8
  static validate(config) {
8
9
  if (!config) {
@@ -107,35 +108,46 @@ class ConfigValidator {
107
108
  if (!tool.inputSchema) {
108
109
  throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': inputSchema is required`);
109
110
  }
110
- if (tool.inputSchema.type !== 'object') {
111
- throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': inputSchema.type must be 'object' (JSON Schema 2020-12 format)`);
111
+ let normalizedSchema;
112
+ try {
113
+ normalizedSchema = (0, zod_integration_1.normalizeInputSchema)(tool.inputSchema);
112
114
  }
113
- if (tool.inputSchema.properties !== undefined) {
114
- if (typeof tool.inputSchema.properties !== 'object' || Array.isArray(tool.inputSchema.properties)) {
115
+ catch (error) {
116
+ throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': inputSchema is invalid: ${error instanceof Error ? error.message : String(error)}`);
117
+ }
118
+ if (normalizedSchema.type !== 'object') {
119
+ throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': inputSchema.type must be 'object' (JSON Schema 2020-12 format or Zod object schema)`);
120
+ }
121
+ if (normalizedSchema.properties !== undefined) {
122
+ if (typeof normalizedSchema.properties !== 'object' || Array.isArray(normalizedSchema.properties)) {
115
123
  throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': inputSchema.properties must be an object`);
116
124
  }
117
- for (const [propName, propDef] of Object.entries(tool.inputSchema.properties)) {
125
+ for (const [propName, propDef] of Object.entries(normalizedSchema.properties)) {
118
126
  if (!propDef || typeof propDef !== 'object' || Array.isArray(propDef)) {
119
127
  throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': property '${propName}' must be an object`);
120
128
  }
121
- if (propDef.type !== undefined) {
129
+ const schemaProp = propDef;
130
+ if (schemaProp.type !== undefined) {
122
131
  const validTypes = ['string', 'number', 'integer', 'boolean', 'array', 'object'];
123
- if (typeof propDef.type !== 'string' || !validTypes.includes(propDef.type)) {
124
- throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': property '${propName}' has invalid type '${propDef.type}'. Must be one of: ${validTypes.join(', ')} (JSON Schema 2020-12 format)`);
132
+ if (typeof schemaProp.type !== 'string' || !validTypes.includes(schemaProp.type)) {
133
+ throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': property '${propName}' has invalid type '${schemaProp.type}'. Must be one of: ${validTypes.join(', ')} (JSON Schema 2020-12 format)`);
125
134
  }
126
135
  }
127
- if (propDef.description !== undefined && typeof propDef.description !== 'string') {
136
+ if (schemaProp.description !== undefined && typeof schemaProp.description !== 'string') {
128
137
  throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': property '${propName}' description must be a string if provided`);
129
138
  }
130
139
  }
131
140
  }
132
- if (tool.inputSchema.required !== undefined) {
133
- if (!Array.isArray(tool.inputSchema.required)) {
141
+ if (normalizedSchema.required !== undefined) {
142
+ if (!Array.isArray(normalizedSchema.required)) {
134
143
  throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': inputSchema.required must be an array`);
135
144
  }
136
- if (tool.inputSchema.properties) {
137
- for (const requiredProp of tool.inputSchema.required) {
138
- if (!(requiredProp in tool.inputSchema.properties)) {
145
+ if (!normalizedSchema.required.every(r => typeof r === 'string')) {
146
+ throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': inputSchema.required must contain only strings`);
147
+ }
148
+ if (normalizedSchema.properties) {
149
+ for (const requiredProp of normalizedSchema.required) {
150
+ if (!(requiredProp in normalizedSchema.properties)) {
139
151
  throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': required property '${requiredProp}' does not exist in properties`);
140
152
  }
141
153
  }
@@ -144,6 +156,16 @@ class ConfigValidator {
144
156
  if (tool.icon !== undefined && typeof tool.icon !== 'string') {
145
157
  throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': icon must be a string (URI) if provided`);
146
158
  }
159
+ if (tool.requiredScopes !== undefined) {
160
+ if (!Array.isArray(tool.requiredScopes)) {
161
+ throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': requiredScopes must be an array if provided`);
162
+ }
163
+ for (const scope of tool.requiredScopes) {
164
+ if (typeof scope !== 'string' || scope.trim().length === 0) {
165
+ throw new easy_mcp_error_1.ConfigurationError(`Tool '${tool.name}': requiredScopes must contain non-empty strings`);
166
+ }
167
+ }
168
+ }
147
169
  }
148
170
  }
149
171
  exports.ConfigValidator = ConfigValidator;
@@ -1 +1 @@
1
- {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../src/config/config-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../src/config/config-validator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ import type { z } from "zod";
2
+ import type { CancellationToken } from "../tooling/tool.interface";
3
+ import type { McpContext } from "../core/context/mcp-context.interface";
4
+ import type { ProgressCallback } from "../core/progress/progress-notifier.service";
1
5
  export interface JsonSchema2020_12 {
2
6
  type?: "object" | "string" | "number" | "integer" | "boolean" | "array" | "null";
3
7
  properties?: Record<string, JsonSchema2020_12>;
@@ -13,12 +17,13 @@ export interface JsonSchema2020_12 {
13
17
  $ref?: string;
14
18
  [key: string]: any;
15
19
  }
16
- export interface ToolRegistrationInput {
20
+ export interface ToolRegistrationInput<TArgs = Record<string, any>> {
17
21
  name: string;
18
22
  description: string;
19
- function: (args: Record<string, any>) => Promise<any>;
20
- inputSchema: JsonSchema2020_12;
23
+ function: (args: TArgs, cancellationToken?: CancellationToken, context?: McpContext, progress?: ProgressCallback) => Promise<any>;
24
+ inputSchema: JsonSchema2020_12 | z.ZodType<TArgs>;
21
25
  icon?: string;
26
+ requiredScopes?: string[];
22
27
  }
23
28
  export interface ServerInfo {
24
29
  name: string;
@@ -30,7 +35,7 @@ export interface ResourceRegistrationInput {
30
35
  description?: string;
31
36
  mimeType?: string;
32
37
  icon?: string;
33
- getContent: () => Promise<string | {
38
+ getContent: (context?: McpContext) => Promise<string | {
34
39
  type: string;
35
40
  data: string;
36
41
  mimeType?: string;
@@ -0,0 +1,21 @@
1
+ import { ToolRegistryService } from "../../tooling/tool-registry/tool-registry.service";
2
+ import { CancellationToken } from "../../tooling/tool.interface";
3
+ import { McpContext } from "../context/mcp-context.interface";
4
+ import { ProgressCallback } from "../progress/progress-notifier.service";
5
+ export interface BatchToolRequest {
6
+ tool: string;
7
+ args: Record<string, any>;
8
+ }
9
+ export interface BatchToolResult {
10
+ tool: string;
11
+ success: boolean;
12
+ result?: any;
13
+ error?: string;
14
+ }
15
+ export declare class BatchExecutorService {
16
+ private readonly toolRegistry;
17
+ private static readonly MAX_BATCH_SIZE;
18
+ private static readonly MAX_CONCURRENCY;
19
+ constructor(toolRegistry: ToolRegistryService);
20
+ executeBatch(requests: BatchToolRequest[], cancellationToken?: CancellationToken, context?: McpContext, progress?: ProgressCallback): Promise<BatchToolResult[]>;
21
+ }