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.
Files changed (954) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +440 -0
  3. package/code-tool-paths.cjs +6 -0
  4. package/code-tool-paths.cjs.map +1 -0
  5. package/code-tool-paths.d.cts +2 -0
  6. package/code-tool-paths.d.cts.map +1 -0
  7. package/code-tool-types.d.mts +14 -0
  8. package/code-tool-types.d.mts.map +1 -0
  9. package/code-tool-types.d.ts +14 -0
  10. package/code-tool-types.d.ts.map +1 -0
  11. package/code-tool-types.js +4 -0
  12. package/code-tool-types.js.map +1 -0
  13. package/code-tool-types.mjs +3 -0
  14. package/code-tool-types.mjs.map +1 -0
  15. package/code-tool-worker.d.mts +5 -0
  16. package/code-tool-worker.d.mts.map +1 -0
  17. package/code-tool-worker.d.ts +5 -0
  18. package/code-tool-worker.d.ts.map +1 -0
  19. package/code-tool-worker.js +237 -0
  20. package/code-tool-worker.js.map +1 -0
  21. package/code-tool-worker.mjs +232 -0
  22. package/code-tool-worker.mjs.map +1 -0
  23. package/code-tool.d.mts +12 -0
  24. package/code-tool.d.mts.map +1 -0
  25. package/code-tool.d.ts +12 -0
  26. package/code-tool.d.ts.map +1 -0
  27. package/code-tool.js +156 -0
  28. package/code-tool.js.map +1 -0
  29. package/code-tool.mjs +120 -0
  30. package/code-tool.mjs.map +1 -0
  31. package/compat.d.mts +58 -0
  32. package/compat.d.mts.map +1 -0
  33. package/compat.d.ts +58 -0
  34. package/compat.d.ts.map +1 -0
  35. package/compat.js +387 -0
  36. package/compat.js.map +1 -0
  37. package/compat.mjs +378 -0
  38. package/compat.mjs.map +1 -0
  39. package/docs-search-tool.d.mts +44 -0
  40. package/docs-search-tool.d.mts.map +1 -0
  41. package/docs-search-tool.d.ts +44 -0
  42. package/docs-search-tool.d.ts.map +1 -0
  43. package/docs-search-tool.js +43 -0
  44. package/docs-search-tool.js.map +1 -0
  45. package/docs-search-tool.mjs +39 -0
  46. package/docs-search-tool.mjs.map +1 -0
  47. package/dynamic-tools.d.mts +12 -0
  48. package/dynamic-tools.d.mts.map +1 -0
  49. package/dynamic-tools.d.ts +12 -0
  50. package/dynamic-tools.d.ts.map +1 -0
  51. package/dynamic-tools.js +135 -0
  52. package/dynamic-tools.js.map +1 -0
  53. package/dynamic-tools.mjs +132 -0
  54. package/dynamic-tools.mjs.map +1 -0
  55. package/filtering.d.mts +2 -0
  56. package/filtering.d.mts.map +1 -0
  57. package/filtering.d.ts +2 -0
  58. package/filtering.d.ts.map +1 -0
  59. package/filtering.js +20 -0
  60. package/filtering.js.map +1 -0
  61. package/filtering.mjs +13 -0
  62. package/filtering.mjs.map +1 -0
  63. package/headers.d.mts +4 -0
  64. package/headers.d.mts.map +1 -0
  65. package/headers.d.ts +4 -0
  66. package/headers.d.ts.map +1 -0
  67. package/headers.js +9 -0
  68. package/headers.js.map +1 -0
  69. package/headers.mjs +5 -0
  70. package/headers.mjs.map +1 -0
  71. package/http.d.mts +9 -0
  72. package/http.d.mts.map +1 -0
  73. package/http.d.ts +9 -0
  74. package/http.d.ts.map +1 -0
  75. package/http.js +108 -0
  76. package/http.js.map +1 -0
  77. package/http.mjs +100 -0
  78. package/http.mjs.map +1 -0
  79. package/index.d.mts +3 -0
  80. package/index.d.mts.map +1 -0
  81. package/index.d.ts +3 -0
  82. package/index.d.ts.map +1 -0
  83. package/index.js +91 -0
  84. package/index.js.map +1 -0
  85. package/index.mjs +89 -0
  86. package/index.mjs.map +1 -0
  87. package/options.d.mts +20 -0
  88. package/options.d.mts.map +1 -0
  89. package/options.d.ts +20 -0
  90. package/options.d.ts.map +1 -0
  91. package/options.js +427 -0
  92. package/options.js.map +1 -0
  93. package/options.mjs +420 -0
  94. package/options.mjs.map +1 -0
  95. package/package.json +218 -0
  96. package/server.d.mts +35 -0
  97. package/server.d.mts.map +1 -0
  98. package/server.d.ts +35 -0
  99. package/server.d.ts.map +1 -0
  100. package/server.js +174 -0
  101. package/server.js.map +1 -0
  102. package/server.mjs +160 -0
  103. package/server.mjs.map +1 -0
  104. package/src/code-tool-paths.cts +3 -0
  105. package/src/code-tool-types.ts +14 -0
  106. package/src/code-tool-worker.ts +283 -0
  107. package/src/code-tool.ts +148 -0
  108. package/src/compat.ts +483 -0
  109. package/src/docs-search-tool.ts +48 -0
  110. package/src/dynamic-tools.ts +153 -0
  111. package/src/filtering.ts +14 -0
  112. package/src/headers.ts +8 -0
  113. package/src/http.ts +127 -0
  114. package/src/index.ts +108 -0
  115. package/src/options.ts +473 -0
  116. package/src/server.ts +207 -0
  117. package/src/stdio.ts +13 -0
  118. package/src/tools/albums/bulk-retrieve-albums.ts +48 -0
  119. package/src/tools/albums/list-tracks-albums.ts +67 -0
  120. package/src/tools/albums/retrieve-albums.ts +47 -0
  121. package/src/tools/artists/list-albums-artists.ts +73 -0
  122. package/src/tools/artists/list-artists.ts +50 -0
  123. package/src/tools/artists/list-related-artists-artists.ts +49 -0
  124. package/src/tools/artists/list-top-tracks-artists.ts +47 -0
  125. package/src/tools/artists/retrieve-artists.ts +49 -0
  126. package/src/tools/audio-analysis/retrieve-audio-analysis.ts +42 -0
  127. package/src/tools/audio-features/list-audio-features.ts +50 -0
  128. package/src/tools/audio-features/retrieve-audio-features.ts +49 -0
  129. package/src/tools/audiobooks/list-audiobooks.ts +56 -0
  130. package/src/tools/audiobooks/list-chapters-audiobooks.ts +68 -0
  131. package/src/tools/audiobooks/retrieve-audiobooks.ts +56 -0
  132. package/src/tools/browse/categories/get-playlists-browse-categories.ts +63 -0
  133. package/src/tools/browse/categories/list-browse-categories.ts +61 -0
  134. package/src/tools/browse/categories/retrieve-browse-categories.ts +58 -0
  135. package/src/tools/browse/get-featured-playlists-browse.ts +61 -0
  136. package/src/tools/browse/get-new-releases-browse.ts +55 -0
  137. package/src/tools/chapters/list-chapters.ts +49 -0
  138. package/src/tools/chapters/retrieve-chapters.ts +48 -0
  139. package/src/tools/episodes/list-episodes.ts +48 -0
  140. package/src/tools/episodes/retrieve-episodes.ts +47 -0
  141. package/src/tools/index.ts +247 -0
  142. package/src/tools/markets/list-markets.ts +44 -0
  143. package/src/tools/me/albums/check-me-albums.ts +50 -0
  144. package/src/tools/me/albums/list-me-albums.ts +54 -0
  145. package/src/tools/me/albums/remove-me-albums.ts +45 -0
  146. package/src/tools/me/albums/save-me-albums.ts +45 -0
  147. package/src/tools/me/audiobooks/check-me-audiobooks.ts +50 -0
  148. package/src/tools/me/audiobooks/list-me-audiobooks.ts +56 -0
  149. package/src/tools/me/audiobooks/remove-me-audiobooks.ts +43 -0
  150. package/src/tools/me/audiobooks/save-me-audiobooks.ts +43 -0
  151. package/src/tools/me/episodes/check-me-episodes.ts +50 -0
  152. package/src/tools/me/episodes/list-me-episodes.ts +55 -0
  153. package/src/tools/me/episodes/remove-me-episodes.ts +46 -0
  154. package/src/tools/me/episodes/save-me-episodes.ts +46 -0
  155. package/src/tools/me/following/check-me-following.ts +56 -0
  156. package/src/tools/me/following/follow-me-following.ts +45 -0
  157. package/src/tools/me/following/list-me-following.ts +60 -0
  158. package/src/tools/me/following/unfollow-me-following.ts +45 -0
  159. package/src/tools/me/player/get-currently-playing-me-player.ts +48 -0
  160. package/src/tools/me/player/get-devices-me-player.ts +44 -0
  161. package/src/tools/me/player/get-state-me-player.ts +49 -0
  162. package/src/tools/me/player/list-recently-played-me-player.ts +55 -0
  163. package/src/tools/me/player/pause-playback-me-player.ts +44 -0
  164. package/src/tools/me/player/queue/add-player-me-queue.ts +47 -0
  165. package/src/tools/me/player/queue/get-player-me-queue.ts +34 -0
  166. package/src/tools/me/player/seek-to-position-me-player.ts +50 -0
  167. package/src/tools/me/player/set-repeat-mode-me-player.ts +50 -0
  168. package/src/tools/me/player/set-volume-me-player.ts +49 -0
  169. package/src/tools/me/player/skip-next-me-player.ts +42 -0
  170. package/src/tools/me/player/skip-previous-me-player.ts +42 -0
  171. package/src/tools/me/player/start-playback-me-player.ts +68 -0
  172. package/src/tools/me/player/toggle-shuffle-me-player.ts +50 -0
  173. package/src/tools/me/player/transfer-me-player.ts +51 -0
  174. package/src/tools/me/playlists/list-me-playlists.ts +56 -0
  175. package/src/tools/me/retrieve-me.ts +44 -0
  176. package/src/tools/me/shows/check-me-shows.ts +50 -0
  177. package/src/tools/me/shows/list-me-shows.ts +56 -0
  178. package/src/tools/me/shows/remove-me-shows.ts +45 -0
  179. package/src/tools/me/shows/save-me-shows.ts +45 -0
  180. package/src/tools/me/top/list-top-artists-me-top.ts +62 -0
  181. package/src/tools/me/top/list-top-tracks-me-top.ts +54 -0
  182. package/src/tools/me/tracks/check-me-tracks.ts +50 -0
  183. package/src/tools/me/tracks/list-me-tracks.ts +54 -0
  184. package/src/tools/me/tracks/remove-me-tracks.ts +45 -0
  185. package/src/tools/me/tracks/save-me-tracks.ts +67 -0
  186. package/src/tools/playlists/followers/check-playlists-followers.ts +57 -0
  187. package/src/tools/playlists/followers/follow-playlists-followers.ts +47 -0
  188. package/src/tools/playlists/followers/unfollow-playlists-followers.ts +42 -0
  189. package/src/tools/playlists/images/list-playlists-images.ts +49 -0
  190. package/src/tools/playlists/images/update-playlists-images.ts +46 -0
  191. package/src/tools/playlists/retrieve-playlists.ts +59 -0
  192. package/src/tools/playlists/tracks/add-playlists-tracks.ts +62 -0
  193. package/src/tools/playlists/tracks/list-playlists-tracks.ts +71 -0
  194. package/src/tools/playlists/tracks/remove-playlists-tracks.ts +70 -0
  195. package/src/tools/playlists/tracks/update-playlists-tracks.ts +75 -0
  196. package/src/tools/playlists/update-playlists.ts +61 -0
  197. package/src/tools/recommendations/get-recommendations.ts +317 -0
  198. package/src/tools/recommendations/list-available-genre-seeds-recommendations.ts +46 -0
  199. package/src/tools/search/retrieve-search.ts +77 -0
  200. package/src/tools/shows/list-episodes-shows.ts +67 -0
  201. package/src/tools/shows/list-shows.ts +56 -0
  202. package/src/tools/shows/retrieve-shows.ts +55 -0
  203. package/src/tools/tracks/list-tracks.ts +48 -0
  204. package/src/tools/tracks/retrieve-tracks.ts +47 -0
  205. package/src/tools/types.ts +103 -0
  206. package/src/tools/users/playlists/create-users-playlists.ts +59 -0
  207. package/src/tools/users/playlists/list-users-playlists.ts +61 -0
  208. package/src/tools/users/retrieve-profile-users.ts +49 -0
  209. package/src/tools.ts +1 -0
  210. package/src/tsconfig.json +11 -0
  211. package/stdio.d.mts +3 -0
  212. package/stdio.d.mts.map +1 -0
  213. package/stdio.d.ts +3 -0
  214. package/stdio.d.ts.map +1 -0
  215. package/stdio.js +14 -0
  216. package/stdio.js.map +1 -0
  217. package/stdio.mjs +10 -0
  218. package/stdio.mjs.map +1 -0
  219. package/tools/albums/bulk-retrieve-albums.d.mts +45 -0
  220. package/tools/albums/bulk-retrieve-albums.d.mts.map +1 -0
  221. package/tools/albums/bulk-retrieve-albums.d.ts +45 -0
  222. package/tools/albums/bulk-retrieve-albums.d.ts.map +1 -0
  223. package/tools/albums/bulk-retrieve-albums.js +43 -0
  224. package/tools/albums/bulk-retrieve-albums.js.map +1 -0
  225. package/tools/albums/bulk-retrieve-albums.mjs +39 -0
  226. package/tools/albums/bulk-retrieve-albums.mjs.map +1 -0
  227. package/tools/albums/list-tracks-albums.d.mts +45 -0
  228. package/tools/albums/list-tracks-albums.d.mts.map +1 -0
  229. package/tools/albums/list-tracks-albums.d.ts +45 -0
  230. package/tools/albums/list-tracks-albums.d.ts.map +1 -0
  231. package/tools/albums/list-tracks-albums.js +60 -0
  232. package/tools/albums/list-tracks-albums.js.map +1 -0
  233. package/tools/albums/list-tracks-albums.mjs +56 -0
  234. package/tools/albums/list-tracks-albums.mjs.map +1 -0
  235. package/tools/albums/retrieve-albums.d.mts +45 -0
  236. package/tools/albums/retrieve-albums.d.mts.map +1 -0
  237. package/tools/albums/retrieve-albums.d.ts +45 -0
  238. package/tools/albums/retrieve-albums.d.ts.map +1 -0
  239. package/tools/albums/retrieve-albums.js +43 -0
  240. package/tools/albums/retrieve-albums.js.map +1 -0
  241. package/tools/albums/retrieve-albums.mjs +39 -0
  242. package/tools/albums/retrieve-albums.mjs.map +1 -0
  243. package/tools/artists/list-albums-artists.d.mts +45 -0
  244. package/tools/artists/list-albums-artists.d.mts.map +1 -0
  245. package/tools/artists/list-albums-artists.d.ts +45 -0
  246. package/tools/artists/list-albums-artists.d.ts.map +1 -0
  247. package/tools/artists/list-albums-artists.js +65 -0
  248. package/tools/artists/list-albums-artists.js.map +1 -0
  249. package/tools/artists/list-albums-artists.mjs +61 -0
  250. package/tools/artists/list-albums-artists.mjs.map +1 -0
  251. package/tools/artists/list-artists.d.mts +45 -0
  252. package/tools/artists/list-artists.d.mts.map +1 -0
  253. package/tools/artists/list-artists.d.ts +45 -0
  254. package/tools/artists/list-artists.d.ts.map +1 -0
  255. package/tools/artists/list-artists.js +44 -0
  256. package/tools/artists/list-artists.js.map +1 -0
  257. package/tools/artists/list-artists.mjs +40 -0
  258. package/tools/artists/list-artists.mjs.map +1 -0
  259. package/tools/artists/list-related-artists-artists.d.mts +45 -0
  260. package/tools/artists/list-related-artists-artists.d.mts.map +1 -0
  261. package/tools/artists/list-related-artists-artists.d.ts +45 -0
  262. package/tools/artists/list-related-artists-artists.d.ts.map +1 -0
  263. package/tools/artists/list-related-artists-artists.js +44 -0
  264. package/tools/artists/list-related-artists-artists.js.map +1 -0
  265. package/tools/artists/list-related-artists-artists.mjs +40 -0
  266. package/tools/artists/list-related-artists-artists.mjs.map +1 -0
  267. package/tools/artists/list-top-tracks-artists.d.mts +45 -0
  268. package/tools/artists/list-top-tracks-artists.d.mts.map +1 -0
  269. package/tools/artists/list-top-tracks-artists.d.ts +45 -0
  270. package/tools/artists/list-top-tracks-artists.d.ts.map +1 -0
  271. package/tools/artists/list-top-tracks-artists.js +43 -0
  272. package/tools/artists/list-top-tracks-artists.js.map +1 -0
  273. package/tools/artists/list-top-tracks-artists.mjs +39 -0
  274. package/tools/artists/list-top-tracks-artists.mjs.map +1 -0
  275. package/tools/artists/retrieve-artists.d.mts +45 -0
  276. package/tools/artists/retrieve-artists.d.mts.map +1 -0
  277. package/tools/artists/retrieve-artists.d.ts +45 -0
  278. package/tools/artists/retrieve-artists.d.ts.map +1 -0
  279. package/tools/artists/retrieve-artists.js +44 -0
  280. package/tools/artists/retrieve-artists.js.map +1 -0
  281. package/tools/artists/retrieve-artists.mjs +40 -0
  282. package/tools/artists/retrieve-artists.mjs.map +1 -0
  283. package/tools/audio-analysis/retrieve-audio-analysis.d.mts +45 -0
  284. package/tools/audio-analysis/retrieve-audio-analysis.d.mts.map +1 -0
  285. package/tools/audio-analysis/retrieve-audio-analysis.d.ts +45 -0
  286. package/tools/audio-analysis/retrieve-audio-analysis.d.ts.map +1 -0
  287. package/tools/audio-analysis/retrieve-audio-analysis.js +38 -0
  288. package/tools/audio-analysis/retrieve-audio-analysis.js.map +1 -0
  289. package/tools/audio-analysis/retrieve-audio-analysis.mjs +34 -0
  290. package/tools/audio-analysis/retrieve-audio-analysis.mjs.map +1 -0
  291. package/tools/audio-features/list-audio-features.d.mts +45 -0
  292. package/tools/audio-features/list-audio-features.d.mts.map +1 -0
  293. package/tools/audio-features/list-audio-features.d.ts +45 -0
  294. package/tools/audio-features/list-audio-features.d.ts.map +1 -0
  295. package/tools/audio-features/list-audio-features.js +44 -0
  296. package/tools/audio-features/list-audio-features.js.map +1 -0
  297. package/tools/audio-features/list-audio-features.mjs +40 -0
  298. package/tools/audio-features/list-audio-features.mjs.map +1 -0
  299. package/tools/audio-features/retrieve-audio-features.d.mts +45 -0
  300. package/tools/audio-features/retrieve-audio-features.d.mts.map +1 -0
  301. package/tools/audio-features/retrieve-audio-features.d.ts +45 -0
  302. package/tools/audio-features/retrieve-audio-features.d.ts.map +1 -0
  303. package/tools/audio-features/retrieve-audio-features.js +44 -0
  304. package/tools/audio-features/retrieve-audio-features.js.map +1 -0
  305. package/tools/audio-features/retrieve-audio-features.mjs +40 -0
  306. package/tools/audio-features/retrieve-audio-features.mjs.map +1 -0
  307. package/tools/audiobooks/list-audiobooks.d.mts +45 -0
  308. package/tools/audiobooks/list-audiobooks.d.mts.map +1 -0
  309. package/tools/audiobooks/list-audiobooks.d.ts +45 -0
  310. package/tools/audiobooks/list-audiobooks.d.ts.map +1 -0
  311. package/tools/audiobooks/list-audiobooks.js +49 -0
  312. package/tools/audiobooks/list-audiobooks.js.map +1 -0
  313. package/tools/audiobooks/list-audiobooks.mjs +45 -0
  314. package/tools/audiobooks/list-audiobooks.mjs.map +1 -0
  315. package/tools/audiobooks/list-chapters-audiobooks.d.mts +45 -0
  316. package/tools/audiobooks/list-chapters-audiobooks.d.mts.map +1 -0
  317. package/tools/audiobooks/list-chapters-audiobooks.d.ts +45 -0
  318. package/tools/audiobooks/list-chapters-audiobooks.d.ts.map +1 -0
  319. package/tools/audiobooks/list-chapters-audiobooks.js +60 -0
  320. package/tools/audiobooks/list-chapters-audiobooks.js.map +1 -0
  321. package/tools/audiobooks/list-chapters-audiobooks.mjs +56 -0
  322. package/tools/audiobooks/list-chapters-audiobooks.mjs.map +1 -0
  323. package/tools/audiobooks/retrieve-audiobooks.d.mts +45 -0
  324. package/tools/audiobooks/retrieve-audiobooks.d.mts.map +1 -0
  325. package/tools/audiobooks/retrieve-audiobooks.d.ts +45 -0
  326. package/tools/audiobooks/retrieve-audiobooks.d.ts.map +1 -0
  327. package/tools/audiobooks/retrieve-audiobooks.js +49 -0
  328. package/tools/audiobooks/retrieve-audiobooks.js.map +1 -0
  329. package/tools/audiobooks/retrieve-audiobooks.mjs +45 -0
  330. package/tools/audiobooks/retrieve-audiobooks.mjs.map +1 -0
  331. package/tools/browse/categories/get-playlists-browse-categories.d.mts +45 -0
  332. package/tools/browse/categories/get-playlists-browse-categories.d.mts.map +1 -0
  333. package/tools/browse/categories/get-playlists-browse-categories.d.ts +45 -0
  334. package/tools/browse/categories/get-playlists-browse-categories.d.ts.map +1 -0
  335. package/tools/browse/categories/get-playlists-browse-categories.js +54 -0
  336. package/tools/browse/categories/get-playlists-browse-categories.js.map +1 -0
  337. package/tools/browse/categories/get-playlists-browse-categories.mjs +50 -0
  338. package/tools/browse/categories/get-playlists-browse-categories.mjs.map +1 -0
  339. package/tools/browse/categories/list-browse-categories.d.mts +45 -0
  340. package/tools/browse/categories/list-browse-categories.d.mts.map +1 -0
  341. package/tools/browse/categories/list-browse-categories.d.ts +45 -0
  342. package/tools/browse/categories/list-browse-categories.d.ts.map +1 -0
  343. package/tools/browse/categories/list-browse-categories.js +54 -0
  344. package/tools/browse/categories/list-browse-categories.js.map +1 -0
  345. package/tools/browse/categories/list-browse-categories.mjs +50 -0
  346. package/tools/browse/categories/list-browse-categories.mjs.map +1 -0
  347. package/tools/browse/categories/retrieve-browse-categories.d.mts +45 -0
  348. package/tools/browse/categories/retrieve-browse-categories.d.mts.map +1 -0
  349. package/tools/browse/categories/retrieve-browse-categories.d.ts +45 -0
  350. package/tools/browse/categories/retrieve-browse-categories.d.ts.map +1 -0
  351. package/tools/browse/categories/retrieve-browse-categories.js +49 -0
  352. package/tools/browse/categories/retrieve-browse-categories.js.map +1 -0
  353. package/tools/browse/categories/retrieve-browse-categories.mjs +45 -0
  354. package/tools/browse/categories/retrieve-browse-categories.mjs.map +1 -0
  355. package/tools/browse/get-featured-playlists-browse.d.mts +45 -0
  356. package/tools/browse/get-featured-playlists-browse.d.mts.map +1 -0
  357. package/tools/browse/get-featured-playlists-browse.d.ts +45 -0
  358. package/tools/browse/get-featured-playlists-browse.d.ts.map +1 -0
  359. package/tools/browse/get-featured-playlists-browse.js +54 -0
  360. package/tools/browse/get-featured-playlists-browse.js.map +1 -0
  361. package/tools/browse/get-featured-playlists-browse.mjs +50 -0
  362. package/tools/browse/get-featured-playlists-browse.mjs.map +1 -0
  363. package/tools/browse/get-new-releases-browse.d.mts +45 -0
  364. package/tools/browse/get-new-releases-browse.d.mts.map +1 -0
  365. package/tools/browse/get-new-releases-browse.d.ts +45 -0
  366. package/tools/browse/get-new-releases-browse.d.ts.map +1 -0
  367. package/tools/browse/get-new-releases-browse.js +49 -0
  368. package/tools/browse/get-new-releases-browse.js.map +1 -0
  369. package/tools/browse/get-new-releases-browse.mjs +45 -0
  370. package/tools/browse/get-new-releases-browse.mjs.map +1 -0
  371. package/tools/chapters/list-chapters.d.mts +45 -0
  372. package/tools/chapters/list-chapters.d.mts.map +1 -0
  373. package/tools/chapters/list-chapters.d.ts +45 -0
  374. package/tools/chapters/list-chapters.d.ts.map +1 -0
  375. package/tools/chapters/list-chapters.js +43 -0
  376. package/tools/chapters/list-chapters.js.map +1 -0
  377. package/tools/chapters/list-chapters.mjs +39 -0
  378. package/tools/chapters/list-chapters.mjs.map +1 -0
  379. package/tools/chapters/retrieve-chapters.d.mts +45 -0
  380. package/tools/chapters/retrieve-chapters.d.mts.map +1 -0
  381. package/tools/chapters/retrieve-chapters.d.ts +45 -0
  382. package/tools/chapters/retrieve-chapters.d.ts.map +1 -0
  383. package/tools/chapters/retrieve-chapters.js +43 -0
  384. package/tools/chapters/retrieve-chapters.js.map +1 -0
  385. package/tools/chapters/retrieve-chapters.mjs +39 -0
  386. package/tools/chapters/retrieve-chapters.mjs.map +1 -0
  387. package/tools/episodes/list-episodes.d.mts +45 -0
  388. package/tools/episodes/list-episodes.d.mts.map +1 -0
  389. package/tools/episodes/list-episodes.d.ts +45 -0
  390. package/tools/episodes/list-episodes.d.ts.map +1 -0
  391. package/tools/episodes/list-episodes.js +43 -0
  392. package/tools/episodes/list-episodes.js.map +1 -0
  393. package/tools/episodes/list-episodes.mjs +39 -0
  394. package/tools/episodes/list-episodes.mjs.map +1 -0
  395. package/tools/episodes/retrieve-episodes.d.mts +45 -0
  396. package/tools/episodes/retrieve-episodes.d.mts.map +1 -0
  397. package/tools/episodes/retrieve-episodes.d.ts +45 -0
  398. package/tools/episodes/retrieve-episodes.d.ts.map +1 -0
  399. package/tools/episodes/retrieve-episodes.js +43 -0
  400. package/tools/episodes/retrieve-episodes.js.map +1 -0
  401. package/tools/episodes/retrieve-episodes.mjs +39 -0
  402. package/tools/episodes/retrieve-episodes.mjs.map +1 -0
  403. package/tools/index.d.mts +10 -0
  404. package/tools/index.d.mts.map +1 -0
  405. package/tools/index.d.ts +10 -0
  406. package/tools/index.d.ts.map +1 -0
  407. package/tools/index.js +231 -0
  408. package/tools/index.js.map +1 -0
  409. package/tools/index.mjs +224 -0
  410. package/tools/index.mjs.map +1 -0
  411. package/tools/markets/list-markets.d.mts +45 -0
  412. package/tools/markets/list-markets.d.mts.map +1 -0
  413. package/tools/markets/list-markets.d.ts +45 -0
  414. package/tools/markets/list-markets.d.ts.map +1 -0
  415. package/tools/markets/list-markets.js +39 -0
  416. package/tools/markets/list-markets.js.map +1 -0
  417. package/tools/markets/list-markets.mjs +35 -0
  418. package/tools/markets/list-markets.mjs.map +1 -0
  419. package/tools/me/albums/check-me-albums.d.mts +45 -0
  420. package/tools/me/albums/check-me-albums.d.mts.map +1 -0
  421. package/tools/me/albums/check-me-albums.d.ts +45 -0
  422. package/tools/me/albums/check-me-albums.d.ts.map +1 -0
  423. package/tools/me/albums/check-me-albums.js +44 -0
  424. package/tools/me/albums/check-me-albums.js.map +1 -0
  425. package/tools/me/albums/check-me-albums.mjs +40 -0
  426. package/tools/me/albums/check-me-albums.mjs.map +1 -0
  427. package/tools/me/albums/list-me-albums.d.mts +45 -0
  428. package/tools/me/albums/list-me-albums.d.mts.map +1 -0
  429. package/tools/me/albums/list-me-albums.d.ts +45 -0
  430. package/tools/me/albums/list-me-albums.d.ts.map +1 -0
  431. package/tools/me/albums/list-me-albums.js +49 -0
  432. package/tools/me/albums/list-me-albums.js.map +1 -0
  433. package/tools/me/albums/list-me-albums.mjs +45 -0
  434. package/tools/me/albums/list-me-albums.mjs.map +1 -0
  435. package/tools/me/albums/remove-me-albums.d.mts +45 -0
  436. package/tools/me/albums/remove-me-albums.d.mts.map +1 -0
  437. package/tools/me/albums/remove-me-albums.d.ts +45 -0
  438. package/tools/me/albums/remove-me-albums.d.ts.map +1 -0
  439. package/tools/me/albums/remove-me-albums.js +41 -0
  440. package/tools/me/albums/remove-me-albums.js.map +1 -0
  441. package/tools/me/albums/remove-me-albums.mjs +37 -0
  442. package/tools/me/albums/remove-me-albums.mjs.map +1 -0
  443. package/tools/me/albums/save-me-albums.d.mts +45 -0
  444. package/tools/me/albums/save-me-albums.d.mts.map +1 -0
  445. package/tools/me/albums/save-me-albums.d.ts +45 -0
  446. package/tools/me/albums/save-me-albums.d.ts.map +1 -0
  447. package/tools/me/albums/save-me-albums.js +41 -0
  448. package/tools/me/albums/save-me-albums.js.map +1 -0
  449. package/tools/me/albums/save-me-albums.mjs +37 -0
  450. package/tools/me/albums/save-me-albums.mjs.map +1 -0
  451. package/tools/me/audiobooks/check-me-audiobooks.d.mts +45 -0
  452. package/tools/me/audiobooks/check-me-audiobooks.d.mts.map +1 -0
  453. package/tools/me/audiobooks/check-me-audiobooks.d.ts +45 -0
  454. package/tools/me/audiobooks/check-me-audiobooks.d.ts.map +1 -0
  455. package/tools/me/audiobooks/check-me-audiobooks.js +44 -0
  456. package/tools/me/audiobooks/check-me-audiobooks.js.map +1 -0
  457. package/tools/me/audiobooks/check-me-audiobooks.mjs +40 -0
  458. package/tools/me/audiobooks/check-me-audiobooks.mjs.map +1 -0
  459. package/tools/me/audiobooks/list-me-audiobooks.d.mts +45 -0
  460. package/tools/me/audiobooks/list-me-audiobooks.d.mts.map +1 -0
  461. package/tools/me/audiobooks/list-me-audiobooks.d.ts +45 -0
  462. package/tools/me/audiobooks/list-me-audiobooks.d.ts.map +1 -0
  463. package/tools/me/audiobooks/list-me-audiobooks.js +50 -0
  464. package/tools/me/audiobooks/list-me-audiobooks.js.map +1 -0
  465. package/tools/me/audiobooks/list-me-audiobooks.mjs +46 -0
  466. package/tools/me/audiobooks/list-me-audiobooks.mjs.map +1 -0
  467. package/tools/me/audiobooks/remove-me-audiobooks.d.mts +45 -0
  468. package/tools/me/audiobooks/remove-me-audiobooks.d.mts.map +1 -0
  469. package/tools/me/audiobooks/remove-me-audiobooks.d.ts +45 -0
  470. package/tools/me/audiobooks/remove-me-audiobooks.d.ts.map +1 -0
  471. package/tools/me/audiobooks/remove-me-audiobooks.js +39 -0
  472. package/tools/me/audiobooks/remove-me-audiobooks.js.map +1 -0
  473. package/tools/me/audiobooks/remove-me-audiobooks.mjs +35 -0
  474. package/tools/me/audiobooks/remove-me-audiobooks.mjs.map +1 -0
  475. package/tools/me/audiobooks/save-me-audiobooks.d.mts +45 -0
  476. package/tools/me/audiobooks/save-me-audiobooks.d.mts.map +1 -0
  477. package/tools/me/audiobooks/save-me-audiobooks.d.ts +45 -0
  478. package/tools/me/audiobooks/save-me-audiobooks.d.ts.map +1 -0
  479. package/tools/me/audiobooks/save-me-audiobooks.js +39 -0
  480. package/tools/me/audiobooks/save-me-audiobooks.js.map +1 -0
  481. package/tools/me/audiobooks/save-me-audiobooks.mjs +35 -0
  482. package/tools/me/audiobooks/save-me-audiobooks.mjs.map +1 -0
  483. package/tools/me/episodes/check-me-episodes.d.mts +45 -0
  484. package/tools/me/episodes/check-me-episodes.d.mts.map +1 -0
  485. package/tools/me/episodes/check-me-episodes.d.ts +45 -0
  486. package/tools/me/episodes/check-me-episodes.d.ts.map +1 -0
  487. package/tools/me/episodes/check-me-episodes.js +44 -0
  488. package/tools/me/episodes/check-me-episodes.js.map +1 -0
  489. package/tools/me/episodes/check-me-episodes.mjs +40 -0
  490. package/tools/me/episodes/check-me-episodes.mjs.map +1 -0
  491. package/tools/me/episodes/list-me-episodes.d.mts +45 -0
  492. package/tools/me/episodes/list-me-episodes.d.mts.map +1 -0
  493. package/tools/me/episodes/list-me-episodes.d.ts +45 -0
  494. package/tools/me/episodes/list-me-episodes.d.ts.map +1 -0
  495. package/tools/me/episodes/list-me-episodes.js +49 -0
  496. package/tools/me/episodes/list-me-episodes.js.map +1 -0
  497. package/tools/me/episodes/list-me-episodes.mjs +45 -0
  498. package/tools/me/episodes/list-me-episodes.mjs.map +1 -0
  499. package/tools/me/episodes/remove-me-episodes.d.mts +45 -0
  500. package/tools/me/episodes/remove-me-episodes.d.mts.map +1 -0
  501. package/tools/me/episodes/remove-me-episodes.d.ts +45 -0
  502. package/tools/me/episodes/remove-me-episodes.d.ts.map +1 -0
  503. package/tools/me/episodes/remove-me-episodes.js +41 -0
  504. package/tools/me/episodes/remove-me-episodes.js.map +1 -0
  505. package/tools/me/episodes/remove-me-episodes.mjs +37 -0
  506. package/tools/me/episodes/remove-me-episodes.mjs.map +1 -0
  507. package/tools/me/episodes/save-me-episodes.d.mts +45 -0
  508. package/tools/me/episodes/save-me-episodes.d.mts.map +1 -0
  509. package/tools/me/episodes/save-me-episodes.d.ts +45 -0
  510. package/tools/me/episodes/save-me-episodes.d.ts.map +1 -0
  511. package/tools/me/episodes/save-me-episodes.js +41 -0
  512. package/tools/me/episodes/save-me-episodes.js.map +1 -0
  513. package/tools/me/episodes/save-me-episodes.mjs +37 -0
  514. package/tools/me/episodes/save-me-episodes.mjs.map +1 -0
  515. package/tools/me/following/check-me-following.d.mts +45 -0
  516. package/tools/me/following/check-me-following.d.mts.map +1 -0
  517. package/tools/me/following/check-me-following.d.ts +45 -0
  518. package/tools/me/following/check-me-following.d.ts.map +1 -0
  519. package/tools/me/following/check-me-following.js +50 -0
  520. package/tools/me/following/check-me-following.js.map +1 -0
  521. package/tools/me/following/check-me-following.mjs +46 -0
  522. package/tools/me/following/check-me-following.mjs.map +1 -0
  523. package/tools/me/following/follow-me-following.d.mts +45 -0
  524. package/tools/me/following/follow-me-following.d.mts.map +1 -0
  525. package/tools/me/following/follow-me-following.d.ts +45 -0
  526. package/tools/me/following/follow-me-following.d.ts.map +1 -0
  527. package/tools/me/following/follow-me-following.js +41 -0
  528. package/tools/me/following/follow-me-following.js.map +1 -0
  529. package/tools/me/following/follow-me-following.mjs +37 -0
  530. package/tools/me/following/follow-me-following.mjs.map +1 -0
  531. package/tools/me/following/list-me-following.d.mts +45 -0
  532. package/tools/me/following/list-me-following.d.mts.map +1 -0
  533. package/tools/me/following/list-me-following.d.ts +45 -0
  534. package/tools/me/following/list-me-following.d.ts.map +1 -0
  535. package/tools/me/following/list-me-following.js +55 -0
  536. package/tools/me/following/list-me-following.js.map +1 -0
  537. package/tools/me/following/list-me-following.mjs +51 -0
  538. package/tools/me/following/list-me-following.mjs.map +1 -0
  539. package/tools/me/following/unfollow-me-following.d.mts +45 -0
  540. package/tools/me/following/unfollow-me-following.d.mts.map +1 -0
  541. package/tools/me/following/unfollow-me-following.d.ts +45 -0
  542. package/tools/me/following/unfollow-me-following.d.ts.map +1 -0
  543. package/tools/me/following/unfollow-me-following.js +41 -0
  544. package/tools/me/following/unfollow-me-following.js.map +1 -0
  545. package/tools/me/following/unfollow-me-following.mjs +37 -0
  546. package/tools/me/following/unfollow-me-following.mjs.map +1 -0
  547. package/tools/me/player/get-currently-playing-me-player.d.mts +45 -0
  548. package/tools/me/player/get-currently-playing-me-player.d.mts.map +1 -0
  549. package/tools/me/player/get-currently-playing-me-player.d.ts +45 -0
  550. package/tools/me/player/get-currently-playing-me-player.d.ts.map +1 -0
  551. package/tools/me/player/get-currently-playing-me-player.js +43 -0
  552. package/tools/me/player/get-currently-playing-me-player.js.map +1 -0
  553. package/tools/me/player/get-currently-playing-me-player.mjs +39 -0
  554. package/tools/me/player/get-currently-playing-me-player.mjs.map +1 -0
  555. package/tools/me/player/get-devices-me-player.d.mts +45 -0
  556. package/tools/me/player/get-devices-me-player.d.mts.map +1 -0
  557. package/tools/me/player/get-devices-me-player.d.ts +45 -0
  558. package/tools/me/player/get-devices-me-player.d.ts.map +1 -0
  559. package/tools/me/player/get-devices-me-player.js +39 -0
  560. package/tools/me/player/get-devices-me-player.js.map +1 -0
  561. package/tools/me/player/get-devices-me-player.mjs +35 -0
  562. package/tools/me/player/get-devices-me-player.mjs.map +1 -0
  563. package/tools/me/player/get-state-me-player.d.mts +45 -0
  564. package/tools/me/player/get-state-me-player.d.mts.map +1 -0
  565. package/tools/me/player/get-state-me-player.d.ts +45 -0
  566. package/tools/me/player/get-state-me-player.d.ts.map +1 -0
  567. package/tools/me/player/get-state-me-player.js +43 -0
  568. package/tools/me/player/get-state-me-player.js.map +1 -0
  569. package/tools/me/player/get-state-me-player.mjs +39 -0
  570. package/tools/me/player/get-state-me-player.mjs.map +1 -0
  571. package/tools/me/player/list-recently-played-me-player.d.mts +45 -0
  572. package/tools/me/player/list-recently-played-me-player.d.mts.map +1 -0
  573. package/tools/me/player/list-recently-played-me-player.d.ts +45 -0
  574. package/tools/me/player/list-recently-played-me-player.d.ts.map +1 -0
  575. package/tools/me/player/list-recently-played-me-player.js +49 -0
  576. package/tools/me/player/list-recently-played-me-player.js.map +1 -0
  577. package/tools/me/player/list-recently-played-me-player.mjs +45 -0
  578. package/tools/me/player/list-recently-played-me-player.mjs.map +1 -0
  579. package/tools/me/player/pause-playback-me-player.d.mts +45 -0
  580. package/tools/me/player/pause-playback-me-player.d.mts.map +1 -0
  581. package/tools/me/player/pause-playback-me-player.d.ts +45 -0
  582. package/tools/me/player/pause-playback-me-player.d.ts.map +1 -0
  583. package/tools/me/player/pause-playback-me-player.js +39 -0
  584. package/tools/me/player/pause-playback-me-player.js.map +1 -0
  585. package/tools/me/player/pause-playback-me-player.mjs +35 -0
  586. package/tools/me/player/pause-playback-me-player.mjs.map +1 -0
  587. package/tools/me/player/queue/add-player-me-queue.d.mts +45 -0
  588. package/tools/me/player/queue/add-player-me-queue.d.mts.map +1 -0
  589. package/tools/me/player/queue/add-player-me-queue.d.ts +45 -0
  590. package/tools/me/player/queue/add-player-me-queue.d.ts.map +1 -0
  591. package/tools/me/player/queue/add-player-me-queue.js +42 -0
  592. package/tools/me/player/queue/add-player-me-queue.js.map +1 -0
  593. package/tools/me/player/queue/add-player-me-queue.mjs +38 -0
  594. package/tools/me/player/queue/add-player-me-queue.mjs.map +1 -0
  595. package/tools/me/player/queue/get-player-me-queue.d.mts +45 -0
  596. package/tools/me/player/queue/get-player-me-queue.d.mts.map +1 -0
  597. package/tools/me/player/queue/get-player-me-queue.d.ts +45 -0
  598. package/tools/me/player/queue/get-player-me-queue.d.ts.map +1 -0
  599. package/tools/me/player/queue/get-player-me-queue.js +31 -0
  600. package/tools/me/player/queue/get-player-me-queue.js.map +1 -0
  601. package/tools/me/player/queue/get-player-me-queue.mjs +27 -0
  602. package/tools/me/player/queue/get-player-me-queue.mjs.map +1 -0
  603. package/tools/me/player/seek-to-position-me-player.d.mts +45 -0
  604. package/tools/me/player/seek-to-position-me-player.d.mts.map +1 -0
  605. package/tools/me/player/seek-to-position-me-player.d.ts +45 -0
  606. package/tools/me/player/seek-to-position-me-player.d.ts.map +1 -0
  607. package/tools/me/player/seek-to-position-me-player.js +44 -0
  608. package/tools/me/player/seek-to-position-me-player.js.map +1 -0
  609. package/tools/me/player/seek-to-position-me-player.mjs +40 -0
  610. package/tools/me/player/seek-to-position-me-player.mjs.map +1 -0
  611. package/tools/me/player/set-repeat-mode-me-player.d.mts +45 -0
  612. package/tools/me/player/set-repeat-mode-me-player.d.mts.map +1 -0
  613. package/tools/me/player/set-repeat-mode-me-player.d.ts +45 -0
  614. package/tools/me/player/set-repeat-mode-me-player.d.ts.map +1 -0
  615. package/tools/me/player/set-repeat-mode-me-player.js +44 -0
  616. package/tools/me/player/set-repeat-mode-me-player.js.map +1 -0
  617. package/tools/me/player/set-repeat-mode-me-player.mjs +40 -0
  618. package/tools/me/player/set-repeat-mode-me-player.mjs.map +1 -0
  619. package/tools/me/player/set-volume-me-player.d.mts +45 -0
  620. package/tools/me/player/set-volume-me-player.d.mts.map +1 -0
  621. package/tools/me/player/set-volume-me-player.d.ts +45 -0
  622. package/tools/me/player/set-volume-me-player.d.ts.map +1 -0
  623. package/tools/me/player/set-volume-me-player.js +44 -0
  624. package/tools/me/player/set-volume-me-player.js.map +1 -0
  625. package/tools/me/player/set-volume-me-player.mjs +40 -0
  626. package/tools/me/player/set-volume-me-player.mjs.map +1 -0
  627. package/tools/me/player/skip-next-me-player.d.mts +45 -0
  628. package/tools/me/player/skip-next-me-player.d.mts.map +1 -0
  629. package/tools/me/player/skip-next-me-player.d.ts +45 -0
  630. package/tools/me/player/skip-next-me-player.d.ts.map +1 -0
  631. package/tools/me/player/skip-next-me-player.js +37 -0
  632. package/tools/me/player/skip-next-me-player.js.map +1 -0
  633. package/tools/me/player/skip-next-me-player.mjs +33 -0
  634. package/tools/me/player/skip-next-me-player.mjs.map +1 -0
  635. package/tools/me/player/skip-previous-me-player.d.mts +45 -0
  636. package/tools/me/player/skip-previous-me-player.d.mts.map +1 -0
  637. package/tools/me/player/skip-previous-me-player.d.ts +45 -0
  638. package/tools/me/player/skip-previous-me-player.d.ts.map +1 -0
  639. package/tools/me/player/skip-previous-me-player.js +37 -0
  640. package/tools/me/player/skip-previous-me-player.js.map +1 -0
  641. package/tools/me/player/skip-previous-me-player.mjs +33 -0
  642. package/tools/me/player/skip-previous-me-player.mjs.map +1 -0
  643. package/tools/me/player/start-playback-me-player.d.mts +45 -0
  644. package/tools/me/player/start-playback-me-player.d.mts.map +1 -0
  645. package/tools/me/player/start-playback-me-player.d.ts +45 -0
  646. package/tools/me/player/start-playback-me-player.d.ts.map +1 -0
  647. package/tools/me/player/start-playback-me-player.js +59 -0
  648. package/tools/me/player/start-playback-me-player.js.map +1 -0
  649. package/tools/me/player/start-playback-me-player.mjs +55 -0
  650. package/tools/me/player/start-playback-me-player.mjs.map +1 -0
  651. package/tools/me/player/toggle-shuffle-me-player.d.mts +45 -0
  652. package/tools/me/player/toggle-shuffle-me-player.d.mts.map +1 -0
  653. package/tools/me/player/toggle-shuffle-me-player.d.ts +45 -0
  654. package/tools/me/player/toggle-shuffle-me-player.d.ts.map +1 -0
  655. package/tools/me/player/toggle-shuffle-me-player.js +44 -0
  656. package/tools/me/player/toggle-shuffle-me-player.js.map +1 -0
  657. package/tools/me/player/toggle-shuffle-me-player.mjs +40 -0
  658. package/tools/me/player/toggle-shuffle-me-player.mjs.map +1 -0
  659. package/tools/me/player/transfer-me-player.d.mts +45 -0
  660. package/tools/me/player/transfer-me-player.d.mts.map +1 -0
  661. package/tools/me/player/transfer-me-player.d.ts +45 -0
  662. package/tools/me/player/transfer-me-player.d.ts.map +1 -0
  663. package/tools/me/player/transfer-me-player.js +45 -0
  664. package/tools/me/player/transfer-me-player.js.map +1 -0
  665. package/tools/me/player/transfer-me-player.mjs +41 -0
  666. package/tools/me/player/transfer-me-player.mjs.map +1 -0
  667. package/tools/me/playlists/list-me-playlists.d.mts +45 -0
  668. package/tools/me/playlists/list-me-playlists.d.mts.map +1 -0
  669. package/tools/me/playlists/list-me-playlists.d.ts +45 -0
  670. package/tools/me/playlists/list-me-playlists.d.ts.map +1 -0
  671. package/tools/me/playlists/list-me-playlists.js +50 -0
  672. package/tools/me/playlists/list-me-playlists.js.map +1 -0
  673. package/tools/me/playlists/list-me-playlists.mjs +46 -0
  674. package/tools/me/playlists/list-me-playlists.mjs.map +1 -0
  675. package/tools/me/retrieve-me.d.mts +45 -0
  676. package/tools/me/retrieve-me.d.mts.map +1 -0
  677. package/tools/me/retrieve-me.d.ts +45 -0
  678. package/tools/me/retrieve-me.d.ts.map +1 -0
  679. package/tools/me/retrieve-me.js +39 -0
  680. package/tools/me/retrieve-me.js.map +1 -0
  681. package/tools/me/retrieve-me.mjs +35 -0
  682. package/tools/me/retrieve-me.mjs.map +1 -0
  683. package/tools/me/shows/check-me-shows.d.mts +45 -0
  684. package/tools/me/shows/check-me-shows.d.mts.map +1 -0
  685. package/tools/me/shows/check-me-shows.d.ts +45 -0
  686. package/tools/me/shows/check-me-shows.d.ts.map +1 -0
  687. package/tools/me/shows/check-me-shows.js +44 -0
  688. package/tools/me/shows/check-me-shows.js.map +1 -0
  689. package/tools/me/shows/check-me-shows.mjs +40 -0
  690. package/tools/me/shows/check-me-shows.mjs.map +1 -0
  691. package/tools/me/shows/list-me-shows.d.mts +45 -0
  692. package/tools/me/shows/list-me-shows.d.mts.map +1 -0
  693. package/tools/me/shows/list-me-shows.d.ts +45 -0
  694. package/tools/me/shows/list-me-shows.d.ts.map +1 -0
  695. package/tools/me/shows/list-me-shows.js +50 -0
  696. package/tools/me/shows/list-me-shows.js.map +1 -0
  697. package/tools/me/shows/list-me-shows.mjs +46 -0
  698. package/tools/me/shows/list-me-shows.mjs.map +1 -0
  699. package/tools/me/shows/remove-me-shows.d.mts +45 -0
  700. package/tools/me/shows/remove-me-shows.d.mts.map +1 -0
  701. package/tools/me/shows/remove-me-shows.d.ts +45 -0
  702. package/tools/me/shows/remove-me-shows.d.ts.map +1 -0
  703. package/tools/me/shows/remove-me-shows.js +41 -0
  704. package/tools/me/shows/remove-me-shows.js.map +1 -0
  705. package/tools/me/shows/remove-me-shows.mjs +37 -0
  706. package/tools/me/shows/remove-me-shows.mjs.map +1 -0
  707. package/tools/me/shows/save-me-shows.d.mts +45 -0
  708. package/tools/me/shows/save-me-shows.d.mts.map +1 -0
  709. package/tools/me/shows/save-me-shows.d.ts +45 -0
  710. package/tools/me/shows/save-me-shows.d.ts.map +1 -0
  711. package/tools/me/shows/save-me-shows.js +41 -0
  712. package/tools/me/shows/save-me-shows.js.map +1 -0
  713. package/tools/me/shows/save-me-shows.mjs +37 -0
  714. package/tools/me/shows/save-me-shows.mjs.map +1 -0
  715. package/tools/me/top/list-top-artists-me-top.d.mts +45 -0
  716. package/tools/me/top/list-top-artists-me-top.d.mts.map +1 -0
  717. package/tools/me/top/list-top-artists-me-top.d.ts +45 -0
  718. package/tools/me/top/list-top-artists-me-top.d.ts.map +1 -0
  719. package/tools/me/top/list-top-artists-me-top.js +55 -0
  720. package/tools/me/top/list-top-artists-me-top.js.map +1 -0
  721. package/tools/me/top/list-top-artists-me-top.mjs +51 -0
  722. package/tools/me/top/list-top-artists-me-top.mjs.map +1 -0
  723. package/tools/me/top/list-top-tracks-me-top.d.mts +45 -0
  724. package/tools/me/top/list-top-tracks-me-top.d.mts.map +1 -0
  725. package/tools/me/top/list-top-tracks-me-top.d.ts +45 -0
  726. package/tools/me/top/list-top-tracks-me-top.d.ts.map +1 -0
  727. package/tools/me/top/list-top-tracks-me-top.js +49 -0
  728. package/tools/me/top/list-top-tracks-me-top.js.map +1 -0
  729. package/tools/me/top/list-top-tracks-me-top.mjs +45 -0
  730. package/tools/me/top/list-top-tracks-me-top.mjs.map +1 -0
  731. package/tools/me/tracks/check-me-tracks.d.mts +45 -0
  732. package/tools/me/tracks/check-me-tracks.d.mts.map +1 -0
  733. package/tools/me/tracks/check-me-tracks.d.ts +45 -0
  734. package/tools/me/tracks/check-me-tracks.d.ts.map +1 -0
  735. package/tools/me/tracks/check-me-tracks.js +44 -0
  736. package/tools/me/tracks/check-me-tracks.js.map +1 -0
  737. package/tools/me/tracks/check-me-tracks.mjs +40 -0
  738. package/tools/me/tracks/check-me-tracks.mjs.map +1 -0
  739. package/tools/me/tracks/list-me-tracks.d.mts +45 -0
  740. package/tools/me/tracks/list-me-tracks.d.mts.map +1 -0
  741. package/tools/me/tracks/list-me-tracks.d.ts +45 -0
  742. package/tools/me/tracks/list-me-tracks.d.ts.map +1 -0
  743. package/tools/me/tracks/list-me-tracks.js +49 -0
  744. package/tools/me/tracks/list-me-tracks.js.map +1 -0
  745. package/tools/me/tracks/list-me-tracks.mjs +45 -0
  746. package/tools/me/tracks/list-me-tracks.mjs.map +1 -0
  747. package/tools/me/tracks/remove-me-tracks.d.mts +45 -0
  748. package/tools/me/tracks/remove-me-tracks.d.mts.map +1 -0
  749. package/tools/me/tracks/remove-me-tracks.d.ts +45 -0
  750. package/tools/me/tracks/remove-me-tracks.d.ts.map +1 -0
  751. package/tools/me/tracks/remove-me-tracks.js +41 -0
  752. package/tools/me/tracks/remove-me-tracks.js.map +1 -0
  753. package/tools/me/tracks/remove-me-tracks.mjs +37 -0
  754. package/tools/me/tracks/remove-me-tracks.mjs.map +1 -0
  755. package/tools/me/tracks/save-me-tracks.d.mts +45 -0
  756. package/tools/me/tracks/save-me-tracks.d.mts.map +1 -0
  757. package/tools/me/tracks/save-me-tracks.d.ts +45 -0
  758. package/tools/me/tracks/save-me-tracks.d.ts.map +1 -0
  759. package/tools/me/tracks/save-me-tracks.js +60 -0
  760. package/tools/me/tracks/save-me-tracks.js.map +1 -0
  761. package/tools/me/tracks/save-me-tracks.mjs +56 -0
  762. package/tools/me/tracks/save-me-tracks.mjs.map +1 -0
  763. package/tools/playlists/followers/check-playlists-followers.d.mts +45 -0
  764. package/tools/playlists/followers/check-playlists-followers.d.mts.map +1 -0
  765. package/tools/playlists/followers/check-playlists-followers.d.ts +45 -0
  766. package/tools/playlists/followers/check-playlists-followers.d.ts.map +1 -0
  767. package/tools/playlists/followers/check-playlists-followers.js +49 -0
  768. package/tools/playlists/followers/check-playlists-followers.js.map +1 -0
  769. package/tools/playlists/followers/check-playlists-followers.mjs +45 -0
  770. package/tools/playlists/followers/check-playlists-followers.mjs.map +1 -0
  771. package/tools/playlists/followers/follow-playlists-followers.d.mts +45 -0
  772. package/tools/playlists/followers/follow-playlists-followers.d.mts.map +1 -0
  773. package/tools/playlists/followers/follow-playlists-followers.d.ts +45 -0
  774. package/tools/playlists/followers/follow-playlists-followers.d.ts.map +1 -0
  775. package/tools/playlists/followers/follow-playlists-followers.js +43 -0
  776. package/tools/playlists/followers/follow-playlists-followers.js.map +1 -0
  777. package/tools/playlists/followers/follow-playlists-followers.mjs +39 -0
  778. package/tools/playlists/followers/follow-playlists-followers.mjs.map +1 -0
  779. package/tools/playlists/followers/unfollow-playlists-followers.d.mts +45 -0
  780. package/tools/playlists/followers/unfollow-playlists-followers.d.mts.map +1 -0
  781. package/tools/playlists/followers/unfollow-playlists-followers.d.ts +45 -0
  782. package/tools/playlists/followers/unfollow-playlists-followers.d.ts.map +1 -0
  783. package/tools/playlists/followers/unfollow-playlists-followers.js +39 -0
  784. package/tools/playlists/followers/unfollow-playlists-followers.js.map +1 -0
  785. package/tools/playlists/followers/unfollow-playlists-followers.mjs +35 -0
  786. package/tools/playlists/followers/unfollow-playlists-followers.mjs.map +1 -0
  787. package/tools/playlists/images/list-playlists-images.d.mts +45 -0
  788. package/tools/playlists/images/list-playlists-images.d.mts.map +1 -0
  789. package/tools/playlists/images/list-playlists-images.d.ts +45 -0
  790. package/tools/playlists/images/list-playlists-images.d.ts.map +1 -0
  791. package/tools/playlists/images/list-playlists-images.js +44 -0
  792. package/tools/playlists/images/list-playlists-images.js.map +1 -0
  793. package/tools/playlists/images/list-playlists-images.mjs +40 -0
  794. package/tools/playlists/images/list-playlists-images.mjs.map +1 -0
  795. package/tools/playlists/images/update-playlists-images.d.mts +45 -0
  796. package/tools/playlists/images/update-playlists-images.d.mts.map +1 -0
  797. package/tools/playlists/images/update-playlists-images.d.ts +45 -0
  798. package/tools/playlists/images/update-playlists-images.d.ts.map +1 -0
  799. package/tools/playlists/images/update-playlists-images.js +43 -0
  800. package/tools/playlists/images/update-playlists-images.js.map +1 -0
  801. package/tools/playlists/images/update-playlists-images.mjs +39 -0
  802. package/tools/playlists/images/update-playlists-images.mjs.map +1 -0
  803. package/tools/playlists/retrieve-playlists.d.mts +45 -0
  804. package/tools/playlists/retrieve-playlists.d.mts.map +1 -0
  805. package/tools/playlists/retrieve-playlists.d.ts +45 -0
  806. package/tools/playlists/retrieve-playlists.d.ts.map +1 -0
  807. package/tools/playlists/retrieve-playlists.js +53 -0
  808. package/tools/playlists/retrieve-playlists.js.map +1 -0
  809. package/tools/playlists/retrieve-playlists.mjs +49 -0
  810. package/tools/playlists/retrieve-playlists.mjs.map +1 -0
  811. package/tools/playlists/tracks/add-playlists-tracks.d.mts +45 -0
  812. package/tools/playlists/tracks/add-playlists-tracks.d.mts.map +1 -0
  813. package/tools/playlists/tracks/add-playlists-tracks.d.ts +45 -0
  814. package/tools/playlists/tracks/add-playlists-tracks.d.ts.map +1 -0
  815. package/tools/playlists/tracks/add-playlists-tracks.js +53 -0
  816. package/tools/playlists/tracks/add-playlists-tracks.js.map +1 -0
  817. package/tools/playlists/tracks/add-playlists-tracks.mjs +49 -0
  818. package/tools/playlists/tracks/add-playlists-tracks.mjs.map +1 -0
  819. package/tools/playlists/tracks/list-playlists-tracks.d.mts +45 -0
  820. package/tools/playlists/tracks/list-playlists-tracks.d.mts.map +1 -0
  821. package/tools/playlists/tracks/list-playlists-tracks.d.ts +45 -0
  822. package/tools/playlists/tracks/list-playlists-tracks.d.ts.map +1 -0
  823. package/tools/playlists/tracks/list-playlists-tracks.js +64 -0
  824. package/tools/playlists/tracks/list-playlists-tracks.js.map +1 -0
  825. package/tools/playlists/tracks/list-playlists-tracks.mjs +60 -0
  826. package/tools/playlists/tracks/list-playlists-tracks.mjs.map +1 -0
  827. package/tools/playlists/tracks/remove-playlists-tracks.d.mts +45 -0
  828. package/tools/playlists/tracks/remove-playlists-tracks.d.mts.map +1 -0
  829. package/tools/playlists/tracks/remove-playlists-tracks.d.ts +45 -0
  830. package/tools/playlists/tracks/remove-playlists-tracks.d.ts.map +1 -0
  831. package/tools/playlists/tracks/remove-playlists-tracks.js +61 -0
  832. package/tools/playlists/tracks/remove-playlists-tracks.js.map +1 -0
  833. package/tools/playlists/tracks/remove-playlists-tracks.mjs +57 -0
  834. package/tools/playlists/tracks/remove-playlists-tracks.mjs.map +1 -0
  835. package/tools/playlists/tracks/update-playlists-tracks.d.mts +45 -0
  836. package/tools/playlists/tracks/update-playlists-tracks.d.mts.map +1 -0
  837. package/tools/playlists/tracks/update-playlists-tracks.d.ts +45 -0
  838. package/tools/playlists/tracks/update-playlists-tracks.d.ts.map +1 -0
  839. package/tools/playlists/tracks/update-playlists-tracks.js +66 -0
  840. package/tools/playlists/tracks/update-playlists-tracks.js.map +1 -0
  841. package/tools/playlists/tracks/update-playlists-tracks.mjs +62 -0
  842. package/tools/playlists/tracks/update-playlists-tracks.mjs.map +1 -0
  843. package/tools/playlists/update-playlists.d.mts +45 -0
  844. package/tools/playlists/update-playlists.d.mts.map +1 -0
  845. package/tools/playlists/update-playlists.d.ts +45 -0
  846. package/tools/playlists/update-playlists.d.ts.map +1 -0
  847. package/tools/playlists/update-playlists.js +55 -0
  848. package/tools/playlists/update-playlists.js.map +1 -0
  849. package/tools/playlists/update-playlists.mjs +51 -0
  850. package/tools/playlists/update-playlists.mjs.map +1 -0
  851. package/tools/recommendations/get-recommendations.d.mts +45 -0
  852. package/tools/recommendations/get-recommendations.d.mts.map +1 -0
  853. package/tools/recommendations/get-recommendations.d.ts +45 -0
  854. package/tools/recommendations/get-recommendations.d.ts.map +1 -0
  855. package/tools/recommendations/get-recommendations.js +268 -0
  856. package/tools/recommendations/get-recommendations.js.map +1 -0
  857. package/tools/recommendations/get-recommendations.mjs +264 -0
  858. package/tools/recommendations/get-recommendations.mjs.map +1 -0
  859. package/tools/recommendations/list-available-genre-seeds-recommendations.d.mts +45 -0
  860. package/tools/recommendations/list-available-genre-seeds-recommendations.d.mts.map +1 -0
  861. package/tools/recommendations/list-available-genre-seeds-recommendations.d.ts +45 -0
  862. package/tools/recommendations/list-available-genre-seeds-recommendations.d.ts.map +1 -0
  863. package/tools/recommendations/list-available-genre-seeds-recommendations.js +39 -0
  864. package/tools/recommendations/list-available-genre-seeds-recommendations.js.map +1 -0
  865. package/tools/recommendations/list-available-genre-seeds-recommendations.mjs +35 -0
  866. package/tools/recommendations/list-available-genre-seeds-recommendations.mjs.map +1 -0
  867. package/tools/search/retrieve-search.d.mts +45 -0
  868. package/tools/search/retrieve-search.d.mts.map +1 -0
  869. package/tools/search/retrieve-search.d.ts +45 -0
  870. package/tools/search/retrieve-search.d.ts.map +1 -0
  871. package/tools/search/retrieve-search.js +68 -0
  872. package/tools/search/retrieve-search.js.map +1 -0
  873. package/tools/search/retrieve-search.mjs +64 -0
  874. package/tools/search/retrieve-search.mjs.map +1 -0
  875. package/tools/shows/list-episodes-shows.d.mts +45 -0
  876. package/tools/shows/list-episodes-shows.d.mts.map +1 -0
  877. package/tools/shows/list-episodes-shows.d.ts +45 -0
  878. package/tools/shows/list-episodes-shows.d.ts.map +1 -0
  879. package/tools/shows/list-episodes-shows.js +60 -0
  880. package/tools/shows/list-episodes-shows.js.map +1 -0
  881. package/tools/shows/list-episodes-shows.mjs +56 -0
  882. package/tools/shows/list-episodes-shows.mjs.map +1 -0
  883. package/tools/shows/list-shows.d.mts +45 -0
  884. package/tools/shows/list-shows.d.mts.map +1 -0
  885. package/tools/shows/list-shows.d.ts +45 -0
  886. package/tools/shows/list-shows.d.ts.map +1 -0
  887. package/tools/shows/list-shows.js +49 -0
  888. package/tools/shows/list-shows.js.map +1 -0
  889. package/tools/shows/list-shows.mjs +45 -0
  890. package/tools/shows/list-shows.mjs.map +1 -0
  891. package/tools/shows/retrieve-shows.d.mts +45 -0
  892. package/tools/shows/retrieve-shows.d.mts.map +1 -0
  893. package/tools/shows/retrieve-shows.d.ts +45 -0
  894. package/tools/shows/retrieve-shows.d.ts.map +1 -0
  895. package/tools/shows/retrieve-shows.js +49 -0
  896. package/tools/shows/retrieve-shows.js.map +1 -0
  897. package/tools/shows/retrieve-shows.mjs +45 -0
  898. package/tools/shows/retrieve-shows.mjs.map +1 -0
  899. package/tools/tracks/list-tracks.d.mts +45 -0
  900. package/tools/tracks/list-tracks.d.mts.map +1 -0
  901. package/tools/tracks/list-tracks.d.ts +45 -0
  902. package/tools/tracks/list-tracks.d.ts.map +1 -0
  903. package/tools/tracks/list-tracks.js +43 -0
  904. package/tools/tracks/list-tracks.js.map +1 -0
  905. package/tools/tracks/list-tracks.mjs +39 -0
  906. package/tools/tracks/list-tracks.mjs.map +1 -0
  907. package/tools/tracks/retrieve-tracks.d.mts +45 -0
  908. package/tools/tracks/retrieve-tracks.d.mts.map +1 -0
  909. package/tools/tracks/retrieve-tracks.d.ts +45 -0
  910. package/tools/tracks/retrieve-tracks.d.ts.map +1 -0
  911. package/tools/tracks/retrieve-tracks.js +43 -0
  912. package/tools/tracks/retrieve-tracks.js.map +1 -0
  913. package/tools/tracks/retrieve-tracks.mjs +39 -0
  914. package/tools/tracks/retrieve-tracks.mjs.map +1 -0
  915. package/tools/types.d.mts +51 -0
  916. package/tools/types.d.mts.map +1 -0
  917. package/tools/types.d.ts +51 -0
  918. package/tools/types.d.ts.map +1 -0
  919. package/tools/types.js +46 -0
  920. package/tools/types.js.map +1 -0
  921. package/tools/types.mjs +42 -0
  922. package/tools/types.mjs.map +1 -0
  923. package/tools/users/playlists/create-users-playlists.d.mts +45 -0
  924. package/tools/users/playlists/create-users-playlists.d.mts.map +1 -0
  925. package/tools/users/playlists/create-users-playlists.d.ts +45 -0
  926. package/tools/users/playlists/create-users-playlists.d.ts.map +1 -0
  927. package/tools/users/playlists/create-users-playlists.js +52 -0
  928. package/tools/users/playlists/create-users-playlists.js.map +1 -0
  929. package/tools/users/playlists/create-users-playlists.mjs +48 -0
  930. package/tools/users/playlists/create-users-playlists.mjs.map +1 -0
  931. package/tools/users/playlists/list-users-playlists.d.mts +45 -0
  932. package/tools/users/playlists/list-users-playlists.d.mts.map +1 -0
  933. package/tools/users/playlists/list-users-playlists.d.ts +45 -0
  934. package/tools/users/playlists/list-users-playlists.d.ts.map +1 -0
  935. package/tools/users/playlists/list-users-playlists.js +55 -0
  936. package/tools/users/playlists/list-users-playlists.js.map +1 -0
  937. package/tools/users/playlists/list-users-playlists.mjs +51 -0
  938. package/tools/users/playlists/list-users-playlists.mjs.map +1 -0
  939. package/tools/users/retrieve-profile-users.d.mts +45 -0
  940. package/tools/users/retrieve-profile-users.d.mts.map +1 -0
  941. package/tools/users/retrieve-profile-users.d.ts +45 -0
  942. package/tools/users/retrieve-profile-users.d.ts.map +1 -0
  943. package/tools/users/retrieve-profile-users.js +44 -0
  944. package/tools/users/retrieve-profile-users.js.map +1 -0
  945. package/tools/users/retrieve-profile-users.mjs +40 -0
  946. package/tools/users/retrieve-profile-users.mjs.map +1 -0
  947. package/tools.d.mts +2 -0
  948. package/tools.d.mts.map +1 -0
  949. package/tools.d.ts +2 -0
  950. package/tools.d.ts.map +1 -0
  951. package/tools.js +18 -0
  952. package/tools.js.map +1 -0
  953. package/tools.mjs +2 -0
  954. package/tools.mjs.map +1 -0
@@ -0,0 +1,62 @@
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.top',
11
+ operation: 'read',
12
+ tags: [],
13
+ httpMethod: 'get',
14
+ httpPath: '/me/top/artists',
15
+ operationId: 'get-users-top-artists',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'list_top_artists_me_top',
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 the current user's top artists based on calculated affinity.\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/artist_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 $defs: {\n artist_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 artist.\\n'\n },\n external_urls: {\n $ref: '#/$defs/external_url_object'\n },\n followers: {\n $ref: '#/$defs/followers_object'\n },\n genres: {\n type: 'array',\n description: 'A list of the genres the artist is associated with. If not yet classified, the array is empty.\\n',\n items: {\n type: 'string'\n }\n },\n href: {\n type: 'string',\n description: 'A link to the Web API endpoint providing full details of the artist.\\n'\n },\n images: {\n type: 'array',\n description: 'Images of the artist in various sizes, widest first.\\n',\n items: {\n $ref: '#/$defs/image_object'\n }\n },\n name: {\n type: 'string',\n description: 'The name of the artist.\\n'\n },\n popularity: {\n type: 'integer',\n description: 'The popularity of the artist. The value will be between 0 and 100, with 100 being the most popular. The artist\\'s popularity is calculated from the popularity of all the artist\\'s tracks.\\n'\n },\n type: {\n type: 'string',\n description: 'The object type.',\n enum: [ 'artist'\n ]\n },\n uri: {\n type: 'string',\n description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the artist.\\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
+ 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
+ time_range: {
37
+ type: 'string',
38
+ title: 'Time Range',
39
+ description:
40
+ 'Over what time frame the affinities are computed. Valid values: `long_term` (calculated from ~1 year of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), `short_term` (approximately last 4 weeks). Default: `medium_term`\n',
41
+ },
42
+ jq_filter: {
43
+ type: 'string',
44
+ title: 'jq Filter',
45
+ description:
46
+ '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/).',
47
+ },
48
+ },
49
+ required: [],
50
+ },
51
+ annotations: {
52
+ readOnlyHint: true,
53
+ },
54
+ };
55
+
56
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
57
+ const { jq_filter, ...body } = args as any;
58
+ const response = await client.me.top.listTopArtists(body).asResponse();
59
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
60
+ };
61
+
62
+ export default { metadata, tool, handler };
@@ -0,0 +1,54 @@
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.top',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/me/top/tracks',
14
+ operationId: 'get-users-top-tracks',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'list_top_tracks_me_top',
19
+ description: "Get the current user's top tracks based on calculated affinity.\n",
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ limit: {
24
+ type: 'integer',
25
+ title: 'Limit',
26
+ description: 'The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.\n',
27
+ },
28
+ offset: {
29
+ type: 'integer',
30
+ title: 'Offset',
31
+ description:
32
+ 'The index of the first item to return. Default: 0 (the first item). Use with limit to get the next set of items.\n',
33
+ },
34
+ time_range: {
35
+ type: 'string',
36
+ title: 'Time Range',
37
+ description:
38
+ 'Over what time frame the affinities are computed. Valid values: `long_term` (calculated from ~1 year of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), `short_term` (approximately last 4 weeks). Default: `medium_term`\n',
39
+ },
40
+ },
41
+ required: [],
42
+ },
43
+ annotations: {
44
+ readOnlyHint: true,
45
+ },
46
+ };
47
+
48
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
49
+ const body = args as any;
50
+ const response = await client.me.top.listTopTracks(body).asResponse();
51
+ return asTextContentResult(await response.json());
52
+ };
53
+
54
+ 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.tracks',
11
+ operation: 'read',
12
+ tags: [],
13
+ httpMethod: 'get',
14
+ httpPath: '/me/tracks/contains',
15
+ operationId: 'check-users-saved-tracks',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'check_me_tracks',
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 tracks is already saved in the current Spotify user's 'Your Music' library.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/track_check_response',\n $defs: {\n track_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: 'Spotify Track IDs',
28
+ description:
29
+ 'A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M`. 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.tracks.check(body)));
48
+ };
49
+
50
+ export default { metadata, tool, handler };
@@ -0,0 +1,54 @@
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.tracks',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/me/tracks',
14
+ operationId: 'get-users-saved-tracks',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'list_me_tracks',
19
+ description: "Get a list of the songs saved in the current Spotify user's 'Your Music' library.\n",
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ limit: {
24
+ type: 'integer',
25
+ title: 'Limit',
26
+ description: 'The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.\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
+ offset: {
35
+ type: 'integer',
36
+ title: 'Offset',
37
+ description:
38
+ 'The index of the first item to return. Default: 0 (the first item). Use with limit to get the next set of items.\n',
39
+ },
40
+ },
41
+ required: [],
42
+ },
43
+ annotations: {
44
+ readOnlyHint: true,
45
+ },
46
+ };
47
+
48
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
49
+ const body = args as any;
50
+ const response = await client.me.tracks.list(body).asResponse();
51
+ return asTextContentResult(await response.json());
52
+ };
53
+
54
+ 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.tracks',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'delete',
13
+ httpPath: '/me/tracks',
14
+ operationId: 'remove-tracks-user',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'remove_me_tracks',
19
+ description: "Remove one or more tracks from the current user's 'Your Music' library.\n",
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ ids: {
24
+ type: 'array',
25
+ description:
26
+ 'A JSON array of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `["4iV5W9uYEdYUVa79Axb7Rh", "1301WleyT98MSxVHPZCA6M"]`<br/>A 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._\n',
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.tracks.remove(body).asResponse();
42
+ return asTextContentResult(await response.text());
43
+ };
44
+
45
+ export default { metadata, tool, handler };
@@ -0,0 +1,67 @@
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.tracks',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'put',
13
+ httpPath: '/me/tracks',
14
+ operationId: 'save-tracks-user',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'save_me_tracks',
19
+ description: "Save one or more tracks to the current user's 'Your Music' library.\n",
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ ids: {
24
+ type: 'array',
25
+ description:
26
+ 'A JSON array of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `["4iV5W9uYEdYUVa79Axb7Rh", "1301WleyT98MSxVHPZCA6M"]`<br/>A maximum of 50 items can be specified in one request. _**Note**: if the `timestamped_ids` is present in the body, any IDs listed in the query parameters (deprecated) or the `ids` field in the body will be ignored._\n',
27
+ items: {
28
+ type: 'string',
29
+ },
30
+ },
31
+ timestamped_ids: {
32
+ type: 'array',
33
+ description:
34
+ "A JSON array of objects containing track IDs with their corresponding timestamps. Each object must include a track ID and an `added_at` timestamp. This allows you to specify when tracks were added to maintain a specific chronological order in the user's library.<br/>A maximum of 50 items can be specified in one request. _**Note**: if the `timestamped_ids` is present in the body, any IDs listed in the query parameters (deprecated) or the `ids` field in the body will be ignored._\n",
35
+ items: {
36
+ type: 'object',
37
+ properties: {
38
+ id: {
39
+ type: 'string',
40
+ description:
41
+ 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the track.\n',
42
+ },
43
+ added_at: {
44
+ type: 'string',
45
+ description:
46
+ "The timestamp when the track was added to the library. Use ISO 8601 format with UTC timezone (e.g., `2023-01-15T14:30:00Z`). You can specify past timestamps to insert tracks at specific positions in the library's chronological order. The API uses minute-level granularity for ordering, though the timestamp supports millisecond precision.\n",
47
+ format: 'date-time',
48
+ },
49
+ },
50
+ required: ['id', 'added_at'],
51
+ },
52
+ },
53
+ },
54
+ required: ['ids'],
55
+ },
56
+ annotations: {
57
+ idempotentHint: true,
58
+ },
59
+ };
60
+
61
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
62
+ const body = args as any;
63
+ const response = await client.me.tracks.save(body).asResponse();
64
+ return asTextContentResult(await response.text());
65
+ };
66
+
67
+ export default { metadata, tool, handler };
@@ -0,0 +1,57 @@
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: 'playlists.followers',
11
+ operation: 'read',
12
+ tags: [],
13
+ httpMethod: 'get',
14
+ httpPath: '/playlists/{playlist_id}/followers/contains',
15
+ operationId: 'check-if-user-follows-playlist',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'check_playlists_followers',
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 to see if the current user is following a specified playlist.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/follower_check_response',\n $defs: {\n follower_check_response: {\n type: 'array',\n items: {\n type: 'boolean'\n }\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ playlist_id: {
26
+ type: 'string',
27
+ title: 'Playlist ID',
28
+ description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) of the playlist.\n',
29
+ },
30
+ ids: {
31
+ type: 'string',
32
+ title: 'Spotify user IDs',
33
+ description:
34
+ "**Deprecated** A single item list containing current user's [Spotify Username](/documentation/web-api/concepts/spotify-uris-ids). Maximum: 1 id.\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: ['playlist_id'],
44
+ },
45
+ annotations: {
46
+ readOnlyHint: true,
47
+ },
48
+ };
49
+
50
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
51
+ const { playlist_id, jq_filter, ...body } = args as any;
52
+ return asTextContentResult(
53
+ await maybeFilter(jq_filter, await client.playlists.followers.check(playlist_id, body)),
54
+ );
55
+ };
56
+
57
+ 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: 'playlists.followers',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'put',
13
+ httpPath: '/playlists/{playlist_id}/followers',
14
+ operationId: 'follow-playlist',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'follow_playlists_followers',
19
+ description: 'Add the current user as a follower of a playlist.\n',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ playlist_id: {
24
+ type: 'string',
25
+ title: 'Playlist ID',
26
+ description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) of the playlist.\n',
27
+ },
28
+ public: {
29
+ type: 'boolean',
30
+ description:
31
+ "Defaults to `true`. If `true` the playlist will be included in user's public playlists (added to profile), if `false` it will remain private. For more about public/private status, see [Working with Playlists](/documentation/web-api/concepts/playlists)\n",
32
+ },
33
+ },
34
+ required: ['playlist_id'],
35
+ },
36
+ annotations: {
37
+ idempotentHint: true,
38
+ },
39
+ };
40
+
41
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
42
+ const { playlist_id, ...body } = args as any;
43
+ const response = await client.playlists.followers.follow(playlist_id, body).asResponse();
44
+ return asTextContentResult(await response.text());
45
+ };
46
+
47
+ 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: 'playlists.followers',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'delete',
13
+ httpPath: '/playlists/{playlist_id}/followers',
14
+ operationId: 'unfollow-playlist',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'unfollow_playlists_followers',
19
+ description: 'Remove the current user as a follower of a playlist.\n',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ playlist_id: {
24
+ type: 'string',
25
+ title: 'Playlist ID',
26
+ description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) of the playlist.\n',
27
+ },
28
+ },
29
+ required: ['playlist_id'],
30
+ },
31
+ annotations: {
32
+ idempotentHint: true,
33
+ },
34
+ };
35
+
36
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
37
+ const { playlist_id, ...body } = args as any;
38
+ const response = await client.playlists.followers.unfollow(playlist_id).asResponse();
39
+ return asTextContentResult(await response.text());
40
+ };
41
+
42
+ 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: 'playlists.images',
11
+ operation: 'read',
12
+ tags: [],
13
+ httpMethod: 'get',
14
+ httpPath: '/playlists/{playlist_id}/images',
15
+ operationId: 'get-playlist-cover',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'list_playlists_images',
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 the current image associated with a specific playlist.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/image_list_response',\n $defs: {\n image_list_response: {\n type: 'array',\n items: {\n $ref: '#/$defs/image_object'\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
+ playlist_id: {
26
+ type: 'string',
27
+ title: 'Playlist ID',
28
+ description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) of the playlist.\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: ['playlist_id'],
38
+ },
39
+ annotations: {
40
+ readOnlyHint: true,
41
+ },
42
+ };
43
+
44
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
45
+ const { playlist_id, jq_filter, ...body } = args as any;
46
+ return asTextContentResult(await maybeFilter(jq_filter, await client.playlists.images.list(playlist_id)));
47
+ };
48
+
49
+ export default { metadata, tool, handler };
@@ -0,0 +1,46 @@
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: 'playlists.images',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'put',
13
+ httpPath: '/playlists/{playlist_id}/images',
14
+ operationId: 'upload-custom-playlist-cover',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'update_playlists_images',
19
+ description: 'Replace the image used to represent a specific playlist.\n',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ playlist_id: {
24
+ type: 'string',
25
+ title: 'Playlist ID',
26
+ description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) of the playlist.\n',
27
+ },
28
+ body: {
29
+ type: 'string',
30
+ description: 'Base64 encoded JPEG image data, maximum payload size is 256 KB.',
31
+ },
32
+ },
33
+ required: ['playlist_id', 'body'],
34
+ },
35
+ annotations: {
36
+ idempotentHint: true,
37
+ },
38
+ };
39
+
40
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
41
+ const { playlist_id, ...body } = args as any;
42
+ const response = await client.playlists.images.update(playlist_id, body).asResponse();
43
+ return asTextContentResult(await response.text());
44
+ };
45
+
46
+ export default { metadata, tool, handler };
@@ -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: 'playlists',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/playlists/{playlist_id}',
14
+ operationId: 'get-playlist',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'retrieve_playlists',
19
+ description: 'Get a playlist owned by a Spotify user.\n',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ playlist_id: {
24
+ type: 'string',
25
+ title: 'Playlist ID',
26
+ description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) of the playlist.\n',
27
+ },
28
+ additional_types: {
29
+ type: 'string',
30
+ title: 'Additional Types',
31
+ description:
32
+ 'A comma-separated list of item types that your client supports besides the default `track` type. Valid types are: `track` and `episode`.<br/>\n_**Note**: This parameter was introduced to allow existing clients to maintain their current behaviour and might be deprecated in the future._<br/>\nIn addition to providing this parameter, make sure that your client properly handles cases of new types in the future by checking against the `type` field of each object.\n',
33
+ },
34
+ fields: {
35
+ type: 'string',
36
+ title: 'Fields',
37
+ description:
38
+ "Filters for the query: a comma-separated list of the\nfields to return. If omitted, all fields are returned. For example, to get\njust the playlist''s description and URI: `fields=description,uri`. A dot\nseparator can be used to specify non-reoccurring fields, while parentheses\ncan be used to specify reoccurring fields within objects. For example, to\nget just the added date and user ID of the adder: `fields=tracks.items(added_at,added_by.id)`.\nUse multiple parentheses to drill down into nested objects, for example: `fields=tracks.items(track(name,href,album(name,href)))`.\nFields can be excluded by prefixing them with an exclamation mark, for example:\n`fields=tracks.items(track(name,href,album(!name,href)))`\n",
39
+ },
40
+ market: {
41
+ type: 'string',
42
+ title: 'Market',
43
+ description:
44
+ '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',
45
+ },
46
+ },
47
+ required: ['playlist_id'],
48
+ },
49
+ annotations: {
50
+ readOnlyHint: true,
51
+ },
52
+ };
53
+
54
+ export const handler = async (client: Spotted, args: Record<string, unknown> | undefined) => {
55
+ const { playlist_id, ...body } = args as any;
56
+ return asTextContentResult(await client.playlists.retrieve(playlist_id, body));
57
+ };
58
+
59
+ export default { metadata, tool, handler };