navidrome-mcp 1.0.1 → 1.0.2

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 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. Clone and Build
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
- - Use absolute paths (full path from root)
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:
@@ -25,6 +25,7 @@ export interface TestConnectionResult {
25
25
  url: string;
26
26
  authenticated: boolean;
27
27
  timestamp: string;
28
+ version: string;
28
29
  features?: {
29
30
  lastfm: {
30
31
  enabled: boolean;
@@ -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;AAM3D,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,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,CAkE/B;AAqBD,eAAO,MAAM,gBAAgB,EAAE,YAM9B,CAAC;AAGF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAU5F"}
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"}
@@ -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,
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/tools/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/tools/test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "navidrome-mcp",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "MCP server for interacting with Navidrome music server",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",