Spotify & TMDB Web MCP Server
Summary: This MCP server connects Spotify and TMDB so you can turn movies and actors into Spotify playlists, search music and film data, and manage your Spotify library and playlists, with a local web studio included.
Build actor playlists:
create_actor_playlistdiscovers an actor's filmography via TMDB and creates a Spotify playlist from its soundtrack songs.Add movie soundtracks:
add_movie_songs_to_playlistfinds songs for a movie and adds them to an existing playlist.Search cinema data:
search_actor_movies,get_actor_tmdb_profile, andsearch_movie_tmdbreturn filmographies, biographies, cast/crew, release years, ratings, and overviews.Find soundtrack tracks:
fetch_soundtrack_trackssearches Spotify by movie title, language, release year, or actor with fuzzy matching.Manage playlists: create playlists, add track URIs, list playlist tracks, and remove duplicate songs with
dedupe_playlist.Discover music:
search_spotifyfinds tracks, albums, artists, or playlists;get_recommendationssuggests songs from seed tracks, artists, and genres.Browse the user's library:
get_user_playlistslists your playlists with song counts.Explore audio features:
get_audio_featuresandreorder_playlist_by_audio_featuresare registered but currently unavailable because Spotify removed those features for Development Mode apps.Use the web studio:
open_soundtrack_studiolaunches the local Soundtrack Curator & Staging Studio for playlist curation.Choose toolsets: run only the tools you need (
core,playback,playlists,search,taste,library,browse, orall) to save LLM context.Use flexible auth: Spotify sign-in uses PKCE with only a Client ID; TMDB accepts either an API key or a Read Access Token.
Used during soundtrack curation to discover an actor's filmography and find corresponding soundtracks to build dedicated Spotify playlists.
Provides Spotify integration for playback control, playlist management, search and library access, and personal listening insights, as well as building custom curated playlists.
Provides TMDB integration for movie and actor search, including release details, overviews, ratings, and biographical profiles, with filmography data used for soundtrack curation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Spotify & TMDB Web MCP Server Find the soundtrack for The Matrix and add it to my Spotify playlist."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Spotify & TMDB Web and MCP Server
This repository contains a FastMCP application that connects Spotify with TMDB (The Movie Database). It has 115 registered MCP tools and 20 autonomous agent skills, and lets you build movie soundtrack playlists, automate playlist curation, explore your listening taste, and use a local web app, the Soundtrack Curator & Staging Studio.
Built mostly for Indian users. The project is designed around Indian film music: it builds playlists from an actor's filmography and matches soundtracks for Kannada, Telugu, Tamil, Malayalam and Hindi movies, including songs credited as 'From "Movie Name"' and releases tagged with a language, such as "[Kannada]". It works for any music on Spotify, but Indian cinema is where it is strongest.
Highlights
115 FastMCP Tools & 20 Agent Skills: Covers cinema filmography discovery, smart playlist management, artist-network and mood discovery, a local library cache, vibe/radio/era/time-capsule playlist generators, taste analytics, catalog browsing, library management, and full Spotify Connect device control.
PKCE OAuth & Flexible Auth: Spotify sign-in uses PKCE, so you only need a Client ID and a one-click browser login, with no client secret. TMDB accepts either an API key or a Read Access Token.
Cinema Meets Music: Your AI assistant can look up movies, cast and crew on TMDB and turn them into Spotify playlists.
Dual Web & Agent Design: Built on FastAPI and Uvicorn, it runs both as a web app and as an MCP server, and supports remote hosting and several AI clients at once.
Modular Architecture: The tools are split into focused modules (
playback.py,playlists.py,taste.py,search.py,library.py,library_cache.py,generators.py,browse.py,web_app.py), each covered by unit tests.
Related MCP server: Spotify MCP Server
Spotify 2026 Development Mode Limits
In 2026, Spotify switched off several Web API features for apps in Development Mode, which is what every personal Client ID is. The tools work around them where they can:
Spotify feature | Status | What the tools do instead |
Related artists | Removed (403) |
|
Recommendations and genre seeds | Removed (404) |
|
Artist top tracks | Removed (403) | The artist's top search results are used instead. |
Audio features (energy, valence, tempo...) | Removed (403) |
|
Popularity, followers, genres | Returned as null | Shown as N/A or left out. |
Other users' profiles, follower checks and playlists you don't follow | Removed (403) |
|
Search | Rejected | The client fetches larger searches 10 results at a time. |
Local Library Cache & Playlist Generators
spotify_sync_library downloads your Liked Songs and the playlists you own into a JSON file: ~/.cache/spotify-mcp/library.json, or %LOCALAPPDATA%\spotify-mcp\library.json on Windows (set SPOTIFY_MCP_LIBRARY_PATH to change it). After that:
spotify_query_libraryandspotify_library_statsanswer questions about your music without calling Spotify.spotify_vibe_playlistbuilds a playlist for a mood, or an energy/valence target, from songs you already like.spotify_era_playlist(withfrom_library=True) andspotify_time_capsule_playlist(songs you saved in a given year) also use the cache.spotify_radio_playlistmixes an artist's songs with songs by the artists they collaborate with.
Every generator shows a preview first and only creates a playlist when called with create=True.
How vibes are estimated: Spotify no longer gives this app audio features or artist genres, so each genre has an estimated energy and valence (GENRE_VIBES in tools/discovery.py). A song gets its vibe from the genre searches its artist appears in, plus words in its track, album and playlist names ("Unplugged" means acoustic; a playlist called "Gym" means workout). Spotify's genre search mostly covers mainstream Western genres, so songs from other scenes, such as Kannada, Telugu or Tamil film music, are often left unplaced. Naming your playlists by mood helps.
Run spotify_sync_library again whenever your library changes. A sync makes about one Spotify call per 50 Liked Songs, plus one or more per playlist.
Features & Capabilities
For an in-depth breakdown of the features, a feature comparison table, and the cinema filmography pipeline, see CONTRIBUTING.md. The complete 115-tool catalog and the 20 agent skills are listed in CONTRIBUTING.md.
Install from PyPI
The MCP server is listed in the official MCP Registry as io.github.Chiru144/spotify-soundtrack-mcp (metadata in server.json), so registry-aware MCP clients can find and install it. The server and the web studio are published as two Python packages:
Package | What it gives you | Commands |
| The MCP server with all 115 tools and 20 skills |
|
| The Soundtrack Curator & Staging Studio web app |
|
1. Install
pip install spotify-soundtrack-mcp spotify-mcp-webYou need Python 3.10 or later. Installing spotify-mcp-web also installs spotify-soundtrack-mcp. If you don't want the web studio, install only spotify-soundtrack-mcp.
2. Configure
Create ~/.spotify-mcp/.env (or a .env file in the folder you run the commands from):
SPOTIPY_CLIENT_ID=your_spotify_client_id
SPOTIPY_REDIRECT_URI=http://127.0.0.1:8888/callback
TMDB_API_KEY=your_tmdb_api_key # or TMDB_READ_ACCESS_TOKEN=...
SPOTIFY_TOOLSETS=core # optional: core (default), playback, playlists, search, taste, library, browse, allIn the Spotify Developer Dashboard, add http://127.0.0.1:8888/callback as a Redirect URI for your app. Only the Client ID is needed; there is no client secret.
3. Connect your Spotify account
spotify-mcp-authThis opens Spotify in your browser. Once you approve, the token is saved to ~/.spotify-mcp/.spotipyoauthcache (set SPOTIFY_MCP_CACHE_PATH to store it elsewhere), and both the MCP server and the web studio use it.
4. Connect the MCP server to your AI client
spotify-mcp runs the server over stdio. Add it to Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json) or any other MCP client:
{
"mcpServers": {
"spotify": {
"command": "spotify-mcp",
"env": {
"SPOTIFY_TOOLSETS": "core"
}
}
}
}If the client can't find spotify-mcp on your PATH, use the full path printed by where spotify-mcp (Windows) or which spotify-mcp (macOS/Linux). With uv, you can skip the install and let the client run it:
{
"mcpServers": {
"spotify": {
"command": "uvx",
"args": ["--from", "spotify-soundtrack-mcp", "spotify-mcp"]
}
}
}From version 1.1.0, the package-named command also runs over stdio when given --transport stdio. This is the command MCP Registry clients run:
{
"mcpServers": {
"spotify": {
"command": "uvx",
"args": ["spotify-soundtrack-mcp", "--transport", "stdio"],
"env": {
"SPOTIPY_CLIENT_ID": "your_spotify_client_id"
}
}
}
}While spotify-mcp is running, it also starts the web studio at http://127.0.0.1:8000 if spotify-mcp-web is installed.
To serve MCP over HTTP (SSE) for remote clients instead, run:
spotify-soundtrack-mcpIt listens on 0.0.0.0:8080; set HOST and PORT to change this. spotify-soundtrack-mcp --transport stdio (or MCP_TRANSPORT=stdio) runs it over stdio instead, and spotify-soundtrack-mcp --version prints the installed version.
5. Open the web studio on its own
soundtrack-studioThis starts the studio at http://127.0.0.1:8000 and opens your browser. Set PORT to use a different port, or OPEN_BROWSER=false to stop it from opening the browser. The tool guide is at /guide and the advanced tools are at /tools.
Run with Docker
The Dockerfile builds the MCP server from this repository and runs it over stdio (MCP directories such as Glama use it to inspect the server):
docker build -t spotify-soundtrack-mcp .
docker run -i --rm -e SPOTIPY_CLIENT_ID=your_spotify_client_id -e TMDB_API_KEY=your_tmdb_api_key spotify-soundtrack-mcpAll 115 tools load by default (SPOTIFY_TOOLSETS=all); pass -e SPOTIFY_TOOLSETS=core for the smaller set.
Prerequisites
To run from source instead of PyPI, make sure you have the following installed:
You will also need developer API credentials for:
Spotify Developer Dashboard (only the Client ID is needed; sign-in uses PKCE browser authorization)
TMDB API (provide either an API key or a Read Access Token)
Installation & Setup
Follow these steps to run the project locally:
1. Clone the repository
git clone https://github.com/Chiru144/Spotify-MCP-Web-And-MCP-Server.git
cd Spotify-MCP-Web-And-MCP-Server2. Create and activate a virtual environment
Using a virtual environment is recommended for managing dependencies.
Windows:
python -m venv .venv
.venv\Scripts\activateMac/Linux:
python3 -m venv .venv
source .venv/bin/activate3. Install dependencies
Install the required Python packages from requirements.txt:
pip install -r requirements.txt4. Configure environment variables
Create a file named .env in the project root (or copy .env.sample) and add your API credentials:
# Spotify Developer API credentials (PKCE auth - no secret needed)
SPOTIPY_CLIENT_ID=your_spotify_client_id
SPOTIPY_REDIRECT_URI=http://127.0.0.1:8888/callback
# TMDB credentials - provide ANY ONE (either TMDB_API_KEY or TMDB_READ_ACCESS_TOKEN):
TMDB_API_KEY=your_tmdb_api_key
TMDB_READ_ACCESS_TOKEN=your_tmdb_read_access_token
TMDB_BASE_URL=https://api.themoviedb.org/3
# Modular toolsets: choose which tools to load, to avoid overloading the LLM's context window
# Options: core (default, 16 essential curation tools), playback, playlists, search, taste, library, browse, or all
SPOTIFY_TOOLSETS=core
# Optional configuration
OPEN_BROWSER=trueSpotify PKCE flow: The app uses PKCE (Proof Key for Code Exchange) authorization. No client secret is needed or used; you only need your
SPOTIPY_CLIENT_IDand a one-click browser login.Flexible TMDB authentication: You only need one of
TMDB_API_KEY(v3 API key) orTMDB_READ_ACCESS_TOKEN(v4 Read Access Token). The server detects which one you provided.
5. (Optional) Verify Spotify sign-in
Run the one-click Spotify authorization script to test your connection:
python auth_spotify.pyModular Toolsets & On-Demand Lazy Loading
To avoid flooding the LLM context window in AI clients (Cursor, Claude Desktop, Antigravity), this server uses modular toolsets and on-demand lazy loading:
Context window protection: The full catalog of 115 tools takes ~25,600 tokens. Running with
--toolsets=coreexposes only the 16 essential curation tools (~4,100 tokens), an 84% reduction.On-demand lazy loading: Heavy modules (
spotipy,requests,bs4,ddgs, etc.) are not loaded at startup. When an LLM calls a tool, its module is imported and kept in memory, so later calls start instantly.
Available Toolsets
Toolset Profile | Exposed Tools | Token Footprint | Best For |
| 16 tools | ~4,100 tokens | Filmography curation, movie soundtracks, search, dedupe, staging studio |
| 31 tools | ~4,700 tokens | DJ controls, Spotify Connect device switching, queue management |
| 37 tools | ~9,500 tokens | Playlist diff, subset detection, merging, splitting, and vibe/radio/era/time-capsule generators |
| 16 tools | ~4,500 tokens | Music exploration, mood/genre search, TMDB movie & actor filmography lookup |
| 14 tools | ~3,100 tokens | Top tracks, listening patterns, taste profile, playlist comparisons |
| 11 tools | ~2,400 tokens | Saved tracks, saved albums, local library cache (sync, stats, query) |
| 5 tools | ~1,200 tokens | Spotify catalog lookup (artist, album, track, your profile) |
| 115 tools | ~25,600 tokens | Full access to every tool |
Running with Toolset Flags
You can choose toolsets with the --toolsets=... command-line flag or the SPOTIFY_TOOLSETS environment variable:
# Run with the lightweight core toolset (16 tools, best for Cursor/Claude):
python server.py --toolsets=core
python mcp.py --toolsets=core
# Combine multiple toolsets:
python server.py --toolsets=core,playback
# Run with the complete catalog (115 tools):
python server.py --toolsets=allRunning the Application
There are two entry points, depending on how you want to use the server:
1. server.py (development and web app)
Start the MCP server and the web app together:
python server.py --toolsets=coreThe web interface should open automatically in your default browser at http://127.0.0.1:8000.
2. mcp.py (MCP client integration)
If you are running this project as a tool inside an MCP host (such as Cursor, VS Code, or Claude Desktop), use mcp.py:
python mcp.py --toolsets=coreRepository Structure
Spotify-MCP-Web-And-MCP-Server/
├── Dockerfile # Container image that runs the MCP server over stdio
├── server.json # MCP Registry listing (io.github.Chiru144/spotify-soundtrack-mcp)
├── server.py # FastMCP server entry point & SSE ASGI app
├── mcp.py # Stdio FastMCP runner with PKCE GUI OAuth popup
├── auth_spotify.py # CLI helper to verify the Spotify OAuth connection
├── requirements.txt # Python dependencies
├── SPOTIFY_RULES.md # MCP tool usage rules & agent clarification protocol
├── tools/ # Modular MCP tool implementations (115 tools)
│ ├── registry.py # Toolset catalog, CLI toolset router & lazy loader
│ ├── core.py # FastMCP server instance, Spotify/TMDB client helpers
│ ├── spotify_client.py # Spotify client with rate-limit handling & 2026 API fixes
│ ├── playlists.py # Core playlist curation & power tools
│ ├── playback.py # Spotify Connect playback & device controls
│ ├── taste.py # Taste analytics & listening trends
│ ├── search.py # Music discovery, search & TMDB filmography tools
│ ├── library.py # Saved tracks, albums & library management
│ ├── library_cache.py # Local JSON cache of Liked Songs & your playlists
│ ├── generators.py # Vibe, radio, era & time-capsule playlist generators
│ ├── discovery.py # Search-based discovery & genre vibe estimates (2026 API workarounds)
│ ├── browse.py # Catalog entity inspection & artist discography
│ ├── tmdb_helpers.py # TMDB API client & DuckDuckGo/Wikipedia fallbacks
│ ├── web_app.py # MCP tool that opens the Soundtrack Studio UI
│ └── web_app_internal.py # Background thread launcher for Soundtrack Studio
├── mcp-soundtrack-app/ # Soundtrack Curator & Staging Studio web app
│ ├── server.py # FastAPI server for the REST API & web pages
│ └── templates/ # HTML templates
│ ├── index.html # Main Soundtrack Curator & Staging Studio UI
│ ├── tools.html # Advanced tools dashboard
│ └── guide.html # Tool guide & documentation
├── skills/ # 20 autonomous agent skills for AI assistants
├── packaging/ # PyPI packaging for both packages
│ ├── build_packages.py # Builds the wheels, checks and bumps versions
│ ├── spotify-soundtrack-mcp/ # pyproject, PyPI README and CLI of the MCP server package
│ └── spotify-mcp-web/ # pyproject, PyPI README and CLI of the web studio package
├── tests/ # Pytest unit & integration tests
│ ├── test_browse.py
│ ├── test_discovery.py
│ ├── test_library.py
│ ├── test_library_cache.py
│ ├── test_playback.py
│ ├── test_playlists.py
│ ├── test_search.py
│ ├── test_server.py
│ ├── test_spotify_client.py
│ ├── test_studio_playlists.py
│ ├── test_taste.py
│ ├── test_toolsets.py
│ └── test_web_app.py
├── .cursor/rules/ # Cursor IDE rules
├── .agents/rules/ # Agent / Antigravity IDE rules
└── .github/ # Copilot instructions & the release workflow (workflows/publish.yml)API Limits
Keep in mind the rate limits of the external APIs this project uses:
Spotify Web API: Spotify uses a dynamic rate limit over a rolling window. If you make too many requests in a short time (for example, searching aggressively or building very large playlists), Spotify returns
429 Too Many Requestsand may ask the app to wait, sometimes for hours. When the wait is long, the tools stop and tell you when you can try again instead of hanging.TMDB API: The Movie Database allows up to 50 requests per second. That is generous for normal use, but large batches or many rapid lookups at once can still hit it.
MCP Integration
This project is built with fastmcp. Once it is running over stdio (or SSE, if configured), any MCP client can use its tools.
Publishing a Release (PyPI & MCP Registry)
The two PyPI packages are built from this repository by packaging/build_packages.py, which copies tools/, skills/, SPOTIFY_RULES.md and mcp-soundtrack-app/ into the package layouts and rewrites the tools.* imports to spotify_soundtrack_mcp.tools.*.
pip install build
python packaging/build_packages.py --check # versions, server.json and mcp-name agree
python packaging/build_packages.py # build wheels and sdists into dist/
python packaging/build_packages.py --set-version 1.2.0 # bump both packages and server.jsonPushing a tag such as v1.2.0 runs .github/workflows/publish.yml, which tests and builds both packages, uploads them to PyPI, and then publishes server.json to the MCP Registry.
One-time setup:
PyPI trusted publishing: on PyPI, open each project (
spotify-soundtrack-mcpandspotify-mcp-web) → Manage → Publishing → Add a new publisher → GitHub, with ownerChiru144, repositorySpotify-MCP-Web-And-MCP-Server, workflowpublish.ymland environmentpypi.GitHub environment: in the repository settings, create an environment named
pypi.MCP Registry: nothing to configure. The workflow signs in with GitHub OIDC, which allows publishing names under
io.github.Chiru144/.
The registry confirms you own the PyPI package by finding mcp-name: io.github.Chiru144/spotify-soundtrack-mcp in its PyPI description, which comes from packaging/spotify-soundtrack-mcp/README.md. Keep that line when editing the README.
To publish by hand instead:
python packaging/build_packages.py
twine upload dist/spotify-soundtrack-mcp/* dist/spotify-mcp-web/*
mcp-publisher login github # https://github.com/modelcontextprotocol/registry/releases
mcp-publisher publish # run from the repository root, next to server.jsonAvailable Tools
16 toolsadd_movie_songs_to_playlistA
Find songs for a specific movie on Spotify and add them directly to an existing playlist.
Args: playlist_id: The Spotify ID of the existing playlist movie_name: Title of the movie max_songs: Maximum number of songs to add (default: 5)
Inputs: movie_name (required), playlist_id (required), max_songs. Returns: result
add_tracks_to_playlistA
Add a list of Spotify song URIs to an existing playlist.
Args: playlist_id: The Spotify ID or URI of the playlist track_uris: List of Spotify song URIs (e.g. ['spotify:track:...', ...])
Inputs: track_uris (required), playlist_id (required). Returns: result
create_actor_playlistA
End-to-End Pipeline: Discover an actor's filmography via TMDB/DDG, locate songs on Spotify, create a new playlist, and add all tracks.
Args: actor_name: Name of the actor (e.g., 'Cillian Murphy', 'Shah Rukh Khan', 'Keanu Reeves') playlist_name: Optional custom name for the playlist max_movies: Number of movies to pull songs from (default: 10) max_songs_per_movie: Number of songs to add per movie (default: 3) specific_movies: Optional comma-separated list of specific movies to use (e.g. 'Inception, Dunkirk, Oppenheimer') sort_by: Filmography sort order ('popularity' or 'release_date', default: 'popularity') public: Whether the created playlist is public (default: True)
Inputs: actor_name (required), public, sort_by, max_movies, +3 more. Returns: result
create_playlistB
Create a new Spotify playlist for the user.
Args: name: Name of the playlist description: Description of the playlist public: Whether the playlist is public (default: True)
Inputs: name (required), public, description. Returns: result
dedupe_playlistADestructiveIdempotent
Removes all duplicate songs from a Spotify playlist, keeping only the first occurrence of each song.
Args: playlist_id: The Spotify ID, URI, or URL of the playlist to deduplicate.
Inputs: playlist_id (required). Returns: result
fetch_soundtrack_tracksARead-onlyIdempotent
Searches Spotify for movie soundtrack tracks using titles, language, release year, or actor name with fuzzy matching.
Args: movie_title: Title of the movie language_name: Optional language filter (e.g. 'Kannada', 'Telugu', 'Hindi', 'English') release_year: Optional movie release year (e.g. '2023') actor_name: Optional actor name to narrow down soundtrack
Inputs: movie_title (required), actor_name, release_year, language_name. Returns: result
get_actor_tmdb_profileBRead-onlyIdempotent
Get rich biographical and career profile details for an actor from TMDB.
Args: actor_name: Name of the actor (e.g. 'Robert Downey Jr.', 'Zendaya')
Inputs: actor_name (required). Returns: result
get_audio_featuresCRead-onlyIdempotent
Unavailable: Spotify no longer provides audio features (danceability, energy, valence, tempo) for Development Mode apps.
Args: track_uris: List of Spotify track URIs (max 100).
Inputs: track_uris (required). Returns: result
get_playlist_tracksCRead-onlyIdempotent
Get the tracks currently inside a specific playlist.
Inputs: playlist_id (required), limit, offset. Returns: result
get_recommendationsARead-onlyIdempotent
Get track recommendations from seed tracks, artists and genres (songs by the seeds' collaborators plus genre picks).
Args: limit: Number of recommendations to return (default: 10, max: 100). seed_tracks: List of Spotify track IDs or URIs. seed_artists: List of Spotify artist IDs or URIs. seed_genres: List of genres (e.g., 'synthwave', 'indie pop'). target_energy: Optional intensity 0.0-1.0. If no seed genres are given, adds the genres whose estimated vibe is closest (Spotify no longer provides per-track audio features). target_valence: Optional positivity 0.0-1.0, used the same way. target_danceability: Ignored. Spotify no longer provides audio features for Development Mode apps. target_acousticness: Ignored (see target_danceability). target_instrumentalness: Ignored (see target_danceability). target_tempo: Ignored (see target_danceability).
Inputs: limit, seed_genres, seed_tracks, seed_artists, +6 more. Returns: result
get_user_playlistsARead-onlyIdempotent
Get the current user's playlists with song counts.
Args: limit: Number of playlists to fetch (default 10, max 50)
Inputs: limit. Returns: result
open_soundtrack_studioARead-onlyIdempotent
Launch or retrieve the URL for the Soundtrack Curator & Staging Studio web application.
Returns the local web application URL and opens it in your default browser.
Inputs: no named parameters. Returns: result
reorder_playlist_by_audio_featuresARead-onlyIdempotent
Unavailable: Spotify no longer provides audio features (energy, valence, danceability, tempo) for Development Mode apps, so playlists cannot be sorted by them. The playlist is left unchanged.
Args: playlist_id: Spotify playlist ID or URI. feature: The audio feature to sort by (e.g., 'energy', 'valence', 'danceability', 'tempo'). order: 'asc' for ascending, 'desc' for descending. ascending: Optional boolean (True for 'asc', False for 'desc'). Overrides order if provided.
Inputs: playlist_id (required), order, feature, ascending. Returns: result
search_actor_moviesARead-onlyIdempotent
Discover the full filmography for an actor using TMDB (with DDG and Wikipedia fallbacks).
Args: actor_name: Name of the actor (e.g. 'Cillian Murphy', 'Shah Rukh Khan', 'Tom Cruise') limit: Maximum number of movies to return (default: 30) sort_by: Ordering for movies ('popularity' or 'release_date', default: 'popularity')
Inputs: actor_name (required), limit, sort_by. Returns: result
search_movie_tmdbBRead-onlyIdempotent
Search TMDB for movie information, release year, ratings, and overview.
Args: movie_name: Title of the movie to search (e.g. 'Inception', 'Interstellar') limit: Maximum results to return (default: 5)
Inputs: movie_name (required), limit. Returns: result
search_spotifyARead-onlyIdempotent
Search for songs, albums, artists, or playlists on Spotify.
Args: query: Search keywords search_type: Types to search for (comma-separated: 'track', 'album', 'artist', 'playlist') limit: Number of results (default 5, max 20)
Inputs: query (required), limit, search_type. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
Core playlist CRUD tools are distinct, but there is significant overlap between the high-level create_actor_playlist pipeline and the lower-level create_playlist + add_movie_songs_to_playlist + add_tracks_to_playlist combination, and fetch_soundtrack_tracks overlaps with both add_movie_songs_to_playlist and search_spotify. Two tools (reorder_playlist_by_audio_features, get_audio_features) are explicitly non-functional, adding noise that could mislead an agent into calling dead endpoints.
Nearly all tools follow a verb_noun snake_case pattern (create_playlist, add_tracks_to_playlist, get_user_playlists, search_spotify). Minor inconsistency in how the TMDB suffix is placed (search_movie_tmdb vs get_actor_tmdb_profile vs search_actor_movies), but overall predictable.
16 tools is on the heavier side for a dual-domain (Spotify + TMDB) server, and two of them are documented as unavailable, meaning real functional surface is smaller than the count suggests. The set is defensible but borderline bloated with redundant paths to similar outcomes.
Creation, retrieval, dedupe, and enrichment paths exist, but obvious gaps remain: no remove_tracks_from_playlist, no delete_playlist, no update_playlist_details, and no standalone track/artist lookup beyond search. Agents wanting to edit a playlist can add and dedupe but cannot remove or delete, which will cause dead ends.
Maintenance
Related MCP Connectors
AI playlist engine that turns music prompts into real YouTube playlists and filters bad versions.
Find movies and shows for tonight with current trends, mood, taste and streaming options.
Search movies/TV by mood, genre, score, cast, and awards, filtered to what's streaming near you.
Manage digital signage screens, playlists and media from your AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Spotify through natural language for music discovery, playback control, library management, and playlist creation. Supports searching for music, controlling playback, managing saved tracks, and getting personalized recommendations based on mood and preferences.118 npm5MIT
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Spotify's music catalog through natural language conversations. Search for tracks and artists, get recommendations, explore playlists, and browse artist discographies using the Spotify Web API.-
- FlicenseBqualityDmaintenanceEnables AI assistants to control Spotify playback, search for music, manage playlists, and interact with your Spotify library through natural language commands.19-
- FlicenseBqualityCmaintenanceEnables AI assistants to control Spotify playback, search the catalog, and manage playlists and liked songs through natural language. Supports reading currently playing tracks, queues and devices, plus play, pause, skip, queueing, volume control, and playlist creation and editing.30-