Skip to main content
Glama
makesh-kumar

Spotify MCP Server

by makesh-kumar

createPlaylist

Create a new Spotify playlist with a name, optional description, and privacy settings to organize your music collection.

Instructions

Create a new playlist on Spotify

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the playlist
descriptionNoThe description of the playlist
publicNoWhether the playlist should be public

Implementation Reference

  • The handler function for the 'createPlaylist' tool. It destructures args, gets the current user profile, creates the playlist using spotifyApi.playlists.createPlaylist, and returns a success message with the playlist ID.
    handler: async (args, _extra: SpotifyHandlerExtra) => {
      const { name, description, public: isPublic = false } = args;
    
      const result = await handleSpotifyRequest(async (spotifyApi) => {
        const me = await spotifyApi.currentUser.profile();
    
        return await spotifyApi.playlists.createPlaylist(me.id, {
          name,
          description,
          public: isPublic,
        });
      });
    
      return {
        content: [
          {
            type: 'text',
            text: `Successfully created playlist "${name}"\nPlaylist ID: ${result.id}`,
          },
        ],
      };
    },
  • Zod input schema for the 'createPlaylist' tool defining required 'name' string, optional 'description' string, and optional 'public' boolean.
    schema: {
      name: z.string().describe('The name of the playlist'),
      description: z
        .string()
        .optional()
        .describe('The description of the playlist'),
      public: z
        .boolean()
        .optional()
        .describe('Whether the playlist should be public'),
    },
  • src/index.ts:12-14 (registration)
    Main MCP server registration loop that registers the 'createPlaylist' tool (via playTools) by calling server.tool with its name, description, schema, and handler.
    [...readTools, ...playTools, ...albumTools].forEach((tool) => {
      server.tool(tool.name, tool.description, tool.schema, tool.handler);
    });
  • src/play.ts:362-371 (registration)
    Local grouping of play-related tools including 'createPlaylist' in the exported playTools array, which is then registered in index.ts.
    export const playTools = [
      playMusic,
      pausePlayback,
      skipToNext,
      skipToPrevious,
      createPlaylist,
      addTracksToPlaylist,
      resumePlayback,
      addToQueue,
    ];

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/makesh-kumar/spotify-mcp-server'

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