@chykalophia/clickup-mcp-server 3.4.0 → 4.1.2

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 (133) hide show
  1. package/build/clickup-client/attachments-enhanced.js +4 -1
  2. package/build/clickup-client/attachments-enhanced.js.map +1 -1
  3. package/build/clickup-client/auth.js.map +1 -1
  4. package/build/clickup-client/chat-enhanced.js +3 -1
  5. package/build/clickup-client/chat-enhanced.js.map +1 -1
  6. package/build/clickup-client/checklists.js.map +1 -1
  7. package/build/clickup-client/comments-enhanced.js +4 -3
  8. package/build/clickup-client/comments-enhanced.js.map +1 -1
  9. package/build/clickup-client/comments.js +2 -1
  10. package/build/clickup-client/comments.js.map +1 -1
  11. package/build/clickup-client/custom-fields-enhanced.js +7 -7
  12. package/build/clickup-client/custom-fields-enhanced.js.map +1 -1
  13. package/build/clickup-client/dependencies-enhanced.js.map +1 -1
  14. package/build/clickup-client/docs-enhanced.d.ts +1 -1
  15. package/build/clickup-client/docs-enhanced.js +35 -7
  16. package/build/clickup-client/docs-enhanced.js.map +1 -1
  17. package/build/clickup-client/docs.js +6 -6
  18. package/build/clickup-client/docs.js.map +1 -1
  19. package/build/clickup-client/folders.js.map +1 -1
  20. package/build/clickup-client/goals-enhanced.js.map +1 -1
  21. package/build/clickup-client/index.js +2 -2
  22. package/build/clickup-client/index.js.map +1 -1
  23. package/build/clickup-client/lists.js.map +1 -1
  24. package/build/clickup-client/secure-client.js +7 -6
  25. package/build/clickup-client/secure-client.js.map +1 -1
  26. package/build/clickup-client/tasks.d.ts +41 -0
  27. package/build/clickup-client/tasks.js +128 -2
  28. package/build/clickup-client/tasks.js.map +1 -1
  29. package/build/clickup-client/time-tracking-enhanced.js +2 -6
  30. package/build/clickup-client/time-tracking-enhanced.js.map +1 -1
  31. package/build/clickup-client/views-enhanced.js.map +1 -1
  32. package/build/clickup-client/webhooks-enhanced.js +4 -3
  33. package/build/clickup-client/webhooks-enhanced.js.map +1 -1
  34. package/build/index-efficiency-simple.js +81 -50
  35. package/build/index-efficiency-simple.js.map +1 -1
  36. package/build/index-enhanced.js +1 -0
  37. package/build/index-enhanced.js.map +1 -1
  38. package/build/index.js +1 -0
  39. package/build/index.js.map +1 -1
  40. package/build/resources/checklist-resources.js +1 -0
  41. package/build/resources/checklist-resources.js.map +1 -1
  42. package/build/resources/comment-resources.js +1 -0
  43. package/build/resources/comment-resources.js.map +1 -1
  44. package/build/resources/doc-resources.js +1 -0
  45. package/build/resources/doc-resources.js.map +1 -1
  46. package/build/resources/folder-resources.js +1 -0
  47. package/build/resources/folder-resources.js.map +1 -1
  48. package/build/resources/list-resources.js +1 -0
  49. package/build/resources/list-resources.js.map +1 -1
  50. package/build/resources/space-resources.js +1 -0
  51. package/build/resources/space-resources.js.map +1 -1
  52. package/build/resources/task-resources.js +1 -0
  53. package/build/resources/task-resources.js.map +1 -1
  54. package/build/schemas/attachments-schemas.js +16 -10
  55. package/build/schemas/attachments-schemas.js.map +1 -1
  56. package/build/schemas/chat-schemas.d.ts +7 -7
  57. package/build/schemas/chat-schemas.js +22 -6
  58. package/build/schemas/chat-schemas.js.map +1 -1
  59. package/build/schemas/custom-field-schemas.d.ts +80 -80
  60. package/build/schemas/custom-field-schemas.js +27 -11
  61. package/build/schemas/custom-field-schemas.js.map +1 -1
  62. package/build/schemas/dependencies-schemas.d.ts +11 -11
  63. package/build/schemas/dependencies-schemas.js +14 -11
  64. package/build/schemas/dependencies-schemas.js.map +1 -1
  65. package/build/schemas/document-schemas.d.ts +14 -14
  66. package/build/schemas/document-schemas.js +38 -14
  67. package/build/schemas/document-schemas.js.map +1 -1
  68. package/build/schemas/goals-schemas.d.ts +50 -50
  69. package/build/schemas/goals-schemas.js +4 -1
  70. package/build/schemas/goals-schemas.js.map +1 -1
  71. package/build/schemas/task-schemas.d.ts +382 -0
  72. package/build/schemas/task-schemas.js +115 -0
  73. package/build/schemas/task-schemas.js.map +1 -0
  74. package/build/schemas/time-tracking-schemas.d.ts +20 -20
  75. package/build/schemas/time-tracking-schemas.js +11 -10
  76. package/build/schemas/time-tracking-schemas.js.map +1 -1
  77. package/build/schemas/views-schemas.d.ts +2 -2
  78. package/build/schemas/views-schemas.js +9 -9
  79. package/build/schemas/views-schemas.js.map +1 -1
  80. package/build/schemas/webhook-schemas.js +3 -3
  81. package/build/schemas/webhook-schemas.js.map +1 -1
  82. package/build/tools/attachments-tools-setup.js +146 -65
  83. package/build/tools/attachments-tools-setup.js.map +1 -1
  84. package/build/tools/chat-tools.js +233 -106
  85. package/build/tools/chat-tools.js.map +1 -1
  86. package/build/tools/checklist-tools.js +13 -5
  87. package/build/tools/checklist-tools.js.map +1 -1
  88. package/build/tools/comment-tools.js +35 -14
  89. package/build/tools/comment-tools.js.map +1 -1
  90. package/build/tools/custom-field-tools.js +192 -67
  91. package/build/tools/custom-field-tools.js.map +1 -1
  92. package/build/tools/dependencies-tools-setup.js +133 -58
  93. package/build/tools/dependencies-tools-setup.js.map +1 -1
  94. package/build/tools/doc-tools-enhanced.js +153 -45
  95. package/build/tools/doc-tools-enhanced.js.map +1 -1
  96. package/build/tools/doc-tools.js +4 -1
  97. package/build/tools/doc-tools.js.map +1 -1
  98. package/build/tools/goals-tools.js +113 -41
  99. package/build/tools/goals-tools.js.map +1 -1
  100. package/build/tools/helper-tools.js +131 -53
  101. package/build/tools/helper-tools.js.map +1 -1
  102. package/build/tools/space-tools.js.map +1 -1
  103. package/build/tools/task-tools.js +501 -21
  104. package/build/tools/task-tools.js.map +1 -1
  105. package/build/tools/test-task-update.d.ts +2 -0
  106. package/build/tools/test-task-update.js +124 -0
  107. package/build/tools/test-task-update.js.map +1 -0
  108. package/build/tools/time-tracking-tools.js +105 -36
  109. package/build/tools/time-tracking-tools.js.map +1 -1
  110. package/build/tools/views-tools-setup.js +124 -61
  111. package/build/tools/views-tools-setup.js.map +1 -1
  112. package/build/tools/webhook-tools-setup.js +175 -72
  113. package/build/tools/webhook-tools-setup.js.map +1 -1
  114. package/build/tools/webhook-tools.js +51 -18
  115. package/build/tools/webhook-tools.js.map +1 -1
  116. package/build/utils/clickup-comment-formatter.js +55 -25
  117. package/build/utils/clickup-comment-formatter.js.map +1 -1
  118. package/build/utils/context-aware-suggestions.js +42 -22
  119. package/build/utils/context-aware-suggestions.js.map +1 -1
  120. package/build/utils/error-handling.js +29 -13
  121. package/build/utils/error-handling.js.map +1 -1
  122. package/build/utils/markdown-styling.js.map +1 -1
  123. package/build/utils/markdown.d.ts +5 -4
  124. package/build/utils/markdown.js +24 -19
  125. package/build/utils/markdown.js.map +1 -1
  126. package/build/utils/security.d.ts +76 -0
  127. package/build/utils/security.js +280 -25
  128. package/build/utils/security.js.map +1 -1
  129. package/build/utils/tool-efficiency.js +21 -12
  130. package/build/utils/tool-efficiency.js.map +1 -1
  131. package/package.json +5 -5
  132. package/LICENSE +0 -21
  133. package/README.md +0 -510
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-console */
1
2
  import crypto from 'crypto';
2
3
  import { z } from 'zod';
3
4
  // Default rate limits
@@ -6,10 +7,42 @@ export const DEFAULT_RATE_LIMITS = {
6
7
  api: { windowMs: 60000, maxRequests: 1000 }, // 1000 requests per minute
7
8
  upload: { windowMs: 60000, maxRequests: 10 } // 10 uploads per minute
8
9
  };
9
- // Rate limiter implementation
10
+ // Rate limiter implementation with memory leak prevention
10
11
  class RateLimiter {
11
12
  constructor() {
12
13
  this.requests = new Map();
14
+ // Only create cleanup interval in non-test environments
15
+ if (process.env.NODE_ENV !== 'test') {
16
+ // Cleanup old entries every 5 minutes to prevent memory leaks
17
+ this.cleanupInterval = setInterval(() => {
18
+ this.cleanup();
19
+ }, 5 * 60 * 1000);
20
+ // Cleanup interval on process exit to prevent Jest hanging
21
+ if (typeof process !== 'undefined') {
22
+ process.on('exit', () => this.destroy());
23
+ process.on('SIGINT', () => this.destroy());
24
+ process.on('SIGTERM', () => this.destroy());
25
+ }
26
+ }
27
+ }
28
+ destroy() {
29
+ if (this.cleanupInterval) {
30
+ clearInterval(this.cleanupInterval);
31
+ }
32
+ this.requests.clear();
33
+ }
34
+ cleanup() {
35
+ const now = Date.now();
36
+ const maxAge = 60 * 60 * 1000; // 1 hour
37
+ for (const [key, timestamps] of this.requests.entries()) {
38
+ const recentRequests = timestamps.filter(time => now - time < maxAge);
39
+ if (recentRequests.length === 0) {
40
+ this.requests.delete(key);
41
+ }
42
+ else {
43
+ this.requests.set(key, recentRequests);
44
+ }
45
+ }
13
46
  }
14
47
  isAllowed(key, config) {
15
48
  const now = Date.now();
@@ -37,6 +70,24 @@ class RateLimiter {
37
70
  }
38
71
  }
39
72
  export const rateLimiter = new RateLimiter();
73
+ /**
74
+ * Operation-specific rate limits
75
+ */
76
+ export const OPERATION_RATE_LIMITS = {
77
+ bulk_operations: { windowMs: 60000, maxRequests: 10 }, // 10 per minute
78
+ file_uploads: { windowMs: 60000, maxRequests: 5 }, // 5 per minute
79
+ webhook_processing: { windowMs: 60000, maxRequests: 50 }, // 50 per minute
80
+ search_operations: { windowMs: 60000, maxRequests: 30 }, // 30 per minute
81
+ default: { windowMs: 60000, maxRequests: 100 } // 100 per minute
82
+ };
83
+ /**
84
+ * Check operation-specific rate limit
85
+ */
86
+ export const checkOperationRateLimit = (operation, identifier) => {
87
+ const limits = OPERATION_RATE_LIMITS[operation] || OPERATION_RATE_LIMITS.default;
88
+ const key = `${operation}_${identifier}`;
89
+ return rateLimiter.isAllowed(key, limits);
90
+ };
40
91
  /**
41
92
  * Validate and sanitize API token
42
93
  */
@@ -59,17 +110,50 @@ export const validateApiToken = (token) => {
59
110
  }
60
111
  return { isValid: true };
61
112
  };
113
+ /**
114
+ * Remove control characters from string
115
+ */
116
+ const removeControlCharacters = (str) => {
117
+ return str.split('').filter(char => {
118
+ const code = char.charCodeAt(0);
119
+ return !(code >= 0 && code <= 31) && !(code >= 127 && code <= 159);
120
+ }).join('');
121
+ };
122
+ /**
123
+ * HTML encode user input to prevent XSS attacks
124
+ */
125
+ export const htmlEncode = (input) => {
126
+ if (typeof input !== 'string') {
127
+ return String(input);
128
+ }
129
+ return input
130
+ .replace(/&/g, '&amp;')
131
+ .replace(/</g, '&lt;')
132
+ .replace(/>/g, '&gt;')
133
+ .replace(/"/g, '&quot;')
134
+ .replace(/'/g, '&#x27;')
135
+ .replace(/\//g, '&#x2F;');
136
+ };
62
137
  /**
63
138
  * Sanitize user input to prevent injection attacks
64
139
  */
65
140
  export const sanitizeInput = (input) => {
66
141
  if (typeof input === 'string') {
67
- // Remove potentially dangerous characters
68
- return input
142
+ // Remove potentially dangerous characters and patterns
143
+ let sanitized = input
69
144
  .replace(/[<>]/g, '') // Remove HTML tags
70
145
  .replace(/javascript:/gi, '') // Remove javascript: protocol
71
146
  .replace(/on\w+=/gi, '') // Remove event handlers
72
- .trim();
147
+ .replace(/[\r\n\t]/g, ' ') // Replace newlines/tabs with spaces to prevent log injection
148
+ .replace(/['"`;\\]/g, '') // Remove SQL injection characters
149
+ .replace(/\$\{.*?\}/g, '') // Remove template literals
150
+ .replace(/eval\s*\(/gi, '') // Remove eval calls
151
+ .replace(/Function\s*\(/gi, '') // Remove Function constructor
152
+ .trim()
153
+ .substring(0, 10000); // Limit length to prevent DoS
154
+ // Remove control characters
155
+ sanitized = removeControlCharacters(sanitized);
156
+ return sanitized;
73
157
  }
74
158
  if (Array.isArray(input)) {
75
159
  return input.map(sanitizeInput);
@@ -77,7 +161,9 @@ export const sanitizeInput = (input) => {
77
161
  if (input && typeof input === 'object') {
78
162
  const sanitized = {};
79
163
  for (const [key, value] of Object.entries(input)) {
80
- sanitized[sanitizeInput(key)] = sanitizeInput(value);
164
+ // Sanitize both keys and values
165
+ const sanitizedKey = typeof key === 'string' ? sanitizeInput(key) : key;
166
+ sanitized[sanitizedKey] = sanitizeInput(value);
81
167
  }
82
168
  return sanitized;
83
169
  }
@@ -129,8 +215,23 @@ export const validateFileUpload = (filename, mimetype, size) => {
129
215
  }
130
216
  // Check for dangerous extensions
131
217
  const dangerousExtensions = [
132
- '.exe', '.bat', '.cmd', '.com', '.pif', '.scr', '.vbs', '.js', '.jar',
133
- '.php', '.asp', '.aspx', '.jsp', '.sh', '.ps1', '.py', '.rb'
218
+ '.exe',
219
+ '.bat',
220
+ '.cmd',
221
+ '.com',
222
+ '.pif',
223
+ '.scr',
224
+ '.vbs',
225
+ '.js',
226
+ '.jar',
227
+ '.php',
228
+ '.asp',
229
+ '.aspx',
230
+ '.jsp',
231
+ '.sh',
232
+ '.ps1',
233
+ '.py',
234
+ '.rb'
134
235
  ];
135
236
  const extension = filename.toLowerCase().split('.').pop();
136
237
  if (extension && dangerousExtensions.includes(`.${extension}`)) {
@@ -149,16 +250,31 @@ export const validateFileUpload = (filename, mimetype, size) => {
149
250
  if (mimetype) {
150
251
  const allowedMimetypes = [
151
252
  // Images
152
- 'image/jpeg', 'image/png', 'image/gif', 'image/webp', 'image/svg+xml',
253
+ 'image/jpeg',
254
+ 'image/png',
255
+ 'image/gif',
256
+ 'image/webp',
257
+ 'image/svg+xml',
153
258
  // Documents
154
- 'application/pdf', 'text/plain', 'text/csv',
155
- 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
156
- 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
157
- 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
259
+ 'application/pdf',
260
+ 'text/plain',
261
+ 'text/csv',
262
+ 'application/msword',
263
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
264
+ 'application/vnd.ms-excel',
265
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
266
+ 'application/vnd.ms-powerpoint',
267
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
158
268
  // Archives
159
- 'application/zip', 'application/x-rar-compressed', 'application/x-7z-compressed',
269
+ 'application/zip',
270
+ 'application/x-rar-compressed',
271
+ 'application/x-7z-compressed',
160
272
  // Media
161
- 'video/mp4', 'video/webm', 'audio/mp3', 'audio/wav', 'audio/ogg'
273
+ 'video/mp4',
274
+ 'video/webm',
275
+ 'audio/mp3',
276
+ 'audio/wav',
277
+ 'audio/ogg'
162
278
  ];
163
279
  if (!allowedMimetypes.includes(mimetype)) {
164
280
  errors.push(`Mimetype '${mimetype}' not allowed`);
@@ -189,20 +305,19 @@ export const validateUrl = (url) => {
189
305
  if (!['http:', 'https:'].includes(parsedUrl.protocol)) {
190
306
  return { isValid: false, error: 'Only HTTP and HTTPS URLs are allowed' };
191
307
  }
192
- // Block localhost and private IPs for security
308
+ // Block localhost and private IPs for security (complete RFC 1918 ranges)
193
309
  const hostname = parsedUrl.hostname.toLowerCase();
194
310
  if (hostname === 'localhost' ||
195
311
  hostname === '127.0.0.1' ||
196
312
  hostname === '::1' ||
197
313
  hostname.startsWith('192.168.') ||
198
314
  hostname.startsWith('10.') ||
199
- hostname.startsWith('172.16.') ||
200
- hostname.startsWith('172.17.') ||
201
- hostname.startsWith('172.18.') ||
202
- hostname.startsWith('172.19.') ||
203
- hostname.startsWith('172.2') ||
204
- hostname.startsWith('172.30.') ||
205
- hostname.startsWith('172.31.')) {
315
+ // Complete 172.16.0.0/12 range (172.16.0.0 - 172.31.255.255)
316
+ /^172\.(1[6-9]|2[0-9]|3[01])\./.test(hostname) ||
317
+ // IPv6 private ranges
318
+ hostname.startsWith('fc00:') ||
319
+ hostname.startsWith('fd00:') ||
320
+ hostname.startsWith('fe80:')) {
206
321
  return { isValid: false, error: 'Private and localhost URLs are not allowed' };
207
322
  }
208
323
  return { isValid: true };
@@ -264,6 +379,26 @@ export const getSecurityHeaders = () => {
264
379
  'Referrer-Policy': 'strict-origin-when-cross-origin'
265
380
  };
266
381
  };
382
+ /**
383
+ * Secure logging function that prevents log injection
384
+ */
385
+ export const secureLog = (level, message, data) => {
386
+ // Sanitize message to prevent log injection
387
+ let sanitizedMessage = message
388
+ .replace(/[\r\n\t]/g, ' ') // Replace newlines/tabs with spaces
389
+ .substring(0, 1000); // Limit length
390
+ // Remove control characters
391
+ sanitizedMessage = removeControlCharacters(sanitizedMessage);
392
+ const timestamp = new Date().toISOString();
393
+ const logEntry = {
394
+ timestamp,
395
+ level,
396
+ message: sanitizedMessage,
397
+ data: data ? sanitizeInput(data) : undefined
398
+ };
399
+ // Use structured logging to prevent injection
400
+ console[level](`[${level.toUpperCase()}] ${timestamp}:`, logEntry);
401
+ };
267
402
  /**
268
403
  * Log security events
269
404
  */
@@ -271,12 +406,132 @@ export const logSecurityEvent = (event, details, level = 'info') => {
271
406
  const timestamp = new Date().toISOString();
272
407
  const logEntry = {
273
408
  timestamp,
274
- event,
409
+ event: sanitizeInput(event),
275
410
  level,
276
411
  details: sanitizeInput(details)
277
412
  };
278
- // In production, this should go to a proper logging system
279
- console.error(`[SECURITY ${level.toUpperCase()}] ${timestamp}: ${event}`, logEntry);
413
+ // Use secure logging to prevent log injection
414
+ secureLog('error', `[SECURITY ${level.toUpperCase()}] ${event}`, logEntry);
415
+ };
416
+ /**
417
+ * Prevent prototype pollution in objects
418
+ */
419
+ export const sanitizeObject = (obj) => {
420
+ if (obj === null || typeof obj !== 'object') {
421
+ return obj;
422
+ }
423
+ // Remove dangerous properties
424
+ delete obj.__proto__;
425
+ delete obj.constructor;
426
+ delete obj.prototype;
427
+ // Recursively sanitize nested objects
428
+ for (const key in obj) {
429
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
430
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
431
+ delete obj[key];
432
+ }
433
+ else if (typeof obj[key] === 'object' && obj[key] !== null) {
434
+ obj[key] = sanitizeObject(obj[key]);
435
+ }
436
+ }
437
+ }
438
+ return obj;
439
+ };
440
+ /**
441
+ * Safe object merge that prevents prototype pollution
442
+ */
443
+ export const safeMerge = (target, source) => {
444
+ const sanitizedSource = sanitizeObject(source);
445
+ return { ...target, ...sanitizedSource };
446
+ };
447
+ /**
448
+ * Sanitize error messages for production to prevent information disclosure
449
+ */
450
+ export const sanitizeErrorMessage = (error) => {
451
+ const isProduction = process.env.NODE_ENV === 'production';
452
+ if (isProduction) {
453
+ // Generic error messages in production
454
+ if (error?.message?.includes('ENOTFOUND') || error?.message?.includes('ECONNREFUSED')) {
455
+ return 'Network connection failed';
456
+ }
457
+ if (error?.message?.includes('401') || error?.message?.includes('Unauthorized')) {
458
+ return 'Authentication failed';
459
+ }
460
+ if (error?.message?.includes('403') || error?.message?.includes('Forbidden')) {
461
+ return 'Access denied';
462
+ }
463
+ if (error?.message?.includes('404') || error?.message?.includes('Not Found')) {
464
+ return 'Resource not found';
465
+ }
466
+ if (error?.message?.includes('429') || error?.message?.includes('rate limit')) {
467
+ return 'Rate limit exceeded';
468
+ }
469
+ return 'An error occurred';
470
+ }
471
+ // Detailed error messages in development
472
+ return error?.message || 'Unknown error';
473
+ };
474
+ /**
475
+ * Input length limits for security
476
+ */
477
+ export const INPUT_LIMITS = {
478
+ COMMENT_TEXT: 10000,
479
+ TASK_NAME: 500,
480
+ DESCRIPTION: 50000,
481
+ JSON_PAYLOAD: 100000,
482
+ URL: 2000,
483
+ GENERAL_TEXT: 1000
484
+ };
485
+ /**
486
+ * Validate input length to prevent DoS
487
+ */
488
+ export const validateInputLength = (input, limit, fieldName) => {
489
+ if (typeof input !== 'string') {
490
+ return; // Non-string inputs are handled elsewhere
491
+ }
492
+ if (input.length > limit) {
493
+ throw new Error(`${fieldName} exceeds maximum length of ${limit} characters (got ${input.length})`);
494
+ }
495
+ };
496
+ /**
497
+ * Production-safe logging that prevents information disclosure
498
+ */
499
+ export const productionSafeLog = (level, message, data) => {
500
+ const isProduction = process.env.NODE_ENV === 'production';
501
+ if (isProduction) {
502
+ // Only log sanitized, non-sensitive information in production
503
+ const sanitizedMessage = sanitizeInput(message).substring(0, 200);
504
+ const sanitizedData = data ? { type: typeof data, hasData: !!data } : undefined;
505
+ secureLog(level, sanitizedMessage, sanitizedData);
506
+ }
507
+ else {
508
+ // Development logging can be more verbose
509
+ secureLog(level, message, data);
510
+ }
511
+ };
512
+ /**
513
+ * Safe JSON parsing with validation and prototype pollution prevention
514
+ */
515
+ export const safeJsonParse = (jsonString, maxLength = 100000) => {
516
+ if (typeof jsonString !== 'string') {
517
+ throw new Error('Input must be a string');
518
+ }
519
+ if (jsonString.length > maxLength) {
520
+ throw new Error(`JSON payload too large (${jsonString.length} > ${maxLength})`);
521
+ }
522
+ try {
523
+ const parsed = JSON.parse(jsonString);
524
+ // Prevent prototype pollution
525
+ if (parsed && typeof parsed === 'object') {
526
+ delete parsed.__proto__;
527
+ delete parsed.constructor;
528
+ delete parsed.prototype;
529
+ }
530
+ return parsed;
531
+ }
532
+ catch (error) {
533
+ throw new Error('Invalid JSON format');
534
+ }
280
535
  };
281
536
  /**
282
537
  * Validate MCP tool parameters
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ /* eslint-disable max-len */
1
2
  /**
2
3
  * Tool Efficiency and Metadata System
3
4
  * Provides intelligent tool suggestions and efficiency hints for better AI decision making
@@ -29,7 +30,7 @@ export const TOOL_CATEGORIES = {
29
30
  */
30
31
  export const TOOL_METADATA = {
31
32
  // Chat Tools
32
- 'create_chat_view_comment': {
33
+ create_chat_view_comment: {
33
34
  name: 'create_chat_view_comment',
34
35
  category: 'core',
35
36
  efficiency: 'direct',
@@ -40,7 +41,7 @@ export const TOOL_METADATA = {
40
41
  related_tools: ['get_chat_view_comments', 'find_chat_channels'],
41
42
  performance_impact: 'low'
42
43
  },
43
- 'get_chat_view_comments': {
44
+ get_chat_view_comments: {
44
45
  name: 'get_chat_view_comments',
45
46
  category: 'core',
46
47
  efficiency: 'direct',
@@ -52,7 +53,7 @@ export const TOOL_METADATA = {
52
53
  performance_impact: 'low'
53
54
  },
54
55
  // Navigation Tools (less efficient)
55
- 'get_workspaces': {
56
+ get_workspaces: {
56
57
  name: 'get_workspaces',
57
58
  category: 'core',
58
59
  efficiency: 'hierarchical',
@@ -61,7 +62,7 @@ export const TOOL_METADATA = {
61
62
  efficiency_hint: 'Use only when you need to discover workspaces. Avoid if you already know workspace structure.',
62
63
  performance_impact: 'medium'
63
64
  },
64
- 'get_spaces': {
65
+ get_spaces: {
65
66
  name: 'get_spaces',
66
67
  category: 'core',
67
68
  efficiency: 'hierarchical',
@@ -72,7 +73,7 @@ export const TOOL_METADATA = {
72
73
  related_tools: ['get_views', 'get_lists'],
73
74
  performance_impact: 'medium'
74
75
  },
75
- 'get_views': {
76
+ get_views: {
76
77
  name: 'get_views',
77
78
  category: 'core',
78
79
  efficiency: 'hierarchical',
@@ -84,7 +85,7 @@ export const TOOL_METADATA = {
84
85
  performance_impact: 'medium'
85
86
  },
86
87
  // Search Tools (most efficient for discovery)
87
- 'search_docs': {
88
+ search_docs: {
88
89
  name: 'search_docs',
89
90
  category: 'search',
90
91
  efficiency: 'search',
@@ -95,7 +96,7 @@ export const TOOL_METADATA = {
95
96
  performance_impact: 'low'
96
97
  },
97
98
  // Task Tools
98
- 'get_task_details': {
99
+ get_task_details: {
99
100
  name: 'get_task_details',
100
101
  category: 'core',
101
102
  efficiency: 'direct',
@@ -106,7 +107,7 @@ export const TOOL_METADATA = {
106
107
  related_tools: ['update_task', 'create_task_comment'],
107
108
  performance_impact: 'low'
108
109
  },
109
- 'get_tasks': {
110
+ get_tasks: {
110
111
  name: 'get_tasks',
111
112
  category: 'core',
112
113
  efficiency: 'hierarchical',
@@ -124,8 +125,12 @@ export const TOOL_METADATA = {
124
125
  export function suggestToolsForTask(request) {
125
126
  const lowerRequest = request.toLowerCase();
126
127
  // Chat-related requests
127
- if (lowerRequest.includes('chat') || lowerRequest.includes('message') || lowerRequest.includes('post')) {
128
- if (lowerRequest.includes('send') || lowerRequest.includes('post') || lowerRequest.includes('create')) {
128
+ if (lowerRequest.includes('chat') ||
129
+ lowerRequest.includes('message') ||
130
+ lowerRequest.includes('post')) {
131
+ if (lowerRequest.includes('send') ||
132
+ lowerRequest.includes('post') ||
133
+ lowerRequest.includes('create')) {
129
134
  return {
130
135
  primary_tools: ['create_chat_view_comment'],
131
136
  alternative_tools: ['create_list_comment', 'create_task_comment'],
@@ -137,7 +142,9 @@ export function suggestToolsForTask(request) {
137
142
  workflow_hint: 'If you have chat_view_id → create_chat_view_comment. If not → find_chat_channels → create_chat_view_comment'
138
143
  };
139
144
  }
140
- if (lowerRequest.includes('read') || lowerRequest.includes('get') || lowerRequest.includes('history')) {
145
+ if (lowerRequest.includes('read') ||
146
+ lowerRequest.includes('get') ||
147
+ lowerRequest.includes('history')) {
141
148
  return {
142
149
  primary_tools: ['get_chat_view_comments'],
143
150
  alternative_tools: ['find_chat_channels'],
@@ -159,7 +166,9 @@ export function suggestToolsForTask(request) {
159
166
  workflow_hint: 'create_task with list_id'
160
167
  };
161
168
  }
162
- if (lowerRequest.includes('get') || lowerRequest.includes('details') || lowerRequest.includes('info')) {
169
+ if (lowerRequest.includes('get') ||
170
+ lowerRequest.includes('details') ||
171
+ lowerRequest.includes('info')) {
163
172
  return {
164
173
  primary_tools: ['get_task_details'],
165
174
  alternative_tools: ['get_tasks'],
@@ -1 +1 @@
1
- {"version":3,"file":"tool-efficiency.js","sourceRoot":"","sources":["../../src/utils/tool-efficiency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-efficiency.js","sourceRoot":"","sources":["../../src/utils/tool-efficiency.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chykalophia/clickup-mcp-server",
3
- "version": "3.4.0",
4
- "description": "An intelligent Model Context Protocol server for ClickUp API integration with 170+ tools, AI-powered efficiency optimization, smart tool suggestions, and context-aware workflow recommendations",
3
+ "version": "4.1.2",
4
+ "description": "An intelligent Model Context Protocol server for ClickUp API integration with 177+ tools, AI-powered efficiency optimization, smart tool suggestions, and context-aware workflow recommendations",
5
5
  "main": "build/index-enhanced.js",
6
6
  "bin": {
7
7
  "clickup-mcp-server": "build/index-enhanced.js",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "repository": {
41
41
  "type": "git",
42
- "url": "git+https://github.com/nsxdavid/clickup-mcp-server.git"
42
+ "url": "git+https://github.com/Chykalophia/ClickUp-MCP-Server---Enhanced.git"
43
43
  },
44
44
  "keywords": [
45
45
  "clickup",
@@ -79,9 +79,9 @@
79
79
  ],
80
80
  "license": "MIT",
81
81
  "bugs": {
82
- "url": "https://github.com/nsxdavid/clickup-mcp-server/issues"
82
+ "url": "https://github.com/Chykalophia/ClickUp-MCP-Server---Enhanced/issues"
83
83
  },
84
- "homepage": "https://github.com/nsxdavid/clickup-mcp-server#readme",
84
+ "homepage": "https://github.com/Chykalophia/ClickUp-MCP-Server---Enhanced#readme",
85
85
  "engines": {
86
86
  "node": ">=18.0.0"
87
87
  },
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 David Whatley and ClickUp MCP Server Contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.