sonarr_get_episodes
Retrieve episode availability status for TV series to identify missing episodes and track content completion.
Instructions
Get episodes for a TV series. Shows which episodes are available and which are missing.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| seriesId | Yes | Series ID to get episodes for | |
| seasonNumber | No | Optional: filter to a specific season |
Implementation Reference
- src/index.ts:1132-1153 (handler)Handler for sonarr_get_episodes tool call: extracts parameters, calls SonarrClient.getEpisodes, formats and returns episode list.case "sonarr_get_episodes": { if (!clients.sonarr) throw new Error("Sonarr not configured"); const { seriesId, seasonNumber } = args as { seriesId: number; seasonNumber?: number }; const episodes = await clients.sonarr.getEpisodes(seriesId, seasonNumber); return { content: [{ type: "text", text: JSON.stringify({ count: episodes.length, episodes: episodes.map(e => ({ id: e.id, seasonNumber: e.seasonNumber, episodeNumber: e.episodeNumber, title: e.title, airDate: e.airDate, hasFile: e.hasFile, monitored: e.monitored, })), }, null, 2), }], }; }
- src/index.ts:230-246 (schema)Tool registration including name, description, and input schema definition for sonarr_get_episodes.name: "sonarr_get_episodes", description: "Get episodes for a TV series. Shows which episodes are available and which are missing.", inputSchema: { type: "object" as const, properties: { seriesId: { type: "number", description: "Series ID to get episodes for", }, seasonNumber: { type: "number", description: "Optional: filter to a specific season", }, }, required: ["seriesId"], }, },
- src/arr-client.ts:651-657 (handler)Core implementation in SonarrClient.getEpisodes: constructs API endpoint and fetches episodes from Sonarr server.async getEpisodes(seriesId: number, seasonNumber?: number): Promise<Episode[]> { let url = `/episode?seriesId=${seriesId}`; if (seasonNumber !== undefined) { url += `&seasonNumber=${seasonNumber}`; } return this['request']<Episode[]>(url); }