radarr_search
Search TMDB for movies to add to Radarr. Find movies by title to manage your media library.
Instructions
Search TMDB for new movies to add to Radarr
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (movie title) | |
| limit | No | Max results to return (default: 200) |
Implementation Reference
- src/arr/mcp-functions.ts:415-445 (handler)The radarrSearch handler function that executes the tool logic: calls client.searchMovies, maps results, handles errors.
async radarrSearch(args: { query: string; limit?: number; }): Promise<Record<string, unknown>> { const client = this.ensureRadarr(); const limit = args.limit || ARR_PREVIEW_LIMIT; try { const results = await client.searchMovies(args.query); return { success: true, query: args.query, totalResults: results.length, results: results.slice(0, limit).map((r) => ({ tmdbId: r.tmdbId, imdbId: r.imdbId, title: r.title, year: r.year, status: r.status, runtime: r.runtime, genres: r.genres, certification: r.certification, overview: r.overview ? truncate(r.overview, SUMMARY_PREVIEW_LENGTH) : undefined, })), showing: Math.min(limit, results.length), }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : String(error), }; } - src/arr/tool-schemas.ts:119-130 (schema)Schema definition for radarr_search tool: name, description, inputSchema with 'query' (required string) and 'limit' (optional number).
{ name: "radarr_search", description: "Search TMDB for new movies to add to Radarr", inputSchema: { type: "object" as const, properties: { query: { type: "string", description: "Search query (movie title)" }, limit: { type: "number", description: "Max results to return (default: 200)", default: 200 }, }, required: ["query"], }, }, - src/arr/tool-registry.ts:70-72 (registration)Registration of radarr_search tool in the registry, delegating to arrFunctions.radarrSearch.
registry.register("radarr_search", (args) => arrFunctions.radarrSearch({ query: args.query as string, limit: args.limit as number | undefined }).then(wrapResponse) ); - src/arr/client.ts:192-197 (helper)Client helper that calls the Radarr API endpoint /movie/lookup with a search term query parameter.
async searchMovies(query: string): Promise<RadarrSearchResult[]> { const { data } = await this.http.get("/movie/lookup", { params: { term: query }, }); return ensureArray(data); } - src/arr/types.ts:239-250 (schema)Type definition for RadarrSearchResult returned from the search.
export interface RadarrSearchResult { tmdbId: number; imdbId: string; title: string; overview: string; status: string; images: Array<{ coverType: string; remoteUrl: string }>; year: number; runtime: number; genres: string[]; ratings: { imdb?: { votes: number; value: number }; tmdb?: { votes: number; value: number } }; certification: string;