radarr_get_quality_profiles
Retrieve detailed quality profiles from Radarr to view allowed qualities, upgrade settings, and custom format scores for movies.
Instructions
Get detailed quality profiles from Radarr (Movies). Shows allowed qualities, upgrade settings, and custom format scores.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:132-142 (registration)The tool 'radarr_get_quality_profiles' is dynamically registered in the `addConfigTools` helper function. When `clients.radarr` is configured, `addConfigTools('radarr', 'Radarr (Movies)')` is called (line 202), which pushes a tool definition with name `radarr_get_quality_profiles` to the TOOLS array.
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: [], }, }, - src/index.ts:135-142 (schema)The input schema for radarr_get_quality_profiles is defined as an empty object with no required properties, meaning the tool takes no arguments.
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:1186-1217 (handler)The handler for 'radarr_get_quality_profiles' is a shared case (line 1187) alongside sonarr and lidarr variants. It extracts the service name ('radarr') from the tool name, calls `client.getQualityProfiles()` on the RadarrClient, and returns formatted JSON with profile details including allowed qualities, cutoff, upgrade settings, and custom format scores.
case "sonarr_get_quality_profiles": case "radarr_get_quality_profiles": case "lidarr_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:471-474 (helper)The `getQualityProfiles()` method on `ArrClient` (inherited by `RadarrClient`) makes a GET request to `/api/v3/qualityprofile` to fetch the quality profiles from the Radarr API.
*/ async getQualityProfiles(): Promise<QualityProfile[]> { return this.request<QualityProfile[]>('/qualityprofile'); } - src/arr-client.ts:232-251 (helper)The `QualityProfile` interface defines the shape of the data returned by the API, including id, name, upgradeAllowed, cutoff, items (with allowed qualities), formatItems (custom format scores), minFormatScore, and cutoffFormatScore.
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; }>; }