@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.
- package/build/index.js +42106 -773
- package/package.json +24 -16
- package/build/evals/evals.d.ts +0 -5
- package/build/evals/evals.js +0 -72
- package/build/evals/evals.js.map +0 -1
- package/build/get-card-implementation.d.ts +0 -122
- package/build/get-card-implementation.js +0 -225
- package/build/get-card-implementation.js.map +0 -1
- package/build/health/health-endpoints.d.ts +0 -131
- package/build/health/health-endpoints.js +0 -491
- package/build/health/health-endpoints.js.map +0 -1
- package/build/health/health-monitor.d.ts +0 -136
- package/build/health/health-monitor.js +0 -510
- package/build/health/health-monitor.js.map +0 -1
- package/build/index.d.ts +0 -2
- package/build/index.js.map +0 -1
- package/build/rate-limiter.d.ts +0 -32
- package/build/rate-limiter.js +0 -73
- package/build/rate-limiter.js.map +0 -1
- package/build/trello-client.d.ts +0 -105
- package/build/trello-client.js +0 -699
- package/build/trello-client.js.map +0 -1
- package/build/types.d.ts +0 -224
- package/build/types.js +0 -2
- package/build/types.js.map +0 -1
- package/build/validators.d.ts +0 -75
- package/build/validators.js +0 -192
- package/build/validators.js.map +0 -1
|
@@ -1,491 +0,0 @@
|
|
|
1
|
-
import { TrelloHealthMonitor, HealthStatus } from './health-monitor.js';
|
|
2
|
-
/**
|
|
3
|
-
* THE MAGNIFICENT HEALTH ENDPOINTS COLLECTION! 🏥
|
|
4
|
-
*
|
|
5
|
-
* This class provides all the cardiovascular monitoring APIs that keep
|
|
6
|
-
* our Trello MCP organism in peak condition. It's like having a team of
|
|
7
|
-
* world-class physicians monitoring your API 24/7!
|
|
8
|
-
*
|
|
9
|
-
* Available endpoints:
|
|
10
|
-
* - /health - Quick health check
|
|
11
|
-
* - /health/detailed - Comprehensive diagnostic report
|
|
12
|
-
* - /health/metadata - Metadata consistency verification
|
|
13
|
-
* - /health/performance - Performance metrics analysis
|
|
14
|
-
* - /admin/repair - Automated repair capabilities (when available)
|
|
15
|
-
*/
|
|
16
|
-
export class TrelloHealthEndpoints {
|
|
17
|
-
constructor(trelloClient) {
|
|
18
|
-
this.trelloClient = trelloClient;
|
|
19
|
-
this.healthMonitor = new TrelloHealthMonitor(trelloClient);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* GET /health
|
|
23
|
-
* Quick health status check - the digital pulse check!
|
|
24
|
-
* Perfect for load balancers and monitoring systems.
|
|
25
|
-
*/
|
|
26
|
-
async getBasicHealth() {
|
|
27
|
-
try {
|
|
28
|
-
const healthReport = await this.healthMonitor.getSystemHealth(false);
|
|
29
|
-
const quickReport = {
|
|
30
|
-
status: healthReport.overall_status,
|
|
31
|
-
timestamp: healthReport.timestamp,
|
|
32
|
-
uptime_ms: healthReport.uptime_ms,
|
|
33
|
-
checks_passed: healthReport.checks.filter(c => c.status === HealthStatus.HEALTHY).length,
|
|
34
|
-
total_checks: healthReport.checks.length,
|
|
35
|
-
response_time_ms: Math.round(healthReport.performance_metrics.avg_response_time_ms),
|
|
36
|
-
success_rate: `${healthReport.performance_metrics.success_rate_percent}%`,
|
|
37
|
-
};
|
|
38
|
-
return {
|
|
39
|
-
content: [
|
|
40
|
-
{
|
|
41
|
-
type: 'text',
|
|
42
|
-
text: JSON.stringify(quickReport, null, 2),
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
isError: healthReport.overall_status === HealthStatus.CRITICAL,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
return this.createErrorResponse('Health check failed', error);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* GET /health/detailed
|
|
54
|
-
* Comprehensive health diagnostic - the full medical examination!
|
|
55
|
-
* Includes all subsystem checks, performance metrics, and recommendations.
|
|
56
|
-
*/
|
|
57
|
-
async getDetailedHealth() {
|
|
58
|
-
try {
|
|
59
|
-
const healthReport = await this.healthMonitor.getSystemHealth(true);
|
|
60
|
-
return {
|
|
61
|
-
content: [
|
|
62
|
-
{
|
|
63
|
-
type: 'text',
|
|
64
|
-
text: JSON.stringify(healthReport, null, 2),
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
isError: healthReport.overall_status === HealthStatus.CRITICAL,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
return this.createErrorResponse('Detailed health check failed', error);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* GET /health/metadata
|
|
76
|
-
* Metadata consistency verification - the data integrity scanner!
|
|
77
|
-
* Checks for consistency between boards, lists, cards, and checklists.
|
|
78
|
-
*/
|
|
79
|
-
async getMetadataHealth() {
|
|
80
|
-
try {
|
|
81
|
-
const startTime = Date.now();
|
|
82
|
-
const metadataReport = await this.performMetadataConsistencyCheck();
|
|
83
|
-
const duration = Date.now() - startTime;
|
|
84
|
-
const result = {
|
|
85
|
-
status: metadataReport.consistent ? HealthStatus.HEALTHY : HealthStatus.DEGRADED,
|
|
86
|
-
timestamp: new Date().toISOString(),
|
|
87
|
-
duration_ms: duration,
|
|
88
|
-
metadata_consistency: metadataReport,
|
|
89
|
-
recommendations: this.generateMetadataRecommendations(metadataReport),
|
|
90
|
-
};
|
|
91
|
-
return {
|
|
92
|
-
content: [
|
|
93
|
-
{
|
|
94
|
-
type: 'text',
|
|
95
|
-
text: JSON.stringify(result, null, 2),
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
|
-
isError: !metadataReport.consistent,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
return this.createErrorResponse('Metadata health check failed', error);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* GET /health/performance
|
|
107
|
-
* Performance metrics analysis - the cardiovascular stress test!
|
|
108
|
-
* Deep dive into response times, throughput, and system efficiency.
|
|
109
|
-
*/
|
|
110
|
-
async getPerformanceHealth() {
|
|
111
|
-
try {
|
|
112
|
-
const healthReport = await this.healthMonitor.getSystemHealth(false);
|
|
113
|
-
const performanceAnalysis = this.analyzePerformanceMetrics(healthReport);
|
|
114
|
-
return {
|
|
115
|
-
content: [
|
|
116
|
-
{
|
|
117
|
-
type: 'text',
|
|
118
|
-
text: JSON.stringify(performanceAnalysis, null, 2),
|
|
119
|
-
},
|
|
120
|
-
],
|
|
121
|
-
isError: performanceAnalysis.status === HealthStatus.CRITICAL,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
return this.createErrorResponse('Performance health check failed', error);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* POST /admin/repair
|
|
130
|
-
* Automated system repair - the digital emergency room!
|
|
131
|
-
* Attempts to automatically fix common issues when possible.
|
|
132
|
-
*/
|
|
133
|
-
async performRepair() {
|
|
134
|
-
try {
|
|
135
|
-
const healthReport = await this.healthMonitor.getSystemHealth(true);
|
|
136
|
-
if (!healthReport.repair_available) {
|
|
137
|
-
return {
|
|
138
|
-
content: [
|
|
139
|
-
{
|
|
140
|
-
type: 'text',
|
|
141
|
-
text: JSON.stringify({
|
|
142
|
-
repair_attempted: false,
|
|
143
|
-
reason: 'No repairable issues detected or system in critical state',
|
|
144
|
-
status: healthReport.overall_status,
|
|
145
|
-
recommendations: healthReport.recommendations,
|
|
146
|
-
}, null, 2),
|
|
147
|
-
},
|
|
148
|
-
],
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
const repairResult = await this.attemptSystemRepair(healthReport);
|
|
152
|
-
return {
|
|
153
|
-
content: [
|
|
154
|
-
{
|
|
155
|
-
type: 'text',
|
|
156
|
-
text: JSON.stringify(repairResult, null, 2),
|
|
157
|
-
},
|
|
158
|
-
],
|
|
159
|
-
isError: !repairResult.success,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
return this.createErrorResponse('System repair failed', error);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Perform comprehensive metadata consistency check
|
|
168
|
-
*/
|
|
169
|
-
async performMetadataConsistencyCheck() {
|
|
170
|
-
const results = {
|
|
171
|
-
consistent: true,
|
|
172
|
-
issues: [],
|
|
173
|
-
statistics: {},
|
|
174
|
-
last_check: new Date().toISOString(),
|
|
175
|
-
};
|
|
176
|
-
try {
|
|
177
|
-
// Check if we have an active board
|
|
178
|
-
const boardId = this.trelloClient.activeBoardId;
|
|
179
|
-
if (!boardId) {
|
|
180
|
-
results.consistent = false;
|
|
181
|
-
results.issues.push('No active board configured');
|
|
182
|
-
return results;
|
|
183
|
-
}
|
|
184
|
-
// Get board information
|
|
185
|
-
const board = await this.trelloClient.getBoardById(boardId);
|
|
186
|
-
if (board.closed) {
|
|
187
|
-
results.consistent = false;
|
|
188
|
-
results.issues.push('Active board is closed/archived');
|
|
189
|
-
}
|
|
190
|
-
// Get lists and check consistency
|
|
191
|
-
const lists = await this.trelloClient.getLists();
|
|
192
|
-
results.statistics.total_lists = lists.length;
|
|
193
|
-
results.statistics.open_lists = lists.filter(l => !l.closed).length;
|
|
194
|
-
results.statistics.closed_lists = lists.filter(l => l.closed).length;
|
|
195
|
-
// Check for empty board
|
|
196
|
-
if (lists.length === 0) {
|
|
197
|
-
results.issues.push('Board has no lists');
|
|
198
|
-
}
|
|
199
|
-
// Get user cards for comparison
|
|
200
|
-
const myCards = await this.trelloClient.getMyCards();
|
|
201
|
-
results.statistics.total_user_cards = myCards.length;
|
|
202
|
-
results.statistics.open_user_cards = myCards.filter(c => !c.closed).length;
|
|
203
|
-
// Check workspace consistency
|
|
204
|
-
const workspaceId = this.trelloClient.activeWorkspaceId;
|
|
205
|
-
if (workspaceId) {
|
|
206
|
-
try {
|
|
207
|
-
const workspace = await this.trelloClient.getWorkspaceById(workspaceId);
|
|
208
|
-
results.statistics.active_workspace = workspace.displayName;
|
|
209
|
-
}
|
|
210
|
-
catch (error) {
|
|
211
|
-
results.consistent = false;
|
|
212
|
-
results.issues.push('Active workspace is inaccessible');
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
// Check checklist accessibility (non-critical)
|
|
216
|
-
try {
|
|
217
|
-
const acceptanceCriteria = await this.trelloClient.getAcceptanceCriteria();
|
|
218
|
-
results.statistics.acceptance_criteria_items = acceptanceCriteria.length;
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
// This is not critical for consistency
|
|
222
|
-
results.statistics.checklist_note =
|
|
223
|
-
'Acceptance Criteria checklist not found (non-critical)';
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
results.consistent = false;
|
|
228
|
-
results.issues.push(`Metadata check error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
229
|
-
}
|
|
230
|
-
return results;
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Generate metadata-specific recommendations
|
|
234
|
-
*/
|
|
235
|
-
generateMetadataRecommendations(metadataReport) {
|
|
236
|
-
const recommendations = [];
|
|
237
|
-
if (metadataReport.issues.some((issue) => issue.includes('No active board'))) {
|
|
238
|
-
recommendations.push('Use set_active_board tool to configure an active board');
|
|
239
|
-
}
|
|
240
|
-
if (metadataReport.issues.some((issue) => issue.includes('closed/archived'))) {
|
|
241
|
-
recommendations.push('Set a different active board that is not closed/archived');
|
|
242
|
-
}
|
|
243
|
-
if (metadataReport.issues.some((issue) => issue.includes('no lists'))) {
|
|
244
|
-
recommendations.push('Create lists in your board using add_list_to_board tool');
|
|
245
|
-
}
|
|
246
|
-
if (metadataReport.statistics.total_user_cards === 0) {
|
|
247
|
-
recommendations.push('Consider assigning yourself to some cards for better workflow tracking');
|
|
248
|
-
}
|
|
249
|
-
if (recommendations.length === 0) {
|
|
250
|
-
recommendations.push('Metadata consistency is excellent - no action required');
|
|
251
|
-
}
|
|
252
|
-
return recommendations;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Analyze performance metrics in detail
|
|
256
|
-
*/
|
|
257
|
-
analyzePerformanceMetrics(healthReport) {
|
|
258
|
-
const metrics = healthReport.performance_metrics;
|
|
259
|
-
const performanceGrade = this.calculatePerformanceGrade(metrics);
|
|
260
|
-
return {
|
|
261
|
-
status: this.getPerformanceStatus(performanceGrade),
|
|
262
|
-
timestamp: healthReport.timestamp,
|
|
263
|
-
performance_grade: performanceGrade,
|
|
264
|
-
metrics: {
|
|
265
|
-
...metrics,
|
|
266
|
-
uptime_hours: Math.round((healthReport.uptime_ms / (1000 * 60 * 60)) * 100) / 100,
|
|
267
|
-
health_check_duration_ms: healthReport.checks.reduce((sum, c) => sum + c.duration_ms, 0),
|
|
268
|
-
},
|
|
269
|
-
analysis: {
|
|
270
|
-
response_time_rating: this.rateResponseTime(metrics.avg_response_time_ms),
|
|
271
|
-
success_rate_rating: this.rateSuccessRate(metrics.success_rate_percent),
|
|
272
|
-
throughput_rating: this.rateThroughput(metrics.requests_per_minute),
|
|
273
|
-
rate_limit_health: this.rateRateLimitUtilization(metrics.rate_limit_utilization_percent),
|
|
274
|
-
},
|
|
275
|
-
recommendations: this.generatePerformanceRecommendations(metrics),
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Calculate overall performance grade
|
|
280
|
-
*/
|
|
281
|
-
calculatePerformanceGrade(metrics) {
|
|
282
|
-
let score = 0;
|
|
283
|
-
// Response time scoring (40% weight)
|
|
284
|
-
if (metrics.avg_response_time_ms < 200)
|
|
285
|
-
score += 40;
|
|
286
|
-
else if (metrics.avg_response_time_ms < 500)
|
|
287
|
-
score += 35;
|
|
288
|
-
else if (metrics.avg_response_time_ms < 1000)
|
|
289
|
-
score += 25;
|
|
290
|
-
else if (metrics.avg_response_time_ms < 2000)
|
|
291
|
-
score += 15;
|
|
292
|
-
else
|
|
293
|
-
score += 5;
|
|
294
|
-
// Success rate scoring (35% weight)
|
|
295
|
-
if (metrics.success_rate_percent >= 99)
|
|
296
|
-
score += 35;
|
|
297
|
-
else if (metrics.success_rate_percent >= 95)
|
|
298
|
-
score += 30;
|
|
299
|
-
else if (metrics.success_rate_percent >= 90)
|
|
300
|
-
score += 20;
|
|
301
|
-
else if (metrics.success_rate_percent >= 80)
|
|
302
|
-
score += 10;
|
|
303
|
-
else
|
|
304
|
-
score += 5;
|
|
305
|
-
// Rate limit utilization scoring (25% weight)
|
|
306
|
-
if (metrics.rate_limit_utilization_percent < 50)
|
|
307
|
-
score += 25;
|
|
308
|
-
else if (metrics.rate_limit_utilization_percent < 70)
|
|
309
|
-
score += 20;
|
|
310
|
-
else if (metrics.rate_limit_utilization_percent < 85)
|
|
311
|
-
score += 15;
|
|
312
|
-
else if (metrics.rate_limit_utilization_percent < 95)
|
|
313
|
-
score += 10;
|
|
314
|
-
else
|
|
315
|
-
score += 5;
|
|
316
|
-
if (score >= 90)
|
|
317
|
-
return 'A+';
|
|
318
|
-
if (score >= 80)
|
|
319
|
-
return 'A';
|
|
320
|
-
if (score >= 70)
|
|
321
|
-
return 'B';
|
|
322
|
-
if (score >= 60)
|
|
323
|
-
return 'C';
|
|
324
|
-
if (score >= 50)
|
|
325
|
-
return 'D';
|
|
326
|
-
return 'F';
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* Get performance status based on grade
|
|
330
|
-
*/
|
|
331
|
-
getPerformanceStatus(grade) {
|
|
332
|
-
if (['A+', 'A', 'B'].includes(grade))
|
|
333
|
-
return HealthStatus.HEALTHY;
|
|
334
|
-
if (['C', 'D'].includes(grade))
|
|
335
|
-
return HealthStatus.DEGRADED;
|
|
336
|
-
return HealthStatus.CRITICAL;
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Rate individual performance aspects
|
|
340
|
-
*/
|
|
341
|
-
rateResponseTime(avgMs) {
|
|
342
|
-
if (avgMs < 200)
|
|
343
|
-
return 'excellent';
|
|
344
|
-
if (avgMs < 500)
|
|
345
|
-
return 'good';
|
|
346
|
-
if (avgMs < 1000)
|
|
347
|
-
return 'fair';
|
|
348
|
-
if (avgMs < 2000)
|
|
349
|
-
return 'slow';
|
|
350
|
-
return 'very_slow';
|
|
351
|
-
}
|
|
352
|
-
rateSuccessRate(percent) {
|
|
353
|
-
if (percent >= 99)
|
|
354
|
-
return 'excellent';
|
|
355
|
-
if (percent >= 95)
|
|
356
|
-
return 'good';
|
|
357
|
-
if (percent >= 90)
|
|
358
|
-
return 'fair';
|
|
359
|
-
if (percent >= 80)
|
|
360
|
-
return 'poor';
|
|
361
|
-
return 'critical';
|
|
362
|
-
}
|
|
363
|
-
rateThroughput(requestsPerMin) {
|
|
364
|
-
if (requestsPerMin > 30)
|
|
365
|
-
return 'high';
|
|
366
|
-
if (requestsPerMin > 15)
|
|
367
|
-
return 'moderate';
|
|
368
|
-
if (requestsPerMin > 5)
|
|
369
|
-
return 'low';
|
|
370
|
-
return 'very_low';
|
|
371
|
-
}
|
|
372
|
-
rateRateLimitUtilization(percent) {
|
|
373
|
-
if (percent < 50)
|
|
374
|
-
return 'optimal';
|
|
375
|
-
if (percent < 70)
|
|
376
|
-
return 'moderate';
|
|
377
|
-
if (percent < 85)
|
|
378
|
-
return 'high';
|
|
379
|
-
if (percent < 95)
|
|
380
|
-
return 'near_limit';
|
|
381
|
-
return 'critical';
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Generate performance-specific recommendations
|
|
385
|
-
*/
|
|
386
|
-
generatePerformanceRecommendations(metrics) {
|
|
387
|
-
const recommendations = [];
|
|
388
|
-
if (metrics.avg_response_time_ms > 1000) {
|
|
389
|
-
recommendations.push('High response times detected - check network connectivity and Trello API status');
|
|
390
|
-
}
|
|
391
|
-
if (metrics.success_rate_percent < 95) {
|
|
392
|
-
recommendations.push('Low success rate - investigate error patterns and implement retry logic');
|
|
393
|
-
}
|
|
394
|
-
if (metrics.rate_limit_utilization_percent > 80) {
|
|
395
|
-
recommendations.push('High rate limit utilization - consider implementing request caching or batching');
|
|
396
|
-
}
|
|
397
|
-
if (metrics.requests_per_minute < 1) {
|
|
398
|
-
recommendations.push('Very low API usage - ensure the MCP server is being actively used');
|
|
399
|
-
}
|
|
400
|
-
if (recommendations.length === 0) {
|
|
401
|
-
recommendations.push('Performance is excellent - maintain current usage patterns');
|
|
402
|
-
}
|
|
403
|
-
return recommendations;
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* Attempt to repair common system issues
|
|
407
|
-
*/
|
|
408
|
-
async attemptSystemRepair(healthReport) {
|
|
409
|
-
const result = {
|
|
410
|
-
attempted: true,
|
|
411
|
-
success: false,
|
|
412
|
-
actions_taken: [],
|
|
413
|
-
message: '',
|
|
414
|
-
};
|
|
415
|
-
try {
|
|
416
|
-
// Check for repairable issues
|
|
417
|
-
const boardCheck = healthReport.checks.find(c => c.name === 'board_access');
|
|
418
|
-
if (boardCheck?.status === HealthStatus.DEGRADED &&
|
|
419
|
-
boardCheck.message.includes('No active board configured')) {
|
|
420
|
-
// Attempt to set first available board as active
|
|
421
|
-
const boards = await this.trelloClient.listBoards();
|
|
422
|
-
const openBoards = boards.filter(b => !b.closed);
|
|
423
|
-
if (openBoards.length > 0) {
|
|
424
|
-
await this.trelloClient.setActiveBoard(openBoards[0].id);
|
|
425
|
-
result.actions_taken.push(`Set active board to "${openBoards[0].name}"`);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
// Add more repair logic here as needed
|
|
429
|
-
result.success = result.actions_taken.length > 0;
|
|
430
|
-
result.message = result.success
|
|
431
|
-
? 'System repair completed successfully'
|
|
432
|
-
: 'No repairable issues found';
|
|
433
|
-
}
|
|
434
|
-
catch (error) {
|
|
435
|
-
result.success = false;
|
|
436
|
-
result.message = `Repair failed: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
437
|
-
}
|
|
438
|
-
return result;
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Create standardized error response
|
|
442
|
-
*/
|
|
443
|
-
createErrorResponse(message, error) {
|
|
444
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
445
|
-
return {
|
|
446
|
-
content: [
|
|
447
|
-
{
|
|
448
|
-
type: 'text',
|
|
449
|
-
text: JSON.stringify({
|
|
450
|
-
error: message,
|
|
451
|
-
details: errorMessage,
|
|
452
|
-
timestamp: new Date().toISOString(),
|
|
453
|
-
status: HealthStatus.CRITICAL,
|
|
454
|
-
}, null, 2),
|
|
455
|
-
},
|
|
456
|
-
],
|
|
457
|
-
isError: true,
|
|
458
|
-
};
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
/**
|
|
462
|
-
* Zod schemas for health endpoint validation
|
|
463
|
-
*/
|
|
464
|
-
export const HealthEndpointSchemas = {
|
|
465
|
-
basicHealth: {
|
|
466
|
-
title: 'Get Basic Health',
|
|
467
|
-
description: 'Get quick system health status for monitoring and load balancing',
|
|
468
|
-
inputSchema: {},
|
|
469
|
-
},
|
|
470
|
-
detailedHealth: {
|
|
471
|
-
title: 'Get Detailed Health',
|
|
472
|
-
description: 'Get comprehensive system health diagnostic with all subsystem checks',
|
|
473
|
-
inputSchema: {},
|
|
474
|
-
},
|
|
475
|
-
metadataHealth: {
|
|
476
|
-
title: 'Get Metadata Health',
|
|
477
|
-
description: 'Verify metadata consistency between boards, lists, cards, and checklists',
|
|
478
|
-
inputSchema: {},
|
|
479
|
-
},
|
|
480
|
-
performanceHealth: {
|
|
481
|
-
title: 'Get Performance Health',
|
|
482
|
-
description: 'Get detailed performance metrics and analysis',
|
|
483
|
-
inputSchema: {},
|
|
484
|
-
},
|
|
485
|
-
repair: {
|
|
486
|
-
title: 'Perform System Repair',
|
|
487
|
-
description: 'Attempt to automatically repair common system issues',
|
|
488
|
-
inputSchema: {},
|
|
489
|
-
},
|
|
490
|
-
};
|
|
491
|
-
//# sourceMappingURL=health-endpoints.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health-endpoints.js","sourceRoot":"","sources":["../../src/health/health-endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { TrelloClient } from '../trello-client.js';
|
|
2
|
-
/**
|
|
3
|
-
* Health status levels for our magnificent Trello organism
|
|
4
|
-
*/
|
|
5
|
-
export declare enum HealthStatus {
|
|
6
|
-
HEALTHY = "healthy",
|
|
7
|
-
DEGRADED = "degraded",
|
|
8
|
-
CRITICAL = "critical",
|
|
9
|
-
UNKNOWN = "unknown"
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Individual health check result
|
|
13
|
-
*/
|
|
14
|
-
export interface HealthCheck {
|
|
15
|
-
name: string;
|
|
16
|
-
status: HealthStatus;
|
|
17
|
-
message: string;
|
|
18
|
-
duration_ms: number;
|
|
19
|
-
timestamp: string;
|
|
20
|
-
metadata?: Record<string, any>;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Complete system health report
|
|
24
|
-
*/
|
|
25
|
-
export interface SystemHealthReport {
|
|
26
|
-
overall_status: HealthStatus;
|
|
27
|
-
timestamp: string;
|
|
28
|
-
checks: HealthCheck[];
|
|
29
|
-
recommendations: string[];
|
|
30
|
-
repair_available: boolean;
|
|
31
|
-
uptime_ms: number;
|
|
32
|
-
performance_metrics: {
|
|
33
|
-
avg_response_time_ms: number;
|
|
34
|
-
success_rate_percent: number;
|
|
35
|
-
rate_limit_utilization_percent: number;
|
|
36
|
-
requests_per_minute: number;
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* The magnificent HEALTH MONITORING system for our Trello MCP organism!
|
|
41
|
-
*
|
|
42
|
-
* This class performs comprehensive cardiovascular diagnostics to ensure
|
|
43
|
-
* our digital creature remains healthy and happy. It's like having a
|
|
44
|
-
* personal physician for your API! 🩺
|
|
45
|
-
*
|
|
46
|
-
* Features include:
|
|
47
|
-
* - Real-time health status monitoring
|
|
48
|
-
* - Performance metrics tracking
|
|
49
|
-
* - Rate limit utilization analysis
|
|
50
|
-
* - Automatic repair recommendations
|
|
51
|
-
* - Detailed diagnostic reporting
|
|
52
|
-
*/
|
|
53
|
-
export declare class TrelloHealthMonitor {
|
|
54
|
-
private performanceTracker;
|
|
55
|
-
private lastHealthCheck?;
|
|
56
|
-
private readonly trelloClient;
|
|
57
|
-
private rateLimiter;
|
|
58
|
-
constructor(trelloClient: TrelloClient);
|
|
59
|
-
/**
|
|
60
|
-
* Get comprehensive system health status
|
|
61
|
-
* This is the main cardiovascular examination! 🫀
|
|
62
|
-
*/
|
|
63
|
-
getSystemHealth(detailed?: boolean): Promise<SystemHealthReport>;
|
|
64
|
-
/**
|
|
65
|
-
* Check basic Trello API connectivity
|
|
66
|
-
*/
|
|
67
|
-
private checkTrelloApiConnectivity;
|
|
68
|
-
/**
|
|
69
|
-
* Check if we can access the active board
|
|
70
|
-
*/
|
|
71
|
-
private checkBoardAccess;
|
|
72
|
-
/**
|
|
73
|
-
* Check rate limiter health and utilization
|
|
74
|
-
*/
|
|
75
|
-
private checkRateLimitHealth;
|
|
76
|
-
/**
|
|
77
|
-
* Check performance metrics health
|
|
78
|
-
*/
|
|
79
|
-
private checkPerformanceMetrics;
|
|
80
|
-
/**
|
|
81
|
-
* Check list operations (detailed check)
|
|
82
|
-
*/
|
|
83
|
-
private checkListOperations;
|
|
84
|
-
/**
|
|
85
|
-
* Check card operations (detailed check)
|
|
86
|
-
*/
|
|
87
|
-
private checkCardOperations;
|
|
88
|
-
/**
|
|
89
|
-
* Check checklist operations (detailed check)
|
|
90
|
-
*/
|
|
91
|
-
private checkChecklistOperations;
|
|
92
|
-
/**
|
|
93
|
-
* Check workspace access (detailed check)
|
|
94
|
-
*/
|
|
95
|
-
private checkWorkspaceAccess;
|
|
96
|
-
/**
|
|
97
|
-
* Calculate overall system health status
|
|
98
|
-
*/
|
|
99
|
-
private calculateOverallStatus;
|
|
100
|
-
/**
|
|
101
|
-
* Generate health-based recommendations
|
|
102
|
-
*/
|
|
103
|
-
private generateRecommendations;
|
|
104
|
-
/**
|
|
105
|
-
* Check if repair functionality is available
|
|
106
|
-
*/
|
|
107
|
-
private isRepairAvailable;
|
|
108
|
-
/**
|
|
109
|
-
* Create a standardized error check result
|
|
110
|
-
*/
|
|
111
|
-
private createErrorCheck;
|
|
112
|
-
/**
|
|
113
|
-
* Record performance metrics for tracking
|
|
114
|
-
*/
|
|
115
|
-
private recordPerformanceMetric;
|
|
116
|
-
/**
|
|
117
|
-
* Calculate comprehensive performance metrics
|
|
118
|
-
*/
|
|
119
|
-
private calculatePerformanceMetrics;
|
|
120
|
-
/**
|
|
121
|
-
* Calculate rate limit utilization (approximation)
|
|
122
|
-
*/
|
|
123
|
-
private calculateRateLimitUtilization;
|
|
124
|
-
/**
|
|
125
|
-
* Categorize response times for reporting
|
|
126
|
-
*/
|
|
127
|
-
private categorizeResponseTime;
|
|
128
|
-
/**
|
|
129
|
-
* Start background performance monitoring
|
|
130
|
-
*/
|
|
131
|
-
private startPerformanceMonitoring;
|
|
132
|
-
/**
|
|
133
|
-
* Get the last health check result
|
|
134
|
-
*/
|
|
135
|
-
getLastHealthCheck(): SystemHealthReport | undefined;
|
|
136
|
-
}
|