sonarr_get_download_clients
List all download clients configured in Sonarr with their settings to manage TV show downloads.
Instructions
Get download client configurations from Sonarr (TV). Shows configured clients and their settings.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:162-169 (registration)Tool registration for sonarr_get_download_clients (and radarr/lidarr variants) as a configuration tool added via addConfigTools(). The schema defines it as an object with no required parameters.
name: `${serviceName}_get_download_clients`, description: `Get download client configurations from ${displayName}. Shows configured clients and their settings.`, inputSchema: { type: "object" as const, properties: {}, required: [], }, }, - src/index.ts:1271-1297 (handler)Handler for sonarr_get_download_clients (also radarr_get_download_clients and lidarr_get_download_clients). Extracts the service name from the tool name, calls client.getDownloadClients(), and returns formatted JSON with id, name, implementationName, protocol, enable, priority, removeCompletedDownloads, removeFailedDownloads, and tags.
case "sonarr_get_download_clients": case "radarr_get_download_clients": case "lidarr_get_download_clients": { const serviceName = name.split('_')[0] as keyof typeof clients; const client = clients[serviceName]; if (!client) throw new Error(`${serviceName} not configured`); const downloadClients = await client.getDownloadClients(); return { content: [{ type: "text", text: JSON.stringify({ count: downloadClients.length, clients: downloadClients.map(c => ({ id: c.id, name: c.name, implementation: c.implementationName, protocol: c.protocol, enabled: c.enable, priority: c.priority, removeCompletedDownloads: c.removeCompletedDownloads, removeFailedDownloads: c.removeFailedDownloads, tags: c.tags, })), }, null, 2), }], }; } - src/arr-client.ts:486-488 (helper)The getDownloadClients() method on ArrClient class. Makes a GET request to /downloadclient endpoint and returns an array of DownloadClient objects.
async getDownloadClients(): Promise<DownloadClient[]> { return this.request<DownloadClient[]>('/downloadclient'); } - src/arr-client.ts:268-284 (schema)DownloadClient TypeScript interface defining the shape of download client data returned from the API, including id, name, implementationName, enable, protocol, priority, removeCompletedDownloads, removeFailedDownloads, tags, etc.
export interface DownloadClient { id: number; name: string; implementation: string; implementationName: string; configContract: string; enable: boolean; protocol: string; priority: number; removeCompletedDownloads: boolean; removeFailedDownloads: boolean; fields: Array<{ name: string; value: unknown; }>; tags: number[]; }