Skip to main content
Glama

MCP SQL Server

by ryudg
PerformanceAlert.ts2.41 kB
export interface AlertId { readonly value: string; } export type AlertType = | 'connection_pool_high_utilization' | 'slow_query_detected' | 'high_cpu_usage' | 'high_memory_usage' | 'high_disk_usage' | 'connection_timeout' | 'query_timeout'; export type AlertSeverity = 'low' | 'medium' | 'high' | 'critical'; export type AlertStatus = 'active' | 'acknowledged' | 'resolved'; export class PerformanceAlert { private _status: AlertStatus = 'active'; private _acknowledgedAt?: Date; private _resolvedAt?: Date; constructor( private readonly _id: AlertId, private readonly _type: AlertType, private readonly _severity: AlertSeverity, private readonly _message: string, private readonly _details: Record<string, any>, private readonly _createdAt: Date = new Date() ) {} get id(): AlertId { return this._id; } get type(): AlertType { return this._type; } get severity(): AlertSeverity { return this._severity; } get message(): string { return this._message; } get details(): Record<string, any> { return { ...this._details }; } get createdAt(): Date { return this._createdAt; } get status(): AlertStatus { return this._status; } get acknowledgedAt(): Date | undefined { return this._acknowledgedAt; } get resolvedAt(): Date | undefined { return this._resolvedAt; } acknowledge(): void { if (this._status === 'resolved') { throw new Error('Cannot acknowledge a resolved alert'); } this._status = 'acknowledged'; this._acknowledgedAt = new Date(); } resolve(): void { this._status = 'resolved'; this._resolvedAt = new Date(); } isActive(): boolean { return this._status === 'active'; } isAcknowledged(): boolean { return this._status === 'acknowledged'; } isResolved(): boolean { return this._status === 'resolved'; } getDuration(): number { const endTime = this._resolvedAt || new Date(); return endTime.getTime() - this._createdAt.getTime(); } isCritical(): boolean { return this._severity === 'critical'; } shouldEscalate(thresholdMinutes: number = 30): boolean { if (this._status !== 'active') return false; const now = new Date(); const minutesSinceCreated = (now.getTime() - this._createdAt.getTime()) / (1000 * 60); return minutesSinceCreated > thresholdMinutes; } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ryudg/mcp-sql'

If you have feedback or need assistance with the MCP directory API, please join our Discord server