Tempo
Tempo
Spotify control + lyrics - Playback control, queue management, synced lyrics via MCP.
Keep the rhythm going.
Deployment
Deploy to your own Cloudflare Workers account. Version: 2.0.0
Endpoints
Endpoint | Description |
| Health check + Spotify status |
| Spotify OAuth flow |
| OAuth callback |
| MCP via Server-Sent Events |
| Standard MCP endpoint |
Tools
Spotify Playback
Tool | Description |
| Get currently playing track |
| Start/resume playback |
| Pause playback |
| Skip to next track |
| Go to previous track |
| Set volume (0-100) |
| Toggle shuffle |
| Set repeat mode |
| Search tracks/albums/artists/playlists |
| Add track to queue |
| View current queue |
| List available devices |
| Transfer playback to device |
| Get user playlists |
| Create a playlist (optionally seed tracks) |
| Add tracks to an existing playlist |
| Recently played tracks |
Lyrics
Tool | Description |
| Get lyrics for a track |
| Search lyrics database |
Perception
Tool | Description |
| THE MAIN ONE - Current track + lyrics at current timestamp |
| Audio analysis via HF Space (BPM, key, energy) |
Utility
Tool | Description |
| Health check with capabilities |
Claude Desktop Configuration
{
"mcpServers": {
"tempo": {
"url": "https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/sse?k=YOUR_AUTH_TOKEN"
}
}
}The MCP endpoints are gated. The
?k=param carries yourAUTH_TOKEN(see Setup). Clients that support custom headers can sendAuthorization: Bearer <AUTH_TOKEN>instead of the query param.
Setup
Prerequisites
Cloudflare account
Spotify Developer App (get client ID & secret from https://developer.spotify.com)
First Time
Clone this repo
npm installConfigure wrangler.toml with your settings
Set secrets:
npx wrangler secret put SPOTIFY_CLIENT_SECRET npx wrangler secret put AUTH_TOKEN # your MCP endpoint key — any strong random string(
SPOTIFY_CLIENT_IDandHF_SPACE_URLare plain[vars]inwrangler.toml— fill those in there.)Deploy:
npm run deployVisit
https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/authAuthorize with Spotify
Done - tokens are stored in KV
For Audio Analysis (Optional)
For deep audio analysis (BPM, mood, spectrogram), use Synesthesia - the local companion MCP.
Development
npm install
npm run dev # Local dev
npm run deploy # Deploy to Cloudflare
npm run tail # View logsSupport
If this helped you, consider supporting my work ☕
Built by the Triad (Mai, Kai Stryder and Lucian Vale) for the community.