mcp-arr-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +244 -0
- package/dist/arr-client.d.ts +407 -0
- package/dist/arr-client.d.ts.map +1 -0
- package/dist/arr-client.js +291 -0
- package/dist/arr-client.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +699 -0
- package/dist/index.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* *arr Suite API Client
|
|
3
|
+
*
|
|
4
|
+
* All *arr applications (Sonarr, Radarr, Lidarr, Readarr, Prowlarr) use
|
|
5
|
+
* the same REST API pattern with X-Api-Key header authentication.
|
|
6
|
+
*/
|
|
7
|
+
export class ArrClient {
|
|
8
|
+
config;
|
|
9
|
+
serviceName;
|
|
10
|
+
constructor(serviceName, config) {
|
|
11
|
+
this.serviceName = serviceName;
|
|
12
|
+
this.config = {
|
|
13
|
+
url: config.url.replace(/\/$/, ''),
|
|
14
|
+
apiKey: config.apiKey
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Make an API request
|
|
19
|
+
*/
|
|
20
|
+
async request(endpoint, options = {}) {
|
|
21
|
+
const url = `${this.config.url}/api/v3${endpoint}`;
|
|
22
|
+
const headers = {
|
|
23
|
+
'Content-Type': 'application/json',
|
|
24
|
+
'X-Api-Key': this.config.apiKey,
|
|
25
|
+
...(options.headers || {}),
|
|
26
|
+
};
|
|
27
|
+
const response = await fetch(url, {
|
|
28
|
+
...options,
|
|
29
|
+
headers,
|
|
30
|
+
});
|
|
31
|
+
if (!response.ok) {
|
|
32
|
+
const text = await response.text();
|
|
33
|
+
throw new Error(`${this.serviceName} API error: ${response.status} ${response.statusText} - ${text}`);
|
|
34
|
+
}
|
|
35
|
+
return response.json();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get system status
|
|
39
|
+
*/
|
|
40
|
+
async getStatus() {
|
|
41
|
+
return this.request('/system/status');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get download queue
|
|
45
|
+
*/
|
|
46
|
+
async getQueue() {
|
|
47
|
+
return this.request('/queue?includeUnknownSeriesItems=true&includeUnknownMovieItems=true');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get calendar items (upcoming releases)
|
|
51
|
+
*/
|
|
52
|
+
async getCalendar(start, end) {
|
|
53
|
+
const params = new URLSearchParams();
|
|
54
|
+
if (start)
|
|
55
|
+
params.append('start', start);
|
|
56
|
+
if (end)
|
|
57
|
+
params.append('end', end);
|
|
58
|
+
const query = params.toString() ? `?${params.toString()}` : '';
|
|
59
|
+
return this.request(`/calendar${query}`);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get all root folders
|
|
63
|
+
*/
|
|
64
|
+
async getRootFolders() {
|
|
65
|
+
return this.request('/rootfolder');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get quality profiles
|
|
69
|
+
*/
|
|
70
|
+
async getQualityProfiles() {
|
|
71
|
+
return this.request('/qualityprofile');
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Test connection
|
|
75
|
+
*/
|
|
76
|
+
async testConnection() {
|
|
77
|
+
try {
|
|
78
|
+
await this.getStatus();
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Service-specific clients
|
|
87
|
+
export class SonarrClient extends ArrClient {
|
|
88
|
+
constructor(config) {
|
|
89
|
+
super('sonarr', config);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get all series
|
|
93
|
+
*/
|
|
94
|
+
async getSeries() {
|
|
95
|
+
return this['request']('/series');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get a specific series
|
|
99
|
+
*/
|
|
100
|
+
async getSeriesById(id) {
|
|
101
|
+
return this['request'](`/series/${id}`);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Search for series
|
|
105
|
+
*/
|
|
106
|
+
async searchSeries(term) {
|
|
107
|
+
return this['request'](`/series/lookup?term=${encodeURIComponent(term)}`);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Add a series
|
|
111
|
+
*/
|
|
112
|
+
async addSeries(series) {
|
|
113
|
+
return this['request']('/series', {
|
|
114
|
+
method: 'POST',
|
|
115
|
+
body: JSON.stringify({
|
|
116
|
+
...series,
|
|
117
|
+
monitored: series.monitored ?? true,
|
|
118
|
+
seasonFolder: series.seasonFolder ?? true,
|
|
119
|
+
addOptions: {
|
|
120
|
+
searchForMissingEpisodes: true,
|
|
121
|
+
},
|
|
122
|
+
}),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Trigger a search for missing episodes
|
|
127
|
+
*/
|
|
128
|
+
async searchMissing(seriesId) {
|
|
129
|
+
await this['request']('/command', {
|
|
130
|
+
method: 'POST',
|
|
131
|
+
body: JSON.stringify({
|
|
132
|
+
name: 'SeriesSearch',
|
|
133
|
+
seriesId,
|
|
134
|
+
}),
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
export class RadarrClient extends ArrClient {
|
|
139
|
+
constructor(config) {
|
|
140
|
+
super('radarr', config);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get all movies
|
|
144
|
+
*/
|
|
145
|
+
async getMovies() {
|
|
146
|
+
return this['request']('/movie');
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get a specific movie
|
|
150
|
+
*/
|
|
151
|
+
async getMovieById(id) {
|
|
152
|
+
return this['request'](`/movie/${id}`);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Search for movies
|
|
156
|
+
*/
|
|
157
|
+
async searchMovies(term) {
|
|
158
|
+
return this['request'](`/movie/lookup?term=${encodeURIComponent(term)}`);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Add a movie
|
|
162
|
+
*/
|
|
163
|
+
async addMovie(movie) {
|
|
164
|
+
return this['request']('/movie', {
|
|
165
|
+
method: 'POST',
|
|
166
|
+
body: JSON.stringify({
|
|
167
|
+
...movie,
|
|
168
|
+
monitored: movie.monitored ?? true,
|
|
169
|
+
addOptions: {
|
|
170
|
+
searchForMovie: true,
|
|
171
|
+
},
|
|
172
|
+
}),
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Trigger a search for a movie
|
|
177
|
+
*/
|
|
178
|
+
async searchMovie(movieId) {
|
|
179
|
+
await this['request']('/command', {
|
|
180
|
+
method: 'POST',
|
|
181
|
+
body: JSON.stringify({
|
|
182
|
+
name: 'MoviesSearch',
|
|
183
|
+
movieIds: [movieId],
|
|
184
|
+
}),
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
export class LidarrClient extends ArrClient {
|
|
189
|
+
constructor(config) {
|
|
190
|
+
super('lidarr', config);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get all artists
|
|
194
|
+
*/
|
|
195
|
+
async getArtists() {
|
|
196
|
+
return this['request']('/artist');
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get a specific artist
|
|
200
|
+
*/
|
|
201
|
+
async getArtistById(id) {
|
|
202
|
+
return this['request'](`/artist/${id}`);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Search for artists
|
|
206
|
+
*/
|
|
207
|
+
async searchArtists(term) {
|
|
208
|
+
return this['request'](`/artist/lookup?term=${encodeURIComponent(term)}`);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Add an artist
|
|
212
|
+
*/
|
|
213
|
+
async addArtist(artist) {
|
|
214
|
+
return this['request']('/artist', {
|
|
215
|
+
method: 'POST',
|
|
216
|
+
body: JSON.stringify({
|
|
217
|
+
...artist,
|
|
218
|
+
monitored: artist.monitored ?? true,
|
|
219
|
+
addOptions: {
|
|
220
|
+
searchForMissingAlbums: true,
|
|
221
|
+
},
|
|
222
|
+
}),
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
export class ReadarrClient extends ArrClient {
|
|
227
|
+
constructor(config) {
|
|
228
|
+
super('readarr', config);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get all authors
|
|
232
|
+
*/
|
|
233
|
+
async getAuthors() {
|
|
234
|
+
return this['request']('/author');
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get a specific author
|
|
238
|
+
*/
|
|
239
|
+
async getAuthorById(id) {
|
|
240
|
+
return this['request'](`/author/${id}`);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Search for authors
|
|
244
|
+
*/
|
|
245
|
+
async searchAuthors(term) {
|
|
246
|
+
return this['request'](`/author/lookup?term=${encodeURIComponent(term)}`);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Add an author
|
|
250
|
+
*/
|
|
251
|
+
async addAuthor(author) {
|
|
252
|
+
return this['request']('/author', {
|
|
253
|
+
method: 'POST',
|
|
254
|
+
body: JSON.stringify({
|
|
255
|
+
...author,
|
|
256
|
+
monitored: author.monitored ?? true,
|
|
257
|
+
addOptions: {
|
|
258
|
+
searchForMissingBooks: true,
|
|
259
|
+
},
|
|
260
|
+
}),
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
export class ProwlarrClient extends ArrClient {
|
|
265
|
+
constructor(config) {
|
|
266
|
+
super('prowlarr', config);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Get all indexers
|
|
270
|
+
*/
|
|
271
|
+
async getIndexers() {
|
|
272
|
+
return this['request']('/indexer');
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Test all indexers
|
|
276
|
+
*/
|
|
277
|
+
async testAllIndexers() {
|
|
278
|
+
await this['request']('/indexer/testall', { method: 'POST' });
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Search across all indexers
|
|
282
|
+
*/
|
|
283
|
+
async search(query, categories) {
|
|
284
|
+
const params = new URLSearchParams({ query });
|
|
285
|
+
if (categories) {
|
|
286
|
+
categories.forEach(c => params.append('categories', c.toString()));
|
|
287
|
+
}
|
|
288
|
+
return this['request'](`/search?${params.toString()}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=arr-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arr-client.js","sourceRoot":"","sources":["../src/arr-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* MCP Server for *arr Media Management Suite
|
|
4
|
+
*
|
|
5
|
+
* Provides tools for managing Sonarr (TV), Radarr (Movies), Lidarr (Music),
|
|
6
|
+
* Readarr (Books), and Prowlarr (Indexers) through Claude Code.
|
|
7
|
+
*
|
|
8
|
+
* Environment variables:
|
|
9
|
+
* - SONARR_URL, SONARR_API_KEY
|
|
10
|
+
* - RADARR_URL, RADARR_API_KEY
|
|
11
|
+
* - LIDARR_URL, LIDARR_API_KEY
|
|
12
|
+
* - READARR_URL, READARR_API_KEY
|
|
13
|
+
* - PROWLARR_URL, PROWLARR_API_KEY
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
|