lidarr_get_quality_profiles
Retrieve music quality profiles from Lidarr to view allowed formats, upgrade rules, and custom format scoring for media 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:174-179 (registration)Registration of configuration tools for Lidarr (among others) by calling addConfigTools if Lidarr client is configured, adding 'lidarr_get_quality_profiles' to the TOOLS array.// Add config tools for each configured service (except Prowlarr which has different config) if (clients.sonarr) addConfigTools('sonarr', 'Sonarr (TV)'); if (clients.radarr) addConfigTools('radarr', 'Radarr (Movies)'); if (clients.lidarr) addConfigTools('lidarr', 'Lidarr (Music)'); if (clients.readarr) addConfigTools('readarr', 'Readarr (Books)');
- src/index.ts:108-116 (schema)Tool schema definition for *_get_quality_profiles (used for lidarr_get_quality_profiles) within addConfigTools function: name, description, 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, retrieves Lidarr client, calls getQualityProfiles(), formats output with count, profile summaries, allowed qualities, and custom format scores.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:528-531 (helper)Core helper method getQualityProfiles() in ArrClient (inherited by LidarrClient) that makes API request to /qualityprofile endpoint.*/ async getQualityProfiles(): Promise<QualityProfile[]> { return this.request<QualityProfile[]>('/qualityprofile'); }
- src/arr-client.ts:290-309 (schema)TypeScript interface defining QualityProfile structure used by getQualityProfiles() 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; }>; }