Skip to main content
Glama

getMyPlaylists

Retrieve a list of your Spotify playlists using the MCP Server. Specify a limit (1-50) to control the number of playlists returned.

Instructions

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

Input Schema

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

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "limit": { "description": "Maximum number of playlists to return (1-50)", "maximum": 50, "minimum": 1, "type": "number" } }, "type": "object" }

Implementation Reference

  • Complete implementation of the getMyPlaylists tool, including input schema using Zod and the handler function that fetches and formats the user's Spotify playlists.
    const getMyPlaylists: tool<{ limit: z.ZodOptional<z.ZodNumber>; }> = { name: 'getMyPlaylists', description: "Get a list of the current user's playlists on Spotify", schema: { limit: z .number() .min(1) .max(50) .optional() .describe('Maximum number of playlists to return (1-50)'), }, 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}`, }, ], }; }, };
  • src/read.ts:531-539 (registration)
    Registers getMyPlaylists by including it in the exported readTools array.
    export const readTools = [ searchSpotify, getNowPlaying, getMyPlaylists, getPlaylistTracks, getRecentlyPlayed, getUsersSavedTracks, getQueue, ];
  • src/index.ts:12-14 (registration)
    Final registration of all tools, including getMyPlaylists from readTools, to the MCP server.
    [...readTools, ...playTools, ...albumTools].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/marcelmarais/spotify-mcp-server'

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