queue_list
View download queue items with current status and progress details for media management services.
Instructions
List items in download queue with status and progress
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| pageSize | No | ||
| service | Yes |
Implementation Reference
- src/index.ts:39-51 (registration)Registration of the queue_list MCP tool including name, description, and input schema definition{ name: "queue_list", description: "List items in download queue with status and progress", inputSchema: { type: "object", properties: { service: { type: "string" }, page: { type: "number" }, pageSize: { type: "number" }, }, required: ["service"], }, },
- src/index.ts:277-281 (handler)MCP CallTool handler for queue_list: parses input and dispatches to service.queueList()case "queue_list": return await service.queueList({ page: input.page, pageSize: input.pageSize, });
- src/services/shared.ts:204-243 (handler)Core implementation of queueList in BaseArrService (used by Sonarr/Radarr), calls ARR /queue API and normalizes responseasync queueList( options: QueueOptions = {}, ): Promise<OperationResult<QueueData>> { try { const params: Record<string, string | number> = {}; if (options.page) params.page = options.page; if (options.pageSize) params.pageSize = options.pageSize; if (options.sortKey) params.sortKey = options.sortKey; if (options.sortDirection) params.sortDirection = options.sortDirection; const response = await fetchJson(this.buildApiUrl("/queue", params)); const data = QueueSchema.parse(response); const items = data.records.map((item) => ({ id: item.id, title: item.title, status: item.status, progressPct: item.size && item.sizeleft ? Math.round(((item.size - item.sizeleft) / item.size) * 100) : undefined, mediaKind: this.mediaKind, protocol: item.protocol, estimatedCompletionTime: item.estimatedCompletionTime, })); return { ok: true, data: { service: this.serviceName, mediaKind: this.mediaKind, total: data.totalRecords || data.records.length, items, truncated: false, }, }; } catch (error) { return handleError(error, this.serviceName); } }
- src/services/base.ts:51-57 (schema)Type definitions for QueueData outputexport interface QueueData { service: string; mediaKind: "series" | "movie"; total: number; items: QueueItem[]; truncated: boolean; }
- src/services/base.ts:243-243 (schema)Service interface definition for queueList method signature and QueueOptions input type (defined lines 34-39)queueList(options?: QueueOptions): Promise<OperationResult<QueueData>>;