Controls Spotify playback, searches tracks, albums and artists, and manages playlists and the queue.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add spotify --env SPOTIFY_CLIENT_ID='<SPOTIFY_CLIENT_ID>' --env SPOTIFY_CLIENT_SECRET='<SPOTIFY_CLIENT_SECRET>' --env SPOTIFY_REDIRECT_URI='<SPOTIFY_REDIRECT_URI>' -- npx @modelcontextprotocol/inspector uv --directory /path/to/spotify-mcp run spotify-mcp~/.codex/config.toml
[mcp_servers.spotify]
command = "npx"
args = ["@modelcontextprotocol/inspector", "uv", "--directory", "/path/to/spotify-mcp", "run", "spotify-mcp"]
env = { SPOTIFY_CLIENT_ID = "<SPOTIFY_CLIENT_ID>", SPOTIFY_CLIENT_SECRET = "<SPOTIFY_CLIENT_SECRET>", SPOTIFY_REDIRECT_URI = "<SPOTIFY_REDIRECT_URI>" }
# codex mcp add spotify --env SPOTIFY_CLIENT_ID='<SPOTIFY_CLIENT_ID>' --env SPOTIFY_CLIENT_SECRET='<SPOTIFY_CLIENT_SECRET>' --env SPOTIFY_REDIRECT_URI='<SPOTIFY_REDIRECT_URI>' -- npx @modelcontextprotocol/inspector uv --directory /path/to/spotify-mcp run spotify-mcp~/.cursor/mcp.json
{
"mcpServers": {
"spotify": {
"command": "npx",
"args": [
"@modelcontextprotocol/inspector",
"uv",
"--directory",
"/path/to/spotify-mcp",
"run",
"spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "<SPOTIFY_CLIENT_ID>",
"SPOTIFY_CLIENT_SECRET": "<SPOTIFY_CLIENT_SECRET>",
"SPOTIFY_REDIRECT_URI": "<SPOTIFY_REDIRECT_URI>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"spotify": {
"type": "stdio",
"command": "npx",
"args": [
"@modelcontextprotocol/inspector",
"uv",
"--directory",
"/path/to/spotify-mcp",
"run",
"spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "<SPOTIFY_CLIENT_ID>",
"SPOTIFY_CLIENT_SECRET": "<SPOTIFY_CLIENT_SECRET>",
"SPOTIFY_REDIRECT_URI": "<SPOTIFY_REDIRECT_URI>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"spotify": {
"command": "npx",
"args": [
"@modelcontextprotocol/inspector",
"uv",
"--directory",
"/path/to/spotify-mcp",
"run",
"spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "<SPOTIFY_CLIENT_ID>",
"SPOTIFY_CLIENT_SECRET": "<SPOTIFY_CLIENT_SECRET>",
"SPOTIFY_REDIRECT_URI": "<SPOTIFY_REDIRECT_URI>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"spotify": {
"command": "npx",
"args": [
"@modelcontextprotocol/inspector",
"uv",
"--directory",
"/path/to/spotify-mcp",
"run",
"spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "<SPOTIFY_CLIENT_ID>",
"SPOTIFY_CLIENT_SECRET": "<SPOTIFY_CLIENT_SECRET>",
"SPOTIFY_REDIRECT_URI": "<SPOTIFY_REDIRECT_URI>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"spotify": {
"command": "npx",
"args": [
"@modelcontextprotocol/inspector",
"uv",
"--directory",
"/path/to/spotify-mcp",
"run",
"spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "<SPOTIFY_CLIENT_ID>",
"SPOTIFY_CLIENT_SECRET": "<SPOTIFY_CLIENT_SECRET>",
"SPOTIFY_REDIRECT_URI": "<SPOTIFY_REDIRECT_URI>"
}
}
}
}Environment variables
SPOTIFY_CLIENT_IDSPOTIFY_CLIENT_SECRETSPOTIFY_REDIRECT_URI
Replace the placeholders with your own credentials and keep them out of version control.