radarr_search_movie
Search for and download a movie already in your Radarr library by specifying its ID to initiate the download process.
Instructions
Trigger a search to download a movie that's already in your library
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| movieId | Yes | Movie ID to search for |
Implementation Reference
- src/index.ts:328-341 (registration)Tool registration in TOOLS array with name, description, and input schema requiring movieId{ name: "radarr_search_movie", description: "Trigger a search to download a movie that's already in your library", inputSchema: { type: "object" as const, properties: { movieId: { type: "number", description: "Movie ID to search for", }, }, required: ["movieId"], }, }
- src/index.ts:1263-1277 (handler)Handler in switch statement that validates Radarr client, extracts movieId from args, calls clients.radarr.searchMovie(movieId), and returns success response with command IDcase "radarr_search_movie": { if (!clients.radarr) throw new Error("Radarr not configured"); const movieId = (args as { movieId: number }).movieId; const result = await clients.radarr.searchMovie(movieId); return { content: [{ type: "text", text: JSON.stringify({ success: true, message: `Search triggered for movie`, commandId: result.id, }, null, 2), }], }; }
- src/arr-client.ts:715-726 (helper)RadarrClient.searchMovie method: Posts to /command endpoint with 'MoviesSearch' command and movieIds array to trigger the search/** * Trigger a search for a movie */ async searchMovie(movieId: number): Promise<{ id: number }> { return this['request']<{ id: number }>('/command', { method: 'POST', body: JSON.stringify({ name: 'MoviesSearch', movieIds: [movieId], }), }); }
- src/arr-client.ts:692-695 (helper)Related helper: searchMovies for lookup/searching new movies (distinguishes from searchMovie for existing)/** * Search for movies */ async searchMovies(term: string): Promise<SearchResult[]> {