prowlarr_search
Search across all configured Prowlarr indexers to find media content using a unified query, enabling centralized discovery for media management applications.
Instructions
Search across all Prowlarr indexers
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query |
Implementation Reference
- src/index.ts:535-579 (registration)Registration of Prowlarr tools including 'prowlarr_search' to the MCP TOOLS array (conditional on client configuration). Includes schema definition.if (clients.prowlarr) { TOOLS.push( { name: "prowlarr_get_indexers", description: "Get all configured indexers in Prowlarr", inputSchema: { type: "object" as const, properties: {}, required: [], }, }, { name: "prowlarr_search", description: "Search across all Prowlarr indexers", inputSchema: { type: "object" as const, properties: { query: { type: "string", description: "Search query", }, }, required: ["query"], }, }, { name: "prowlarr_test_indexers", description: "Test all indexers and return their health status", inputSchema: { type: "object" as const, properties: {}, required: [], }, }, { name: "prowlarr_get_stats", description: "Get indexer statistics (queries, grabs, failures)", inputSchema: { type: "object" as const, properties: {}, required: [], }, } ); }
- src/index.ts:1585-1592 (handler)MCP CallToolRequest handler case for 'prowlarr_search': validates configuration, extracts 'query' argument, calls ProwlarrClient.search(), and formats response.case "prowlarr_search": { if (!clients.prowlarr) throw new Error("Prowlarr not configured"); const query = (args as { query: string }).query; const results = await clients.prowlarr.search(query); return { content: [{ type: "text", text: JSON.stringify(results, null, 2) }], }; }
- src/arr-client.ts:987-994 (handler)ProwlarrClient.search(): Core tool implementation. Constructs search query parameters and invokes the base ArrClient.request() to call Prowlarr /search API endpoint.async search(query: string, categories?: number[]): Promise<unknown[]> { const params = new URLSearchParams({ query }); if (categories) { categories.forEach(c => params.append('categories', c.toString())); } return this['request']<unknown[]>(`/search?${params.toString()}`); } }