readarr_get_authors
Retrieve all authors from your Readarr library to manage book collections and track literary content across your media server.
Instructions
Get all authors in Readarr library
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:1423-1442 (handler)Handler for the readarr_get_authors tool. Fetches authors from ReadarrClient.getAuthors(), formats a summary with count, author details (ID, name, status, book counts, size on disk, monitored status), and returns as formatted JSON text.
case "readarr_get_authors": { if (!clients.readarr) throw new Error("Readarr not configured"); const authors = await clients.readarr.getAuthors(); return { content: [{ type: "text", text: JSON.stringify({ count: authors.length, authors: authors.map(a => ({ id: a.id, authorName: a.authorName, status: a.status, books: a.statistics?.bookFileCount + '/' + a.statistics?.totalBookCount, sizeOnDisk: formatBytes(a.statistics?.sizeOnDisk || 0), monitored: a.monitored, })), }, null, 2), }], }; } - src/index.ts:443-450 (registration)Registration of the readarr_get_authors tool in the TOOLS array. Defines name, description, and empty input schema (no parameters). Conditionally added if Readarr is configured.
name: "readarr_get_authors", description: "Get all authors in Readarr library", inputSchema: { type: "object" as const, properties: {}, required: [], }, }, - src/arr-client.ts:838-843 (helper)ReadarrClient.getAuthors() helper method. Performs authenticated API GET request to the Readarr /author endpoint and returns array of Author objects.
/** * Get all authors */ async getAuthors(): Promise<Author[]> { return this['request']<Author[]>('/author'); } - src/arr-client.ts:250-276 (schema)TypeScript interface Author defining the structure of author data returned from Readarr API, used in getAuthors() and tool output.
export interface Author { id: number; authorName: string; sortName: string; status: string; overview: string; links: Array<{ url: string; name: string }>; images: Array<{ coverType: string; url: string }>; path: string; qualityProfileId: number; metadataProfileId: number; monitored: boolean; monitorNewItems: string; genres: string[]; cleanName: string; foreignAuthorId: string; tags: number[]; added: string; ratings: { votes: number; value: number; popularity: number }; statistics: { bookFileCount: number; bookCount: number; totalBookCount: number; sizeOnDisk: number; percentOfBooks: number; }; }