Skip to main content
Glama
base.ts5.01 kB
export interface OperationResult<T> { ok: boolean; data?: T; error?: ServiceError | InternalError; } export interface ServiceError { service: string; status: number; code?: string; message: string; raw?: unknown; } export interface InternalError { kind: "internal"; message: string; cause?: unknown; } export interface ServiceConfig { baseUrl: string; apiKey: string; } export interface SystemStatusData { service: string; name: string; version: string; startTime?: string; isHealthy: boolean; } export interface QueueOptions { page?: number; pageSize?: number; sortKey?: string; sortDirection?: "ascending" | "descending"; } export interface QueueItem { id: number; title: string; status: string; progressPct?: number; mediaKind: "series" | "movie"; protocol?: string; estimatedCompletionTime?: string; } export interface QueueData { service: string; mediaKind: "series" | "movie"; total: number; items: QueueItem[]; truncated: boolean; } export interface GrabData { service: string; mediaKind: "series" | "movie"; grabbed: number; ids: number[]; } export interface RootFolder { id: number; path: string; freeSpaceBytes?: number; accessible?: boolean; } export interface RootFolderData { service: string; mediaKind: "series" | "movie"; total: number; folders: RootFolder[]; defaultId?: number; } export interface HistoryOptions { page?: number; pageSize?: number; since?: string; } export interface HistoryItem { id: number; title: string; quality: string; date: string; eventType: string; mediaKind: "series" | "movie"; } export interface HistoryData { service: string; mediaKind: "series" | "movie"; total: number; items: HistoryItem[]; truncated: boolean; } export interface SearchOptions { limit?: number; } export interface SearchResult { id?: number; title: string; year?: number; overview?: string; mediaKind: "series" | "movie"; foreignId?: number; imdbId?: string; } export interface SearchData { service: string; mediaKind: "series" | "movie"; total: number; results: SearchResult[]; truncated: boolean; } export interface AddRequest { title: string; foreignId: number; rootFolderPath?: string; qualityProfileId?: number; monitored?: boolean; } export interface AddData { service: string; mediaKind: "series" | "movie"; added: boolean; id?: number; title: string; existing: boolean; } export interface ImportIssue { id: number; title: string; reason: string; ageMinutes: number; } export interface ImportIssueData { service: string; mediaKind: "series" | "movie"; issues: ImportIssue[]; summary: { total: number; stuckPending: number; failedImport: number; }; } export interface QualityProfile { id: number; name: string; upgradeAllowed?: boolean; cutoff?: number; } export interface QualityProfileData { service: string; mediaKind: "series" | "movie"; total: number; profiles: QualityProfile[]; recommended?: number; } export interface QueueIssueCategory { type: | "mapping" | "quality_downgrade" | "network_error" | "disk_space" | "permissions" | "unknown"; severity: "critical" | "warning" | "info"; autoFixable: boolean; } export interface QueueIssueAnalysis { id: number; title: string; status: string; category: QueueIssueCategory; message: string; suggestedAction: string; } export interface QueueFixAction { id: number; action: | "manual_import" | "remove_from_queue" | "remove_from_client" | "retry_download" | "ignore"; reason: string; attempted: boolean; success?: boolean; error?: string; } export interface QueueDiagnosticsData { service: string; mediaKind: "series" | "movie"; totalQueueItems: number; issuesFound: number; issuesAnalyzed: QueueIssueAnalysis[]; fixesAttempted: QueueFixAction[]; summary: { fixed: number; failed: number; requiresManual: number; }; } export interface MultiServiceDiagnosticsData { totalServices: number; servicesScanned: string[]; overallSummary: { totalQueueItems: number; totalIssuesFound: number; totalFixed: number; totalFailed: number; totalRequiresManual: number; }; serviceResults: QueueDiagnosticsData[]; } export interface ServiceImplementation { readonly id: "sonarr" | "radarr"; readonly serviceName: string; systemStatus(): Promise<OperationResult<SystemStatusData>>; queueList(options?: QueueOptions): Promise<OperationResult<QueueData>>; queueGrab(ids: number[]): Promise<OperationResult<GrabData>>; rootFolderList(): Promise<OperationResult<RootFolderData>>; historyDetail( options?: HistoryOptions, ): Promise<OperationResult<HistoryData>>; search( query: string, options?: SearchOptions, ): Promise<OperationResult<SearchData>>; addNew(payload: AddRequest): Promise<OperationResult<AddData>>; importIssues(): Promise<OperationResult<ImportIssueData>>; listQualityProfiles(): Promise<OperationResult<QualityProfileData>>; queueDiagnostics( autoFix?: boolean, ): Promise<OperationResult<QueueDiagnosticsData>>; }

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/thesammykins/FlixBridge'

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