spotted-ts-mcp 0.1.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 +201 -0
- package/README.md +440 -0
- package/code-tool-paths.cjs +6 -0
- package/code-tool-paths.cjs.map +1 -0
- package/code-tool-paths.d.cts +2 -0
- package/code-tool-paths.d.cts.map +1 -0
- package/code-tool-types.d.mts +14 -0
- package/code-tool-types.d.mts.map +1 -0
- package/code-tool-types.d.ts +14 -0
- package/code-tool-types.d.ts.map +1 -0
- package/code-tool-types.js +4 -0
- package/code-tool-types.js.map +1 -0
- package/code-tool-types.mjs +3 -0
- package/code-tool-types.mjs.map +1 -0
- package/code-tool-worker.d.mts +5 -0
- package/code-tool-worker.d.mts.map +1 -0
- package/code-tool-worker.d.ts +5 -0
- package/code-tool-worker.d.ts.map +1 -0
- package/code-tool-worker.js +237 -0
- package/code-tool-worker.js.map +1 -0
- package/code-tool-worker.mjs +232 -0
- package/code-tool-worker.mjs.map +1 -0
- package/code-tool.d.mts +12 -0
- package/code-tool.d.mts.map +1 -0
- package/code-tool.d.ts +12 -0
- package/code-tool.d.ts.map +1 -0
- package/code-tool.js +156 -0
- package/code-tool.js.map +1 -0
- package/code-tool.mjs +120 -0
- package/code-tool.mjs.map +1 -0
- package/compat.d.mts +58 -0
- package/compat.d.mts.map +1 -0
- package/compat.d.ts +58 -0
- package/compat.d.ts.map +1 -0
- package/compat.js +387 -0
- package/compat.js.map +1 -0
- package/compat.mjs +378 -0
- package/compat.mjs.map +1 -0
- package/docs-search-tool.d.mts +44 -0
- package/docs-search-tool.d.mts.map +1 -0
- package/docs-search-tool.d.ts +44 -0
- package/docs-search-tool.d.ts.map +1 -0
- package/docs-search-tool.js +43 -0
- package/docs-search-tool.js.map +1 -0
- package/docs-search-tool.mjs +39 -0
- package/docs-search-tool.mjs.map +1 -0
- package/dynamic-tools.d.mts +12 -0
- package/dynamic-tools.d.mts.map +1 -0
- package/dynamic-tools.d.ts +12 -0
- package/dynamic-tools.d.ts.map +1 -0
- package/dynamic-tools.js +135 -0
- package/dynamic-tools.js.map +1 -0
- package/dynamic-tools.mjs +132 -0
- package/dynamic-tools.mjs.map +1 -0
- package/filtering.d.mts +2 -0
- package/filtering.d.mts.map +1 -0
- package/filtering.d.ts +2 -0
- package/filtering.d.ts.map +1 -0
- package/filtering.js +20 -0
- package/filtering.js.map +1 -0
- package/filtering.mjs +13 -0
- package/filtering.mjs.map +1 -0
- package/headers.d.mts +4 -0
- package/headers.d.mts.map +1 -0
- package/headers.d.ts +4 -0
- package/headers.d.ts.map +1 -0
- package/headers.js +9 -0
- package/headers.js.map +1 -0
- package/headers.mjs +5 -0
- package/headers.mjs.map +1 -0
- package/http.d.mts +9 -0
- package/http.d.mts.map +1 -0
- package/http.d.ts +9 -0
- package/http.d.ts.map +1 -0
- package/http.js +108 -0
- package/http.js.map +1 -0
- package/http.mjs +100 -0
- package/http.mjs.map +1 -0
- package/index.d.mts +3 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +3 -0
- package/index.d.ts.map +1 -0
- package/index.js +91 -0
- package/index.js.map +1 -0
- package/index.mjs +89 -0
- package/index.mjs.map +1 -0
- package/options.d.mts +20 -0
- package/options.d.mts.map +1 -0
- package/options.d.ts +20 -0
- package/options.d.ts.map +1 -0
- package/options.js +427 -0
- package/options.js.map +1 -0
- package/options.mjs +420 -0
- package/options.mjs.map +1 -0
- package/package.json +218 -0
- package/server.d.mts +35 -0
- package/server.d.mts.map +1 -0
- package/server.d.ts +35 -0
- package/server.d.ts.map +1 -0
- package/server.js +174 -0
- package/server.js.map +1 -0
- package/server.mjs +160 -0
- package/server.mjs.map +1 -0
- package/src/code-tool-paths.cts +3 -0
- package/src/code-tool-types.ts +14 -0
- package/src/code-tool-worker.ts +283 -0
- package/src/code-tool.ts +148 -0
- package/src/compat.ts +483 -0
- package/src/docs-search-tool.ts +48 -0
- package/src/dynamic-tools.ts +153 -0
- package/src/filtering.ts +14 -0
- package/src/headers.ts +8 -0
- package/src/http.ts +127 -0
- package/src/index.ts +108 -0
- package/src/options.ts +473 -0
- package/src/server.ts +207 -0
- package/src/stdio.ts +13 -0
- package/src/tools/albums/bulk-retrieve-albums.ts +48 -0
- package/src/tools/albums/list-tracks-albums.ts +67 -0
- package/src/tools/albums/retrieve-albums.ts +47 -0
- package/src/tools/artists/list-albums-artists.ts +73 -0
- package/src/tools/artists/list-artists.ts +50 -0
- package/src/tools/artists/list-related-artists-artists.ts +49 -0
- package/src/tools/artists/list-top-tracks-artists.ts +47 -0
- package/src/tools/artists/retrieve-artists.ts +49 -0
- package/src/tools/audio-analysis/retrieve-audio-analysis.ts +42 -0
- package/src/tools/audio-features/list-audio-features.ts +50 -0
- package/src/tools/audio-features/retrieve-audio-features.ts +49 -0
- package/src/tools/audiobooks/list-audiobooks.ts +56 -0
- package/src/tools/audiobooks/list-chapters-audiobooks.ts +68 -0
- package/src/tools/audiobooks/retrieve-audiobooks.ts +56 -0
- package/src/tools/browse/categories/get-playlists-browse-categories.ts +63 -0
- package/src/tools/browse/categories/list-browse-categories.ts +61 -0
- package/src/tools/browse/categories/retrieve-browse-categories.ts +58 -0
- package/src/tools/browse/get-featured-playlists-browse.ts +61 -0
- package/src/tools/browse/get-new-releases-browse.ts +55 -0
- package/src/tools/chapters/list-chapters.ts +49 -0
- package/src/tools/chapters/retrieve-chapters.ts +48 -0
- package/src/tools/episodes/list-episodes.ts +48 -0
- package/src/tools/episodes/retrieve-episodes.ts +47 -0
- package/src/tools/index.ts +247 -0
- package/src/tools/markets/list-markets.ts +44 -0
- package/src/tools/me/albums/check-me-albums.ts +50 -0
- package/src/tools/me/albums/list-me-albums.ts +54 -0
- package/src/tools/me/albums/remove-me-albums.ts +45 -0
- package/src/tools/me/albums/save-me-albums.ts +45 -0
- package/src/tools/me/audiobooks/check-me-audiobooks.ts +50 -0
- package/src/tools/me/audiobooks/list-me-audiobooks.ts +56 -0
- package/src/tools/me/audiobooks/remove-me-audiobooks.ts +43 -0
- package/src/tools/me/audiobooks/save-me-audiobooks.ts +43 -0
- package/src/tools/me/episodes/check-me-episodes.ts +50 -0
- package/src/tools/me/episodes/list-me-episodes.ts +55 -0
- package/src/tools/me/episodes/remove-me-episodes.ts +46 -0
- package/src/tools/me/episodes/save-me-episodes.ts +46 -0
- package/src/tools/me/following/check-me-following.ts +56 -0
- package/src/tools/me/following/follow-me-following.ts +45 -0
- package/src/tools/me/following/list-me-following.ts +60 -0
- package/src/tools/me/following/unfollow-me-following.ts +45 -0
- package/src/tools/me/player/get-currently-playing-me-player.ts +48 -0
- package/src/tools/me/player/get-devices-me-player.ts +44 -0
- package/src/tools/me/player/get-state-me-player.ts +49 -0
- package/src/tools/me/player/list-recently-played-me-player.ts +55 -0
- package/src/tools/me/player/pause-playback-me-player.ts +44 -0
- package/src/tools/me/player/queue/add-player-me-queue.ts +47 -0
- package/src/tools/me/player/queue/get-player-me-queue.ts +34 -0
- package/src/tools/me/player/seek-to-position-me-player.ts +50 -0
- package/src/tools/me/player/set-repeat-mode-me-player.ts +50 -0
- package/src/tools/me/player/set-volume-me-player.ts +49 -0
- package/src/tools/me/player/skip-next-me-player.ts +42 -0
- package/src/tools/me/player/skip-previous-me-player.ts +42 -0
- package/src/tools/me/player/start-playback-me-player.ts +68 -0
- package/src/tools/me/player/toggle-shuffle-me-player.ts +50 -0
- package/src/tools/me/player/transfer-me-player.ts +51 -0
- package/src/tools/me/playlists/list-me-playlists.ts +56 -0
- package/src/tools/me/retrieve-me.ts +44 -0
- package/src/tools/me/shows/check-me-shows.ts +50 -0
- package/src/tools/me/shows/list-me-shows.ts +56 -0
- package/src/tools/me/shows/remove-me-shows.ts +45 -0
- package/src/tools/me/shows/save-me-shows.ts +45 -0
- package/src/tools/me/top/list-top-artists-me-top.ts +62 -0
- package/src/tools/me/top/list-top-tracks-me-top.ts +54 -0
- package/src/tools/me/tracks/check-me-tracks.ts +50 -0
- package/src/tools/me/tracks/list-me-tracks.ts +54 -0
- package/src/tools/me/tracks/remove-me-tracks.ts +45 -0
- package/src/tools/me/tracks/save-me-tracks.ts +67 -0
- package/src/tools/playlists/followers/check-playlists-followers.ts +57 -0
- package/src/tools/playlists/followers/follow-playlists-followers.ts +47 -0
- package/src/tools/playlists/followers/unfollow-playlists-followers.ts +42 -0
- package/src/tools/playlists/images/list-playlists-images.ts +49 -0
- package/src/tools/playlists/images/update-playlists-images.ts +46 -0
- package/src/tools/playlists/retrieve-playlists.ts +59 -0
- package/src/tools/playlists/tracks/add-playlists-tracks.ts +62 -0
- package/src/tools/playlists/tracks/list-playlists-tracks.ts +71 -0
- package/src/tools/playlists/tracks/remove-playlists-tracks.ts +70 -0
- package/src/tools/playlists/tracks/update-playlists-tracks.ts +75 -0
- package/src/tools/playlists/update-playlists.ts +61 -0
- package/src/tools/recommendations/get-recommendations.ts +317 -0
- package/src/tools/recommendations/list-available-genre-seeds-recommendations.ts +46 -0
- package/src/tools/search/retrieve-search.ts +77 -0
- package/src/tools/shows/list-episodes-shows.ts +67 -0
- package/src/tools/shows/list-shows.ts +56 -0
- package/src/tools/shows/retrieve-shows.ts +55 -0
- package/src/tools/tracks/list-tracks.ts +48 -0
- package/src/tools/tracks/retrieve-tracks.ts +47 -0
- package/src/tools/types.ts +103 -0
- package/src/tools/users/playlists/create-users-playlists.ts +59 -0
- package/src/tools/users/playlists/list-users-playlists.ts +61 -0
- package/src/tools/users/retrieve-profile-users.ts +49 -0
- package/src/tools.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/stdio.d.mts +3 -0
- package/stdio.d.mts.map +1 -0
- package/stdio.d.ts +3 -0
- package/stdio.d.ts.map +1 -0
- package/stdio.js +14 -0
- package/stdio.js.map +1 -0
- package/stdio.mjs +10 -0
- package/stdio.mjs.map +1 -0
- package/tools/albums/bulk-retrieve-albums.d.mts +45 -0
- package/tools/albums/bulk-retrieve-albums.d.mts.map +1 -0
- package/tools/albums/bulk-retrieve-albums.d.ts +45 -0
- package/tools/albums/bulk-retrieve-albums.d.ts.map +1 -0
- package/tools/albums/bulk-retrieve-albums.js +43 -0
- package/tools/albums/bulk-retrieve-albums.js.map +1 -0
- package/tools/albums/bulk-retrieve-albums.mjs +39 -0
- package/tools/albums/bulk-retrieve-albums.mjs.map +1 -0
- package/tools/albums/list-tracks-albums.d.mts +45 -0
- package/tools/albums/list-tracks-albums.d.mts.map +1 -0
- package/tools/albums/list-tracks-albums.d.ts +45 -0
- package/tools/albums/list-tracks-albums.d.ts.map +1 -0
- package/tools/albums/list-tracks-albums.js +60 -0
- package/tools/albums/list-tracks-albums.js.map +1 -0
- package/tools/albums/list-tracks-albums.mjs +56 -0
- package/tools/albums/list-tracks-albums.mjs.map +1 -0
- package/tools/albums/retrieve-albums.d.mts +45 -0
- package/tools/albums/retrieve-albums.d.mts.map +1 -0
- package/tools/albums/retrieve-albums.d.ts +45 -0
- package/tools/albums/retrieve-albums.d.ts.map +1 -0
- package/tools/albums/retrieve-albums.js +43 -0
- package/tools/albums/retrieve-albums.js.map +1 -0
- package/tools/albums/retrieve-albums.mjs +39 -0
- package/tools/albums/retrieve-albums.mjs.map +1 -0
- package/tools/artists/list-albums-artists.d.mts +45 -0
- package/tools/artists/list-albums-artists.d.mts.map +1 -0
- package/tools/artists/list-albums-artists.d.ts +45 -0
- package/tools/artists/list-albums-artists.d.ts.map +1 -0
- package/tools/artists/list-albums-artists.js +65 -0
- package/tools/artists/list-albums-artists.js.map +1 -0
- package/tools/artists/list-albums-artists.mjs +61 -0
- package/tools/artists/list-albums-artists.mjs.map +1 -0
- package/tools/artists/list-artists.d.mts +45 -0
- package/tools/artists/list-artists.d.mts.map +1 -0
- package/tools/artists/list-artists.d.ts +45 -0
- package/tools/artists/list-artists.d.ts.map +1 -0
- package/tools/artists/list-artists.js +44 -0
- package/tools/artists/list-artists.js.map +1 -0
- package/tools/artists/list-artists.mjs +40 -0
- package/tools/artists/list-artists.mjs.map +1 -0
- package/tools/artists/list-related-artists-artists.d.mts +45 -0
- package/tools/artists/list-related-artists-artists.d.mts.map +1 -0
- package/tools/artists/list-related-artists-artists.d.ts +45 -0
- package/tools/artists/list-related-artists-artists.d.ts.map +1 -0
- package/tools/artists/list-related-artists-artists.js +44 -0
- package/tools/artists/list-related-artists-artists.js.map +1 -0
- package/tools/artists/list-related-artists-artists.mjs +40 -0
- package/tools/artists/list-related-artists-artists.mjs.map +1 -0
- package/tools/artists/list-top-tracks-artists.d.mts +45 -0
- package/tools/artists/list-top-tracks-artists.d.mts.map +1 -0
- package/tools/artists/list-top-tracks-artists.d.ts +45 -0
- package/tools/artists/list-top-tracks-artists.d.ts.map +1 -0
- package/tools/artists/list-top-tracks-artists.js +43 -0
- package/tools/artists/list-top-tracks-artists.js.map +1 -0
- package/tools/artists/list-top-tracks-artists.mjs +39 -0
- package/tools/artists/list-top-tracks-artists.mjs.map +1 -0
- package/tools/artists/retrieve-artists.d.mts +45 -0
- package/tools/artists/retrieve-artists.d.mts.map +1 -0
- package/tools/artists/retrieve-artists.d.ts +45 -0
- package/tools/artists/retrieve-artists.d.ts.map +1 -0
- package/tools/artists/retrieve-artists.js +44 -0
- package/tools/artists/retrieve-artists.js.map +1 -0
- package/tools/artists/retrieve-artists.mjs +40 -0
- package/tools/artists/retrieve-artists.mjs.map +1 -0
- package/tools/audio-analysis/retrieve-audio-analysis.d.mts +45 -0
- package/tools/audio-analysis/retrieve-audio-analysis.d.mts.map +1 -0
- package/tools/audio-analysis/retrieve-audio-analysis.d.ts +45 -0
- package/tools/audio-analysis/retrieve-audio-analysis.d.ts.map +1 -0
- package/tools/audio-analysis/retrieve-audio-analysis.js +38 -0
- package/tools/audio-analysis/retrieve-audio-analysis.js.map +1 -0
- package/tools/audio-analysis/retrieve-audio-analysis.mjs +34 -0
- package/tools/audio-analysis/retrieve-audio-analysis.mjs.map +1 -0
- package/tools/audio-features/list-audio-features.d.mts +45 -0
- package/tools/audio-features/list-audio-features.d.mts.map +1 -0
- package/tools/audio-features/list-audio-features.d.ts +45 -0
- package/tools/audio-features/list-audio-features.d.ts.map +1 -0
- package/tools/audio-features/list-audio-features.js +44 -0
- package/tools/audio-features/list-audio-features.js.map +1 -0
- package/tools/audio-features/list-audio-features.mjs +40 -0
- package/tools/audio-features/list-audio-features.mjs.map +1 -0
- package/tools/audio-features/retrieve-audio-features.d.mts +45 -0
- package/tools/audio-features/retrieve-audio-features.d.mts.map +1 -0
- package/tools/audio-features/retrieve-audio-features.d.ts +45 -0
- package/tools/audio-features/retrieve-audio-features.d.ts.map +1 -0
- package/tools/audio-features/retrieve-audio-features.js +44 -0
- package/tools/audio-features/retrieve-audio-features.js.map +1 -0
- package/tools/audio-features/retrieve-audio-features.mjs +40 -0
- package/tools/audio-features/retrieve-audio-features.mjs.map +1 -0
- package/tools/audiobooks/list-audiobooks.d.mts +45 -0
- package/tools/audiobooks/list-audiobooks.d.mts.map +1 -0
- package/tools/audiobooks/list-audiobooks.d.ts +45 -0
- package/tools/audiobooks/list-audiobooks.d.ts.map +1 -0
- package/tools/audiobooks/list-audiobooks.js +49 -0
- package/tools/audiobooks/list-audiobooks.js.map +1 -0
- package/tools/audiobooks/list-audiobooks.mjs +45 -0
- package/tools/audiobooks/list-audiobooks.mjs.map +1 -0
- package/tools/audiobooks/list-chapters-audiobooks.d.mts +45 -0
- package/tools/audiobooks/list-chapters-audiobooks.d.mts.map +1 -0
- package/tools/audiobooks/list-chapters-audiobooks.d.ts +45 -0
- package/tools/audiobooks/list-chapters-audiobooks.d.ts.map +1 -0
- package/tools/audiobooks/list-chapters-audiobooks.js +60 -0
- package/tools/audiobooks/list-chapters-audiobooks.js.map +1 -0
- package/tools/audiobooks/list-chapters-audiobooks.mjs +56 -0
- package/tools/audiobooks/list-chapters-audiobooks.mjs.map +1 -0
- package/tools/audiobooks/retrieve-audiobooks.d.mts +45 -0
- package/tools/audiobooks/retrieve-audiobooks.d.mts.map +1 -0
- package/tools/audiobooks/retrieve-audiobooks.d.ts +45 -0
- package/tools/audiobooks/retrieve-audiobooks.d.ts.map +1 -0
- package/tools/audiobooks/retrieve-audiobooks.js +49 -0
- package/tools/audiobooks/retrieve-audiobooks.js.map +1 -0
- package/tools/audiobooks/retrieve-audiobooks.mjs +45 -0
- package/tools/audiobooks/retrieve-audiobooks.mjs.map +1 -0
- package/tools/browse/categories/get-playlists-browse-categories.d.mts +45 -0
- package/tools/browse/categories/get-playlists-browse-categories.d.mts.map +1 -0
- package/tools/browse/categories/get-playlists-browse-categories.d.ts +45 -0
- package/tools/browse/categories/get-playlists-browse-categories.d.ts.map +1 -0
- package/tools/browse/categories/get-playlists-browse-categories.js +54 -0
- package/tools/browse/categories/get-playlists-browse-categories.js.map +1 -0
- package/tools/browse/categories/get-playlists-browse-categories.mjs +50 -0
- package/tools/browse/categories/get-playlists-browse-categories.mjs.map +1 -0
- package/tools/browse/categories/list-browse-categories.d.mts +45 -0
- package/tools/browse/categories/list-browse-categories.d.mts.map +1 -0
- package/tools/browse/categories/list-browse-categories.d.ts +45 -0
- package/tools/browse/categories/list-browse-categories.d.ts.map +1 -0
- package/tools/browse/categories/list-browse-categories.js +54 -0
- package/tools/browse/categories/list-browse-categories.js.map +1 -0
- package/tools/browse/categories/list-browse-categories.mjs +50 -0
- package/tools/browse/categories/list-browse-categories.mjs.map +1 -0
- package/tools/browse/categories/retrieve-browse-categories.d.mts +45 -0
- package/tools/browse/categories/retrieve-browse-categories.d.mts.map +1 -0
- package/tools/browse/categories/retrieve-browse-categories.d.ts +45 -0
- package/tools/browse/categories/retrieve-browse-categories.d.ts.map +1 -0
- package/tools/browse/categories/retrieve-browse-categories.js +49 -0
- package/tools/browse/categories/retrieve-browse-categories.js.map +1 -0
- package/tools/browse/categories/retrieve-browse-categories.mjs +45 -0
- package/tools/browse/categories/retrieve-browse-categories.mjs.map +1 -0
- package/tools/browse/get-featured-playlists-browse.d.mts +45 -0
- package/tools/browse/get-featured-playlists-browse.d.mts.map +1 -0
- package/tools/browse/get-featured-playlists-browse.d.ts +45 -0
- package/tools/browse/get-featured-playlists-browse.d.ts.map +1 -0
- package/tools/browse/get-featured-playlists-browse.js +54 -0
- package/tools/browse/get-featured-playlists-browse.js.map +1 -0
- package/tools/browse/get-featured-playlists-browse.mjs +50 -0
- package/tools/browse/get-featured-playlists-browse.mjs.map +1 -0
- package/tools/browse/get-new-releases-browse.d.mts +45 -0
- package/tools/browse/get-new-releases-browse.d.mts.map +1 -0
- package/tools/browse/get-new-releases-browse.d.ts +45 -0
- package/tools/browse/get-new-releases-browse.d.ts.map +1 -0
- package/tools/browse/get-new-releases-browse.js +49 -0
- package/tools/browse/get-new-releases-browse.js.map +1 -0
- package/tools/browse/get-new-releases-browse.mjs +45 -0
- package/tools/browse/get-new-releases-browse.mjs.map +1 -0
- package/tools/chapters/list-chapters.d.mts +45 -0
- package/tools/chapters/list-chapters.d.mts.map +1 -0
- package/tools/chapters/list-chapters.d.ts +45 -0
- package/tools/chapters/list-chapters.d.ts.map +1 -0
- package/tools/chapters/list-chapters.js +43 -0
- package/tools/chapters/list-chapters.js.map +1 -0
- package/tools/chapters/list-chapters.mjs +39 -0
- package/tools/chapters/list-chapters.mjs.map +1 -0
- package/tools/chapters/retrieve-chapters.d.mts +45 -0
- package/tools/chapters/retrieve-chapters.d.mts.map +1 -0
- package/tools/chapters/retrieve-chapters.d.ts +45 -0
- package/tools/chapters/retrieve-chapters.d.ts.map +1 -0
- package/tools/chapters/retrieve-chapters.js +43 -0
- package/tools/chapters/retrieve-chapters.js.map +1 -0
- package/tools/chapters/retrieve-chapters.mjs +39 -0
- package/tools/chapters/retrieve-chapters.mjs.map +1 -0
- package/tools/episodes/list-episodes.d.mts +45 -0
- package/tools/episodes/list-episodes.d.mts.map +1 -0
- package/tools/episodes/list-episodes.d.ts +45 -0
- package/tools/episodes/list-episodes.d.ts.map +1 -0
- package/tools/episodes/list-episodes.js +43 -0
- package/tools/episodes/list-episodes.js.map +1 -0
- package/tools/episodes/list-episodes.mjs +39 -0
- package/tools/episodes/list-episodes.mjs.map +1 -0
- package/tools/episodes/retrieve-episodes.d.mts +45 -0
- package/tools/episodes/retrieve-episodes.d.mts.map +1 -0
- package/tools/episodes/retrieve-episodes.d.ts +45 -0
- package/tools/episodes/retrieve-episodes.d.ts.map +1 -0
- package/tools/episodes/retrieve-episodes.js +43 -0
- package/tools/episodes/retrieve-episodes.js.map +1 -0
- package/tools/episodes/retrieve-episodes.mjs +39 -0
- package/tools/episodes/retrieve-episodes.mjs.map +1 -0
- package/tools/index.d.mts +10 -0
- package/tools/index.d.mts.map +1 -0
- package/tools/index.d.ts +10 -0
- package/tools/index.d.ts.map +1 -0
- package/tools/index.js +231 -0
- package/tools/index.js.map +1 -0
- package/tools/index.mjs +224 -0
- package/tools/index.mjs.map +1 -0
- package/tools/markets/list-markets.d.mts +45 -0
- package/tools/markets/list-markets.d.mts.map +1 -0
- package/tools/markets/list-markets.d.ts +45 -0
- package/tools/markets/list-markets.d.ts.map +1 -0
- package/tools/markets/list-markets.js +39 -0
- package/tools/markets/list-markets.js.map +1 -0
- package/tools/markets/list-markets.mjs +35 -0
- package/tools/markets/list-markets.mjs.map +1 -0
- package/tools/me/albums/check-me-albums.d.mts +45 -0
- package/tools/me/albums/check-me-albums.d.mts.map +1 -0
- package/tools/me/albums/check-me-albums.d.ts +45 -0
- package/tools/me/albums/check-me-albums.d.ts.map +1 -0
- package/tools/me/albums/check-me-albums.js +44 -0
- package/tools/me/albums/check-me-albums.js.map +1 -0
- package/tools/me/albums/check-me-albums.mjs +40 -0
- package/tools/me/albums/check-me-albums.mjs.map +1 -0
- package/tools/me/albums/list-me-albums.d.mts +45 -0
- package/tools/me/albums/list-me-albums.d.mts.map +1 -0
- package/tools/me/albums/list-me-albums.d.ts +45 -0
- package/tools/me/albums/list-me-albums.d.ts.map +1 -0
- package/tools/me/albums/list-me-albums.js +49 -0
- package/tools/me/albums/list-me-albums.js.map +1 -0
- package/tools/me/albums/list-me-albums.mjs +45 -0
- package/tools/me/albums/list-me-albums.mjs.map +1 -0
- package/tools/me/albums/remove-me-albums.d.mts +45 -0
- package/tools/me/albums/remove-me-albums.d.mts.map +1 -0
- package/tools/me/albums/remove-me-albums.d.ts +45 -0
- package/tools/me/albums/remove-me-albums.d.ts.map +1 -0
- package/tools/me/albums/remove-me-albums.js +41 -0
- package/tools/me/albums/remove-me-albums.js.map +1 -0
- package/tools/me/albums/remove-me-albums.mjs +37 -0
- package/tools/me/albums/remove-me-albums.mjs.map +1 -0
- package/tools/me/albums/save-me-albums.d.mts +45 -0
- package/tools/me/albums/save-me-albums.d.mts.map +1 -0
- package/tools/me/albums/save-me-albums.d.ts +45 -0
- package/tools/me/albums/save-me-albums.d.ts.map +1 -0
- package/tools/me/albums/save-me-albums.js +41 -0
- package/tools/me/albums/save-me-albums.js.map +1 -0
- package/tools/me/albums/save-me-albums.mjs +37 -0
- package/tools/me/albums/save-me-albums.mjs.map +1 -0
- package/tools/me/audiobooks/check-me-audiobooks.d.mts +45 -0
- package/tools/me/audiobooks/check-me-audiobooks.d.mts.map +1 -0
- package/tools/me/audiobooks/check-me-audiobooks.d.ts +45 -0
- package/tools/me/audiobooks/check-me-audiobooks.d.ts.map +1 -0
- package/tools/me/audiobooks/check-me-audiobooks.js +44 -0
- package/tools/me/audiobooks/check-me-audiobooks.js.map +1 -0
- package/tools/me/audiobooks/check-me-audiobooks.mjs +40 -0
- package/tools/me/audiobooks/check-me-audiobooks.mjs.map +1 -0
- package/tools/me/audiobooks/list-me-audiobooks.d.mts +45 -0
- package/tools/me/audiobooks/list-me-audiobooks.d.mts.map +1 -0
- package/tools/me/audiobooks/list-me-audiobooks.d.ts +45 -0
- package/tools/me/audiobooks/list-me-audiobooks.d.ts.map +1 -0
- package/tools/me/audiobooks/list-me-audiobooks.js +50 -0
- package/tools/me/audiobooks/list-me-audiobooks.js.map +1 -0
- package/tools/me/audiobooks/list-me-audiobooks.mjs +46 -0
- package/tools/me/audiobooks/list-me-audiobooks.mjs.map +1 -0
- package/tools/me/audiobooks/remove-me-audiobooks.d.mts +45 -0
- package/tools/me/audiobooks/remove-me-audiobooks.d.mts.map +1 -0
- package/tools/me/audiobooks/remove-me-audiobooks.d.ts +45 -0
- package/tools/me/audiobooks/remove-me-audiobooks.d.ts.map +1 -0
- package/tools/me/audiobooks/remove-me-audiobooks.js +39 -0
- package/tools/me/audiobooks/remove-me-audiobooks.js.map +1 -0
- package/tools/me/audiobooks/remove-me-audiobooks.mjs +35 -0
- package/tools/me/audiobooks/remove-me-audiobooks.mjs.map +1 -0
- package/tools/me/audiobooks/save-me-audiobooks.d.mts +45 -0
- package/tools/me/audiobooks/save-me-audiobooks.d.mts.map +1 -0
- package/tools/me/audiobooks/save-me-audiobooks.d.ts +45 -0
- package/tools/me/audiobooks/save-me-audiobooks.d.ts.map +1 -0
- package/tools/me/audiobooks/save-me-audiobooks.js +39 -0
- package/tools/me/audiobooks/save-me-audiobooks.js.map +1 -0
- package/tools/me/audiobooks/save-me-audiobooks.mjs +35 -0
- package/tools/me/audiobooks/save-me-audiobooks.mjs.map +1 -0
- package/tools/me/episodes/check-me-episodes.d.mts +45 -0
- package/tools/me/episodes/check-me-episodes.d.mts.map +1 -0
- package/tools/me/episodes/check-me-episodes.d.ts +45 -0
- package/tools/me/episodes/check-me-episodes.d.ts.map +1 -0
- package/tools/me/episodes/check-me-episodes.js +44 -0
- package/tools/me/episodes/check-me-episodes.js.map +1 -0
- package/tools/me/episodes/check-me-episodes.mjs +40 -0
- package/tools/me/episodes/check-me-episodes.mjs.map +1 -0
- package/tools/me/episodes/list-me-episodes.d.mts +45 -0
- package/tools/me/episodes/list-me-episodes.d.mts.map +1 -0
- package/tools/me/episodes/list-me-episodes.d.ts +45 -0
- package/tools/me/episodes/list-me-episodes.d.ts.map +1 -0
- package/tools/me/episodes/list-me-episodes.js +49 -0
- package/tools/me/episodes/list-me-episodes.js.map +1 -0
- package/tools/me/episodes/list-me-episodes.mjs +45 -0
- package/tools/me/episodes/list-me-episodes.mjs.map +1 -0
- package/tools/me/episodes/remove-me-episodes.d.mts +45 -0
- package/tools/me/episodes/remove-me-episodes.d.mts.map +1 -0
- package/tools/me/episodes/remove-me-episodes.d.ts +45 -0
- package/tools/me/episodes/remove-me-episodes.d.ts.map +1 -0
- package/tools/me/episodes/remove-me-episodes.js +41 -0
- package/tools/me/episodes/remove-me-episodes.js.map +1 -0
- package/tools/me/episodes/remove-me-episodes.mjs +37 -0
- package/tools/me/episodes/remove-me-episodes.mjs.map +1 -0
- package/tools/me/episodes/save-me-episodes.d.mts +45 -0
- package/tools/me/episodes/save-me-episodes.d.mts.map +1 -0
- package/tools/me/episodes/save-me-episodes.d.ts +45 -0
- package/tools/me/episodes/save-me-episodes.d.ts.map +1 -0
- package/tools/me/episodes/save-me-episodes.js +41 -0
- package/tools/me/episodes/save-me-episodes.js.map +1 -0
- package/tools/me/episodes/save-me-episodes.mjs +37 -0
- package/tools/me/episodes/save-me-episodes.mjs.map +1 -0
- package/tools/me/following/check-me-following.d.mts +45 -0
- package/tools/me/following/check-me-following.d.mts.map +1 -0
- package/tools/me/following/check-me-following.d.ts +45 -0
- package/tools/me/following/check-me-following.d.ts.map +1 -0
- package/tools/me/following/check-me-following.js +50 -0
- package/tools/me/following/check-me-following.js.map +1 -0
- package/tools/me/following/check-me-following.mjs +46 -0
- package/tools/me/following/check-me-following.mjs.map +1 -0
- package/tools/me/following/follow-me-following.d.mts +45 -0
- package/tools/me/following/follow-me-following.d.mts.map +1 -0
- package/tools/me/following/follow-me-following.d.ts +45 -0
- package/tools/me/following/follow-me-following.d.ts.map +1 -0
- package/tools/me/following/follow-me-following.js +41 -0
- package/tools/me/following/follow-me-following.js.map +1 -0
- package/tools/me/following/follow-me-following.mjs +37 -0
- package/tools/me/following/follow-me-following.mjs.map +1 -0
- package/tools/me/following/list-me-following.d.mts +45 -0
- package/tools/me/following/list-me-following.d.mts.map +1 -0
- package/tools/me/following/list-me-following.d.ts +45 -0
- package/tools/me/following/list-me-following.d.ts.map +1 -0
- package/tools/me/following/list-me-following.js +55 -0
- package/tools/me/following/list-me-following.js.map +1 -0
- package/tools/me/following/list-me-following.mjs +51 -0
- package/tools/me/following/list-me-following.mjs.map +1 -0
- package/tools/me/following/unfollow-me-following.d.mts +45 -0
- package/tools/me/following/unfollow-me-following.d.mts.map +1 -0
- package/tools/me/following/unfollow-me-following.d.ts +45 -0
- package/tools/me/following/unfollow-me-following.d.ts.map +1 -0
- package/tools/me/following/unfollow-me-following.js +41 -0
- package/tools/me/following/unfollow-me-following.js.map +1 -0
- package/tools/me/following/unfollow-me-following.mjs +37 -0
- package/tools/me/following/unfollow-me-following.mjs.map +1 -0
- package/tools/me/player/get-currently-playing-me-player.d.mts +45 -0
- package/tools/me/player/get-currently-playing-me-player.d.mts.map +1 -0
- package/tools/me/player/get-currently-playing-me-player.d.ts +45 -0
- package/tools/me/player/get-currently-playing-me-player.d.ts.map +1 -0
- package/tools/me/player/get-currently-playing-me-player.js +43 -0
- package/tools/me/player/get-currently-playing-me-player.js.map +1 -0
- package/tools/me/player/get-currently-playing-me-player.mjs +39 -0
- package/tools/me/player/get-currently-playing-me-player.mjs.map +1 -0
- package/tools/me/player/get-devices-me-player.d.mts +45 -0
- package/tools/me/player/get-devices-me-player.d.mts.map +1 -0
- package/tools/me/player/get-devices-me-player.d.ts +45 -0
- package/tools/me/player/get-devices-me-player.d.ts.map +1 -0
- package/tools/me/player/get-devices-me-player.js +39 -0
- package/tools/me/player/get-devices-me-player.js.map +1 -0
- package/tools/me/player/get-devices-me-player.mjs +35 -0
- package/tools/me/player/get-devices-me-player.mjs.map +1 -0
- package/tools/me/player/get-state-me-player.d.mts +45 -0
- package/tools/me/player/get-state-me-player.d.mts.map +1 -0
- package/tools/me/player/get-state-me-player.d.ts +45 -0
- package/tools/me/player/get-state-me-player.d.ts.map +1 -0
- package/tools/me/player/get-state-me-player.js +43 -0
- package/tools/me/player/get-state-me-player.js.map +1 -0
- package/tools/me/player/get-state-me-player.mjs +39 -0
- package/tools/me/player/get-state-me-player.mjs.map +1 -0
- package/tools/me/player/list-recently-played-me-player.d.mts +45 -0
- package/tools/me/player/list-recently-played-me-player.d.mts.map +1 -0
- package/tools/me/player/list-recently-played-me-player.d.ts +45 -0
- package/tools/me/player/list-recently-played-me-player.d.ts.map +1 -0
- package/tools/me/player/list-recently-played-me-player.js +49 -0
- package/tools/me/player/list-recently-played-me-player.js.map +1 -0
- package/tools/me/player/list-recently-played-me-player.mjs +45 -0
- package/tools/me/player/list-recently-played-me-player.mjs.map +1 -0
- package/tools/me/player/pause-playback-me-player.d.mts +45 -0
- package/tools/me/player/pause-playback-me-player.d.mts.map +1 -0
- package/tools/me/player/pause-playback-me-player.d.ts +45 -0
- package/tools/me/player/pause-playback-me-player.d.ts.map +1 -0
- package/tools/me/player/pause-playback-me-player.js +39 -0
- package/tools/me/player/pause-playback-me-player.js.map +1 -0
- package/tools/me/player/pause-playback-me-player.mjs +35 -0
- package/tools/me/player/pause-playback-me-player.mjs.map +1 -0
- package/tools/me/player/queue/add-player-me-queue.d.mts +45 -0
- package/tools/me/player/queue/add-player-me-queue.d.mts.map +1 -0
- package/tools/me/player/queue/add-player-me-queue.d.ts +45 -0
- package/tools/me/player/queue/add-player-me-queue.d.ts.map +1 -0
- package/tools/me/player/queue/add-player-me-queue.js +42 -0
- package/tools/me/player/queue/add-player-me-queue.js.map +1 -0
- package/tools/me/player/queue/add-player-me-queue.mjs +38 -0
- package/tools/me/player/queue/add-player-me-queue.mjs.map +1 -0
- package/tools/me/player/queue/get-player-me-queue.d.mts +45 -0
- package/tools/me/player/queue/get-player-me-queue.d.mts.map +1 -0
- package/tools/me/player/queue/get-player-me-queue.d.ts +45 -0
- package/tools/me/player/queue/get-player-me-queue.d.ts.map +1 -0
- package/tools/me/player/queue/get-player-me-queue.js +31 -0
- package/tools/me/player/queue/get-player-me-queue.js.map +1 -0
- package/tools/me/player/queue/get-player-me-queue.mjs +27 -0
- package/tools/me/player/queue/get-player-me-queue.mjs.map +1 -0
- package/tools/me/player/seek-to-position-me-player.d.mts +45 -0
- package/tools/me/player/seek-to-position-me-player.d.mts.map +1 -0
- package/tools/me/player/seek-to-position-me-player.d.ts +45 -0
- package/tools/me/player/seek-to-position-me-player.d.ts.map +1 -0
- package/tools/me/player/seek-to-position-me-player.js +44 -0
- package/tools/me/player/seek-to-position-me-player.js.map +1 -0
- package/tools/me/player/seek-to-position-me-player.mjs +40 -0
- package/tools/me/player/seek-to-position-me-player.mjs.map +1 -0
- package/tools/me/player/set-repeat-mode-me-player.d.mts +45 -0
- package/tools/me/player/set-repeat-mode-me-player.d.mts.map +1 -0
- package/tools/me/player/set-repeat-mode-me-player.d.ts +45 -0
- package/tools/me/player/set-repeat-mode-me-player.d.ts.map +1 -0
- package/tools/me/player/set-repeat-mode-me-player.js +44 -0
- package/tools/me/player/set-repeat-mode-me-player.js.map +1 -0
- package/tools/me/player/set-repeat-mode-me-player.mjs +40 -0
- package/tools/me/player/set-repeat-mode-me-player.mjs.map +1 -0
- package/tools/me/player/set-volume-me-player.d.mts +45 -0
- package/tools/me/player/set-volume-me-player.d.mts.map +1 -0
- package/tools/me/player/set-volume-me-player.d.ts +45 -0
- package/tools/me/player/set-volume-me-player.d.ts.map +1 -0
- package/tools/me/player/set-volume-me-player.js +44 -0
- package/tools/me/player/set-volume-me-player.js.map +1 -0
- package/tools/me/player/set-volume-me-player.mjs +40 -0
- package/tools/me/player/set-volume-me-player.mjs.map +1 -0
- package/tools/me/player/skip-next-me-player.d.mts +45 -0
- package/tools/me/player/skip-next-me-player.d.mts.map +1 -0
- package/tools/me/player/skip-next-me-player.d.ts +45 -0
- package/tools/me/player/skip-next-me-player.d.ts.map +1 -0
- package/tools/me/player/skip-next-me-player.js +37 -0
- package/tools/me/player/skip-next-me-player.js.map +1 -0
- package/tools/me/player/skip-next-me-player.mjs +33 -0
- package/tools/me/player/skip-next-me-player.mjs.map +1 -0
- package/tools/me/player/skip-previous-me-player.d.mts +45 -0
- package/tools/me/player/skip-previous-me-player.d.mts.map +1 -0
- package/tools/me/player/skip-previous-me-player.d.ts +45 -0
- package/tools/me/player/skip-previous-me-player.d.ts.map +1 -0
- package/tools/me/player/skip-previous-me-player.js +37 -0
- package/tools/me/player/skip-previous-me-player.js.map +1 -0
- package/tools/me/player/skip-previous-me-player.mjs +33 -0
- package/tools/me/player/skip-previous-me-player.mjs.map +1 -0
- package/tools/me/player/start-playback-me-player.d.mts +45 -0
- package/tools/me/player/start-playback-me-player.d.mts.map +1 -0
- package/tools/me/player/start-playback-me-player.d.ts +45 -0
- package/tools/me/player/start-playback-me-player.d.ts.map +1 -0
- package/tools/me/player/start-playback-me-player.js +59 -0
- package/tools/me/player/start-playback-me-player.js.map +1 -0
- package/tools/me/player/start-playback-me-player.mjs +55 -0
- package/tools/me/player/start-playback-me-player.mjs.map +1 -0
- package/tools/me/player/toggle-shuffle-me-player.d.mts +45 -0
- package/tools/me/player/toggle-shuffle-me-player.d.mts.map +1 -0
- package/tools/me/player/toggle-shuffle-me-player.d.ts +45 -0
- package/tools/me/player/toggle-shuffle-me-player.d.ts.map +1 -0
- package/tools/me/player/toggle-shuffle-me-player.js +44 -0
- package/tools/me/player/toggle-shuffle-me-player.js.map +1 -0
- package/tools/me/player/toggle-shuffle-me-player.mjs +40 -0
- package/tools/me/player/toggle-shuffle-me-player.mjs.map +1 -0
- package/tools/me/player/transfer-me-player.d.mts +45 -0
- package/tools/me/player/transfer-me-player.d.mts.map +1 -0
- package/tools/me/player/transfer-me-player.d.ts +45 -0
- package/tools/me/player/transfer-me-player.d.ts.map +1 -0
- package/tools/me/player/transfer-me-player.js +45 -0
- package/tools/me/player/transfer-me-player.js.map +1 -0
- package/tools/me/player/transfer-me-player.mjs +41 -0
- package/tools/me/player/transfer-me-player.mjs.map +1 -0
- package/tools/me/playlists/list-me-playlists.d.mts +45 -0
- package/tools/me/playlists/list-me-playlists.d.mts.map +1 -0
- package/tools/me/playlists/list-me-playlists.d.ts +45 -0
- package/tools/me/playlists/list-me-playlists.d.ts.map +1 -0
- package/tools/me/playlists/list-me-playlists.js +50 -0
- package/tools/me/playlists/list-me-playlists.js.map +1 -0
- package/tools/me/playlists/list-me-playlists.mjs +46 -0
- package/tools/me/playlists/list-me-playlists.mjs.map +1 -0
- package/tools/me/retrieve-me.d.mts +45 -0
- package/tools/me/retrieve-me.d.mts.map +1 -0
- package/tools/me/retrieve-me.d.ts +45 -0
- package/tools/me/retrieve-me.d.ts.map +1 -0
- package/tools/me/retrieve-me.js +39 -0
- package/tools/me/retrieve-me.js.map +1 -0
- package/tools/me/retrieve-me.mjs +35 -0
- package/tools/me/retrieve-me.mjs.map +1 -0
- package/tools/me/shows/check-me-shows.d.mts +45 -0
- package/tools/me/shows/check-me-shows.d.mts.map +1 -0
- package/tools/me/shows/check-me-shows.d.ts +45 -0
- package/tools/me/shows/check-me-shows.d.ts.map +1 -0
- package/tools/me/shows/check-me-shows.js +44 -0
- package/tools/me/shows/check-me-shows.js.map +1 -0
- package/tools/me/shows/check-me-shows.mjs +40 -0
- package/tools/me/shows/check-me-shows.mjs.map +1 -0
- package/tools/me/shows/list-me-shows.d.mts +45 -0
- package/tools/me/shows/list-me-shows.d.mts.map +1 -0
- package/tools/me/shows/list-me-shows.d.ts +45 -0
- package/tools/me/shows/list-me-shows.d.ts.map +1 -0
- package/tools/me/shows/list-me-shows.js +50 -0
- package/tools/me/shows/list-me-shows.js.map +1 -0
- package/tools/me/shows/list-me-shows.mjs +46 -0
- package/tools/me/shows/list-me-shows.mjs.map +1 -0
- package/tools/me/shows/remove-me-shows.d.mts +45 -0
- package/tools/me/shows/remove-me-shows.d.mts.map +1 -0
- package/tools/me/shows/remove-me-shows.d.ts +45 -0
- package/tools/me/shows/remove-me-shows.d.ts.map +1 -0
- package/tools/me/shows/remove-me-shows.js +41 -0
- package/tools/me/shows/remove-me-shows.js.map +1 -0
- package/tools/me/shows/remove-me-shows.mjs +37 -0
- package/tools/me/shows/remove-me-shows.mjs.map +1 -0
- package/tools/me/shows/save-me-shows.d.mts +45 -0
- package/tools/me/shows/save-me-shows.d.mts.map +1 -0
- package/tools/me/shows/save-me-shows.d.ts +45 -0
- package/tools/me/shows/save-me-shows.d.ts.map +1 -0
- package/tools/me/shows/save-me-shows.js +41 -0
- package/tools/me/shows/save-me-shows.js.map +1 -0
- package/tools/me/shows/save-me-shows.mjs +37 -0
- package/tools/me/shows/save-me-shows.mjs.map +1 -0
- package/tools/me/top/list-top-artists-me-top.d.mts +45 -0
- package/tools/me/top/list-top-artists-me-top.d.mts.map +1 -0
- package/tools/me/top/list-top-artists-me-top.d.ts +45 -0
- package/tools/me/top/list-top-artists-me-top.d.ts.map +1 -0
- package/tools/me/top/list-top-artists-me-top.js +55 -0
- package/tools/me/top/list-top-artists-me-top.js.map +1 -0
- package/tools/me/top/list-top-artists-me-top.mjs +51 -0
- package/tools/me/top/list-top-artists-me-top.mjs.map +1 -0
- package/tools/me/top/list-top-tracks-me-top.d.mts +45 -0
- package/tools/me/top/list-top-tracks-me-top.d.mts.map +1 -0
- package/tools/me/top/list-top-tracks-me-top.d.ts +45 -0
- package/tools/me/top/list-top-tracks-me-top.d.ts.map +1 -0
- package/tools/me/top/list-top-tracks-me-top.js +49 -0
- package/tools/me/top/list-top-tracks-me-top.js.map +1 -0
- package/tools/me/top/list-top-tracks-me-top.mjs +45 -0
- package/tools/me/top/list-top-tracks-me-top.mjs.map +1 -0
- package/tools/me/tracks/check-me-tracks.d.mts +45 -0
- package/tools/me/tracks/check-me-tracks.d.mts.map +1 -0
- package/tools/me/tracks/check-me-tracks.d.ts +45 -0
- package/tools/me/tracks/check-me-tracks.d.ts.map +1 -0
- package/tools/me/tracks/check-me-tracks.js +44 -0
- package/tools/me/tracks/check-me-tracks.js.map +1 -0
- package/tools/me/tracks/check-me-tracks.mjs +40 -0
- package/tools/me/tracks/check-me-tracks.mjs.map +1 -0
- package/tools/me/tracks/list-me-tracks.d.mts +45 -0
- package/tools/me/tracks/list-me-tracks.d.mts.map +1 -0
- package/tools/me/tracks/list-me-tracks.d.ts +45 -0
- package/tools/me/tracks/list-me-tracks.d.ts.map +1 -0
- package/tools/me/tracks/list-me-tracks.js +49 -0
- package/tools/me/tracks/list-me-tracks.js.map +1 -0
- package/tools/me/tracks/list-me-tracks.mjs +45 -0
- package/tools/me/tracks/list-me-tracks.mjs.map +1 -0
- package/tools/me/tracks/remove-me-tracks.d.mts +45 -0
- package/tools/me/tracks/remove-me-tracks.d.mts.map +1 -0
- package/tools/me/tracks/remove-me-tracks.d.ts +45 -0
- package/tools/me/tracks/remove-me-tracks.d.ts.map +1 -0
- package/tools/me/tracks/remove-me-tracks.js +41 -0
- package/tools/me/tracks/remove-me-tracks.js.map +1 -0
- package/tools/me/tracks/remove-me-tracks.mjs +37 -0
- package/tools/me/tracks/remove-me-tracks.mjs.map +1 -0
- package/tools/me/tracks/save-me-tracks.d.mts +45 -0
- package/tools/me/tracks/save-me-tracks.d.mts.map +1 -0
- package/tools/me/tracks/save-me-tracks.d.ts +45 -0
- package/tools/me/tracks/save-me-tracks.d.ts.map +1 -0
- package/tools/me/tracks/save-me-tracks.js +60 -0
- package/tools/me/tracks/save-me-tracks.js.map +1 -0
- package/tools/me/tracks/save-me-tracks.mjs +56 -0
- package/tools/me/tracks/save-me-tracks.mjs.map +1 -0
- package/tools/playlists/followers/check-playlists-followers.d.mts +45 -0
- package/tools/playlists/followers/check-playlists-followers.d.mts.map +1 -0
- package/tools/playlists/followers/check-playlists-followers.d.ts +45 -0
- package/tools/playlists/followers/check-playlists-followers.d.ts.map +1 -0
- package/tools/playlists/followers/check-playlists-followers.js +49 -0
- package/tools/playlists/followers/check-playlists-followers.js.map +1 -0
- package/tools/playlists/followers/check-playlists-followers.mjs +45 -0
- package/tools/playlists/followers/check-playlists-followers.mjs.map +1 -0
- package/tools/playlists/followers/follow-playlists-followers.d.mts +45 -0
- package/tools/playlists/followers/follow-playlists-followers.d.mts.map +1 -0
- package/tools/playlists/followers/follow-playlists-followers.d.ts +45 -0
- package/tools/playlists/followers/follow-playlists-followers.d.ts.map +1 -0
- package/tools/playlists/followers/follow-playlists-followers.js +43 -0
- package/tools/playlists/followers/follow-playlists-followers.js.map +1 -0
- package/tools/playlists/followers/follow-playlists-followers.mjs +39 -0
- package/tools/playlists/followers/follow-playlists-followers.mjs.map +1 -0
- package/tools/playlists/followers/unfollow-playlists-followers.d.mts +45 -0
- package/tools/playlists/followers/unfollow-playlists-followers.d.mts.map +1 -0
- package/tools/playlists/followers/unfollow-playlists-followers.d.ts +45 -0
- package/tools/playlists/followers/unfollow-playlists-followers.d.ts.map +1 -0
- package/tools/playlists/followers/unfollow-playlists-followers.js +39 -0
- package/tools/playlists/followers/unfollow-playlists-followers.js.map +1 -0
- package/tools/playlists/followers/unfollow-playlists-followers.mjs +35 -0
- package/tools/playlists/followers/unfollow-playlists-followers.mjs.map +1 -0
- package/tools/playlists/images/list-playlists-images.d.mts +45 -0
- package/tools/playlists/images/list-playlists-images.d.mts.map +1 -0
- package/tools/playlists/images/list-playlists-images.d.ts +45 -0
- package/tools/playlists/images/list-playlists-images.d.ts.map +1 -0
- package/tools/playlists/images/list-playlists-images.js +44 -0
- package/tools/playlists/images/list-playlists-images.js.map +1 -0
- package/tools/playlists/images/list-playlists-images.mjs +40 -0
- package/tools/playlists/images/list-playlists-images.mjs.map +1 -0
- package/tools/playlists/images/update-playlists-images.d.mts +45 -0
- package/tools/playlists/images/update-playlists-images.d.mts.map +1 -0
- package/tools/playlists/images/update-playlists-images.d.ts +45 -0
- package/tools/playlists/images/update-playlists-images.d.ts.map +1 -0
- package/tools/playlists/images/update-playlists-images.js +43 -0
- package/tools/playlists/images/update-playlists-images.js.map +1 -0
- package/tools/playlists/images/update-playlists-images.mjs +39 -0
- package/tools/playlists/images/update-playlists-images.mjs.map +1 -0
- package/tools/playlists/retrieve-playlists.d.mts +45 -0
- package/tools/playlists/retrieve-playlists.d.mts.map +1 -0
- package/tools/playlists/retrieve-playlists.d.ts +45 -0
- package/tools/playlists/retrieve-playlists.d.ts.map +1 -0
- package/tools/playlists/retrieve-playlists.js +53 -0
- package/tools/playlists/retrieve-playlists.js.map +1 -0
- package/tools/playlists/retrieve-playlists.mjs +49 -0
- package/tools/playlists/retrieve-playlists.mjs.map +1 -0
- package/tools/playlists/tracks/add-playlists-tracks.d.mts +45 -0
- package/tools/playlists/tracks/add-playlists-tracks.d.mts.map +1 -0
- package/tools/playlists/tracks/add-playlists-tracks.d.ts +45 -0
- package/tools/playlists/tracks/add-playlists-tracks.d.ts.map +1 -0
- package/tools/playlists/tracks/add-playlists-tracks.js +53 -0
- package/tools/playlists/tracks/add-playlists-tracks.js.map +1 -0
- package/tools/playlists/tracks/add-playlists-tracks.mjs +49 -0
- package/tools/playlists/tracks/add-playlists-tracks.mjs.map +1 -0
- package/tools/playlists/tracks/list-playlists-tracks.d.mts +45 -0
- package/tools/playlists/tracks/list-playlists-tracks.d.mts.map +1 -0
- package/tools/playlists/tracks/list-playlists-tracks.d.ts +45 -0
- package/tools/playlists/tracks/list-playlists-tracks.d.ts.map +1 -0
- package/tools/playlists/tracks/list-playlists-tracks.js +64 -0
- package/tools/playlists/tracks/list-playlists-tracks.js.map +1 -0
- package/tools/playlists/tracks/list-playlists-tracks.mjs +60 -0
- package/tools/playlists/tracks/list-playlists-tracks.mjs.map +1 -0
- package/tools/playlists/tracks/remove-playlists-tracks.d.mts +45 -0
- package/tools/playlists/tracks/remove-playlists-tracks.d.mts.map +1 -0
- package/tools/playlists/tracks/remove-playlists-tracks.d.ts +45 -0
- package/tools/playlists/tracks/remove-playlists-tracks.d.ts.map +1 -0
- package/tools/playlists/tracks/remove-playlists-tracks.js +61 -0
- package/tools/playlists/tracks/remove-playlists-tracks.js.map +1 -0
- package/tools/playlists/tracks/remove-playlists-tracks.mjs +57 -0
- package/tools/playlists/tracks/remove-playlists-tracks.mjs.map +1 -0
- package/tools/playlists/tracks/update-playlists-tracks.d.mts +45 -0
- package/tools/playlists/tracks/update-playlists-tracks.d.mts.map +1 -0
- package/tools/playlists/tracks/update-playlists-tracks.d.ts +45 -0
- package/tools/playlists/tracks/update-playlists-tracks.d.ts.map +1 -0
- package/tools/playlists/tracks/update-playlists-tracks.js +66 -0
- package/tools/playlists/tracks/update-playlists-tracks.js.map +1 -0
- package/tools/playlists/tracks/update-playlists-tracks.mjs +62 -0
- package/tools/playlists/tracks/update-playlists-tracks.mjs.map +1 -0
- package/tools/playlists/update-playlists.d.mts +45 -0
- package/tools/playlists/update-playlists.d.mts.map +1 -0
- package/tools/playlists/update-playlists.d.ts +45 -0
- package/tools/playlists/update-playlists.d.ts.map +1 -0
- package/tools/playlists/update-playlists.js +55 -0
- package/tools/playlists/update-playlists.js.map +1 -0
- package/tools/playlists/update-playlists.mjs +51 -0
- package/tools/playlists/update-playlists.mjs.map +1 -0
- package/tools/recommendations/get-recommendations.d.mts +45 -0
- package/tools/recommendations/get-recommendations.d.mts.map +1 -0
- package/tools/recommendations/get-recommendations.d.ts +45 -0
- package/tools/recommendations/get-recommendations.d.ts.map +1 -0
- package/tools/recommendations/get-recommendations.js +268 -0
- package/tools/recommendations/get-recommendations.js.map +1 -0
- package/tools/recommendations/get-recommendations.mjs +264 -0
- package/tools/recommendations/get-recommendations.mjs.map +1 -0
- package/tools/recommendations/list-available-genre-seeds-recommendations.d.mts +45 -0
- package/tools/recommendations/list-available-genre-seeds-recommendations.d.mts.map +1 -0
- package/tools/recommendations/list-available-genre-seeds-recommendations.d.ts +45 -0
- package/tools/recommendations/list-available-genre-seeds-recommendations.d.ts.map +1 -0
- package/tools/recommendations/list-available-genre-seeds-recommendations.js +39 -0
- package/tools/recommendations/list-available-genre-seeds-recommendations.js.map +1 -0
- package/tools/recommendations/list-available-genre-seeds-recommendations.mjs +35 -0
- package/tools/recommendations/list-available-genre-seeds-recommendations.mjs.map +1 -0
- package/tools/search/retrieve-search.d.mts +45 -0
- package/tools/search/retrieve-search.d.mts.map +1 -0
- package/tools/search/retrieve-search.d.ts +45 -0
- package/tools/search/retrieve-search.d.ts.map +1 -0
- package/tools/search/retrieve-search.js +68 -0
- package/tools/search/retrieve-search.js.map +1 -0
- package/tools/search/retrieve-search.mjs +64 -0
- package/tools/search/retrieve-search.mjs.map +1 -0
- package/tools/shows/list-episodes-shows.d.mts +45 -0
- package/tools/shows/list-episodes-shows.d.mts.map +1 -0
- package/tools/shows/list-episodes-shows.d.ts +45 -0
- package/tools/shows/list-episodes-shows.d.ts.map +1 -0
- package/tools/shows/list-episodes-shows.js +60 -0
- package/tools/shows/list-episodes-shows.js.map +1 -0
- package/tools/shows/list-episodes-shows.mjs +56 -0
- package/tools/shows/list-episodes-shows.mjs.map +1 -0
- package/tools/shows/list-shows.d.mts +45 -0
- package/tools/shows/list-shows.d.mts.map +1 -0
- package/tools/shows/list-shows.d.ts +45 -0
- package/tools/shows/list-shows.d.ts.map +1 -0
- package/tools/shows/list-shows.js +49 -0
- package/tools/shows/list-shows.js.map +1 -0
- package/tools/shows/list-shows.mjs +45 -0
- package/tools/shows/list-shows.mjs.map +1 -0
- package/tools/shows/retrieve-shows.d.mts +45 -0
- package/tools/shows/retrieve-shows.d.mts.map +1 -0
- package/tools/shows/retrieve-shows.d.ts +45 -0
- package/tools/shows/retrieve-shows.d.ts.map +1 -0
- package/tools/shows/retrieve-shows.js +49 -0
- package/tools/shows/retrieve-shows.js.map +1 -0
- package/tools/shows/retrieve-shows.mjs +45 -0
- package/tools/shows/retrieve-shows.mjs.map +1 -0
- package/tools/tracks/list-tracks.d.mts +45 -0
- package/tools/tracks/list-tracks.d.mts.map +1 -0
- package/tools/tracks/list-tracks.d.ts +45 -0
- package/tools/tracks/list-tracks.d.ts.map +1 -0
- package/tools/tracks/list-tracks.js +43 -0
- package/tools/tracks/list-tracks.js.map +1 -0
- package/tools/tracks/list-tracks.mjs +39 -0
- package/tools/tracks/list-tracks.mjs.map +1 -0
- package/tools/tracks/retrieve-tracks.d.mts +45 -0
- package/tools/tracks/retrieve-tracks.d.mts.map +1 -0
- package/tools/tracks/retrieve-tracks.d.ts +45 -0
- package/tools/tracks/retrieve-tracks.d.ts.map +1 -0
- package/tools/tracks/retrieve-tracks.js +43 -0
- package/tools/tracks/retrieve-tracks.js.map +1 -0
- package/tools/tracks/retrieve-tracks.mjs +39 -0
- package/tools/tracks/retrieve-tracks.mjs.map +1 -0
- package/tools/types.d.mts +51 -0
- package/tools/types.d.mts.map +1 -0
- package/tools/types.d.ts +51 -0
- package/tools/types.d.ts.map +1 -0
- package/tools/types.js +46 -0
- package/tools/types.js.map +1 -0
- package/tools/types.mjs +42 -0
- package/tools/types.mjs.map +1 -0
- package/tools/users/playlists/create-users-playlists.d.mts +45 -0
- package/tools/users/playlists/create-users-playlists.d.mts.map +1 -0
- package/tools/users/playlists/create-users-playlists.d.ts +45 -0
- package/tools/users/playlists/create-users-playlists.d.ts.map +1 -0
- package/tools/users/playlists/create-users-playlists.js +52 -0
- package/tools/users/playlists/create-users-playlists.js.map +1 -0
- package/tools/users/playlists/create-users-playlists.mjs +48 -0
- package/tools/users/playlists/create-users-playlists.mjs.map +1 -0
- package/tools/users/playlists/list-users-playlists.d.mts +45 -0
- package/tools/users/playlists/list-users-playlists.d.mts.map +1 -0
- package/tools/users/playlists/list-users-playlists.d.ts +45 -0
- package/tools/users/playlists/list-users-playlists.d.ts.map +1 -0
- package/tools/users/playlists/list-users-playlists.js +55 -0
- package/tools/users/playlists/list-users-playlists.js.map +1 -0
- package/tools/users/playlists/list-users-playlists.mjs +51 -0
- package/tools/users/playlists/list-users-playlists.mjs.map +1 -0
- package/tools/users/retrieve-profile-users.d.mts +45 -0
- package/tools/users/retrieve-profile-users.d.mts.map +1 -0
- package/tools/users/retrieve-profile-users.d.ts +45 -0
- package/tools/users/retrieve-profile-users.d.ts.map +1 -0
- package/tools/users/retrieve-profile-users.js +44 -0
- package/tools/users/retrieve-profile-users.js.map +1 -0
- package/tools/users/retrieve-profile-users.mjs +40 -0
- package/tools/users/retrieve-profile-users.mjs.map +1 -0
- package/tools.d.mts +2 -0
- package/tools.d.mts.map +1 -0
- package/tools.d.ts +2 -0
- package/tools.d.ts.map +1 -0
- package/tools.js +18 -0
- package/tools.js.map +1 -0
- package/tools.mjs +2 -0
- package/tools.mjs.map +1 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import Spotted from 'spotted-ts';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'me.player',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'put',
|
|
13
|
+
httpPath: '/me/player/volume',
|
|
14
|
+
operationId: 'set-volume-for-users-playback',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'set_volume_me_player',
|
|
19
|
+
description:
|
|
20
|
+
'Set the volume for the user’s current playback device. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.\n',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
volume_percent: {
|
|
25
|
+
type: 'integer',
|
|
26
|
+
title: 'Volume %',
|
|
27
|
+
description: 'The volume to set. Must be a value from 0 to 100 inclusive.\n',
|
|
28
|
+
},
|
|
29
|
+
device_id: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
title: 'Device ID',
|
|
32
|
+
description:
|
|
33
|
+
"The id of the device this command is targeting. If not supplied, the user's currently active device is the target.\n",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
required: ['volume_percent'],
|
|
37
|
+
},
|
|
38
|
+
annotations: {
|
|
39
|
+
idempotentHint: true,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
44
|
+
const body = args as any;
|
|
45
|
+
const response = await client.me.player.setVolume(body).asResponse();
|
|
46
|
+
return asTextContentResult(await response.text());
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import Spotted from 'spotted-ts';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'me.player',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'post',
|
|
13
|
+
httpPath: '/me/player/next',
|
|
14
|
+
operationId: 'skip-users-playback-to-next-track',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'skip_next_me_player',
|
|
19
|
+
description:
|
|
20
|
+
'Skips to next track in the user’s queue. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.\n',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
device_id: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
title: 'Device ID',
|
|
27
|
+
description:
|
|
28
|
+
"The id of the device this command is targeting. If not supplied, the user's currently active device is the target.",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
required: [],
|
|
32
|
+
},
|
|
33
|
+
annotations: {},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
37
|
+
const body = args as any;
|
|
38
|
+
const response = await client.me.player.skipNext(body).asResponse();
|
|
39
|
+
return asTextContentResult(await response.text());
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import Spotted from 'spotted-ts';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'me.player',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'post',
|
|
13
|
+
httpPath: '/me/player/previous',
|
|
14
|
+
operationId: 'skip-users-playback-to-previous-track',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'skip_previous_me_player',
|
|
19
|
+
description:
|
|
20
|
+
'Skips to previous track in the user’s queue. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.\n',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
device_id: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
title: 'Device ID',
|
|
27
|
+
description:
|
|
28
|
+
"The id of the device this command is targeting. If\nnot supplied, the user's currently active device is the target.\n",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
required: [],
|
|
32
|
+
},
|
|
33
|
+
annotations: {},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
37
|
+
const body = args as any;
|
|
38
|
+
const response = await client.me.player.skipPrevious(body).asResponse();
|
|
39
|
+
return asTextContentResult(await response.text());
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import Spotted from 'spotted-ts';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'me.player',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'put',
|
|
13
|
+
httpPath: '/me/player/play',
|
|
14
|
+
operationId: 'start-a-users-playback',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'start_playback_me_player',
|
|
19
|
+
description:
|
|
20
|
+
"Start a new context or resume current playback on the user's active device. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.\n",
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
device_id: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
title: 'Device ID',
|
|
27
|
+
description:
|
|
28
|
+
"The id of the device this command is targeting. If not supplied, the user's currently active device is the target.",
|
|
29
|
+
},
|
|
30
|
+
context_uri: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description:
|
|
33
|
+
'Optional. Spotify URI of the context to play.\nValid contexts are albums, artists & playlists.\n`{context_uri:"spotify:album:1Je1IMUlBXcx1Fz0WE7oPT"}`\n',
|
|
34
|
+
},
|
|
35
|
+
offset: {
|
|
36
|
+
type: 'object',
|
|
37
|
+
description:
|
|
38
|
+
'Optional. Indicates from where in the context playback should start. Only available when context_uri corresponds to an album or playlist object\n"position" is zero based and can’t be negative. Example: `"offset": {"position": 5}`\n"uri" is a string representing the uri of the item to start at. Example: `"offset": {"uri": "spotify:track:1301WleyT98MSxVHPZCA6M"}`\n',
|
|
39
|
+
additionalProperties: true,
|
|
40
|
+
},
|
|
41
|
+
position_ms: {
|
|
42
|
+
type: 'integer',
|
|
43
|
+
description:
|
|
44
|
+
'Indicates from what position to start playback. Must be a positive number. Passing in a position that is greater than the length of the track will cause the player to start playing the next song.\n',
|
|
45
|
+
},
|
|
46
|
+
uris: {
|
|
47
|
+
type: 'array',
|
|
48
|
+
description:
|
|
49
|
+
'Optional. A JSON array of the Spotify track URIs to play.\nFor example: `{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh", "spotify:track:1301WleyT98MSxVHPZCA6M"]}`\n',
|
|
50
|
+
items: {
|
|
51
|
+
type: 'string',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
required: [],
|
|
56
|
+
},
|
|
57
|
+
annotations: {
|
|
58
|
+
idempotentHint: true,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
63
|
+
const body = args as any;
|
|
64
|
+
const response = await client.me.player.startPlayback(body).asResponse();
|
|
65
|
+
return asTextContentResult(await response.text());
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import Spotted from 'spotted-ts';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'me.player',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'put',
|
|
13
|
+
httpPath: '/me/player/shuffle',
|
|
14
|
+
operationId: 'toggle-shuffle-for-users-playback',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'toggle_shuffle_me_player',
|
|
19
|
+
description:
|
|
20
|
+
'Toggle shuffle on or off for user’s playback. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.\n',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
state: {
|
|
25
|
+
type: 'boolean',
|
|
26
|
+
title: 'State',
|
|
27
|
+
description:
|
|
28
|
+
"**true** : Shuffle user's playback.<br/>\n**false** : Do not shuffle user's playback.\n",
|
|
29
|
+
},
|
|
30
|
+
device_id: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
title: 'Device ID',
|
|
33
|
+
description:
|
|
34
|
+
"The id of the device this command is targeting. If\nnot supplied, the user's currently active device is the target.\n",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
required: ['state'],
|
|
38
|
+
},
|
|
39
|
+
annotations: {
|
|
40
|
+
idempotentHint: true,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
45
|
+
const body = args as any;
|
|
46
|
+
const response = await client.me.player.toggleShuffle(body).asResponse();
|
|
47
|
+
return asTextContentResult(await response.text());
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import Spotted from 'spotted-ts';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'me.player',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'put',
|
|
13
|
+
httpPath: '/me/player',
|
|
14
|
+
operationId: 'transfer-a-users-playback',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'transfer_me_player',
|
|
19
|
+
description:
|
|
20
|
+
'Transfer playback to a new device and optionally begin playback. This API only works for users who have Spotify Premium. The order of execution is not guaranteed when you use this API with other Player API endpoints.\n',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
device_ids: {
|
|
25
|
+
type: 'array',
|
|
26
|
+
description:
|
|
27
|
+
'A JSON array containing the ID of the device on which playback should be started/transferred.<br/>For example:`{device_ids:["74ASZWbe4lXaubB36ztrGX"]}`<br/>_**Note**: Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return `400 Bad Request`_\n',
|
|
28
|
+
items: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
play: {
|
|
33
|
+
type: 'boolean',
|
|
34
|
+
description:
|
|
35
|
+
'**true**: ensure playback happens on new device.<br/>**false** or not provided: keep the current playback state.\n',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
required: ['device_ids'],
|
|
39
|
+
},
|
|
40
|
+
annotations: {
|
|
41
|
+
idempotentHint: true,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
46
|
+
const body = args as any;
|
|
47
|
+
const response = await client.me.player.transfer(body).asResponse();
|
|
48
|
+
return asTextContentResult(await response.text());
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { maybeFilter } from 'spotted-ts-mcp/filtering';
|
|
4
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Spotted from 'spotted-ts';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'me.playlists',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/me/playlists',
|
|
15
|
+
operationId: 'get-a-list-of-current-users-playlists',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'list_me_playlists',
|
|
20
|
+
description:
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a list of the playlists owned or followed by the current Spotify\nuser.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/paging_playlist_object',\n $defs: {\n paging_playlist_object: {\n type: 'object',\n properties: {\n href: {\n type: 'string',\n description: 'A link to the Web API endpoint returning the full result of the request\\n'\n },\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/simplified_playlist_object'\n }\n },\n limit: {\n type: 'integer',\n description: 'The maximum number of items in the response (as set in the query or by default).\\n'\n },\n next: {\n type: 'string',\n description: 'URL to the next page of items. ( `null` if none)\\n'\n },\n offset: {\n type: 'integer',\n description: 'The offset of the items returned (as set in the query or by default)\\n'\n },\n previous: {\n type: 'string',\n description: 'URL to the previous page of items. ( `null` if none)\\n'\n },\n total: {\n type: 'integer',\n description: 'The total number of items available to return.\\n'\n }\n },\n required: [ 'href',\n 'items',\n 'limit',\n 'next',\n 'offset',\n 'previous',\n 'total'\n ]\n },\n simplified_playlist_object: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the playlist.\\n'\n },\n collaborative: {\n type: 'boolean',\n description: '`true` if the owner allows other users to modify the playlist.\\n'\n },\n description: {\n type: 'string',\n description: 'The playlist description. _Only returned for modified, verified playlists, otherwise_ `null`.\\n'\n },\n external_urls: {\n $ref: '#/$defs/external_url_object'\n },\n href: {\n type: 'string',\n description: 'A link to the Web API endpoint providing full details of the playlist.\\n'\n },\n images: {\n type: 'array',\n description: 'Images for the playlist. The array may be empty or contain up to three images. The images are returned by size in descending order. See [Working with Playlists](/documentation/web-api/concepts/playlists). _**Note**: If returned, the source URL for the image (`url`) is temporary and will expire in less than a day._\\n',\n items: {\n $ref: '#/$defs/image_object'\n }\n },\n name: {\n type: 'string',\n description: 'The name of the playlist.\\n'\n },\n owner: {\n allOf: [ {\n $ref: '#/$defs/playlist_user_object'\n }\n ],\n description: 'The user who owns the playlist\\n'\n },\n public: {\n type: 'boolean',\n description: 'The playlist\\'s public/private status (if it is added to the user\\'s profile): `true` the playlist is public, `false` the playlist is private, `null` the playlist status is not relevant. For more about public/private status, see [Working with Playlists](/documentation/web-api/concepts/playlists)\\n'\n },\n snapshot_id: {\n type: 'string',\n description: 'The version identifier for the current playlist. Can be supplied in other requests to target a specific playlist version\\n'\n },\n tracks: {\n $ref: '#/$defs/playlist_tracks_ref_object'\n },\n type: {\n type: 'string',\n description: 'The object type: \"playlist\"\\n'\n },\n uri: {\n type: 'string',\n description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the playlist.\\n'\n }\n }\n },\n external_url_object: {\n type: 'object',\n properties: {\n spotify: {\n type: 'string',\n description: 'The [Spotify URL](/documentation/web-api/concepts/spotify-uris-ids) for the object.\\n'\n }\n }\n },\n image_object: {\n type: 'object',\n properties: {\n height: {\n type: 'integer',\n description: 'The image height in pixels.\\n'\n },\n url: {\n type: 'string',\n description: 'The source URL of the image.\\n'\n },\n width: {\n type: 'integer',\n description: 'The image width in pixels.\\n'\n }\n },\n required: [ 'height',\n 'url',\n 'width'\n ]\n },\n playlist_user_object: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'The [Spotify user ID](/documentation/web-api/concepts/spotify-uris-ids) for this user.\\n'\n },\n external_urls: {\n $ref: '#/$defs/external_url_object'\n },\n href: {\n type: 'string',\n description: 'A link to the Web API endpoint for this user.\\n'\n },\n type: {\n type: 'string',\n description: 'The object type.',\n enum: [ 'user'\n ]\n },\n uri: {\n type: 'string',\n description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for this user.\\n'\n }\n }\n },\n playlist_tracks_ref_object: {\n type: 'object',\n properties: {\n href: {\n type: 'string',\n description: 'A link to the Web API endpoint where full details of the playlist\\'s tracks can be retrieved.\\n'\n },\n total: {\n type: 'integer',\n description: 'Number of tracks in the playlist.\\n'\n }\n }\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
limit: {
|
|
26
|
+
type: 'integer',
|
|
27
|
+
title: 'Limit',
|
|
28
|
+
description: 'The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.\n',
|
|
29
|
+
},
|
|
30
|
+
offset: {
|
|
31
|
+
type: 'integer',
|
|
32
|
+
title: 'Offset',
|
|
33
|
+
description:
|
|
34
|
+
"'The index of the first playlist to return. Default:\n0 (the first object). Maximum offset: 100.000\\. Use with `limit` to get the\nnext set of playlists.'\n",
|
|
35
|
+
},
|
|
36
|
+
jq_filter: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
title: 'jq Filter',
|
|
39
|
+
description:
|
|
40
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: [],
|
|
44
|
+
},
|
|
45
|
+
annotations: {
|
|
46
|
+
readOnlyHint: true,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
51
|
+
const { jq_filter, ...body } = args as any;
|
|
52
|
+
const response = await client.me.playlists.list(body).asResponse();
|
|
53
|
+
return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { maybeFilter } from 'spotted-ts-mcp/filtering';
|
|
4
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Spotted from 'spotted-ts';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'me',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/me',
|
|
15
|
+
operationId: 'get-current-users-profile',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'retrieve_me',
|
|
20
|
+
description:
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet detailed profile information about the current user (including the\ncurrent user's username).\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/me_retrieve_response',\n $defs: {\n me_retrieve_response: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'The [Spotify user ID](/documentation/web-api/concepts/spotify-uris-ids) for the user.\\n'\n },\n country: {\n type: 'string',\n description: 'The country of the user, as set in the user\\'s account profile. An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). _This field is only available when the current user has granted access to the [user-read-private](/documentation/web-api/concepts/scopes/#list-of-scopes) scope._\\n'\n },\n display_name: {\n type: 'string',\n description: 'The name displayed on the user\\'s profile. `null` if not available.\\n'\n },\n email: {\n type: 'string',\n description: 'The user\\'s email address, as entered by the user when creating their account. _**Important!** This email address is unverified; there is no proof that it actually belongs to the user._ _This field is only available when the current user has granted access to the [user-read-email](/documentation/web-api/concepts/scopes/#list-of-scopes) scope._\\n'\n },\n explicit_content: {\n type: 'object',\n description: 'The user\\'s explicit content settings. _This field is only available when the current user has granted access to the [user-read-private](/documentation/web-api/concepts/scopes/#list-of-scopes) scope._\\n',\n properties: {\n filter_enabled: {\n type: 'boolean',\n description: 'When `true`, indicates that explicit content should not be played.\\n'\n },\n filter_locked: {\n type: 'boolean',\n description: 'When `true`, indicates that the explicit content setting is locked and can\\'t be changed by the user.\\n'\n }\n }\n },\n external_urls: {\n $ref: '#/$defs/external_url_object'\n },\n followers: {\n $ref: '#/$defs/followers_object'\n },\n href: {\n type: 'string',\n description: 'A link to the Web API endpoint for this user.\\n'\n },\n images: {\n type: 'array',\n description: 'The user\\'s profile image.',\n items: {\n $ref: '#/$defs/image_object'\n }\n },\n product: {\n type: 'string',\n description: 'The user\\'s Spotify subscription level: \"premium\", \"free\", etc. (The subscription level \"open\" can be considered the same as \"free\".) _This field is only available when the current user has granted access to the [user-read-private](/documentation/web-api/concepts/scopes/#list-of-scopes) scope._\\n'\n },\n type: {\n type: 'string',\n description: 'The object type: \"user\"\\n'\n },\n uri: {\n type: 'string',\n description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the user.\\n'\n }\n }\n },\n external_url_object: {\n type: 'object',\n properties: {\n spotify: {\n type: 'string',\n description: 'The [Spotify URL](/documentation/web-api/concepts/spotify-uris-ids) for the object.\\n'\n }\n }\n },\n followers_object: {\n type: 'object',\n properties: {\n href: {\n type: 'string',\n description: 'This will always be set to null, as the Web API does not support it at the moment.\\n'\n },\n total: {\n type: 'integer',\n description: 'The total number of followers.\\n'\n }\n }\n },\n image_object: {\n type: 'object',\n properties: {\n height: {\n type: 'integer',\n description: 'The image height in pixels.\\n'\n },\n url: {\n type: 'string',\n description: 'The source URL of the image.\\n'\n },\n width: {\n type: 'integer',\n description: 'The image width in pixels.\\n'\n }\n },\n required: [ 'height',\n 'url',\n 'width'\n ]\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
jq_filter: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
title: 'jq Filter',
|
|
28
|
+
description:
|
|
29
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
required: [],
|
|
33
|
+
},
|
|
34
|
+
annotations: {
|
|
35
|
+
readOnlyHint: true,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
40
|
+
const { jq_filter } = args as any;
|
|
41
|
+
return asTextContentResult(await maybeFilter(jq_filter, await client.me.retrieve()));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { maybeFilter } from 'spotted-ts-mcp/filtering';
|
|
4
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Spotted from 'spotted-ts';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'me.shows',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/me/shows/contains',
|
|
15
|
+
operationId: 'check-users-saved-shows',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'check_me_shows',
|
|
20
|
+
description:
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCheck if one or more shows is already saved in the current Spotify user's library.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/show_check_response',\n $defs: {\n show_check_response: {\n type: 'array',\n items: {\n type: 'boolean'\n }\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
ids: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
title: 'Ids',
|
|
28
|
+
description:
|
|
29
|
+
'A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids) for the shows. Maximum: 50 IDs.\n',
|
|
30
|
+
},
|
|
31
|
+
jq_filter: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
title: 'jq Filter',
|
|
34
|
+
description:
|
|
35
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
required: ['ids'],
|
|
39
|
+
},
|
|
40
|
+
annotations: {
|
|
41
|
+
readOnlyHint: true,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
46
|
+
const { jq_filter, ...body } = args as any;
|
|
47
|
+
return asTextContentResult(await maybeFilter(jq_filter, await client.me.shows.check(body)));
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { maybeFilter } from 'spotted-ts-mcp/filtering';
|
|
4
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Spotted from 'spotted-ts';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'me.shows',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/me/shows',
|
|
15
|
+
operationId: 'get-users-saved-shows',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'list_me_shows',
|
|
20
|
+
description:
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a list of shows saved in the current Spotify user's library. Optional parameters can be used to limit the number of shows returned.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n href: {\n type: 'string',\n description: 'A link to the Web API endpoint returning the full result of the request\\n'\n },\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/show_list_response'\n }\n },\n limit: {\n type: 'integer',\n description: 'The maximum number of items in the response (as set in the query or by default).\\n'\n },\n next: {\n type: 'string',\n description: 'URL to the next page of items. ( `null` if none)\\n'\n },\n offset: {\n type: 'integer',\n description: 'The offset of the items returned (as set in the query or by default)\\n'\n },\n previous: {\n type: 'string',\n description: 'URL to the previous page of items. ( `null` if none)\\n'\n },\n total: {\n type: 'integer',\n description: 'The total number of items available to return.\\n'\n }\n },\n required: [ 'href',\n 'items',\n 'limit',\n 'next',\n 'offset',\n 'previous',\n 'total'\n ],\n $defs: {\n show_list_response: {\n type: 'object',\n properties: {\n added_at: {\n type: 'string',\n description: 'The date and time the show was saved.\\nTimestamps are returned in ISO 8601 format as Coordinated Universal Time (UTC) with a zero offset: YYYY-MM-DDTHH:MM:SSZ.\\nIf the time is imprecise (for example, the date/time of an album release), an additional field indicates the precision; see for example, release_date in an album object.\\n',\n format: 'date-time'\n },\n show: {\n $ref: '#/$defs/show_base'\n }\n }\n },\n show_base: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the show.\\n'\n },\n available_markets: {\n type: 'array',\n description: 'A list of the countries in which the show can be played, identified by their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.\\n',\n items: {\n type: 'string'\n }\n },\n copyrights: {\n type: 'array',\n description: 'The copyright statements of the show.\\n',\n items: {\n $ref: '#/$defs/copyright_object'\n }\n },\n description: {\n type: 'string',\n description: 'A description of the show. HTML tags are stripped away from this field, use `html_description` field in case HTML tags are needed.\\n'\n },\n explicit: {\n type: 'boolean',\n description: 'Whether or not the show has explicit content (true = yes it does; false = no it does not OR unknown).\\n'\n },\n external_urls: {\n $ref: '#/$defs/external_url_object'\n },\n href: {\n type: 'string',\n description: 'A link to the Web API endpoint providing full details of the show.\\n'\n },\n html_description: {\n type: 'string',\n description: 'A description of the show. This field may contain HTML tags.\\n'\n },\n images: {\n type: 'array',\n description: 'The cover art for the show in various sizes, widest first.\\n',\n items: {\n $ref: '#/$defs/image_object'\n }\n },\n is_externally_hosted: {\n type: 'boolean',\n description: 'True if all of the shows episodes are hosted outside of Spotify\\'s CDN. This field might be `null` in some cases.\\n'\n },\n languages: {\n type: 'array',\n description: 'A list of the languages used in the show, identified by their [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code.\\n',\n items: {\n type: 'string'\n }\n },\n media_type: {\n type: 'string',\n description: 'The media type of the show.\\n'\n },\n name: {\n type: 'string',\n description: 'The name of the episode.\\n'\n },\n publisher: {\n type: 'string',\n description: 'The publisher of the show.\\n'\n },\n total_episodes: {\n type: 'integer',\n description: 'The total number of episodes in the show.\\n'\n },\n type: {\n type: 'string',\n description: 'The object type.',\n enum: [ 'show'\n ]\n },\n uri: {\n type: 'string',\n description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the show.\\n'\n }\n },\n required: [ 'id',\n 'available_markets',\n 'copyrights',\n 'description',\n 'explicit',\n 'external_urls',\n 'href',\n 'html_description',\n 'images',\n 'is_externally_hosted',\n 'languages',\n 'media_type',\n 'name',\n 'publisher',\n 'total_episodes',\n 'type',\n 'uri'\n ]\n },\n copyright_object: {\n type: 'object',\n properties: {\n text: {\n type: 'string',\n description: 'The copyright text for this content.\\n'\n },\n type: {\n type: 'string',\n description: 'The type of copyright: `C` = the copyright, `P` = the sound recording (performance) copyright.\\n'\n }\n }\n },\n external_url_object: {\n type: 'object',\n properties: {\n spotify: {\n type: 'string',\n description: 'The [Spotify URL](/documentation/web-api/concepts/spotify-uris-ids) for the object.\\n'\n }\n }\n },\n image_object: {\n type: 'object',\n properties: {\n height: {\n type: 'integer',\n description: 'The image height in pixels.\\n'\n },\n url: {\n type: 'string',\n description: 'The source URL of the image.\\n'\n },\n width: {\n type: 'integer',\n description: 'The image width in pixels.\\n'\n }\n },\n required: [ 'height',\n 'url',\n 'width'\n ]\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
limit: {
|
|
26
|
+
type: 'integer',
|
|
27
|
+
title: 'Limit',
|
|
28
|
+
description: 'The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.\n',
|
|
29
|
+
},
|
|
30
|
+
offset: {
|
|
31
|
+
type: 'integer',
|
|
32
|
+
title: 'Offset',
|
|
33
|
+
description:
|
|
34
|
+
'The index of the first item to return. Default: 0 (the first item). Use with limit to get the next set of items.\n',
|
|
35
|
+
},
|
|
36
|
+
jq_filter: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
title: 'jq Filter',
|
|
39
|
+
description:
|
|
40
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: [],
|
|
44
|
+
},
|
|
45
|
+
annotations: {
|
|
46
|
+
readOnlyHint: true,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
51
|
+
const { jq_filter, ...body } = args as any;
|
|
52
|
+
const response = await client.me.shows.list(body).asResponse();
|
|
53
|
+
return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import Spotted from 'spotted-ts';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'me.shows',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'delete',
|
|
13
|
+
httpPath: '/me/shows',
|
|
14
|
+
operationId: 'remove-shows-user',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'remove_me_shows',
|
|
19
|
+
description: "Delete one or more shows from current Spotify user's library.\n",
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
ids: {
|
|
24
|
+
type: 'array',
|
|
25
|
+
description:
|
|
26
|
+
'A JSON array of the [Spotify IDs](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids). \nA maximum of 50 items can be specified in one request. *Note: if the `ids` parameter is present in the query string, any IDs listed here in the body will be ignored.*',
|
|
27
|
+
items: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
required: [],
|
|
33
|
+
},
|
|
34
|
+
annotations: {
|
|
35
|
+
idempotentHint: true,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
40
|
+
const body = args as any;
|
|
41
|
+
const response = await client.me.shows.remove(body).asResponse();
|
|
42
|
+
return asTextContentResult(await response.text());
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from 'spotted-ts-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import Spotted from 'spotted-ts';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'me.shows',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'put',
|
|
13
|
+
httpPath: '/me/shows',
|
|
14
|
+
operationId: 'save-shows-user',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'save_me_shows',
|
|
19
|
+
description: "Save one or more shows to current Spotify user's library.\n",
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
ids: {
|
|
24
|
+
type: 'array',
|
|
25
|
+
description:
|
|
26
|
+
'A JSON array of the [Spotify IDs](https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids). \nA maximum of 50 items can be specified in one request. *Note: if the `ids` parameter is present in the query string, any IDs listed here in the body will be ignored.*',
|
|
27
|
+
items: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
required: [],
|
|
33
|
+
},
|
|
34
|
+
annotations: {
|
|
35
|
+
idempotentHint: true,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
40
|
+
const body = args as any;
|
|
41
|
+
const response = await client.me.shows.save(body).asResponse();
|
|
42
|
+
return asTextContentResult(await response.text());
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export default { metadata, tool, handler };
|