Spotify MCP
by arikhi14
README.md
# Spotify MCP
A Model Context Protocol (MCP) server for securely interacting with and analyzing a user's Spotify data.
> Status: Phase 1 scaffold. Spotify OAuth and Web API integrations come next.
## Why this project
The goal is to build more than a thin API wrapper. The finished server will combine MCP tooling, Spotify OAuth 2.0, typed API clients, pagination, rate-limit handling, caching, analytics, tests, and CI.
## Current functionality
- MCP Python SDK v2 server
- `server_status` diagnostic tool
- installable Python package
- automated test
- GitHub Actions CI
- secrets-safe repository structure
## Requirements
- Python 3.10+
- `uv` recommended
## Setup
```bash
git clone <your-repo-url>
cd spotify-mcp
uv sync --extra dev
```
Run the tests:
```bash
uv run pytest
```
Open the server in the MCP Inspector:
```bash
uv run mcp dev src/spotify_mcp/server.py
```
Or run the stdio server directly:
```bash
uv run spotify-mcp
```
## Roadmap
1. Spotify OAuth 2.0 authorization and refresh-token storage
2. Read-only tools: profile, playlists, saved tracks, top tracks/artists, recently played
3. Playlist creation and mutation tools
4. Pagination, retry/backoff, caching, and structured errors
5. Higher-level listening analytics
6. Broader tests, documentation, packaging, and MCP Registry publishing
## Security
Never commit Spotify credentials or OAuth tokens. Copy `.env.example` to `.env` locally when Spotify authorization is added.
## License
MIT
TDQS
A3.5/5.0
Scored across 1 tool
Disambiguation5/5
There is only one tool, so there is no ambiguity or overlap with other tools. An agent can tell exactly what server_status does.
Naming Consistency5/5
With a single tool, there are no conflicting naming conventions to compare. server_status uses clear, consistent snake_case formatting.
Tool Count1/5
A Spotify MCP server with only one health-check tool is an extreme mismatch for the likely domain scope. This is far too few tools to support meaningful Spotify interactions.
Completeness1/5
The surface contains only a server health/status check and no Spotify operations such as search, playlists, playback, or library access. It is severely incomplete for a Spotify MCP server.