@darrenjaws/spotify-mcp 0.6.0 → 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/README.md +135 -12
- package/build/index.js +109 -3
- package/build/index.js.map +1 -1
- package/build/setup.d.ts.map +1 -1
- package/build/setup.js +113 -9
- package/build/setup.js.map +1 -1
- package/build/spotify/auth.js +2 -2
- package/build/spotify/auth.js.map +1 -1
- package/build/tools/library.d.ts +14 -0
- package/build/tools/library.d.ts.map +1 -0
- package/build/tools/library.js +189 -0
- package/build/tools/library.js.map +1 -0
- package/build/tools/playback.d.ts +2 -1
- package/build/tools/playback.d.ts.map +1 -1
- package/build/tools/playback.js +16 -0
- package/build/tools/playback.js.map +1 -1
- package/build/tools/playlists.d.ts +5 -1
- package/build/tools/playlists.d.ts.map +1 -1
- package/build/tools/playlists.js +107 -3
- package/build/tools/playlists.js.map +1 -1
- package/build/tools/search.d.ts.map +1 -1
- package/build/tools/search.js +18 -4
- package/build/tools/search.js.map +1 -1
- package/build/tools/user.d.ts.map +1 -1
- package/build/tools/user.js +0 -4
- package/build/tools/user.js.map +1 -1
- package/build/types.d.ts +52 -0
- package/build/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,9 +21,10 @@ A Model Context Protocol (MCP) server that provides seamless integration with Sp
|
|
|
21
21
|
- [Environment Variables](#environment-variables)
|
|
22
22
|
- [MCP Configuration](#mcp-configuration)
|
|
23
23
|
- [Usage](#usage)
|
|
24
|
-
- [Available Tools (
|
|
25
|
-
- [Playback](#playback)
|
|
24
|
+
- [Available Tools (30 total)](#available-tools-30-total)
|
|
25
|
+
- [Playback & Device Control](#playback--device-control)
|
|
26
26
|
- [Search & Discovery](#search--discovery)
|
|
27
|
+
- [Playlist Management](#playlist-management)
|
|
27
28
|
- [Library Management](#library-management)
|
|
28
29
|
- [User Data](#user-data)
|
|
29
30
|
- [Local Development](#local-development)
|
|
@@ -51,6 +52,7 @@ The Spotify MCP Server bridges the gap between AI assistants and Spotify, allowi
|
|
|
51
52
|
## Features
|
|
52
53
|
|
|
53
54
|
### Current Features
|
|
55
|
+
|
|
54
56
|
- **Authentication & Authorization**: OAuth 2.0 Authorization Code flow for secure Spotify API access
|
|
55
57
|
- **Playback Control**: Play, pause, skip, adjust volume, and control playback across devices
|
|
56
58
|
- **Search**: Find tracks, albums, artists, and playlists
|
|
@@ -58,6 +60,7 @@ The Spotify MCP Server bridges the gap between AI assistants and Spotify, allowi
|
|
|
58
60
|
- **User Data**: Retrieve user profile information and listening statistics
|
|
59
61
|
|
|
60
62
|
### Planned Features
|
|
63
|
+
|
|
61
64
|
See [ROADMAP.md](ROADMAP.md) for detailed feature timeline and future enhancements.
|
|
62
65
|
|
|
63
66
|
## Quick Start
|
|
@@ -70,11 +73,12 @@ npx @darrenjaws/spotify-mcp setup
|
|
|
70
73
|
```
|
|
71
74
|
|
|
72
75
|
The wizard will:
|
|
76
|
+
|
|
73
77
|
- ✅ Guide you through creating a Spotify Developer app
|
|
74
78
|
- ✅ Open your browser to the right pages automatically
|
|
75
79
|
- ✅ Validate your credentials as you enter them
|
|
76
80
|
- ✅ Generate the correct configuration for your environment
|
|
77
|
-
- ✅ Give you copy-paste ready configs for Claude Desktop
|
|
81
|
+
- ✅ Give you copy-paste ready configs for Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, or OpenCode
|
|
78
82
|
|
|
79
83
|
**That's it!** The whole setup takes about 2 minutes.
|
|
80
84
|
|
|
@@ -83,12 +87,14 @@ The wizard will:
|
|
|
83
87
|
### Option 1: NPM (Recommended)
|
|
84
88
|
|
|
85
89
|
**Interactive Setup (Easiest):**
|
|
90
|
+
|
|
86
91
|
```bash
|
|
87
92
|
# No installation required - run the setup wizard
|
|
88
93
|
npx @darrenjaws/spotify-mcp setup
|
|
89
94
|
```
|
|
90
95
|
|
|
91
96
|
**Or install globally first:**
|
|
97
|
+
|
|
92
98
|
```bash
|
|
93
99
|
npm install -g @darrenjaws/spotify-mcp
|
|
94
100
|
|
|
@@ -97,6 +103,7 @@ spotify-mcp setup
|
|
|
97
103
|
```
|
|
98
104
|
|
|
99
105
|
**Using npx without setup wizard:**
|
|
106
|
+
|
|
100
107
|
```bash
|
|
101
108
|
# Skip to manual configuration (see Configuration section below)
|
|
102
109
|
npx -y @darrenjaws/spotify-mcp
|
|
@@ -132,9 +139,10 @@ npx @darrenjaws/spotify-mcp setup
|
|
|
132
139
|
```
|
|
133
140
|
|
|
134
141
|
The wizard walks you through:
|
|
142
|
+
|
|
135
143
|
1. Creating a Spotify Developer app
|
|
136
144
|
2. Getting your Client ID and Secret
|
|
137
|
-
3. Choosing your
|
|
145
|
+
3. Choosing your AI tool (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, OpenCode)
|
|
138
146
|
4. Generating the correct config file
|
|
139
147
|
|
|
140
148
|
### Manual Setup
|
|
@@ -219,6 +227,84 @@ Or add it manually to `~/.claude.json` (global) or `.claude/settings.json` (proj
|
|
|
219
227
|
|
|
220
228
|
Verify with `claude mcp list` — you should see `spotify` in the list.
|
|
221
229
|
|
|
230
|
+
#### Cursor
|
|
231
|
+
|
|
232
|
+
Add to `.cursor/mcp.json` in your project (or `~/.cursor/mcp.json` for global):
|
|
233
|
+
|
|
234
|
+
```json
|
|
235
|
+
{
|
|
236
|
+
"mcpServers": {
|
|
237
|
+
"spotify": {
|
|
238
|
+
"command": "npx",
|
|
239
|
+
"args": ["-y", "@darrenjaws/spotify-mcp"],
|
|
240
|
+
"env": {
|
|
241
|
+
"SPOTIFY_CLIENT_ID": "your_client_id_here",
|
|
242
|
+
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here",
|
|
243
|
+
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:3000/callback"
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
#### Windsurf
|
|
251
|
+
|
|
252
|
+
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
253
|
+
|
|
254
|
+
```json
|
|
255
|
+
{
|
|
256
|
+
"mcpServers": {
|
|
257
|
+
"spotify": {
|
|
258
|
+
"command": "npx",
|
|
259
|
+
"args": ["-y", "@darrenjaws/spotify-mcp"],
|
|
260
|
+
"env": {
|
|
261
|
+
"SPOTIFY_CLIENT_ID": "your_client_id_here",
|
|
262
|
+
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here",
|
|
263
|
+
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:3000/callback"
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
#### VS Code (GitHub Copilot)
|
|
271
|
+
|
|
272
|
+
Add to `.vscode/mcp.json` in your project (or VS Code User Settings for global):
|
|
273
|
+
|
|
274
|
+
```json
|
|
275
|
+
{
|
|
276
|
+
"servers": {
|
|
277
|
+
"spotify": {
|
|
278
|
+
"type": "stdio",
|
|
279
|
+
"command": "npx",
|
|
280
|
+
"args": ["-y", "@darrenjaws/spotify-mcp"],
|
|
281
|
+
"env": {
|
|
282
|
+
"SPOTIFY_CLIENT_ID": "your_client_id_here",
|
|
283
|
+
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here",
|
|
284
|
+
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:3000/callback"
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
#### OpenCode
|
|
292
|
+
|
|
293
|
+
```json
|
|
294
|
+
{
|
|
295
|
+
"$schema": "https://opencode.ai/config.json",
|
|
296
|
+
"spotify": {
|
|
297
|
+
"command": ["npx", "-y", "@darrenjaws/spotify-mcp@latest"],
|
|
298
|
+
"environment": {
|
|
299
|
+
"SPOTIFY_CLIENT_ID": "your_client_id_here",
|
|
300
|
+
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here",
|
|
301
|
+
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:3000/callback"
|
|
302
|
+
},
|
|
303
|
+
"type": "local"
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
222
308
|
#### From Source (Development)
|
|
223
309
|
|
|
224
310
|
```json
|
|
@@ -252,31 +338,54 @@ Once configured, you can interact with Spotify through natural language:
|
|
|
252
338
|
- "Search for songs by The Beatles"
|
|
253
339
|
- "Add this song to my liked songs"
|
|
254
340
|
|
|
255
|
-
## Available Tools (
|
|
341
|
+
## Available Tools (30 total)
|
|
342
|
+
|
|
343
|
+
### Playback & Device Control (8 tools)
|
|
256
344
|
|
|
257
|
-
### Playback (6 tools)
|
|
258
345
|
- `spotify_play` - Start or resume playback of tracks, albums, playlists, or artists
|
|
259
346
|
- `spotify_pause` - Pause playback
|
|
260
347
|
- `spotify_next` - Skip to next track
|
|
261
348
|
- `spotify_previous` - Skip to previous track
|
|
262
349
|
- `spotify_set_volume` - Adjust volume level (0-100)
|
|
263
350
|
- `spotify_get_playback_state` - Get current playback information
|
|
351
|
+
- `spotify_get_devices` - List available Spotify Connect devices
|
|
352
|
+
- `spotify_transfer_playback` - Transfer playback to a different device
|
|
264
353
|
|
|
265
|
-
### Search (1 tool)
|
|
266
|
-
|
|
354
|
+
### Search & Discovery (1 tool)
|
|
355
|
+
|
|
356
|
+
- `spotify_search` - Search for tracks, albums, artists, or playlists with optional field filters (artist, album, genre, year, tag)
|
|
357
|
+
|
|
358
|
+
### Playlist Management (8 tools)
|
|
267
359
|
|
|
268
|
-
### Playlist Management (4 tools)
|
|
269
360
|
- `spotify_get_playlists` - Get user's playlists
|
|
270
361
|
- `spotify_get_playlist` - Get specific playlist details
|
|
271
362
|
- `spotify_create_playlist` - Create a new playlist
|
|
272
363
|
- `spotify_add_to_playlist` - Add tracks to a playlist
|
|
364
|
+
- `spotify_remove_from_playlist` - Remove tracks from a playlist
|
|
365
|
+
- `spotify_reorder_playlist_tracks` - Reorder tracks in a playlist
|
|
366
|
+
- `spotify_delete_playlist` - Delete (unfollow) a playlist
|
|
367
|
+
- `spotify_update_playlist` - Update playlist details (name, description, public/private, collaborative)
|
|
368
|
+
|
|
369
|
+
### Library Management (9 tools)
|
|
370
|
+
|
|
371
|
+
- `spotify_get_saved_tracks` - Get tracks saved in your library
|
|
372
|
+
- `spotify_get_saved_albums` - Get albums saved in your library
|
|
373
|
+
- `spotify_get_followed_artists` - Get artists you follow
|
|
374
|
+
- `spotify_save_tracks` - Save tracks to your library
|
|
375
|
+
- `spotify_remove_saved_tracks` - Remove tracks from your library
|
|
376
|
+
- `spotify_save_albums` - Save albums to your library
|
|
377
|
+
- `spotify_remove_saved_albums` - Remove albums from your library
|
|
378
|
+
- `spotify_follow_artists` - Follow artists
|
|
379
|
+
- `spotify_unfollow_artists` - Unfollow artists
|
|
273
380
|
|
|
274
381
|
### User Data (3 tools)
|
|
382
|
+
|
|
275
383
|
- `spotify_get_user_profile` - Get user profile information
|
|
276
384
|
- `spotify_get_top_items` - Get user's top artists or tracks
|
|
277
385
|
- `spotify_get_recently_played` - Get recently played tracks
|
|
278
386
|
|
|
279
387
|
### System (1 tool)
|
|
388
|
+
|
|
280
389
|
- `spotify_open` - Open the Spotify desktop app (supports macOS, Windows, Linux)
|
|
281
390
|
|
|
282
391
|
## Local Development
|
|
@@ -290,6 +399,7 @@ Once configured, you can interact with Spotify through natural language:
|
|
|
290
399
|
### Initial Setup
|
|
291
400
|
|
|
292
401
|
1. **Clone and install dependencies**
|
|
402
|
+
|
|
293
403
|
```bash
|
|
294
404
|
git clone https://github.com/darrenjaworski/spotify-mcp.git
|
|
295
405
|
cd spotify-mcp
|
|
@@ -297,12 +407,14 @@ npm install
|
|
|
297
407
|
```
|
|
298
408
|
|
|
299
409
|
2. **Configure environment variables**
|
|
410
|
+
|
|
300
411
|
```bash
|
|
301
412
|
cp .env.example .env
|
|
302
413
|
# Edit .env with your Spotify credentials
|
|
303
414
|
```
|
|
304
415
|
|
|
305
416
|
3. **Build the project**
|
|
417
|
+
|
|
306
418
|
```bash
|
|
307
419
|
npm run build
|
|
308
420
|
```
|
|
@@ -339,6 +451,7 @@ npx @modelcontextprotocol/inspector node build/bin.js
|
|
|
339
451
|
```
|
|
340
452
|
|
|
341
453
|
This opens a browser at `http://localhost:6274` with:
|
|
454
|
+
|
|
342
455
|
- **Server Connection Pane**: Configure transport and environment variables
|
|
343
456
|
- **Tools Tab**: See all available tools and test them interactively
|
|
344
457
|
- **Resources Tab**: View server resources
|
|
@@ -360,7 +473,8 @@ DEBUG=true npx @modelcontextprotocol/inspector node build/bin.js
|
|
|
360
473
|
```
|
|
361
474
|
|
|
362
475
|
**Benefits:**
|
|
363
|
-
|
|
476
|
+
|
|
477
|
+
- ✅ Interactive UI to test all 30 tools
|
|
364
478
|
- ✅ See JSON-RPC messages in real-time
|
|
365
479
|
- ✅ No need to configure Claude Desktop during development
|
|
366
480
|
- ✅ Quickly iterate on tool implementations
|
|
@@ -410,11 +524,13 @@ echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"spotify_ge
|
|
|
410
524
|
**1. Use Watch Mode + Inspector Together**
|
|
411
525
|
|
|
412
526
|
Terminal 1:
|
|
527
|
+
|
|
413
528
|
```bash
|
|
414
529
|
npm run dev # Watch mode - rebuilds on changes
|
|
415
530
|
```
|
|
416
531
|
|
|
417
532
|
Terminal 2:
|
|
533
|
+
|
|
418
534
|
```bash
|
|
419
535
|
npx @modelcontextprotocol/inspector node build/bin.js
|
|
420
536
|
```
|
|
@@ -451,8 +567,9 @@ npm run test:watch # Run tests in watch mode
|
|
|
451
567
|
```
|
|
452
568
|
|
|
453
569
|
**Test Coverage:**
|
|
454
|
-
|
|
455
|
-
- ✅
|
|
570
|
+
|
|
571
|
+
- ✅ 213 tests across 11 test files
|
|
572
|
+
- ✅ Tool-level unit tests for playback, search, playlists, library, user, and system
|
|
456
573
|
- ✅ Auth tests (credentials, token management, file permissions, refresh)
|
|
457
574
|
- ✅ Logger tests (sensitive data redaction, log levels)
|
|
458
575
|
- ✅ Error handling tests (all HTTP status codes, security)
|
|
@@ -469,20 +586,24 @@ npm run static-checks # Run lint, build, and test together
|
|
|
469
586
|
### Troubleshooting
|
|
470
587
|
|
|
471
588
|
**Build Errors:**
|
|
589
|
+
|
|
472
590
|
- Ensure TypeScript is installed: `npm install`
|
|
473
591
|
- Check Node version: `node --version` (should be >= 18)
|
|
474
592
|
|
|
475
593
|
**Inspector Not Loading:**
|
|
594
|
+
|
|
476
595
|
- Check if port 6274 is available
|
|
477
596
|
- Try clearing browser cache
|
|
478
597
|
- Restart the inspector
|
|
479
598
|
|
|
480
599
|
**OAuth Errors:**
|
|
600
|
+
|
|
481
601
|
- Verify Spotify credentials in `.env`
|
|
482
602
|
- Check redirect URI matches in Spotify Dashboard
|
|
483
603
|
- Ensure scopes are correct in `src/spotify/auth.ts`
|
|
484
604
|
|
|
485
605
|
**Server Not Responding:**
|
|
606
|
+
|
|
486
607
|
- Check logs: `LOG_LEVEL=debug node build/bin.js`
|
|
487
608
|
- Verify build succeeded: `ls -la build/`
|
|
488
609
|
- Test with simple tool like `spotify_get_user_profile`
|
|
@@ -537,11 +658,13 @@ MIT License - see LICENSE file for details
|
|
|
537
658
|
## Resources
|
|
538
659
|
|
|
539
660
|
### MCP Development Tools
|
|
661
|
+
|
|
540
662
|
- [MCP Inspector Documentation](https://modelcontextprotocol.io/docs/tools/inspector) - Official testing tool
|
|
541
663
|
- [MCP Inspector GitHub](https://github.com/modelcontextprotocol/inspector) - Source code
|
|
542
664
|
- [Testing MCP Servers Guide](https://www.stainless.com/mcp/how-to-test-mcp-servers) - Comprehensive testing strategies
|
|
543
665
|
- [MCP Inspector Tutorial](https://hackteam.io/blog/build-test-mcp-server-typescript-mcp-inspector/) - Step-by-step guide
|
|
544
666
|
|
|
545
667
|
### Spotify API
|
|
668
|
+
|
|
546
669
|
- [Spotify Web API Documentation](https://developer.spotify.com/documentation/web-api)
|
|
547
670
|
- [Spotify Developer Dashboard](https://developer.spotify.com/dashboard)
|
package/build/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import * as playbackTools from "./tools/playback.js";
|
|
|
7
7
|
import * as searchTools from "./tools/search.js";
|
|
8
8
|
import * as playlistTools from "./tools/playlists.js";
|
|
9
9
|
import * as userTools from "./tools/user.js";
|
|
10
|
+
import * as libraryTools from "./tools/library.js";
|
|
10
11
|
import * as systemTools from "./tools/system.js";
|
|
11
12
|
// Load environment variables
|
|
12
13
|
dotenv.config();
|
|
@@ -70,13 +71,18 @@ server.registerTool("spotify_get_devices", {
|
|
|
70
71
|
}, async () => playbackTools.getDevices());
|
|
71
72
|
// Register search tool
|
|
72
73
|
server.registerTool("spotify_search", {
|
|
73
|
-
description: "Search for tracks, albums, artists, or playlists",
|
|
74
|
+
description: "Search for tracks, albums, artists, or playlists with optional field filters",
|
|
74
75
|
inputSchema: {
|
|
75
76
|
query: z.string().describe("Search query"),
|
|
76
77
|
type: z.enum(["track", "album", "artist", "playlist"]).describe("Type of item to search for"),
|
|
77
|
-
limit: z.number().min(1).max(
|
|
78
|
+
limit: z.number().min(1).max(10).optional().describe("Number of results to return (default: 5, max: 10)"),
|
|
79
|
+
artist: z.string().optional().describe("Filter by artist name"),
|
|
80
|
+
album: z.string().optional().describe("Filter by album name"),
|
|
81
|
+
genre: z.string().optional().describe("Filter by genre"),
|
|
82
|
+
year: z.string().optional().describe("Filter by year or year range (e.g., '2024' or '2020-2024')"),
|
|
83
|
+
tag: z.enum(["new", "hipster"]).optional().describe("Filter by tag: 'new' for recent releases, 'hipster' for low-popularity"),
|
|
78
84
|
},
|
|
79
|
-
}, async ({ query, type, limit }) => searchTools.search({ query, type, limit }));
|
|
85
|
+
}, async ({ query, type, limit, artist, album, genre, year, tag }) => searchTools.search({ query, type, limit, artist, album, genre, year, tag }));
|
|
80
86
|
// Register playlist tools
|
|
81
87
|
server.registerTool("spotify_get_playlists", {
|
|
82
88
|
description: "Get current user's playlists",
|
|
@@ -106,6 +112,40 @@ server.registerTool("spotify_add_to_playlist", {
|
|
|
106
112
|
position: z.number().optional().describe("Position to insert tracks (default: end of playlist)"),
|
|
107
113
|
},
|
|
108
114
|
}, async ({ playlist_id, uris, position }) => playlistTools.addToPlaylist({ playlist_id, uris, position }));
|
|
115
|
+
server.registerTool("spotify_remove_from_playlist", {
|
|
116
|
+
description: "Remove tracks from a playlist",
|
|
117
|
+
inputSchema: {
|
|
118
|
+
playlist_id: z.string().describe("Spotify playlist ID"),
|
|
119
|
+
uris: z.array(z.string()).min(1).describe("Array of Spotify track URIs to remove"),
|
|
120
|
+
snapshot_id: z.string().optional().describe("Playlist snapshot ID for concurrent modification safety"),
|
|
121
|
+
},
|
|
122
|
+
}, async ({ playlist_id, uris, snapshot_id }) => playlistTools.removeFromPlaylist({ playlist_id, uris, snapshot_id }));
|
|
123
|
+
server.registerTool("spotify_reorder_playlist_tracks", {
|
|
124
|
+
description: "Reorder tracks in a playlist",
|
|
125
|
+
inputSchema: {
|
|
126
|
+
playlist_id: z.string().describe("Spotify playlist ID"),
|
|
127
|
+
range_start: z.number().min(0).describe("Position of the first track to move"),
|
|
128
|
+
insert_before: z.number().min(0).describe("Position where tracks should be inserted"),
|
|
129
|
+
range_length: z.number().min(1).optional().describe("Number of tracks to move (default: 1)"),
|
|
130
|
+
snapshot_id: z.string().optional().describe("Playlist snapshot ID for concurrent modification safety"),
|
|
131
|
+
},
|
|
132
|
+
}, async ({ playlist_id, range_start, insert_before, range_length, snapshot_id }) => playlistTools.reorderPlaylistTracks({ playlist_id, range_start, insert_before, range_length, snapshot_id }));
|
|
133
|
+
server.registerTool("spotify_delete_playlist", {
|
|
134
|
+
description: "Delete (unfollow) a playlist. You can only delete playlists you own.",
|
|
135
|
+
inputSchema: {
|
|
136
|
+
playlist_id: z.string().describe("Spotify playlist ID to delete"),
|
|
137
|
+
},
|
|
138
|
+
}, async ({ playlist_id }) => playlistTools.deletePlaylist({ playlist_id }));
|
|
139
|
+
server.registerTool("spotify_update_playlist", {
|
|
140
|
+
description: "Update playlist details (name, description, public/private, collaborative)",
|
|
141
|
+
inputSchema: {
|
|
142
|
+
playlist_id: z.string().describe("Spotify playlist ID"),
|
|
143
|
+
name: z.string().optional().describe("New playlist name"),
|
|
144
|
+
description: z.string().optional().describe("New playlist description"),
|
|
145
|
+
public: z.boolean().optional().describe("Whether the playlist should be public"),
|
|
146
|
+
collaborative: z.boolean().optional().describe("Whether the playlist should be collaborative (must be non-public)"),
|
|
147
|
+
},
|
|
148
|
+
}, async ({ playlist_id, name, description, public: isPublic, collaborative }) => playlistTools.updatePlaylist({ playlist_id, name, description, public: isPublic, collaborative }));
|
|
109
149
|
// Register user data tools
|
|
110
150
|
server.registerTool("spotify_get_user_profile", {
|
|
111
151
|
description: "Get current user's profile information",
|
|
@@ -128,6 +168,72 @@ server.registerTool("spotify_get_recently_played", {
|
|
|
128
168
|
limit: z.number().min(1).max(50).optional().describe("Number of tracks to return (default: 20)"),
|
|
129
169
|
},
|
|
130
170
|
}, async ({ limit }) => userTools.getRecentlyPlayed({ limit }));
|
|
171
|
+
// Register library tools
|
|
172
|
+
server.registerTool("spotify_get_saved_tracks", {
|
|
173
|
+
description: "Get tracks saved in the current user's library",
|
|
174
|
+
inputSchema: {
|
|
175
|
+
limit: z.number().min(1).max(50).optional().describe("Number of tracks to return (default: 20)"),
|
|
176
|
+
offset: z.number().min(0).optional().describe("Index of first track to return (default: 0)"),
|
|
177
|
+
},
|
|
178
|
+
}, async ({ limit, offset }) => libraryTools.getSavedTracks({ limit, offset }));
|
|
179
|
+
server.registerTool("spotify_get_saved_albums", {
|
|
180
|
+
description: "Get albums saved in the current user's library",
|
|
181
|
+
inputSchema: {
|
|
182
|
+
limit: z.number().min(1).max(50).optional().describe("Number of albums to return (default: 20)"),
|
|
183
|
+
offset: z.number().min(0).optional().describe("Index of first album to return (default: 0)"),
|
|
184
|
+
},
|
|
185
|
+
}, async ({ limit, offset }) => libraryTools.getSavedAlbums({ limit, offset }));
|
|
186
|
+
server.registerTool("spotify_get_followed_artists", {
|
|
187
|
+
description: "Get artists followed by the current user",
|
|
188
|
+
inputSchema: {
|
|
189
|
+
limit: z.number().min(1).max(50).optional().describe("Number of artists to return (default: 20)"),
|
|
190
|
+
after: z.string().optional().describe("Last artist ID from previous page for cursor pagination"),
|
|
191
|
+
},
|
|
192
|
+
}, async ({ limit, after }) => libraryTools.getFollowedArtists({ limit, after }));
|
|
193
|
+
server.registerTool("spotify_save_tracks", {
|
|
194
|
+
description: "Save tracks to the current user's library",
|
|
195
|
+
inputSchema: {
|
|
196
|
+
track_ids: z.array(z.string()).min(1).max(50).describe("Array of Spotify track IDs to save"),
|
|
197
|
+
},
|
|
198
|
+
}, async ({ track_ids }) => libraryTools.saveTracks({ track_ids }));
|
|
199
|
+
server.registerTool("spotify_remove_saved_tracks", {
|
|
200
|
+
description: "Remove tracks from the current user's library",
|
|
201
|
+
inputSchema: {
|
|
202
|
+
track_ids: z.array(z.string()).min(1).max(50).describe("Array of Spotify track IDs to remove"),
|
|
203
|
+
},
|
|
204
|
+
}, async ({ track_ids }) => libraryTools.removeSavedTracks({ track_ids }));
|
|
205
|
+
server.registerTool("spotify_save_albums", {
|
|
206
|
+
description: "Save albums to the current user's library",
|
|
207
|
+
inputSchema: {
|
|
208
|
+
album_ids: z.array(z.string()).min(1).max(50).describe("Array of Spotify album IDs to save"),
|
|
209
|
+
},
|
|
210
|
+
}, async ({ album_ids }) => libraryTools.saveAlbums({ album_ids }));
|
|
211
|
+
server.registerTool("spotify_remove_saved_albums", {
|
|
212
|
+
description: "Remove albums from the current user's library",
|
|
213
|
+
inputSchema: {
|
|
214
|
+
album_ids: z.array(z.string()).min(1).max(50).describe("Array of Spotify album IDs to remove"),
|
|
215
|
+
},
|
|
216
|
+
}, async ({ album_ids }) => libraryTools.removeSavedAlbums({ album_ids }));
|
|
217
|
+
server.registerTool("spotify_follow_artists", {
|
|
218
|
+
description: "Follow one or more artists",
|
|
219
|
+
inputSchema: {
|
|
220
|
+
artist_ids: z.array(z.string()).min(1).max(50).describe("Array of Spotify artist IDs to follow"),
|
|
221
|
+
},
|
|
222
|
+
}, async ({ artist_ids }) => libraryTools.followArtists({ artist_ids }));
|
|
223
|
+
server.registerTool("spotify_unfollow_artists", {
|
|
224
|
+
description: "Unfollow one or more artists",
|
|
225
|
+
inputSchema: {
|
|
226
|
+
artist_ids: z.array(z.string()).min(1).max(50).describe("Array of Spotify artist IDs to unfollow"),
|
|
227
|
+
},
|
|
228
|
+
}, async ({ artist_ids }) => libraryTools.unfollowArtists({ artist_ids }));
|
|
229
|
+
// Register device management tools
|
|
230
|
+
server.registerTool("spotify_transfer_playback", {
|
|
231
|
+
description: "Transfer playback to a different device (use spotify_get_devices to find device IDs)",
|
|
232
|
+
inputSchema: {
|
|
233
|
+
device_id: z.string().describe("Device ID to transfer playback to"),
|
|
234
|
+
play: z.boolean().optional().describe("Whether to start playback on the new device (default: true)"),
|
|
235
|
+
},
|
|
236
|
+
}, async ({ device_id, play }) => playbackTools.transferPlayback({ device_id, play }));
|
|
131
237
|
// Register system tools
|
|
132
238
|
server.registerTool("spotify_open", {
|
|
133
239
|
description: "Open the Spotify desktop app on this machine",
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAEA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAkPH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAyM9C"}
|