@delorenj/mcp-server-trello 1.6.2 → 1.7.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.
@@ -1,510 +0,0 @@
1
- import { performance } from 'perf_hooks';
2
- /**
3
- * Health status levels for our magnificent Trello organism
4
- */
5
- export var HealthStatus;
6
- (function (HealthStatus) {
7
- HealthStatus["HEALTHY"] = "healthy";
8
- HealthStatus["DEGRADED"] = "degraded";
9
- HealthStatus["CRITICAL"] = "critical";
10
- HealthStatus["UNKNOWN"] = "unknown";
11
- })(HealthStatus || (HealthStatus = {}));
12
- /**
13
- * The magnificent HEALTH MONITORING system for our Trello MCP organism!
14
- *
15
- * This class performs comprehensive cardiovascular diagnostics to ensure
16
- * our digital creature remains healthy and happy. It's like having a
17
- * personal physician for your API! 🩺
18
- *
19
- * Features include:
20
- * - Real-time health status monitoring
21
- * - Performance metrics tracking
22
- * - Rate limit utilization analysis
23
- * - Automatic repair recommendations
24
- * - Detailed diagnostic reporting
25
- */
26
- export class TrelloHealthMonitor {
27
- constructor(trelloClient) {
28
- this.trelloClient = trelloClient;
29
- this.performanceTracker = {
30
- requests: [],
31
- startTime: Date.now(),
32
- };
33
- // Start monitoring performance in the background
34
- this.startPerformanceMonitoring();
35
- }
36
- /**
37
- * Get comprehensive system health status
38
- * This is the main cardiovascular examination! 🫀
39
- */
40
- async getSystemHealth(detailed = false) {
41
- const startTime = performance.now();
42
- const checks = [];
43
- // Run all health checks in parallel for maximum efficiency
44
- const checkPromises = [
45
- this.checkTrelloApiConnectivity(),
46
- this.checkBoardAccess(),
47
- this.checkRateLimitHealth(),
48
- this.checkPerformanceMetrics(),
49
- ];
50
- if (detailed) {
51
- checkPromises.push(this.checkListOperations(), this.checkCardOperations(), this.checkChecklistOperations(), this.checkWorkspaceAccess());
52
- }
53
- try {
54
- const checkResults = await Promise.all(checkPromises);
55
- checks.push(...checkResults);
56
- }
57
- catch (error) {
58
- // If parallel execution fails, run checks sequentially
59
- checks.push(await this.createErrorCheck('parallel_execution', error));
60
- }
61
- // Calculate overall status
62
- const overallStatus = this.calculateOverallStatus(checks);
63
- // Generate recommendations
64
- const recommendations = this.generateRecommendations(checks, overallStatus);
65
- // Create health report
66
- const report = {
67
- overall_status: overallStatus,
68
- timestamp: new Date().toISOString(),
69
- checks,
70
- recommendations,
71
- repair_available: this.isRepairAvailable(checks),
72
- uptime_ms: Date.now() - this.performanceTracker.startTime,
73
- performance_metrics: this.calculatePerformanceMetrics(),
74
- };
75
- this.lastHealthCheck = report;
76
- return report;
77
- }
78
- /**
79
- * Check basic Trello API connectivity
80
- */
81
- async checkTrelloApiConnectivity() {
82
- const startTime = performance.now();
83
- const checkName = 'trello_api_connectivity';
84
- try {
85
- // Simple "me" endpoint check - lowest impact way to verify connectivity
86
- await this.trelloClient.listBoards();
87
- const duration = performance.now() - startTime;
88
- this.recordPerformanceMetric(duration, true);
89
- return {
90
- name: checkName,
91
- status: HealthStatus.HEALTHY,
92
- message: 'Trello API connectivity is excellent',
93
- duration_ms: Math.round(duration),
94
- timestamp: new Date().toISOString(),
95
- metadata: {
96
- endpoint: '/members/me/boards',
97
- response_time_category: this.categorizeResponseTime(duration),
98
- },
99
- };
100
- }
101
- catch (error) {
102
- const duration = performance.now() - startTime;
103
- this.recordPerformanceMetric(duration, false);
104
- return this.createErrorCheck(checkName, error, duration);
105
- }
106
- }
107
- /**
108
- * Check if we can access the active board
109
- */
110
- async checkBoardAccess() {
111
- const startTime = performance.now();
112
- const checkName = 'board_access';
113
- try {
114
- const boardId = this.trelloClient.activeBoardId;
115
- if (!boardId) {
116
- return {
117
- name: checkName,
118
- status: HealthStatus.DEGRADED,
119
- message: 'No active board configured',
120
- duration_ms: Math.round(performance.now() - startTime),
121
- timestamp: new Date().toISOString(),
122
- metadata: {
123
- suggestion: 'Set an active board using set_active_board tool',
124
- },
125
- };
126
- }
127
- const board = await this.trelloClient.getBoardById(boardId);
128
- const duration = performance.now() - startTime;
129
- this.recordPerformanceMetric(duration, true);
130
- return {
131
- name: checkName,
132
- status: board.closed ? HealthStatus.CRITICAL : HealthStatus.HEALTHY,
133
- message: board.closed
134
- ? 'Active board is closed/archived'
135
- : `Board "${board.name}" is accessible`,
136
- duration_ms: Math.round(duration),
137
- timestamp: new Date().toISOString(),
138
- metadata: {
139
- board_id: board.id,
140
- board_name: board.name,
141
- board_closed: board.closed,
142
- board_url: board.url,
143
- },
144
- };
145
- }
146
- catch (error) {
147
- const duration = performance.now() - startTime;
148
- this.recordPerformanceMetric(duration, false);
149
- return this.createErrorCheck(checkName, error, duration);
150
- }
151
- }
152
- /**
153
- * Check rate limiter health and utilization
154
- */
155
- async checkRateLimitHealth() {
156
- const startTime = performance.now();
157
- const checkName = 'rate_limit_health';
158
- try {
159
- // Get rate limiter from client (this is a bit hacky but necessary)
160
- // In a real implementation, we'd expose this properly from TrelloClient
161
- const rateLimiterInfo = {
162
- can_make_request: true, // We'll approximate this
163
- utilization_percent: this.calculateRateLimitUtilization(),
164
- };
165
- const duration = performance.now() - startTime;
166
- let status = HealthStatus.HEALTHY;
167
- let message = 'Rate limiting is functioning optimally';
168
- if (rateLimiterInfo.utilization_percent > 80) {
169
- status = HealthStatus.DEGRADED;
170
- message = 'High rate limit utilization detected';
171
- }
172
- else if (rateLimiterInfo.utilization_percent > 95) {
173
- status = HealthStatus.CRITICAL;
174
- message = 'Rate limit near exhaustion';
175
- }
176
- return {
177
- name: checkName,
178
- status,
179
- message,
180
- duration_ms: Math.round(duration),
181
- timestamp: new Date().toISOString(),
182
- metadata: {
183
- utilization_percent: rateLimiterInfo.utilization_percent,
184
- can_make_request: rateLimiterInfo.can_make_request,
185
- trello_limits: {
186
- api_key_limit: '300 requests / 10 seconds',
187
- token_limit: '100 requests / 10 seconds',
188
- },
189
- },
190
- };
191
- }
192
- catch (error) {
193
- const duration = performance.now() - startTime;
194
- return this.createErrorCheck(checkName, error, duration);
195
- }
196
- }
197
- /**
198
- * Check performance metrics health
199
- */
200
- async checkPerformanceMetrics() {
201
- const startTime = performance.now();
202
- const checkName = 'performance_metrics';
203
- try {
204
- const metrics = this.calculatePerformanceMetrics();
205
- const duration = performance.now() - startTime;
206
- let status = HealthStatus.HEALTHY;
207
- let message = 'Performance metrics are excellent';
208
- if (metrics.avg_response_time_ms > 2000) {
209
- status = HealthStatus.DEGRADED;
210
- message = 'Slower than optimal response times detected';
211
- }
212
- else if (metrics.success_rate_percent < 95) {
213
- status = HealthStatus.CRITICAL;
214
- message = 'Low success rate detected';
215
- }
216
- return {
217
- name: checkName,
218
- status,
219
- message,
220
- duration_ms: Math.round(duration),
221
- timestamp: new Date().toISOString(),
222
- metadata: {
223
- ...metrics,
224
- total_requests: this.performanceTracker.requests.length,
225
- },
226
- };
227
- }
228
- catch (error) {
229
- const duration = performance.now() - startTime;
230
- return this.createErrorCheck(checkName, error, duration);
231
- }
232
- }
233
- /**
234
- * Check list operations (detailed check)
235
- */
236
- async checkListOperations() {
237
- const startTime = performance.now();
238
- const checkName = 'list_operations';
239
- try {
240
- const lists = await this.trelloClient.getLists();
241
- const duration = performance.now() - startTime;
242
- this.recordPerformanceMetric(duration, true);
243
- return {
244
- name: checkName,
245
- status: HealthStatus.HEALTHY,
246
- message: `Successfully retrieved ${lists.length} lists`,
247
- duration_ms: Math.round(duration),
248
- timestamp: new Date().toISOString(),
249
- metadata: {
250
- total_lists: lists.length,
251
- open_lists: lists.filter(l => !l.closed).length,
252
- closed_lists: lists.filter(l => l.closed).length,
253
- },
254
- };
255
- }
256
- catch (error) {
257
- const duration = performance.now() - startTime;
258
- this.recordPerformanceMetric(duration, false);
259
- return this.createErrorCheck(checkName, error, duration);
260
- }
261
- }
262
- /**
263
- * Check card operations (detailed check)
264
- */
265
- async checkCardOperations() {
266
- const startTime = performance.now();
267
- const checkName = 'card_operations';
268
- try {
269
- const myCards = await this.trelloClient.getMyCards();
270
- const duration = performance.now() - startTime;
271
- this.recordPerformanceMetric(duration, true);
272
- return {
273
- name: checkName,
274
- status: HealthStatus.HEALTHY,
275
- message: `Successfully retrieved ${myCards.length} user cards`,
276
- duration_ms: Math.round(duration),
277
- timestamp: new Date().toISOString(),
278
- metadata: {
279
- total_cards: myCards.length,
280
- open_cards: myCards.filter(c => !c.closed).length,
281
- closed_cards: myCards.filter(c => c.closed).length,
282
- },
283
- };
284
- }
285
- catch (error) {
286
- const duration = performance.now() - startTime;
287
- this.recordPerformanceMetric(duration, false);
288
- return this.createErrorCheck(checkName, error, duration);
289
- }
290
- }
291
- /**
292
- * Check checklist operations (detailed check)
293
- */
294
- async checkChecklistOperations() {
295
- const startTime = performance.now();
296
- const checkName = 'checklist_operations';
297
- try {
298
- // Try to get acceptance criteria as a test
299
- const criteria = await this.trelloClient.getAcceptanceCriteria();
300
- const duration = performance.now() - startTime;
301
- this.recordPerformanceMetric(duration, true);
302
- return {
303
- name: checkName,
304
- status: HealthStatus.HEALTHY,
305
- message: `Checklist operations functioning (${criteria.length} acceptance criteria found)`,
306
- duration_ms: Math.round(duration),
307
- timestamp: new Date().toISOString(),
308
- metadata: {
309
- acceptance_criteria_count: criteria.length,
310
- completed_items: criteria.filter(item => item.complete).length,
311
- },
312
- };
313
- }
314
- catch (error) {
315
- const duration = performance.now() - startTime;
316
- this.recordPerformanceMetric(duration, false);
317
- // Checklist failure might not be critical if it's just missing checklists
318
- const isConfigError = error instanceof Error &&
319
- (error.message.includes('not found') || error.message.includes('No board ID'));
320
- return this.createErrorCheck(checkName, error, duration, isConfigError ? HealthStatus.DEGRADED : HealthStatus.CRITICAL);
321
- }
322
- }
323
- /**
324
- * Check workspace access (detailed check)
325
- */
326
- async checkWorkspaceAccess() {
327
- const startTime = performance.now();
328
- const checkName = 'workspace_access';
329
- try {
330
- const workspaces = await this.trelloClient.listWorkspaces();
331
- const duration = performance.now() - startTime;
332
- this.recordPerformanceMetric(duration, true);
333
- return {
334
- name: checkName,
335
- status: HealthStatus.HEALTHY,
336
- message: `Access to ${workspaces.length} workspaces confirmed`,
337
- duration_ms: Math.round(duration),
338
- timestamp: new Date().toISOString(),
339
- metadata: {
340
- total_workspaces: workspaces.length,
341
- active_workspace_id: this.trelloClient.activeWorkspaceId,
342
- workspace_names: workspaces.map(w => w.displayName),
343
- },
344
- };
345
- }
346
- catch (error) {
347
- const duration = performance.now() - startTime;
348
- this.recordPerformanceMetric(duration, false);
349
- return this.createErrorCheck(checkName, error, duration);
350
- }
351
- }
352
- /**
353
- * Calculate overall system health status
354
- */
355
- calculateOverallStatus(checks) {
356
- if (checks.some(c => c.status === HealthStatus.CRITICAL)) {
357
- return HealthStatus.CRITICAL;
358
- }
359
- if (checks.some(c => c.status === HealthStatus.DEGRADED)) {
360
- return HealthStatus.DEGRADED;
361
- }
362
- if (checks.every(c => c.status === HealthStatus.HEALTHY)) {
363
- return HealthStatus.HEALTHY;
364
- }
365
- return HealthStatus.UNKNOWN;
366
- }
367
- /**
368
- * Generate health-based recommendations
369
- */
370
- generateRecommendations(checks, overallStatus) {
371
- const recommendations = [];
372
- // Check for specific issues and provide targeted advice
373
- const boardCheck = checks.find(c => c.name === 'board_access');
374
- if (boardCheck?.status === HealthStatus.DEGRADED && boardCheck.metadata?.suggestion) {
375
- recommendations.push(boardCheck.metadata.suggestion);
376
- }
377
- const rateLimitCheck = checks.find(c => c.name === 'rate_limit_health');
378
- if (rateLimitCheck?.status === HealthStatus.DEGRADED) {
379
- recommendations.push('Consider implementing request throttling or caching to reduce API usage');
380
- }
381
- const performanceCheck = checks.find(c => c.name === 'performance_metrics');
382
- if (performanceCheck?.status === HealthStatus.DEGRADED) {
383
- recommendations.push('Investigate slow response times - consider network conditions or API load');
384
- }
385
- // Overall status recommendations
386
- if (overallStatus === HealthStatus.HEALTHY) {
387
- recommendations.push('All systems operating normally - maintain current configuration');
388
- }
389
- else if (overallStatus === HealthStatus.CRITICAL) {
390
- recommendations.push('Immediate attention required - check error logs and connectivity');
391
- }
392
- return recommendations.length > 0
393
- ? recommendations
394
- : ['System assessment complete - no specific recommendations'];
395
- }
396
- /**
397
- * Check if repair functionality is available
398
- */
399
- isRepairAvailable(checks) {
400
- // Simple heuristic: repair available if we have degraded but not critical issues
401
- return (checks.some(c => c.status === HealthStatus.DEGRADED) &&
402
- !checks.some(c => c.status === HealthStatus.CRITICAL));
403
- }
404
- /**
405
- * Create a standardized error check result
406
- */
407
- createErrorCheck(checkName, error, duration, status = HealthStatus.CRITICAL) {
408
- let message = 'Unknown error occurred';
409
- let errorCode;
410
- if (error instanceof Error) {
411
- message = error.message;
412
- }
413
- if (error && typeof error === 'object' && 'response' in error) {
414
- const axiosError = error;
415
- errorCode = axiosError.response?.status?.toString();
416
- message = `HTTP ${axiosError.response?.status}: ${axiosError.message}`;
417
- }
418
- return {
419
- name: checkName,
420
- status,
421
- message,
422
- duration_ms: Math.round(duration || 0),
423
- timestamp: new Date().toISOString(),
424
- metadata: {
425
- error_type: error?.constructor?.name || 'Unknown',
426
- error_code: errorCode,
427
- error_details: error instanceof Error ? error.stack : undefined,
428
- },
429
- };
430
- }
431
- /**
432
- * Record performance metrics for tracking
433
- */
434
- recordPerformanceMetric(duration, success) {
435
- const now = Date.now();
436
- this.performanceTracker.requests.push({ timestamp: now, duration, success });
437
- // Keep only last 100 requests to prevent memory leaks
438
- if (this.performanceTracker.requests.length > 100) {
439
- this.performanceTracker.requests = this.performanceTracker.requests.slice(-100);
440
- }
441
- }
442
- /**
443
- * Calculate comprehensive performance metrics
444
- */
445
- calculatePerformanceMetrics() {
446
- const requests = this.performanceTracker.requests;
447
- if (requests.length === 0) {
448
- return {
449
- avg_response_time_ms: 0,
450
- success_rate_percent: 100,
451
- rate_limit_utilization_percent: 0,
452
- requests_per_minute: 0,
453
- };
454
- }
455
- const avgResponseTime = requests.reduce((sum, r) => sum + r.duration, 0) / requests.length;
456
- const successRate = (requests.filter(r => r.success).length / requests.length) * 100;
457
- // Calculate requests per minute based on recent activity
458
- const oneMinuteAgo = Date.now() - 60000;
459
- const recentRequests = requests.filter(r => r.timestamp > oneMinuteAgo);
460
- const requestsPerMinute = recentRequests.length;
461
- return {
462
- avg_response_time_ms: Math.round(avgResponseTime),
463
- success_rate_percent: Math.round(successRate * 100) / 100,
464
- rate_limit_utilization_percent: this.calculateRateLimitUtilization(),
465
- requests_per_minute: requestsPerMinute,
466
- };
467
- }
468
- /**
469
- * Calculate rate limit utilization (approximation)
470
- */
471
- calculateRateLimitUtilization() {
472
- const requests = this.performanceTracker.requests;
473
- const tenSecondsAgo = Date.now() - 10000;
474
- const recentRequests = requests.filter(r => r.timestamp > tenSecondsAgo).length;
475
- // Use the more restrictive limit (100 per 10 seconds for tokens)
476
- return Math.min(100, (recentRequests / 100) * 100);
477
- }
478
- /**
479
- * Categorize response times for reporting
480
- */
481
- categorizeResponseTime(duration) {
482
- if (duration < 200)
483
- return 'excellent';
484
- if (duration < 500)
485
- return 'good';
486
- if (duration < 1000)
487
- return 'fair';
488
- if (duration < 2000)
489
- return 'slow';
490
- return 'very_slow';
491
- }
492
- /**
493
- * Start background performance monitoring
494
- */
495
- startPerformanceMonitoring() {
496
- // Simple monitoring - in a real implementation, this might be more sophisticated
497
- setInterval(() => {
498
- // Clean up old metrics to prevent memory leaks
499
- const fiveMinutesAgo = Date.now() - 300000;
500
- this.performanceTracker.requests = this.performanceTracker.requests.filter(r => r.timestamp > fiveMinutesAgo);
501
- }, 60000); // Clean up every minute
502
- }
503
- /**
504
- * Get the last health check result
505
- */
506
- getLastHealthCheck() {
507
- return this.lastHealthCheck;
508
- }
509
- }
510
- //# sourceMappingURL=health-monitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/health/health-monitor.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { RateLimiter } from './types.js';
2
- export declare class TokenBucketRateLimiter implements RateLimiter {
3
- private tokens;
4
- private lastRefill;
5
- private readonly maxTokens;
6
- private readonly refillRate;
7
- private readonly refillInterval;
8
- constructor(maxRequests: number, windowMs: number);
9
- private refillTokens;
10
- canMakeRequest(): boolean;
11
- waitForAvailableToken(): Promise<void>;
12
- }
13
- export declare const createTrelloRateLimiters: () => {
14
- apiKeyLimiter: TokenBucketRateLimiter;
15
- tokenLimiter: TokenBucketRateLimiter;
16
- /**
17
- * Checks if a request can be made without hitting rate limits.
18
- * This is useful for pre-checking before attempting a request,
19
- * allowing for more graceful handling of rate limits without blocking.
20
- *
21
- * @returns {boolean} True if both API key and token limiters have available tokens
22
- */
23
- canMakeRequest(): boolean;
24
- /**
25
- * Waits until tokens are available for both API key and token limiters.
26
- * This method blocks execution until rate limits allow the request to proceed.
27
- * Used by the axios interceptor to ensure all requests respect Trello's rate limits.
28
- *
29
- * @returns {Promise<void>} Resolves when tokens are available
30
- */
31
- waitForAvailableToken(): Promise<void>;
32
- };