lidarr_get_download_clients
Retrieve download client configurations from Lidarr. Displays all configured clients and their settings.
Instructions
Get download client configurations from Lidarr (Music). Shows configured clients and their settings.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:132-197 (registration)The tool 'lidarr_get_download_clients' is dynamically registered via the addConfigTools helper function, which is called for lidarr service at line 203. Line 162 creates the tool with name `${serviceName}_get_download_clients`.
function addConfigTools(serviceName: string, displayName: string) { TOOLS.push( { name: `${serviceName}_get_quality_profiles`, description: `Get detailed quality profiles from ${displayName}. Shows allowed qualities, upgrade settings, and custom format scores.`, inputSchema: { type: "object" as const, properties: {}, required: [], }, }, { name: `${serviceName}_get_health`, description: `Get health check warnings and issues from ${displayName}. Shows any problems detected by the application.`, inputSchema: { type: "object" as const, properties: {}, required: [], }, }, { name: `${serviceName}_get_root_folders`, description: `Get root folders and storage info from ${displayName}. Shows paths, free space, and unmapped folders.`, inputSchema: { type: "object" as const, properties: {}, required: [], }, }, { 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: [], }, }, { name: `${serviceName}_get_naming`, description: `Get file naming configuration from ${displayName}. Shows naming patterns for files and folders.`, inputSchema: { type: "object" as const, properties: {}, required: [], }, }, { name: `${serviceName}_get_tags`, description: `Get all tags defined in ${displayName}. Tags can be used to organize and filter content.`, inputSchema: { type: "object" as const, properties: {}, required: [], }, }, { name: `${serviceName}_review_setup`, description: `Get comprehensive configuration review for ${displayName}. Returns all settings for analysis: quality profiles, download clients, naming, storage, indexers, health warnings, and more. Use this to analyze the setup and suggest improvements.`, inputSchema: { type: "object" as const, properties: {}, required: [], }, } ); - src/index.ts:1271-1297 (handler)The handler for lidarr_get_download_clients (along with sonarr_ and radarr_ variants) is implemented in the CallToolRequestSchema handler. It extracts the service name from the tool name, gets the client, calls client.getDownloadClients(), and returns the formatted response.
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:484-488 (helper)The getDownloadClients() method on the base ArrClient class makes the API request to /downloadclient endpoint. This is inherited by LidarrClient.
* Get download clients */ async getDownloadClients(): Promise<DownloadClient[]> { return this.request<DownloadClient[]>('/downloadclient'); } - src/arr-client.ts:268-284 (schema)The DownloadClient interface defines the shape of download client data returned from the API.
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[]; }