prowlarr_get_indexers
Retrieve all configured indexers from Prowlarr to manage search sources for media content across *arr applications.
Instructions
Get all configured indexers in Prowlarr
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/arr-client.ts:959-961 (handler)Core implementation of prowlarr_get_indexers: ProwlarrClient.getIndexers() method that makes API request to /indexer endpoint.async getIndexers(): Promise<Indexer[]> { return this['request']<Indexer[]>('/indexer'); }
- src/index.ts:1563-1582 (handler)MCP tool call handler in index.ts switch statement: handles 'prowlarr_get_indexers', calls ProwlarrClient.getIndexers(), formats and returns JSON response.case "prowlarr_get_indexers": { if (!clients.prowlarr) throw new Error("Prowlarr not configured"); const indexers = await clients.prowlarr.getIndexers(); return { content: [{ type: "text", text: JSON.stringify({ count: indexers.length, indexers: indexers.map(i => ({ id: i.id, name: i.name, protocol: i.protocol, enableRss: i.enableRss, enableAutomaticSearch: i.enableAutomaticSearch, enableInteractiveSearch: i.enableInteractiveSearch, priority: i.priority, })), }, null, 2), }], };
- src/index.ts:538-544 (registration)Tool registration: Adds 'prowlarr_get_indexers' to TOOLS array if Prowlarr client is configured.name: "prowlarr_get_indexers", description: "Get all configured indexers in Prowlarr", inputSchema: { type: "object" as const, properties: {}, required: [], },
- src/index.ts:540-544 (schema)Input schema for the tool: empty object (no parameters required).inputSchema: { type: "object" as const, properties: {}, required: [], },
- src/arr-client.ts:461-480 (helper)Base ArrClient.request() method used by getIndexers() to perform the HTTP request to Prowlarr API.protected async request<T>(endpoint: string, options: RequestInit = {}): Promise<T> { const url = `${this.config.url}/api/${this.apiVersion}${endpoint}`; const headers: Record<string, string> = { 'Content-Type': 'application/json', 'X-Api-Key': this.config.apiKey, ...(options.headers as Record<string, string> || {}), }; const response = await fetch(url, { ...options, headers, }); if (!response.ok) { const text = await response.text(); throw new Error(`${this.serviceName} API error: ${response.status} ${response.statusText} - ${text}`); } return response.json() as Promise<T>; }