Spotify音乐管理服务

一个通过自然语言与Spotify交互的模型上下文协议(MCP)服务器,支持创建播放列表、搜索曲目和管理音乐库。

  • by tianyoul
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 tianyoul/spotify-mcp

使用说明

Spotify MCP 服务器

一个模型上下文协议(MCP)服务器,使Claude Desktop能够与Spotify进行交互。使用自然语言创建播放列表、搜索曲目以及管理您的Spotify库。

特点/功能

  • 搜索曲目按艺术家、专辑、流派或自然语言查询来查找歌曲
  • 创建播放列表创建具有自定义名称和描述的新播放列表
  • 添加音轨一次性向播放列表中添加多首曲目
  • 查看播放列表列出您现有的Spotify播放列表
  • 获取推荐根据种子(曲目、艺术家或流派)发现新音乐

先决条件

  • Node.js(v18 或更高版本)
  • 一个Spotify账户
  • Claude 桌面应用程序
  • Spotify 开发者应用凭据

安装说明

1. 克隆仓库

git clone https://github.com/tianyoul/spotify-mcp.git
cd spotify-mcp

2. 安装依赖项

npm install

3. 创建Spotify应用

  1. 首选 Spotify开发者仪表板
  2. 点击“创建应用”
  3. 填写详细信息:
    • 应用名称Spotify MCP服务器(或任何名称)
    • 应用描述Claude Desktop的MCP服务器
    • 重定向URI: http://127.0.0.1:8888/callback
  4. 保存你的应用
  5. 复制你的 客户端ID 并且 客户端密钥

4. 配置环境变量

创建一个 .env 项目根目录下的文件:

SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888/callback

替换 your_client_id_here 并且 your_client_secret_here 使用您真实的Spotify账号凭据。

5. 构建项目

npm run build

6. 用Spotify进行身份验证

npm run auth

这将:

  • 打开一个浏览器窗口进行Spotify身份验证
  • 请求必要的权限
  • 将您的访问令牌保存在本地

7. 配置Claude桌面版

在你的Claude桌面配置文件中添加以下内容:

macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Linux(发音类似“林克斯”): ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "spotify": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/spotify-mcp/dist/index.js"],
      "env": {
        "SPOTIFY_CLIENT_ID": "your_client_id_here",
        "SPOTIFY_CLIENT_SECRET": "your_client_secret_here",
        "SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8888/callback"
      }
    }
  }
}

重要的替换 /ABSOLUTE/PATH/TO/spotify-mcp 使用您项目目录的实际绝对路径。

8. 重启Claude桌面版

关闭并重新打开 Claude Desktop。现在应该已经连接到 Spotify MCP 服务器了。

使用示例

配置完成后,您可以通过Claude使用自然语言与Spotify进行交互:

搜索音乐:

“给我找些轻松的爵士乐”

创建一个播放列表:

“创建一个名为‘公路旅行’的播放列表,里面包含一些节奏欢快的摇滚歌曲”

将曲目添加到播放列表:

“搜索泰勒·斯威夫特的歌曲,并将前5首添加到我的旅行播放列表中”

查看您的播放列表:

“给我看看我的Spotify播放列表”

获取推荐:

“推荐与《波西米亚狂想曲》相似的歌曲”

可用工具

MCP服务器向Claude提供了以下工具:

  • search_tracks - 在Spotify上搜索歌曲
  • create_playlist - 在您的账户中创建一个新的播放列表
  • add_tracks_to_playlist - 向现有播放列表中添加曲目
  • get_user_playlists - 列出你的播放列表
  • get_recommendations - 根据种子曲目获取推荐曲目

故障排除

服务器断开连接错误

如果你在Claude桌面版中看到“服务器已断开连接”:

  1. 检查日志: ~/Library/Logs/Claude/mcp-server-spotify.log (macOS)
  2. 确保构建成功完成: npm run build
  3. 验证身份: npm run auth
  4. 检查路径是否在 claude_desktop_config.json 是绝对且正确的

令牌已过期

如果你遇到“令牌已过期”错误:

npm run auth

这将刷新您的Spotify认证。

无法找到模块错误

确保所有依赖项都已安装:

npm install
npm run build

发展

项目结构

spotify-mcp/
├── src/
│   ├── index.ts      # Main MCP server implementation
│   └── auth.ts       # Spotify OAuth flow
├── dist/             # Compiled JavaScript (generated)
├── .env              # Environment variables (create this)
├── package.json
└── tsconfig.json

脚本

  • npm run build - 将TypeScript编译为JavaScript
  • npm run dev - 以开发模式运行
  • npm run auth - 用Spotify进行身份验证
  • npm start - 启动服务器(用于测试)

安全注意事项

  • 永远不要把你的(事情/秘密/承诺等)交出去 .env 文件或 .spotify-token.json 进行版本控制
  • 确保你的Spotify客户端密钥保密
  • 认证令牌被本地存储在 .spotify-token.json
  • 令牌在需要时会自动刷新

许可证

麻省理工学院(MIT)

贡献

欢迎贡献!请随时提交拉取请求。

链接