Skip to main content
Glama

mcp-deezer

Unofficial Deezer MCP server for AI agents. Search music, manage playlists and favorites, and access personalized discovery through 29 tools.

License: MIT Python 3.12+ CI

Why this exists

Deezer closed their developer portal to new applications in 2025. This project uses an authenticated browser session through Deezer's internal GraphQL API instead of a developer API key.

Because the API is unofficial, it can change without notice. This project is not affiliated with or endorsed by Deezer.

Related MCP server: mcp-spotify

For AI Agents — Installation Guide

If you are an AI agent reading this to install mcp-deezer for a user, follow these steps in order:

Step 1: Check prerequisites

Step 2: Install the package

Until the first PyPI release, install directly from GitHub:

pip install "mcp-deezer @ git+https://github.com/Benitoow/mcp-deezer.git"

Or run it with uvx without a persistent installation:

uvx --from git+https://github.com/Benitoow/mcp-deezer.git mcp-deezer

The user must do this manually in their browser:

  1. Go to https://deezer.com and log in

  2. Press F12 → Application → Cookies → deezer.com

  3. Find the cookie named arl and copy its value (~192 character hex string)

The ARL looks like: a1b2c3d4e5f6... (192 hex chars)

CAUTION

The ARL is a session credential. Anyone who obtains it may be able to access the signed-in account. Never commit it, paste it into an issue, or share it. MCP configuration files store it as plain text, so keep those files private. SeeSECURITY.md.

Step 4: Configure the MCP server

Add this to the user's MCP client config. The DEEZER_ARL environment variable is required.

Claude Desktop — claude_desktop_config.json:

{
  "mcpServers": {
    "deezer": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/Benitoow/mcp-deezer.git", "mcp-deezer"],
      "env": {
        "DEEZER_ARL": "PASTE_ARL_HERE"
      }
    }
  }
}

Claude Code — terminal:

claude mcp add deezer -e DEEZER_ARL=PASTE_ARL_HERE -- uvx --from git+https://github.com/Benitoow/mcp-deezer.git mcp-deezer

Cursor — .cursor/mcp.json:

{
  "mcpServers": {
    "deezer": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/Benitoow/mcp-deezer.git", "mcp-deezer"],
      "env": {
        "DEEZER_ARL": "PASTE_ARL_HERE"
      }
    }
  }
}

Hermes Agent — ~/.hermes/config.yaml:

mcp_servers:
  deezer:
    command: uvx
    args: [--from, git+https://github.com/Benitoow/mcp-deezer.git, mcp-deezer]
    env:
      DEEZER_ARL: "PASTE_ARL_HERE"

VS Code / Copilot — .vscode/mcp.json:

{
  "servers": {
    "deezer": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/Benitoow/mcp-deezer.git", "mcp-deezer"],
      "env": {
        "DEEZER_ARL": "PASTE_ARL_HERE"
      }
    }
  }
}

Step 5: Restart the MCP client

Tell the user to restart their AI client (Claude Desktop, Cursor, etc.) for the server to load.

Step 6: Verify

Call get_me — it should return the user's Deezer profile ID. If it returns an error about DEEZER_ARL, the cookie is missing or expired.

Available Tools (29)

Tool

Description

Auth

get_me

User profile

✅

search

Search tracks, albums, artists, playlists

✅

get_track

Track details with lyrics

✅

get_artist

Artist details with bio

✅

get_album

Album details with tracklist

✅

get_playlist

Playlist details with tracks

✅

get_charts

Country charts (FR, US, DE...)

✅

get_similar_tracks

Similar tracks

✅

get_similar_artists

Similar artists

✅

get_flow

Personal Deezer Flow

✅

get_recommendations

Personalized recommendations

✅

get_recently_played

Listening history

✅

get_user_charts

Personal top tracks/artists

✅

get_favorite_tracks

Liked tracks

✅

get_favorite_albums

Liked albums

✅

get_favorite_artists

Followed artists

✅

get_favorite_playlists

Liked playlists

✅

add_track_to_favorite

Like a track

✅

remove_track_from_favorite

Unlike a track

✅

add_album_to_favorite

Like an album

✅

remove_album_from_favorite

Unlike an album

✅

add_artist_to_favorite

Follow an artist

✅

remove_artist_from_favorite

Unfollow an artist

✅

get_user_playlists

List user playlists

✅

create_playlist

Create a playlist

✅

update_playlist

Update playlist title/desc

✅

delete_playlist

Delete a playlist

✅

add_tracks_to_playlist

Add tracks to playlist

✅

remove_tracks_from_playlist

Remove tracks from playlist

✅

How It Works

AI Agent  ←── MCP (stdio) ──→  mcp-deezer  ←── GraphQL ──→  Deezer API
                                    │
                              ARL cookie (your session)

Uses deezer-python-gql, an unofficial client for Deezer's internal GraphQL API. Authentication uses the ARL session cookie stored in your browser.

FAQ (for agents)

Q: The user's ARL stopped working. A: Tell them to log out and back in to deezer.com, then grab the new arl cookie.

Q: Does this work with a free Deezer account? A: Yes. Unlike Spotify's API, Deezer works with free accounts.

Q: Is this against Deezer's ToS? A: This project is unofficial and uses Deezer's internal web API. Review Deezer's current terms and use it only with an account and content you are authorized to access.

Q: Python 3.12+ is not available. A: Install it from https://www.python.org/downloads/ or use uvx which manages its own Python.

License

MIT

Project health

Available Tools

29 tools
add_album_to_favoriteC

Like an album.

Inputs: album_id (required).

add_artist_to_favoriteD

Follow an artist.

Inputs: artist_id (required).

add_tracks_to_playlistC

Add tracks to a playlist.

Inputs: track_ids (required), playlist_id (required).

add_track_to_favoriteD

Like a track.

Inputs: track_id (required).

create_playlistC

Create a new playlist.

Inputs: title (required), is_private, description, is_collaborative.

delete_playlistC

Delete a playlist.

Inputs: playlist_id (required).

get_albumC

Get album details with full tracklist.

Inputs: album_id (required).

get_artistB

Get artist details with bio, top tracks, albums.

Inputs: artist_id (required).

get_chartsC

Get Deezer charts by country (FR, US, etc).

Inputs: country_code, tracks_first.

get_favorite_albumsD

Your favorite albums.

Inputs: first.

get_favorite_artistsD

Your followed artists.

Inputs: first.

get_favorite_playlistsC

Your liked playlists.

Inputs: first.

get_favorite_tracksD

Your liked/favorite tracks.

Inputs: first.

get_flowA

Get your personal Deezer Flow (auto-generated mix).

Inputs: no named parameters.

get_meB

Get your Deezer profile.

Inputs: no named parameters.

get_playlistC

Get playlist details with tracks.

Inputs: playlist_id (required), tracks_first.

get_recently_playedC

Your recently played tracks.

Inputs: first.

get_recommendationsC

Personalized recommendations.

Inputs: playlists_first.

get_similar_artistsC

Artists similar to a given artist.

Inputs: artist_id (required), first.

get_similar_tracksC

Tracks similar to a given track.

Inputs: track_id (required), nb.

get_trackB

Get track details by ID (includes lyrics).

Inputs: track_id (required).

get_user_chartsC

Your personal top tracks/artists/albums.

Inputs: tracks_first.

get_user_playlistsC

List all your playlists.

Inputs: first.

remove_album_from_favoriteD

Unlike an album.

Inputs: album_id (required).

remove_artist_from_favoriteC

Unfollow an artist.

Inputs: artist_id (required).

remove_track_from_favoriteD

Unlike a track.

Inputs: track_id (required).

remove_tracks_from_playlistC

Remove tracks from a playlist.

Inputs: track_ids (required), playlist_id (required).

update_playlistB

Update playlist title/description.

Inputs: playlist_id (required), title, description.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.6/5.0

    Scored across 29 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose, with action and resource clearly indicated in the name. There is no overlap between tools like add, remove, get, create, delete, update, and search operations for different resources.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case, e.g., add_album_to_favorite, get_playlist, remove_tracks_from_playlist. No mixing of styles or vague verbs.

    Tool Count4/5

    With 29 tools, the set is slightly large but still appropriate for a comprehensive music service API. Each tool serves a specific endpoint, and the count reflects the breadth of operations without being excessive.

    Completeness4/5

    The toolset covers most common operations: CRUD for playlists, favorites management, retrieval of entities, search, recommendations, and charts. Minor gaps like playlist reordering are absent, but overall coverage is strong.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      D
      maintenance
      Enables access to the Deezer 1 API through MCP protocol. Requires API key authentication and supports integration with Cursor and Claude Desktop for interacting with Deezer services.
      1
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      MCP server for Spotify that enables playlist building and music discovery through 19 tools, allowing LLM agents to search tracks/artists/albums, manage playlists, control playback, and access personal listening data.
      20
      1
      MIT
    • F
      license
      A
      quality
      D
      maintenance
      MCP server for searching and downloading music from the Soulseek peer-to-peer network via slskd. Enables AI assistants to discover and download music directly.
      5
      -
    • A
      license
      A
      quality
      B
      maintenance
      MCP server to control the Roon music player, enabling AI agents to search music, manage playback, and adjust volume across zones.
      9
      25 npm
      2
      MIT