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,55 @@
|
|
|
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: 'shows',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/shows/{id}',
|
|
15
|
+
operationId: 'get-a-show',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'retrieve_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 Spotify catalog information for a single show identified by its\nunique Spotify ID.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/show_retrieve_response',\n $defs: {\n show_retrieve_response: {\n allOf: [ {\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
|
+
id: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
title: 'Spotify Show ID',
|
|
28
|
+
description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids)\nfor the show.\n',
|
|
29
|
+
},
|
|
30
|
+
market: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
title: 'Market',
|
|
33
|
+
description:
|
|
34
|
+
'An [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).\n If a country code is specified, only content that is available in that market will be returned.<br/>\n If a valid user access token is specified in the request header, the country associated with\n the user account will take priority over this parameter.<br/>\n _**Note**: If neither market or user country are provided, the content is considered unavailable for the client._<br/>\n Users can view the country that is associated with their account in the [account settings](https://www.spotify.com/account/overview/).\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: ['id'],
|
|
44
|
+
},
|
|
45
|
+
annotations: {
|
|
46
|
+
readOnlyHint: true,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
51
|
+
const { id, jq_filter, ...body } = args as any;
|
|
52
|
+
return asTextContentResult(await maybeFilter(jq_filter, await client.shows.retrieve(id, body)));
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,48 @@
|
|
|
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: 'tracks',
|
|
10
|
+
operation: 'read',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'get',
|
|
13
|
+
httpPath: '/tracks',
|
|
14
|
+
operationId: 'get-several-tracks',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'list_tracks',
|
|
19
|
+
description: 'Get Spotify catalog information for multiple tracks based on their Spotify IDs.\n',
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
ids: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
title: 'Spotify Track IDs',
|
|
26
|
+
description:
|
|
27
|
+
'A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M`. Maximum: 50 IDs.\n',
|
|
28
|
+
},
|
|
29
|
+
market: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
title: 'Market',
|
|
32
|
+
description:
|
|
33
|
+
'An [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).\n If a country code is specified, only content that is available in that market will be returned.<br/>\n If a valid user access token is specified in the request header, the country associated with\n the user account will take priority over this parameter.<br/>\n _**Note**: If neither market or user country are provided, the content is considered unavailable for the client._<br/>\n Users can view the country that is associated with their account in the [account settings](https://www.spotify.com/account/overview/).\n',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
required: ['ids'],
|
|
37
|
+
},
|
|
38
|
+
annotations: {
|
|
39
|
+
readOnlyHint: true,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
44
|
+
const body = args as any;
|
|
45
|
+
return asTextContentResult(await client.tracks.list(body));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,47 @@
|
|
|
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: 'tracks',
|
|
10
|
+
operation: 'read',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'get',
|
|
13
|
+
httpPath: '/tracks/{id}',
|
|
14
|
+
operationId: 'get-track',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'retrieve_tracks',
|
|
19
|
+
description: 'Get Spotify catalog information for a single track identified by its\nunique Spotify ID.\n',
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
id: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
title: 'Spotify Track ID',
|
|
26
|
+
description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids)\nfor the track.\n',
|
|
27
|
+
},
|
|
28
|
+
market: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
title: 'Market',
|
|
31
|
+
description:
|
|
32
|
+
'An [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).\n If a country code is specified, only content that is available in that market will be returned.<br/>\n If a valid user access token is specified in the request header, the country associated with\n the user account will take priority over this parameter.<br/>\n _**Note**: If neither market or user country are provided, the content is considered unavailable for the client._<br/>\n Users can view the country that is associated with their account in the [account settings](https://www.spotify.com/account/overview/).\n',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
required: ['id'],
|
|
36
|
+
},
|
|
37
|
+
annotations: {
|
|
38
|
+
readOnlyHint: true,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
43
|
+
const { id, ...body } = args as any;
|
|
44
|
+
return asTextContentResult(await client.tracks.retrieve(id, body));
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import Spotted from 'spotted-ts';
|
|
4
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
|
|
6
|
+
type TextContentBlock = {
|
|
7
|
+
type: 'text';
|
|
8
|
+
text: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
type ImageContentBlock = {
|
|
12
|
+
type: 'image';
|
|
13
|
+
data: string;
|
|
14
|
+
mimeType: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
type AudioContentBlock = {
|
|
18
|
+
type: 'audio';
|
|
19
|
+
data: string;
|
|
20
|
+
mimeType: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type ResourceContentBlock = {
|
|
24
|
+
type: 'resource';
|
|
25
|
+
resource:
|
|
26
|
+
| {
|
|
27
|
+
uri: string;
|
|
28
|
+
mimeType: string;
|
|
29
|
+
text: string;
|
|
30
|
+
}
|
|
31
|
+
| {
|
|
32
|
+
uri: string;
|
|
33
|
+
mimeType: string;
|
|
34
|
+
blob: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export type ContentBlock = TextContentBlock | ImageContentBlock | AudioContentBlock | ResourceContentBlock;
|
|
39
|
+
|
|
40
|
+
export type ToolCallResult = {
|
|
41
|
+
content: ContentBlock[];
|
|
42
|
+
isError?: boolean;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export type HandlerFunction = (
|
|
46
|
+
client: Spotted,
|
|
47
|
+
args: Record<string, unknown> | undefined,
|
|
48
|
+
) => Promise<ToolCallResult>;
|
|
49
|
+
|
|
50
|
+
export function asTextContentResult(result: unknown): ToolCallResult {
|
|
51
|
+
return {
|
|
52
|
+
content: [
|
|
53
|
+
{
|
|
54
|
+
type: 'text',
|
|
55
|
+
text: JSON.stringify(result, null, 2),
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export async function asBinaryContentResult(response: Response): Promise<ToolCallResult> {
|
|
62
|
+
const blob = await response.blob();
|
|
63
|
+
const mimeType = blob.type;
|
|
64
|
+
const data = Buffer.from(await blob.arrayBuffer()).toString('base64');
|
|
65
|
+
if (mimeType.startsWith('image/')) {
|
|
66
|
+
return {
|
|
67
|
+
content: [{ type: 'image', mimeType, data }],
|
|
68
|
+
};
|
|
69
|
+
} else if (mimeType.startsWith('audio/')) {
|
|
70
|
+
return {
|
|
71
|
+
content: [{ type: 'audio', mimeType, data }],
|
|
72
|
+
};
|
|
73
|
+
} else {
|
|
74
|
+
return {
|
|
75
|
+
content: [
|
|
76
|
+
{
|
|
77
|
+
type: 'resource',
|
|
78
|
+
resource: {
|
|
79
|
+
// We must give a URI, even though this isn't actually an MCP resource.
|
|
80
|
+
uri: 'resource://tool-response',
|
|
81
|
+
mimeType,
|
|
82
|
+
blob: data,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export type Metadata = {
|
|
91
|
+
resource: string;
|
|
92
|
+
operation: 'read' | 'write';
|
|
93
|
+
tags: string[];
|
|
94
|
+
httpMethod?: string;
|
|
95
|
+
httpPath?: string;
|
|
96
|
+
operationId?: string;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export type Endpoint = {
|
|
100
|
+
metadata: Metadata;
|
|
101
|
+
tool: Tool;
|
|
102
|
+
handler: HandlerFunction;
|
|
103
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
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: 'users.playlists',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: [],
|
|
12
|
+
httpMethod: 'post',
|
|
13
|
+
httpPath: '/users/{user_id}/playlists',
|
|
14
|
+
operationId: 'create-playlist',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'create_users_playlists',
|
|
19
|
+
description:
|
|
20
|
+
'Create a playlist for a Spotify user. (The playlist will be empty until\nyou [add tracks](/documentation/web-api/reference/add-tracks-to-playlist).)\nEach user is generally limited to a maximum of 11000 playlists.\n',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
user_id: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
title: 'User ID',
|
|
27
|
+
description: "The user's [Spotify user ID](/documentation/web-api/concepts/spotify-uris-ids).\n",
|
|
28
|
+
},
|
|
29
|
+
name: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description:
|
|
32
|
+
'The name for the new playlist, for example `"Your Coolest Playlist"`. This name does not need to be unique; a user may have several playlists with the same name.\n',
|
|
33
|
+
},
|
|
34
|
+
collaborative: {
|
|
35
|
+
type: 'boolean',
|
|
36
|
+
description:
|
|
37
|
+
'Defaults to `false`. If `true` the playlist will be collaborative. _**Note**: to create a collaborative playlist you must also set `public` to `false`. To create collaborative playlists you must have granted `playlist-modify-private` and `playlist-modify-public` [scopes](/documentation/web-api/concepts/scopes/#list-of-scopes)._\n',
|
|
38
|
+
},
|
|
39
|
+
description: {
|
|
40
|
+
type: 'string',
|
|
41
|
+
description: 'value for playlist description as displayed in Spotify Clients and in the Web API.\n',
|
|
42
|
+
},
|
|
43
|
+
public: {
|
|
44
|
+
type: 'boolean',
|
|
45
|
+
description:
|
|
46
|
+
"Defaults to `true`. The playlist's public/private status (if it should be added to the user's profile or not): `true` the playlist will be public, `false` the playlist will be private. To be able to create private playlists, the user must have granted the `playlist-modify-private` [scope](/documentation/web-api/concepts/scopes/#list-of-scopes). For more about public/private status, see [Working with Playlists](/documentation/web-api/concepts/playlists)\n",
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
required: ['user_id', 'name'],
|
|
50
|
+
},
|
|
51
|
+
annotations: {},
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
55
|
+
const { user_id, ...body } = args as any;
|
|
56
|
+
return asTextContentResult(await client.users.playlists.create(user_id, body));
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,61 @@
|
|
|
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: 'users.playlists',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/users/{user_id}/playlists',
|
|
15
|
+
operationId: 'get-list-users-playlists',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'list_users_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 a Spotify user.\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
|
+
user_id: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
title: 'User ID',
|
|
28
|
+
description: "The user's [Spotify user ID](/documentation/web-api/concepts/spotify-uris-ids).\n",
|
|
29
|
+
},
|
|
30
|
+
limit: {
|
|
31
|
+
type: 'integer',
|
|
32
|
+
title: 'Limit',
|
|
33
|
+
description: 'The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.\n',
|
|
34
|
+
},
|
|
35
|
+
offset: {
|
|
36
|
+
type: 'integer',
|
|
37
|
+
title: 'Offset',
|
|
38
|
+
description:
|
|
39
|
+
'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',
|
|
40
|
+
},
|
|
41
|
+
jq_filter: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
title: 'jq Filter',
|
|
44
|
+
description:
|
|
45
|
+
'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/).',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
required: ['user_id'],
|
|
49
|
+
},
|
|
50
|
+
annotations: {
|
|
51
|
+
readOnlyHint: true,
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
56
|
+
const { user_id, jq_filter, ...body } = args as any;
|
|
57
|
+
const response = await client.users.playlists.list(user_id, body).asResponse();
|
|
58
|
+
return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,49 @@
|
|
|
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: 'users',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/users/{user_id}',
|
|
15
|
+
operationId: 'get-users-profile',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'retrieve_profile_users',
|
|
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 public profile information about a Spotify user.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/user_retrieve_profile_response',\n $defs: {\n user_retrieve_profile_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 this user.\\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 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',\n items: {\n $ref: '#/$defs/image_object'\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 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
|
+
user_id: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
title: 'User ID',
|
|
28
|
+
description: "The user's [Spotify user ID](/documentation/web-api/concepts/spotify-uris-ids).\n",
|
|
29
|
+
},
|
|
30
|
+
jq_filter: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
title: 'jq Filter',
|
|
33
|
+
description:
|
|
34
|
+
'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/).',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
required: ['user_id'],
|
|
38
|
+
},
|
|
39
|
+
annotations: {
|
|
40
|
+
readOnlyHint: true,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
|
|
45
|
+
const { user_id, jq_filter, ...body } = args as any;
|
|
46
|
+
return asTextContentResult(await maybeFilter(jq_filter, await client.users.retrieveProfile(user_id)));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default { metadata, tool, handler };
|
package/src/tools.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './tools/index';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
// this config is included in the published src directory to prevent TS errors
|
|
3
|
+
// from appearing when users go to source, and VSCode opens the source .ts file
|
|
4
|
+
// via declaration maps
|
|
5
|
+
"include": ["index.ts"],
|
|
6
|
+
"compilerOptions": {
|
|
7
|
+
"target": "es2015",
|
|
8
|
+
"lib": ["DOM"],
|
|
9
|
+
"moduleResolution": "node"
|
|
10
|
+
}
|
|
11
|
+
}
|
package/stdio.d.mts
ADDED
package/stdio.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.mts","sourceRoot":"","sources":["src/stdio.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE;AAErB,eAAO,MAAM,iBAAiB,GAAU,SAAS,UAAU,kBAQ1D,CAAC"}
|
package/stdio.d.ts
ADDED
package/stdio.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["src/stdio.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE;AAErB,eAAO,MAAM,iBAAiB,GAAU,SAAS,UAAU,kBAQ1D,CAAC"}
|
package/stdio.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.launchStdioServer = void 0;
|
|
4
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
5
|
+
const server_1 = require("./server.js");
|
|
6
|
+
const launchStdioServer = async (options) => {
|
|
7
|
+
const server = (0, server_1.newMcpServer)();
|
|
8
|
+
(0, server_1.initMcpServer)({ server, mcpOptions: options });
|
|
9
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
10
|
+
await server.connect(transport);
|
|
11
|
+
console.error('MCP Server running on stdio');
|
|
12
|
+
};
|
|
13
|
+
exports.launchStdioServer = launchStdioServer;
|
|
14
|
+
//# sourceMappingURL=stdio.js.map
|
package/stdio.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["src/stdio.ts"],"names":[],"mappings":";;;AAAA,wEAAiF;AACjF,wCAAuD;AAGhD,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAmB,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE9B,IAAA,sBAAa,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC/C,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B"}
|
package/stdio.mjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
2
|
+
import { initMcpServer, newMcpServer } from "./server.mjs";
|
|
3
|
+
export const launchStdioServer = async (options) => {
|
|
4
|
+
const server = newMcpServer();
|
|
5
|
+
initMcpServer({ server, mcpOptions: options });
|
|
6
|
+
const transport = new StdioServerTransport();
|
|
7
|
+
await server.connect(transport);
|
|
8
|
+
console.error('MCP Server running on stdio');
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=stdio.mjs.map
|
package/stdio.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.mjs","sourceRoot":"","sources":["src/stdio.ts"],"names":[],"mappings":"OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C;OACzE,EAAE,aAAa,EAAE,YAAY,EAAE;AAGtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAmB,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Metadata } from 'spotted-ts-mcp/tools/types';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import Spotted from 'spotted-ts';
|
|
4
|
+
export declare const metadata: Metadata;
|
|
5
|
+
export declare const tool: Tool;
|
|
6
|
+
export declare const handler: (client: Spotted, args: Record<string, unknown> | undefined) => Promise<import("spotted-ts-mcp/tools/types").ToolCallResult>;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
metadata: Metadata;
|
|
9
|
+
tool: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
name: string;
|
|
12
|
+
inputSchema: {
|
|
13
|
+
[x: string]: unknown;
|
|
14
|
+
type: "object";
|
|
15
|
+
properties?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | undefined;
|
|
18
|
+
required?: string[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
outputSchema?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
type: "object";
|
|
25
|
+
properties?: {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
} | undefined;
|
|
28
|
+
required?: string[] | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
annotations?: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
title?: string | undefined;
|
|
33
|
+
readOnlyHint?: boolean | undefined;
|
|
34
|
+
destructiveHint?: boolean | undefined;
|
|
35
|
+
idempotentHint?: boolean | undefined;
|
|
36
|
+
openWorldHint?: boolean | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
_meta?: {
|
|
39
|
+
[x: string]: unknown;
|
|
40
|
+
} | undefined;
|
|
41
|
+
};
|
|
42
|
+
handler: (client: Spotted, args: Record<string, unknown> | undefined) => Promise<import("spotted-ts-mcp/tools/types").ToolCallResult>;
|
|
43
|
+
};
|
|
44
|
+
export default _default;
|
|
45
|
+
//# sourceMappingURL=bulk-retrieve-albums.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-retrieve-albums.d.mts","sourceRoot":"","sources":["../../src/tools/albums/bulk-retrieve-albums.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,4BAA4B;OAEnE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,OAAO,MAAM,YAAY;AAEhC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAwBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,iEAGvF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAKxF,wBAA2C"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Metadata } from 'spotted-ts-mcp/tools/types';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import Spotted from 'spotted-ts';
|
|
4
|
+
export declare const metadata: Metadata;
|
|
5
|
+
export declare const tool: Tool;
|
|
6
|
+
export declare const handler: (client: Spotted, args: Record<string, unknown> | undefined) => Promise<import("spotted-ts-mcp/tools/types").ToolCallResult>;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
metadata: Metadata;
|
|
9
|
+
tool: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
name: string;
|
|
12
|
+
inputSchema: {
|
|
13
|
+
[x: string]: unknown;
|
|
14
|
+
type: "object";
|
|
15
|
+
properties?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | undefined;
|
|
18
|
+
required?: string[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
outputSchema?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
type: "object";
|
|
25
|
+
properties?: {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
} | undefined;
|
|
28
|
+
required?: string[] | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
annotations?: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
title?: string | undefined;
|
|
33
|
+
readOnlyHint?: boolean | undefined;
|
|
34
|
+
destructiveHint?: boolean | undefined;
|
|
35
|
+
idempotentHint?: boolean | undefined;
|
|
36
|
+
openWorldHint?: boolean | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
_meta?: {
|
|
39
|
+
[x: string]: unknown;
|
|
40
|
+
} | undefined;
|
|
41
|
+
};
|
|
42
|
+
handler: (client: Spotted, args: Record<string, unknown> | undefined) => Promise<import("spotted-ts-mcp/tools/types").ToolCallResult>;
|
|
43
|
+
};
|
|
44
|
+
export default _default;
|
|
45
|
+
//# sourceMappingURL=bulk-retrieve-albums.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-retrieve-albums.d.ts","sourceRoot":"","sources":["../../src/tools/albums/bulk-retrieve-albums.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,4BAA4B;OAEnE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,OAAO,MAAM,YAAY;AAEhC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAwBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,iEAGvF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAKxF,wBAA2C"}
|