Skip to main content
Glama
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.