Skip to main content
Glama
igorgarbuz
by igorgarbuz

getUserPlaylists

Retrieve your Spotify playlists to manage music collections, with optional limit control for focused results.

Instructions

Get a list of the current user's playlists on Spotify

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of playlists to return (1-50)

Implementation Reference

  • The async handler function that implements the core logic of the 'getUserPlaylists' tool. It destructures the optional 'limit' parameter, fetches the user's playlists via Spotify API using handleSpotifyRequest, handles empty case, formats the playlist list with indices, names, track counts, and IDs, and returns a structured text response.
    handler: async (args, extra: SpotifyHandlerExtra) => { const { limit = 50 } = args; const playlists = await handleSpotifyRequest(async (spotifyApi) => { return await spotifyApi.currentUser.playlists.playlists( limit as MaxInt<50>, ); }); if (playlists.items.length === 0) { return { content: [ { type: 'text', text: "You don't have any playlists on Spotify", }, ], }; } const formattedPlaylists = playlists.items .map((playlist, i) => { const tracksTotal = playlist.tracks?.total ? playlist.tracks.total : 0; return `${i + 1}. "${playlist.name}" (${tracksTotal} tracks) - ID: ${ playlist.id }`; }) .join('\n'); return { content: [ { type: 'text', text: `# Your Spotify Playlists\n\n${formattedPlaylists}`, }, ], }; },
  • The Zod input schema for the 'getUserPlaylists' tool, defining an optional 'limit' parameter constrained between 1 and 50.
    schema: { limit: z .number() .min(1) .max(50) .optional() .describe('Maximum number of playlists to return (1-50)'), },
  • src/read.ts:521-529 (registration)
    The 'getUserPlaylists' tool is included in the 'readTools' export array, which collects all read-related Spotify tools for registration.
    export const readTools = [ searchSpotify, getNowPlaying, getUserPlaylists, getPlaylistTracks, getRecentlyPlayed, getFollowedArtists, getUserTopItems, ];
  • src/index.ts:12-14 (registration)
    Final MCP server registration where tools from 'readTools' (including 'getUserPlaylists') are dynamically registered by iterating over the combined tools array and calling server.tool() with the tool's name, description, schema, and handler.
    [...playTools, ...readTools, ...writeTools].forEach((tool) => { server.tool(tool.name, tool.description, tool.schema, tool.handler); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/igorgarbuz/spotify-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server