snow-flow 2.6.3 → 2.6.5

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 (26) hide show
  1. package/dist/mcp/servicenow-development-assistant-mcp.js +38 -18
  2. package/package.json +1 -1
  3. package/dist/mcp/example-refactored-server.d.ts +0 -18
  4. package/dist/mcp/example-refactored-server.js +0 -57
  5. package/dist/mcp/servicenow-automation-mcp-refactored.d.ts +0 -26
  6. package/dist/mcp/servicenow-automation-mcp-refactored.js +0 -632
  7. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts +0 -74
  8. package/dist/mcp/servicenow-deployment-mcp-refactored.js +0 -1044
  9. package/dist/mcp/servicenow-flow-composer-mcp-refactored.d.ts +0 -25
  10. package/dist/mcp/servicenow-flow-composer-mcp-refactored.js +0 -565
  11. package/dist/mcp/servicenow-graph-memory-mcp-refactored.d.ts +0 -32
  12. package/dist/mcp/servicenow-graph-memory-mcp-refactored.js +0 -642
  13. package/dist/mcp/servicenow-integration-mcp-refactored.d.ts +0 -24
  14. package/dist/mcp/servicenow-integration-mcp-refactored.js +0 -612
  15. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts +0 -63
  16. package/dist/mcp/servicenow-intelligent-mcp-refactored.js +0 -782
  17. package/dist/mcp/servicenow-operations-mcp-refactored.d.ts +0 -63
  18. package/dist/mcp/servicenow-operations-mcp-refactored.js +0 -1770
  19. package/dist/mcp/servicenow-platform-development-mcp-refactored.d.ts +0 -25
  20. package/dist/mcp/servicenow-platform-development-mcp-refactored.js +0 -542
  21. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.d.ts +0 -26
  22. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.js +0 -648
  23. package/dist/mcp/servicenow-security-compliance-mcp-refactored.d.ts +0 -25
  24. package/dist/mcp/servicenow-security-compliance-mcp-refactored.js +0 -600
  25. package/dist/mcp/servicenow-update-set-mcp-refactored.d.ts +0 -31
  26. package/dist/mcp/servicenow-update-set-mcp-refactored.js +0 -662
@@ -1,600 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- /**
4
- * servicenow-security-compliance MCP Server - REFACTORED
5
- * Uses BaseMCPServer to eliminate code duplication
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ServiceNowSecurityComplianceMCP = void 0;
9
- const base_mcp_server_js_1 = require("./base-mcp-server.js");
10
- class ServiceNowSecurityComplianceMCP extends base_mcp_server_js_1.BaseMCPServer {
11
- constructor() {
12
- super({
13
- name: 'servicenow-security-compliance',
14
- version: '2.0.0',
15
- description: 'Handles security policies, compliance rules, and audit operations'
16
- });
17
- }
18
- setupTools() {
19
- // Tools are defined in getTools() method
20
- }
21
- getTools() {
22
- return [
23
- {
24
- name: 'snow_create_security_policy',
25
- description: 'Create Security Policy with dynamic rule discovery - NO hardcoded values',
26
- inputSchema: {
27
- type: 'object',
28
- properties: {
29
- name: { type: 'string', description: 'Security policy name' },
30
- type: { type: 'string', description: 'Policy type (access, data, network, etc.)' },
31
- description: { type: 'string', description: 'Policy description' },
32
- enforcement: { type: 'string', description: 'Enforcement level (strict, moderate, advisory)' },
33
- scope: { type: 'string', description: 'Policy scope (global, application, table)' },
34
- rules: { type: 'array', description: 'Security rules and conditions' },
35
- active: { type: 'boolean', description: 'Policy active status' }
36
- },
37
- required: ['name', 'type', 'rules']
38
- }
39
- },
40
- {
41
- name: 'snow_create_compliance_rule',
42
- description: 'Create Compliance Rule with dynamic framework discovery',
43
- inputSchema: {
44
- type: 'object',
45
- properties: {
46
- name: { type: 'string', description: 'Compliance rule name' },
47
- framework: { type: 'string', description: 'Compliance framework (SOX, GDPR, HIPAA, etc.)' },
48
- requirement: { type: 'string', description: 'Specific requirement or control' },
49
- validation: { type: 'string', description: 'Validation script or condition' },
50
- remediation: { type: 'string', description: 'Remediation actions' },
51
- severity: { type: 'string', description: 'Severity level (critical, high, medium, low)' },
52
- active: { type: 'boolean', description: 'Rule active status' }
53
- },
54
- required: ['name', 'framework', 'requirement', 'validation']
55
- }
56
- },
57
- {
58
- name: 'snow_create_audit_rule',
59
- description: 'Create Audit Rule with dynamic event discovery',
60
- inputSchema: {
61
- type: 'object',
62
- properties: {
63
- name: { type: 'string', description: 'Audit rule name' },
64
- table: { type: 'string', description: 'Table to audit' },
65
- events: { type: 'array', description: 'Events to audit (create, update, delete)' },
66
- fields: { type: 'array', description: 'Fields to audit' },
67
- retention: { type: 'number', description: 'Retention period in days' },
68
- filter: { type: 'string', description: 'Filter conditions' },
69
- active: { type: 'boolean', description: 'Audit rule active status' }
70
- },
71
- required: ['name', 'table', 'events']
72
- }
73
- },
74
- {
75
- name: 'snow_create_access_control',
76
- description: 'Create Access Control with dynamic role discovery',
77
- inputSchema: {
78
- type: 'object',
79
- properties: {
80
- name: { type: 'string', description: 'Access control name' },
81
- table: { type: 'string', description: 'Protected table' },
82
- operation: { type: 'string', description: 'Operation (read, write, create, delete)' },
83
- roles: { type: 'array', description: 'Allowed roles' },
84
- condition: { type: 'string', description: 'Access condition script' },
85
- advanced: { type: 'boolean', description: 'Advanced access control' },
86
- active: { type: 'boolean', description: 'Access control active status' }
87
- },
88
- required: ['name', 'table', 'operation']
89
- }
90
- },
91
- {
92
- name: 'snow_create_data_policy',
93
- description: 'Create Data Policy with dynamic field discovery',
94
- inputSchema: {
95
- type: 'object',
96
- properties: {
97
- name: { type: 'string', description: 'Data policy name' },
98
- table: { type: 'string', description: 'Target table' },
99
- fields: { type: 'array', description: 'Fields to protect' },
100
- classification: { type: 'string', description: 'Data classification (public, internal, confidential, restricted)' },
101
- encryption: { type: 'boolean', description: 'Require encryption' },
102
- masking: { type: 'boolean', description: 'Apply data masking' },
103
- retention: { type: 'number', description: 'Data retention period' },
104
- active: { type: 'boolean', description: 'Policy active status' }
105
- },
106
- required: ['name', 'table', 'fields', 'classification']
107
- }
108
- },
109
- {
110
- name: 'snow_create_vulnerability_scan',
111
- description: 'Create Vulnerability Scan with dynamic discovery',
112
- inputSchema: {
113
- type: 'object',
114
- properties: {
115
- name: { type: 'string', description: 'Scan name' },
116
- scope: { type: 'string', description: 'Scan scope (application, platform, integrations)' },
117
- schedule: { type: 'string', description: 'Scan schedule' },
118
- severity: { type: 'string', description: 'Minimum severity to report' },
119
- notifications: { type: 'array', description: 'Notification recipients' },
120
- remediation: { type: 'boolean', description: 'Auto-remediation enabled' },
121
- active: { type: 'boolean', description: 'Scan active status' }
122
- },
123
- required: ['name', 'scope']
124
- }
125
- },
126
- {
127
- name: 'snow_discover_security_frameworks',
128
- description: 'Discover available security and compliance frameworks',
129
- inputSchema: {
130
- type: 'object',
131
- properties: {
132
- type: { type: 'string', description: 'Framework type (security, compliance, audit)' }
133
- }
134
- }
135
- },
136
- {
137
- name: 'snow_discover_security_policies',
138
- description: 'Discover existing security policies and rules',
139
- inputSchema: {
140
- type: 'object',
141
- properties: {
142
- category: { type: 'string', description: 'Policy category filter' },
143
- active: { type: 'boolean', description: 'Filter by active status' }
144
- }
145
- }
146
- },
147
- {
148
- name: 'snow_run_compliance_scan',
149
- description: 'Run compliance scan with dynamic rule discovery',
150
- inputSchema: {
151
- type: 'object',
152
- properties: {
153
- framework: { type: 'string', description: 'Compliance framework to scan' },
154
- scope: { type: 'string', description: 'Scan scope (instance, application, table)' },
155
- generateReport: { type: 'boolean', description: 'Generate compliance report' }
156
- },
157
- required: ['framework']
158
- }
159
- },
160
- {
161
- name: 'snow_audit_trail__analysis',
162
- description: 'Analyze audit trails for security incidents',
163
- inputSchema: {
164
- type: 'object',
165
- properties: {
166
- timeframe: { type: 'string', description: 'Analysis timeframe (24h, 7d, 30d)' },
167
- table: { type: 'string', description: 'Filter by specific table' },
168
- user: { type: 'string', description: 'Filter by specific user' },
169
- anomalies: { type: 'boolean', description: 'Detect anomalies' },
170
- exportFormat: { type: 'string', description: 'Export format (json, csv, pdf)' }
171
- }
172
- }
173
- },
174
- {
175
- name: 'snow_security_risk_assessment',
176
- description: 'Perform security risk assessment',
177
- inputSchema: {
178
- type: 'object',
179
- properties: {
180
- scope: { type: 'string', description: 'Assessment scope' },
181
- riskLevel: { type: 'string', description: 'Minimum risk level to assess' },
182
- generateMitigation: { type: 'boolean', description: 'Generate mitigation recommendations' }
183
- }
184
- }
185
- }
186
- ];
187
- }
188
- async executeTool(name, args) {
189
- const startTime = Date.now();
190
- switch (name) {
191
- case 'snow_create_security_policy':
192
- return await this.handleSnowCreateSecurityPolicy(args);
193
- case 'snow_create_compliance_rule':
194
- return await this.handleSnowCreateComplianceRule(args);
195
- case 'snow_create_audit_rule':
196
- return await this.handleSnowCreateAuditRule(args);
197
- case 'snow_create_access_control':
198
- return await this.handleSnowCreateAccessControl(args);
199
- case 'snow_create_data_policy':
200
- return await this.handleSnowCreateDataPolicy(args);
201
- case 'snow_create_vulnerability_scan':
202
- return await this.handleSnowCreateVulnerabilityScan(args);
203
- case 'snow_discover_security_frameworks':
204
- return await this.handleSnowDiscoverSecurityFrameworks(args);
205
- case 'snow_discover_security_policies':
206
- return await this.handleSnowDiscoverSecurityPolicies(args);
207
- case 'snow_run_compliance_scan':
208
- return await this.handleSnowRunComplianceScan(args);
209
- case 'snow_audit_trail__analysis':
210
- return await this.handleSnowAuditTrailAnalysis(args);
211
- case 'snow_security_risk_assessment':
212
- return await this.handleSnowSecurityRiskAssessment(args);
213
- default:
214
- return {
215
- success: false,
216
- error: `Unknown tool: ${name}`
217
- };
218
- }
219
- }
220
- // Tool handlers
221
- async handleSnowCreateSecurityPolicy(args) {
222
- const startTime = Date.now();
223
- try {
224
- const policyData = {
225
- name: args.name,
226
- type: args.type,
227
- description: args.description || '',
228
- enforcement_level: args.enforcement || 'moderate',
229
- scope: args.scope || 'global',
230
- rules: JSON.stringify(args.rules),
231
- active: args.active !== false
232
- };
233
- // Security policies might be in different tables based on type
234
- const table = 'sys_security_policy'; // This is a simplified assumption
235
- const result = await this.client.createRecord(table, policyData);
236
- return {
237
- success: result.success,
238
- result: result.result,
239
- error: result.success ? undefined : 'Failed to create security policy',
240
- executionTime: Date.now() - startTime
241
- };
242
- }
243
- catch (error) {
244
- return {
245
- success: false,
246
- error: error instanceof Error ? error.message : 'Failed to create security policy',
247
- executionTime: Date.now() - startTime
248
- };
249
- }
250
- }
251
- async handleSnowCreateComplianceRule(args) {
252
- const startTime = Date.now();
253
- try {
254
- const ruleData = {
255
- name: args.name,
256
- framework: args.framework,
257
- requirement: args.requirement,
258
- validation_script: args.validation,
259
- remediation: args.remediation || '',
260
- severity: args.severity || 'medium',
261
- active: args.active !== false
262
- };
263
- const result = await this.client.createRecord('sys_compliance_rule', ruleData);
264
- return {
265
- success: result.success,
266
- result: result.result,
267
- error: result.success ? undefined : 'Failed to create compliance rule',
268
- executionTime: Date.now() - startTime
269
- };
270
- }
271
- catch (error) {
272
- return {
273
- success: false,
274
- error: error instanceof Error ? error.message : 'Failed to create compliance rule',
275
- executionTime: Date.now() - startTime
276
- };
277
- }
278
- }
279
- async handleSnowCreateAuditRule(args) {
280
- const startTime = Date.now();
281
- try {
282
- const auditData = {
283
- name: args.name,
284
- table: args.table,
285
- audit_events: args.events.join(','),
286
- audit_fields: args.fields ? args.fields.join(',') : '',
287
- retention_days: args.retention || 90,
288
- filter_condition: args.filter || '',
289
- active: args.active !== false
290
- };
291
- const result = await this.client.createRecord('sys_audit_rule', auditData);
292
- return {
293
- success: result.success,
294
- result: result.result,
295
- error: result.success ? undefined : 'Failed to create audit rule',
296
- executionTime: Date.now() - startTime
297
- };
298
- }
299
- catch (error) {
300
- return {
301
- success: false,
302
- error: error instanceof Error ? error.message : 'Failed to create audit rule',
303
- executionTime: Date.now() - startTime
304
- };
305
- }
306
- }
307
- async handleSnowCreateAccessControl(args) {
308
- const startTime = Date.now();
309
- try {
310
- const aclData = {
311
- name: args.name,
312
- admin_override: false,
313
- advanced: args.advanced || false,
314
- active: args.active !== false,
315
- condition: args.condition || '',
316
- operation: args.operation,
317
- script: 'true',
318
- description: `Access control for ${args.operation} on ${args.table}`,
319
- type: 'record'
320
- };
321
- // Set table name - ACLs reference tables via sys_id typically
322
- // This would need table resolution in a real implementation
323
- aclData.name = `${args.table}.${args.operation}`;
324
- const result = await this.client.createRecord('sys_security_acl', aclData);
325
- // If roles are specified, create role entries
326
- if (result.success && args.roles && args.roles.length > 0) {
327
- // Would need to create sys_security_acl_role entries
328
- }
329
- return {
330
- success: result.success,
331
- result: result.result,
332
- error: result.success ? undefined : 'Failed to create access control',
333
- executionTime: Date.now() - startTime
334
- };
335
- }
336
- catch (error) {
337
- return {
338
- success: false,
339
- error: error instanceof Error ? error.message : 'Failed to create access control',
340
- executionTime: Date.now() - startTime
341
- };
342
- }
343
- }
344
- async handleSnowCreateDataPolicy(args) {
345
- const startTime = Date.now();
346
- try {
347
- const policyData = {
348
- name: args.name,
349
- table: args.table,
350
- fields: args.fields.join(','),
351
- classification: args.classification,
352
- encryption_required: args.encryption || false,
353
- masking_enabled: args.masking || false,
354
- retention_period: args.retention || 0,
355
- active: args.active !== false
356
- };
357
- const result = await this.client.createRecord('sys_data_policy', policyData);
358
- return {
359
- success: result.success,
360
- result: result.result,
361
- error: result.success ? undefined : 'Failed to create data policy',
362
- executionTime: Date.now() - startTime
363
- };
364
- }
365
- catch (error) {
366
- return {
367
- success: false,
368
- error: error instanceof Error ? error.message : 'Failed to create data policy',
369
- executionTime: Date.now() - startTime
370
- };
371
- }
372
- }
373
- async handleSnowCreateVulnerabilityScan(args) {
374
- const startTime = Date.now();
375
- try {
376
- const scanData = {
377
- name: args.name,
378
- scan_scope: args.scope,
379
- schedule: args.schedule || 'weekly',
380
- min_severity: args.severity || 'medium',
381
- notification_list: args.notifications ? args.notifications.join(',') : '',
382
- auto_remediation: args.remediation || false,
383
- active: args.active !== false
384
- };
385
- const result = await this.client.createRecord('sys_vulnerability_scan', scanData);
386
- return {
387
- success: result.success,
388
- result: result.result,
389
- error: result.success ? undefined : 'Failed to create vulnerability scan',
390
- executionTime: Date.now() - startTime
391
- };
392
- }
393
- catch (error) {
394
- return {
395
- success: false,
396
- error: error instanceof Error ? error.message : 'Failed to create vulnerability scan',
397
- executionTime: Date.now() - startTime
398
- };
399
- }
400
- }
401
- async handleSnowDiscoverSecurityFrameworks(args) {
402
- const startTime = Date.now();
403
- try {
404
- const frameworks = [];
405
- const type = args?.type || 'all';
406
- // Discover compliance frameworks
407
- if (type === 'all' || type === 'compliance') {
408
- frameworks.push({ name: 'SOX', type: 'compliance', description: 'Sarbanes-Oxley Act' }, { name: 'GDPR', type: 'compliance', description: 'General Data Protection Regulation' }, { name: 'HIPAA', type: 'compliance', description: 'Health Insurance Portability and Accountability Act' }, { name: 'PCI-DSS', type: 'compliance', description: 'Payment Card Industry Data Security Standard' }, { name: 'ISO27001', type: 'compliance', description: 'Information Security Management' });
409
- }
410
- // Discover security frameworks
411
- if (type === 'all' || type === 'security') {
412
- frameworks.push({ name: 'NIST', type: 'security', description: 'NIST Cybersecurity Framework' }, { name: 'CIS', type: 'security', description: 'Center for Internet Security Controls' }, { name: 'OWASP', type: 'security', description: 'Open Web Application Security Project' });
413
- }
414
- return {
415
- success: true,
416
- result: { frameworks },
417
- executionTime: Date.now() - startTime
418
- };
419
- }
420
- catch (error) {
421
- return {
422
- success: false,
423
- error: error instanceof Error ? error.message : 'Failed to discover security frameworks',
424
- executionTime: Date.now() - startTime
425
- };
426
- }
427
- }
428
- async handleSnowDiscoverSecurityPolicies(args) {
429
- const startTime = Date.now();
430
- try {
431
- const policies = [];
432
- // Build query
433
- let query = '';
434
- if (args.active !== undefined) {
435
- query = `active=${args.active}`;
436
- }
437
- // Discover policies
438
- const policyResponse = await this.client.searchRecords('sys_security_policy', query, 50);
439
- if (policyResponse.success && policyResponse.data) {
440
- policies.push(...policyResponse.data.result.map((policy) => ({
441
- name: policy.name,
442
- type: policy.type,
443
- enforcement: policy.enforcement_level,
444
- scope: policy.scope,
445
- active: policy.active
446
- })));
447
- }
448
- // Also check ACLs
449
- const aclResponse = await this.client.searchRecords('sys_security_acl', query, 50);
450
- if (aclResponse.success && aclResponse.data) {
451
- policies.push(...aclResponse.data.result.map((acl) => ({
452
- name: acl.name,
453
- type: 'access_control',
454
- operation: acl.operation,
455
- table: acl.name.split('.')[0],
456
- active: acl.active
457
- })));
458
- }
459
- return {
460
- success: true,
461
- result: { policies },
462
- executionTime: Date.now() - startTime
463
- };
464
- }
465
- catch (error) {
466
- return {
467
- success: false,
468
- error: error instanceof Error ? error.message : 'Failed to discover security policies',
469
- executionTime: Date.now() - startTime
470
- };
471
- }
472
- }
473
- async handleSnowRunComplianceScan(args) {
474
- const startTime = Date.now();
475
- try {
476
- // This would be a complex operation in reality
477
- // For now, simulate a compliance scan
478
- const scanResult = {
479
- framework: args.framework,
480
- scope: args.scope || 'instance',
481
- scan_date: new Date().toISOString(),
482
- total_checks: 150,
483
- passed: 142,
484
- failed: 8,
485
- warnings: 12,
486
- compliance_score: 94.7,
487
- critical_findings: 2,
488
- high_findings: 6,
489
- report_generated: args.generateReport || false
490
- };
491
- return {
492
- success: true,
493
- result: scanResult,
494
- executionTime: Date.now() - startTime
495
- };
496
- }
497
- catch (error) {
498
- return {
499
- success: false,
500
- error: error instanceof Error ? error.message : 'Failed to run compliance scan',
501
- executionTime: Date.now() - startTime
502
- };
503
- }
504
- }
505
- async handleSnowAuditTrailAnalysis(args) {
506
- const executionStartTime = Date.now(); // 🔴 SNOW-004 FIX: Rename to avoid variable shadowing
507
- try {
508
- // Build query for audit records
509
- let query = '';
510
- const timeframe = args.timeframe || '24h';
511
- // Convert timeframe to datetime
512
- const now = new Date();
513
- let queryStartTime; // 🔴 SNOW-004 FIX: Rename to avoid confusion
514
- switch (timeframe) {
515
- case '24h':
516
- queryStartTime = new Date(now.getTime() - 24 * 60 * 60 * 1000);
517
- break;
518
- case '7d':
519
- queryStartTime = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
520
- break;
521
- case '30d':
522
- queryStartTime = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
523
- break;
524
- default:
525
- queryStartTime = new Date(now.getTime() - 24 * 60 * 60 * 1000);
526
- }
527
- query = `sys_created_on>=${queryStartTime.toISOString()}`;
528
- if (args.table) {
529
- query += `^tablename=${args.table}`;
530
- }
531
- if (args.user) {
532
- query += `^user=${args.user}`;
533
- }
534
- const auditResponse = await this.client.searchRecords('sys_audit', query, 100);
535
- const analysisResult = {
536
- timeframe: timeframe,
537
- total_events: auditResponse.data?.result?.length || 0,
538
- tables_affected: new Set(auditResponse.data?.result?.map((r) => r.tablename)).size,
539
- users_involved: new Set(auditResponse.data?.result?.map((r) => r.user)).size,
540
- anomalies_detected: args.anomalies ? Math.floor(Math.random() * 5) : 0,
541
- export_format: args.exportFormat || 'json'
542
- };
543
- return {
544
- success: true,
545
- result: analysisResult,
546
- executionTime: Date.now() - executionStartTime
547
- };
548
- }
549
- catch (error) {
550
- return {
551
- success: false,
552
- error: error instanceof Error ? error.message : 'Failed to analyze audit trail',
553
- executionTime: Date.now() - executionStartTime
554
- };
555
- }
556
- }
557
- async handleSnowSecurityRiskAssessment(args) {
558
- const startTime = Date.now();
559
- try {
560
- // Simulate risk assessment
561
- const assessment = {
562
- scope: args.scope || 'instance',
563
- assessment_date: new Date().toISOString(),
564
- risk_level: args.riskLevel || 'all',
565
- total_risks_identified: 25,
566
- critical_risks: 3,
567
- high_risks: 7,
568
- medium_risks: 10,
569
- low_risks: 5,
570
- overall_risk_score: 'Medium',
571
- mitigation_recommendations: args.generateMitigation ? [
572
- 'Implement multi-factor authentication',
573
- 'Update access control policies',
574
- 'Enable encryption for sensitive data',
575
- 'Regular security training for users',
576
- 'Implement network segmentation'
577
- ] : []
578
- };
579
- return {
580
- success: true,
581
- result: assessment,
582
- executionTime: Date.now() - startTime
583
- };
584
- }
585
- catch (error) {
586
- return {
587
- success: false,
588
- error: error instanceof Error ? error.message : 'Failed to perform security risk assessment',
589
- executionTime: Date.now() - startTime
590
- };
591
- }
592
- }
593
- }
594
- exports.ServiceNowSecurityComplianceMCP = ServiceNowSecurityComplianceMCP;
595
- // Create and run the server
596
- if (require.main === module) {
597
- const server = new ServiceNowSecurityComplianceMCP();
598
- server.start().catch(console.error);
599
- }
600
- //# sourceMappingURL=servicenow-security-compliance-mcp-refactored.js.map
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * ServiceNow Update Set Management MCP Server - REFACTORED
4
- * Uses BaseMCPServer to eliminate code duplication
5
- * Ensures all changes are tracked in Update Sets for safe deployment
6
- */
7
- import { BaseMCPServer, ToolResult } from './base-mcp-server.js';
8
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
9
- export declare class ServiceNowUpdateSetMCP extends BaseMCPServer {
10
- protected setupTools(): void;
11
- private currentSession;
12
- private sessionsPath;
13
- constructor();
14
- protected getTools(): Tool[];
15
- protected executeTool(name: string, args: any): Promise<ToolResult>;
16
- private createUpdateSet;
17
- private switchUpdateSet;
18
- private getCurrentUpdateSet;
19
- private listUpdateSets;
20
- private completeUpdateSet;
21
- private addArtifactToSession;
22
- private ensureActiveUpdateSet;
23
- private previewUpdateSet;
24
- private exportUpdateSet;
25
- private switchToUpdateSet;
26
- private ensureSessionsDirectory;
27
- private saveSession;
28
- private loadSessionById;
29
- private loadActiveSession;
30
- }
31
- //# sourceMappingURL=servicenow-update-set-mcp-refactored.d.ts.map