radarr_add_movie
Add a movie to Radarr using TMDB ID, title, quality profile, and root folder from preliminary searches.
Instructions
Add a movie to Radarr. Use radarr_search first to find the tmdbId, and radarr_get_root_folders / radarr_get_quality_profiles to get valid values. Use radarr_get_tags to get valid tag IDs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tmdbId | Yes | TMDB ID from radarr_search results | |
| title | Yes | Movie title | |
| qualityProfileId | Yes | Quality profile ID from radarr_get_quality_profiles | |
| rootFolderPath | Yes | Root folder path from radarr_get_root_folders | |
| monitored | No | Whether to monitor the movie (default: true) | |
| minimumAvailability | No | When to consider the movie available (default: announced) | |
| tags | No | Array of tag IDs from radarr_get_tags (optional) |
Implementation Reference
- src/index.ts:478-517 (registration)Tool registration/schema definition for radarr_add_movie. Defines the tool name, description, and input schema with tmdbId, title, qualityProfileId, rootFolderPath, monitored, minimumAvailability, and tags parameters.
{ name: "radarr_add_movie", description: "Add a movie to Radarr. Use radarr_search first to find the tmdbId, and radarr_get_root_folders / radarr_get_quality_profiles to get valid values. Use radarr_get_tags to get valid tag IDs.", inputSchema: { type: "object" as const, properties: { tmdbId: { type: "number", description: "TMDB ID from radarr_search results", }, title: { type: "string", description: "Movie title", }, qualityProfileId: { type: "number", description: "Quality profile ID from radarr_get_quality_profiles", }, rootFolderPath: { type: "string", description: "Root folder path from radarr_get_root_folders", }, monitored: { type: "boolean", description: "Whether to monitor the movie (default: true)", }, minimumAvailability: { type: "string", enum: ["announced", "inCinemas", "released", "tba"], description: "When to consider the movie available (default: announced)", }, tags: { type: "array", items: { type: "number" }, description: "Array of tag IDs from radarr_get_tags (optional)", }, }, required: ["tmdbId", "title", "qualityProfileId", "rootFolderPath"], }, }, - src/index.ts:1742-1763 (handler)Handler for radarr_add_movie. Extracts arguments (tmdbId, title, qualityProfileId, rootFolderPath, monitored, minimumAvailability, tags) and calls clients.radarr.addMovie(), then returns success response with added movie details.
case "radarr_add_movie": { if (!clients.radarr) throw new Error("Radarr not configured"); const { tmdbId, title, qualityProfileId, rootFolderPath, monitored, minimumAvailability, tags } = args as { tmdbId: number; title: string; qualityProfileId: number; rootFolderPath: string; monitored?: boolean; minimumAvailability?: string; tags?: number[]; }; const added = await clients.radarr.addMovie({ tmdbId, title, qualityProfileId, rootFolderPath, monitored, minimumAvailability, tags: tags ?? [], }); return { content: [{ type: "text", text: JSON.stringify({ success: true, message: `Added "${added.title}" (${added.year}) to Radarr`, id: added.id, path: added.path, monitored: added.monitored, }, null, 2), }], }; } - src/arr-client.ts:658-669 (helper)RadarrClient.addMovie() helper method. Makes a POST request to /movie API endpoint, defaulting monitored to true and setting searchForMovie: true in addOptions.
async addMovie(movie: Partial<Movie> & { tmdbId: number; rootFolderPath: string; qualityProfileId: number }): Promise<Movie> { return this['request']<Movie>('/movie', { method: 'POST', body: JSON.stringify({ ...movie, monitored: movie.monitored ?? true, addOptions: { searchForMovie: true, }, }), }); }