navidrome-mcp 1.0.1 → 1.0.3
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/README.md +65 -3
- package/dist/tools/test.d.ts +1 -0
- package/dist/tools/test.d.ts.map +1 -1
- package/dist/tools/test.js +2 -0
- package/dist/tools/test.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -107,13 +107,29 @@ This isn't just another music tool – it's your personal music curator powered
|
|
|
107
107
|
### Prerequisites
|
|
108
108
|
|
|
109
109
|
* **Node.js 20+** ([Download here](https://nodejs.org/))
|
|
110
|
-
* **pnpm** package manager ([Install instructions](https://pnpm.io/installation))
|
|
111
110
|
* **Running Navidrome server** with your music library
|
|
112
111
|
* **Claude Desktop** or **ChatGPT Desktop** (or any MCP-compatible client)
|
|
113
112
|
|
|
113
|
+
**Additional for manual build:**
|
|
114
|
+
* **pnpm** package manager ([Install instructions](https://pnpm.io/installation))
|
|
115
|
+
|
|
114
116
|
### Quick Setup
|
|
115
117
|
|
|
116
|
-
#### 1
|
|
118
|
+
#### Method 1: NPM Package (Recommended)
|
|
119
|
+
|
|
120
|
+
The easiest way to get started is using the published npm package, which auto-updates on launch:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npm install -g navidrome-mcp
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
📦 **Package**: [navidrome-mcp on npm](https://www.npmjs.com/package/navidrome-mcp)
|
|
127
|
+
|
|
128
|
+
This installs the MCP server globally and keeps it up-to-date automatically.
|
|
129
|
+
|
|
130
|
+
#### Method 2: Manual Build (Development)
|
|
131
|
+
|
|
132
|
+
For development or custom builds:
|
|
117
133
|
|
|
118
134
|
```bash
|
|
119
135
|
git clone https://github.com/Blakeem/Navidrome-MCP.git
|
|
@@ -131,6 +147,30 @@ Find your configuration file:
|
|
|
131
147
|
|
|
132
148
|
Add the Navidrome MCP server:
|
|
133
149
|
|
|
150
|
+
#### Using NPM Package (Recommended)
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"mcpServers": {
|
|
155
|
+
"navidrome": {
|
|
156
|
+
"command": "npx",
|
|
157
|
+
"args": ["navidrome-mcp"],
|
|
158
|
+
"env": {
|
|
159
|
+
"NAVIDROME_URL": "http://your-server:4533",
|
|
160
|
+
"NAVIDROME_USERNAME": "your_username",
|
|
161
|
+
"NAVIDROME_PASSWORD": "your_password",
|
|
162
|
+
"LASTFM_API_KEY": "your_api_key", // Get your own at https://www.last.fm/api/account/create
|
|
163
|
+
"RADIO_BROWSER_USER_AGENT": "Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)",
|
|
164
|
+
"LYRICS_PROVIDER": "lrclib",
|
|
165
|
+
"LRCLIB_USER_AGENT": "Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### Using Manual Build (Alternative)
|
|
173
|
+
|
|
134
174
|
```json
|
|
135
175
|
{
|
|
136
176
|
"mcpServers": {
|
|
@@ -152,7 +192,8 @@ Add the Navidrome MCP server:
|
|
|
152
192
|
```
|
|
153
193
|
|
|
154
194
|
**Important**:
|
|
155
|
-
-
|
|
195
|
+
- **NPM method**: Uses `npx navidrome-mcp` which auto-updates on each launch
|
|
196
|
+
- **Manual method**: Requires absolute paths (full path from root) and manual updates
|
|
156
197
|
- Get a free Last.fm API key at [Last.fm](https://www.last.fm/api) (optional - enables music discovery)
|
|
157
198
|
- Radio Browser integration requires a User-Agent string (enables station discovery)
|
|
158
199
|
- Lyrics integration works without API keys (LRCLIB is free)
|
|
@@ -161,6 +202,18 @@ Add the Navidrome MCP server:
|
|
|
161
202
|
|
|
162
203
|
### Configure ChatGPT Desktop
|
|
163
204
|
|
|
205
|
+
#### Using NPM Package (Recommended)
|
|
206
|
+
|
|
207
|
+
1. Open **ChatGPT Desktop**
|
|
208
|
+
2. Go to **Settings → Connectors**
|
|
209
|
+
3. Click **Create** and add:
|
|
210
|
+
- **Command**: `npx`
|
|
211
|
+
- **Args**: `navidrome-mcp`
|
|
212
|
+
- **Environment variables**: Same as above
|
|
213
|
+
4. Save and restart
|
|
214
|
+
|
|
215
|
+
#### Using Manual Build (Alternative)
|
|
216
|
+
|
|
164
217
|
1. Open **ChatGPT Desktop**
|
|
165
218
|
2. Go to **Settings → Connectors**
|
|
166
219
|
3. Click **Create** and add:
|
|
@@ -225,6 +278,7 @@ Add the Navidrome MCP server:
|
|
|
225
278
|
| `get_song` | Detailed song information |
|
|
226
279
|
| `get_album` | Detailed album information |
|
|
227
280
|
| `get_artist` | Detailed artist information |
|
|
281
|
+
| `get_song_playlists` | Get all playlists that contain a specific song |
|
|
228
282
|
|
|
229
283
|
### 🔍 Search & Discovery
|
|
230
284
|
|
|
@@ -237,6 +291,7 @@ Add the Navidrome MCP server:
|
|
|
237
291
|
| `get_similar_artists` | Find similar artists (Last.fm) |
|
|
238
292
|
| `get_similar_tracks` | Find similar tracks (Last.fm) |
|
|
239
293
|
| `get_artist_info` | Artist biography and tags |
|
|
294
|
+
| `get_top_tracks_by_artist` | Get top tracks for an artist from Last.fm |
|
|
240
295
|
| `get_trending_music` | Global music trends |
|
|
241
296
|
|
|
242
297
|
### 🎵 Playlist Operations
|
|
@@ -244,6 +299,7 @@ Add the Navidrome MCP server:
|
|
|
244
299
|
| Tool | Description |
|
|
245
300
|
|------|-------------|
|
|
246
301
|
| `list_playlists` | View all playlists |
|
|
302
|
+
| `get_playlist` | Get detailed information about a specific playlist by ID |
|
|
247
303
|
| `create_playlist` | Create new playlist |
|
|
248
304
|
| `update_playlist` | Update playlist metadata |
|
|
249
305
|
| `delete_playlist` | Remove playlist |
|
|
@@ -271,6 +327,7 @@ Add the Navidrome MCP server:
|
|
|
271
327
|
| `list_most_played` | Find most played content |
|
|
272
328
|
| `get_queue` | View playback queue |
|
|
273
329
|
| `set_queue` | Set playback queue |
|
|
330
|
+
| `clear_queue` | Clear the playback queue |
|
|
274
331
|
|
|
275
332
|
### 📻 Radio Management
|
|
276
333
|
|
|
@@ -278,9 +335,12 @@ Add the Navidrome MCP server:
|
|
|
278
335
|
|------|-------------|
|
|
279
336
|
| `validate_radio_stream` | Test stream URL validity |
|
|
280
337
|
| `list_radio_stations` | View all stations |
|
|
338
|
+
| `get_radio_station` | Get detailed information about a specific radio station by ID |
|
|
281
339
|
| `create_radio_station` | Add new station (with optional validation*) |
|
|
340
|
+
| `delete_radio_station` | Delete an internet radio station by ID |
|
|
282
341
|
| `batch_create_radio_stations` | Batch add multiple stations (with optional validation*) |
|
|
283
342
|
| `play_radio_station` | Start radio playback |
|
|
343
|
+
| `get_current_radio_info` | Get information about currently playing radio station and stream metadata |
|
|
284
344
|
| `discover_radio_stations` | Find internet radio stations globally |
|
|
285
345
|
| `get_radio_filters` | Get available search filters (genres, countries, etc.) |
|
|
286
346
|
| `get_station_by_uuid` | Get detailed station information |
|
|
@@ -300,8 +360,10 @@ Add the Navidrome MCP server:
|
|
|
300
360
|
| Tool | Description |
|
|
301
361
|
|------|-------------|
|
|
302
362
|
| `list_tags` | Browse all metadata tags |
|
|
363
|
+
| `get_tag` | Get detailed information about a specific tag by ID |
|
|
303
364
|
| `search_by_tags` | Search by specific tags |
|
|
304
365
|
| `get_tag_distribution` | Analyze tag usage |
|
|
366
|
+
| `list_unique_tags` | List all unique tag names with statistics (how many unique values, total usage) |
|
|
305
367
|
|
|
306
368
|
## Troubleshooting
|
|
307
369
|
|
package/dist/tools/test.d.ts
CHANGED
package/dist/tools/test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/tools/test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/tools/test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,OAAO,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE;YACT,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO,CAAC;gBACjB,WAAW,EAAE,MAAM,CAAC;gBACpB,KAAK,EAAE,MAAM,EAAE,CAAC;aACjB,CAAC;YACF,YAAY,EAAE;gBACZ,OAAO,EAAE,OAAO,CAAC;gBACjB,WAAW,EAAE,MAAM,CAAC;gBACpB,KAAK,EAAE,MAAM,EAAE,CAAC;aACjB,CAAC;YACF,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO,CAAC;gBACjB,WAAW,EAAE,MAAM,CAAC;gBACpB,KAAK,EAAE,MAAM,EAAE,CAAC;aACjB,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,oBAAoB,CAAC,CAmE/B;AAqBD,eAAO,MAAM,gBAAgB,EAAE,YAM9B,CAAC;AAGF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAU5F"}
|
package/dist/tools/test.js
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import { z } from 'zod';
|
|
19
|
+
import { getPackageVersion } from '../utils/version.js';
|
|
19
20
|
const TestConnectionSchema = z.object({
|
|
20
21
|
includeServerInfo: z.boolean().optional().default(false),
|
|
21
22
|
});
|
|
@@ -41,6 +42,7 @@ export async function testConnection(client, config, args) {
|
|
|
41
42
|
url: 'Connected to Navidrome',
|
|
42
43
|
authenticated: true,
|
|
43
44
|
timestamp: new Date().toISOString(),
|
|
45
|
+
version: getPackageVersion(),
|
|
44
46
|
features: {
|
|
45
47
|
lastfm: {
|
|
46
48
|
enabled: hasLastFm,
|
package/dist/tools/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/tools/test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/tools/test.ts"],"names":[],"mappings":"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"}
|