lidarr_get_quality_profiles
Retrieve quality profiles from Lidarr to view allowed audio formats, upgrade rules, and custom format scoring for music management.
Instructions
Get detailed quality profiles from Lidarr (Music). Shows allowed qualities, upgrade settings, and custom format scores.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:177-179 (registration)Registration of lidarr config tools including lidarr_get_quality_profiles via addConfigTools call when Lidarr client is configured.if (clients.lidarr) addConfigTools('lidarr', 'Lidarr (Music)'); if (clients.readarr) addConfigTools('readarr', 'Readarr (Books)');
- src/index.ts:108-116 (schema)Tool schema and definition for {serviceName}_get_quality_profiles (used for lidarr_get_quality_profiles). Defines name, description, and empty input schema.{ 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: [], }, },
- src/index.ts:795-827 (handler)Main handler logic for lidarr_get_quality_profiles. Parses service name from tool name, retrieves LidarrClient, fetches quality profiles, and returns formatted JSON summary.case "sonarr_get_quality_profiles": case "radarr_get_quality_profiles": case "lidarr_get_quality_profiles": case "readarr_get_quality_profiles": { const serviceName = name.split('_')[0] as keyof typeof clients; const client = clients[serviceName]; if (!client) throw new Error(`${serviceName} not configured`); const profiles = await client.getQualityProfiles(); return { content: [{ type: "text", text: JSON.stringify({ count: profiles.length, profiles: profiles.map(p => ({ id: p.id, name: p.name, upgradeAllowed: p.upgradeAllowed, cutoff: p.cutoff, allowedQualities: p.items .filter(i => i.allowed) .map(i => i.quality?.name || i.name || (i.items?.map(q => q.quality.name).join(', '))) .filter(Boolean), customFormats: p.formatItems?.filter(f => f.score !== 0).map(f => ({ name: f.name, score: f.score, })) || [], minFormatScore: p.minFormatScore, cutoffFormatScore: p.cutoffFormatScore, })), }, null, 2), }], }; }
- src/arr-client.ts:529-531 (helper)Core helper method getQualityProfiles() called by the handler. Makes API request to /qualityprofile endpoint on the Lidarr server.async getQualityProfiles(): Promise<QualityProfile[]> { return this.request<QualityProfile[]>('/qualityprofile'); }
- src/arr-client.ts:290-309 (schema)Type definition for QualityProfile, used for output validation and typing of the API response.export interface QualityProfile { id: number; name: string; upgradeAllowed: boolean; cutoff: number; items: Array<{ id?: number; name?: string; quality?: { id: number; name: string; source: string; resolution: number }; items?: Array<{ quality: { id: number; name: string } }>; allowed: boolean; }>; minFormatScore: number; cutoffFormatScore: number; formatItems: Array<{ format: number; name: string; score: number; }>; }