radarr_search
Search for movies to add to your Radarr media library using a search term. Find and add movies to your collection through the MCP *arr Server.
Instructions
Search for movies to add to Radarr
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term (movie name) |
Implementation Reference
- src/index.ts:292-304 (registration)Tool registration and input schema definition for 'radarr_search'. Added to TOOLS array if Radarr client is configured.name: "radarr_search", description: "Search for movies to add to Radarr", inputSchema: { type: "object" as const, properties: { term: { type: "string", description: "Search term (movie name)", }, }, required: ["term"], }, },
- src/index.ts:1211-1230 (handler)Handler function that executes the radarr_search tool: extracts 'term' argument, calls clients.radarr.searchMovies(term), formats top 10 results as JSON response.case "radarr_search": { if (!clients.radarr) throw new Error("Radarr not configured"); const term = (args as { term: string }).term; const results = await clients.radarr.searchMovies(term); return { content: [{ type: "text", text: JSON.stringify({ count: results.length, results: results.slice(0, 10).map(r => ({ title: r.title, year: r.year, tmdbId: r.tmdbId, imdbId: r.imdbId, overview: r.overview?.substring(0, 200) + (r.overview && r.overview.length > 200 ? '...' : ''), })), }, null, 2), }], }; }
- src/arr-client.ts:695-697 (helper)RadarrClient.searchMovies method: performs API request to /movie/lookup endpoint with search term, returns SearchResult[].async searchMovies(term: string): Promise<SearchResult[]> { return this['request']<SearchResult[]>(`/movie/lookup?term=${encodeURIComponent(term)}`); }
- src/arr-client.ts:673-697 (helper)RadarrClient class definition, including searchMovies method that implements the core search functionality via Radarr API.export class RadarrClient extends ArrClient { constructor(config: ArrConfig) { super('radarr', config); } /** * Get all movies */ async getMovies(): Promise<Movie[]> { return this['request']<Movie[]>('/movie'); } /** * Get a specific movie */ async getMovieById(id: number): Promise<Movie> { return this['request']<Movie>(`/movie/${id}`); } /** * Search for movies */ async searchMovies(term: string): Promise<SearchResult[]> { return this['request']<SearchResult[]>(`/movie/lookup?term=${encodeURIComponent(term)}`); }
- src/arr-client.ts:426-443 (schema)SearchResult interface used by searchMovies method, defines structure of search results including Radarr-specific fields like tmdbId and imdbId.export interface SearchResult { title: string; sortTitle: string; status: string; overview: string; year: number; images: Array<{ coverType: string; url: string }>; remotePoster?: string; // Sonarr specific tvdbId?: number; // Radarr specific tmdbId?: number; imdbId?: string; // Lidarr specific foreignArtistId?: string; // Readarr specific foreignAuthorId?: string; }