Spotify MCP服务器

一个将Spotify Web API作为工具暴露的MCP服务器,允许AI助手通过浏览器登录并调用Spotify API。

  • by makesometh-ing
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 makesometh-ing/spotify-mcp-go

使用说明

spotify-mcp-go

MCP server for Spotify. Connect your AI assistant to the Spotify Web API.

Quick start · Install · Setup · Connect your client · Ideas


这是什么?

将Spotify Web API作为工具公开的MCP服务器。它处理OAuth,因此您的MCP客户端(Claude Desktop、Claude Code、Cursor等)可以通过浏览器登录并开始进行Spotify API调用。

代码生成器读取Spotify的OpenAPI规范,并生成一个类型化的Go客户端和MCP工具定义。这在CI中每周运行一次,因此当Spotify添加或更改端点时,工具会自动更新。

快速启动

# 1. Install
brew install makesometh-ing/tap/spotify-mcp-go

# 2. Create a Spotify app at https://developer.spotify.com/dashboard
#    Set the Redirect URI to http://127.0.0.1:8080/callback

# 3. Configure credentials
export SPOTIFY_CLIENT_ID=your_client_id
export SPOTIFY_CLIENT_SECRET=your_client_secret

# 4. Start the server
spotify-mcp-go

# 5. Connect your MCP client to http://127.0.0.1:8080/mcp
#    OAuth login happens automatically in the browser on first connect.

安装

自制(macOS)

brew install makesometh-ing/tap/spotify-mcp-go

二进制下载

从以下网址获取您平台的最新版本 GitHub 发布.

容器

docker pull ghcr.io/makesometh-ing/spotify-mcp-go:latest
docker run -p 8080:8080 --env-file .env ghcr.io/makesometh-ing/spotify-mcp-go:latest

来源

go install github.com/makesometh-ing/spotify-mcp-go/cmd/server@latest

设置

1.创建Spotify应用程序

  1. 首选 developer.spotify.com/dashboard
  2. 点击“创建应用”
  3. 设置 重定向URI 到 http://127.0.0.1:8080/callback
  4. 复制您的 客户端ID 和 客户端密钥

2.配置服务器

cp .env.example .env
# Edit .env with your Spotify credentials
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret

3.启动服务器

spotify-mcp-go

配置

服务器按优先级顺序从三个源读取配置:

  1. 命令行标志 (最高)
  2. 环境变量
  3. .env 文件 在工作目录中
  4. 默认值 (最低)

命令行标志

标志 默认值 描述
--spotify-client-id (必填) Spotify应用程序客户端ID
--spotify-client-secret (必填) Spotify应用程序客户端机密
--port 8080 HTTP服务器端口
--token-db ~/.config/spotify-mcp-go/auth/tokens.db SQLite令牌存储路径
--base-url http://127.0.0.1:<port> 公共基础URL(用于反向代理/隧道/云托管)
--debug false 启用stderr的调试日志记录

环境变量

变量 必填 默认 描述
SPOTIFY_CLIENT_ID 是 Spotify应用程序客户端ID
SPOTIFY_CLIENT_SECRET 是 Spotify应用程序客户端机密
SPOTIFY_MCP_PORT 没有 8080 HTTP服务器端口
SPOTIFY_MCP_TOKEN_DB 没有 ~/.config/spotify-mcp-go/auth/tokens.db SQLite令牌存储路径
SPOTIFY_MCP_BASE_URL 没有 http://127.0.0.1:<port> 公共基础URL(用于反向代理/隧道/云托管)

公共托管

要公开托管服务器(在反向代理、隧道后面或云实例上),请设置 SPOTIFY_MCP_BASE_URL 到公共URL:

export SPOTIFY_MCP_BASE_URL=https://spotify-mcp.example.com
spotify-mcp-go

服务器将在所有OAuth元数据、回调重定向和启动输出中使用此URL。注册 https://spotify-mcp.example.com/callback 作为Spotify开发者仪表板中的重定向URI。

客户端配置

将您的客户指向 http://127.0.0.1:8080/mcpOAuth在首次连接时在浏览器中自动发生。

克劳德桌面

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "spotify": {
      "url": "http://127.0.0.1:8080/mcp"
    }
  }
}

克劳德代码

claude mcp add spotify --transport http http://127.0.0.1:8080/mcp

光标

设置>MCP服务器>添加服务器。姓名: spotify,网址: http://127.0.0.1:8080/mcp.

帆板运动

添加到MCP配置中:

{
  "mcpServers": {
    "spotify": {
      "serverUrl": "http://127.0.0.1:8080/mcp"
    }
  }
}

光线投射

打开命令面板并运行“安装服务器”。姓名: spotify,网址: http://127.0.0.1:8080/mcp.

Codex CLI

codex mcp add spotify http://127.0.0.1:8080/mcp

在MCP客户端上使用Docker

通过Docker运行服务器时,MCP端点是相同的(http://127.0.0.1:8080/mcp)只要绘制港口地图:

docker run -p 8080:8080 \
  -e SPOTIFY_CLIENT_ID=your_client_id \
  -e SPOTIFY_CLIENT_SECRET=your_client_secret \
  ghcr.io/makesometh-ing/spotify-mcp-go:latest

或者用a .env 文件:

docker run -p 8080:8080 --env-file .env ghcr.io/makesometh-ing/spotify-mcp-go:latest

注: 如果没有卷装载,令牌将是短暂的,并在容器停止时丢失。装载令牌数据库目录以在重新启动时持久化令牌:

docker run -p 8080:8080 --env-file .env \
  -v ~/.config/spotify-mcp-go/auth:/home/nonroot/.config/spotify-mcp-go/auth \
  ghcr.io/makesometh-ing/spotify-mcp-go:latest

或使用随附的 docker-compose.yml:

docker compose up

其他客户

任何支持流式HTTP传输的MCP客户端都可以工作。服务器通过RFC 8414/RFC 9728发现通告身份验证端点。

使用理念

连接后,您可以问一些问题:

  • “现在正在播放什么?将其添加到我的收藏夹。”
  • “使用我库中的器乐曲目创建一个名为“焦点模式”的播放列表。”
  • “搜索本月发行的爵士乐专辑。”
  • “哪些艺术家出现在我的3个以上的播放列表中?”
  • “合并我的跑步和健身房播放列表,跳过重复的播放列表。”
  • “我追随的艺术家推出了哪些新作品?”
  • “比较我早上和晚上播放列表的能量。”
  • “将音量设置为30%并打开随机播放。”

版本控制

CalVer: YYYY.MM.PATCH (例如。, 2026.04.0).

发展

make build     # Compile binaries
make test      # Run tests with race detector
make lint      # Run golangci-lint v2
make codegen   # Regenerate from Spotify OpenAPI spec
make run       # Build and start the server
make docker    # Build container with ko
make clean     # Remove build artifacts

许可证

麻省理工学院