要通过Smithery自动安装MCP Claude Spotify:
npx -y @smithery/cli install @imprvhub/mcp-claude-spotify --client claude
git clone https://github.com/imprvhub/mcp-claude-spotify
cd claude-spotify-mcp
npm install
npm run build
该仓库已经包含了预构建文件在build目录中,因此如果你不打算修改源代码,可以跳过第3步。
要使用此MCP,你需要获取Spotify API凭证:
http://127.0.0.1:8888/callback保存这些凭证,因为配置时需要它们。
有两种方法可以运行MCP服务器:
node build/index.js
在使用Claude Desktop时,请保持这个终端窗口打开。服务器会一直运行直到你关闭终端。
Claude Desktop可以在需要时自动启动MCP服务器。要设置:
Claude Desktop的配置文件位于:
~/Library/Application Support/Claude/claude_desktop_config.json编辑此文件以添加Spotify MCP配置。如果文件不存在,请创建它:
{
"mcpServers": {
"spotify": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_DIRECTORY/mcp-claude-spotify/build/index.js"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id_here",
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
重要:替换:
ABSOLUTE_PATH_TO_DIRECTORY为你安装MCP的完整绝对路径
/Users/username/mcp-claude-spotifyC:\\Users\\username\\mcp-claude-spotifyyour_client_id_here为你从Spotify获得的客户端IDyour_client_secret_here为你从Spotify获得的客户端密钥如果你已经有其他MCP配置,只需在“mcpServers”对象内添加“spotify”部分即可。
为了更可靠地体验,你可以设置自动启动脚本:
<details> <summary><b>Windows自动启动说明</b></summary>start-spotify-mcp.bat的文件,内容如下:@echo off
cd %~dp0
node build/index.js
Win+R,键入shell:startup并按Enter~/Library/LaunchAgents/中创建一个名为com.spotify.mcp.plist的文件,内容如下:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.spotify.mcp</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/node</string>
<string>ABSOLUTE_PATH_TO_DIRECTORY/mcp-claude-spotify/build/index.js</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/spotify-mcp.err</string>
<key>StandardOutPath</key>
<string>/tmp/spotify-mcp.out</string>
<key>EnvironmentVariables</key>
<dict>
<key>SPOTIFY_CLIENT_ID</key>
<string>your_client_id_here</string>
<key>SPOTIFY_CLIENT_SECRET</key>
<string>your_client_secret_here</string>
</dict>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.spotify.mcp.plist~/.config/systemd/user/中创建一个名为spotify-mcp.service的文件(如果目录不存在,请创建):[Unit]
Description=Spotify MCP Server for Claude Desktop
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node ABSOLUTE_PATH_TO_DIRECTORY/mcp-claude-spotify/build/index.js
Restart=on-failure
Environment="SPOTIFY_CLIENT_ID=your_client_id_here"
Environment="SPOTIFY_CLIENT_SECRET=your_client_secret_here"
[Install]
WantedBy=default.target
systemctl --user enable spotify-mcp.service
systemctl --user start spotify-mcp.service
systemctl --user status spotify-mcp.service
</details>
auth-spotify命令开始认证过程MCP服务器作为由Claude Desktop管理的子进程运行。当Claude运行时,它会根据claude_desktop_config.json中的配置自动启动和管理Node.js服务器进程。
启动Spotify认证过程。
搜索曲目、专辑、艺术家或播放列表。
参数:
query:搜索文本type:搜索类型(曲目、专辑、艺术家、播放列表)limit:结果数量(1-50)播放特定曲目。
参数:
trackId:Spotify曲目IDdeviceId:(可选)要在其上播放的Spotify设备ID获取当前播放的信息。
暂停播放。
跳到下一曲。
返回至上一曲。
获取用户的播放列表。
创建新的播放列表。
参数:
name:播放列表名称description:(可选)描述public:(可选)是否公开或私有向播放列表添加曲目。
参数:
playlistId:播放列表IDtrackIds:曲目ID数组基于种子获取推荐。
参数:
seedTracks:(可选)曲目ID数组seedArtists:(可选)艺术家ID数组seedGenres:(可选)流派数组limit:(可选)推荐数量(1-100)获取用户在指定时间段内最常播放的曲目。
参数:
limit:(可选)要返回的曲目数量(1-50,默认:20)offset:(可选)要返回的第一个曲目的索引(默认:0)time_range:(可选)计算亲密度的时间范围:
short_term:大约最近4周medium_term:大约最近6个月(默认)long_term:数年的数据如果你在Claude Desktop中看到“MCP Spotify:服务器断开连接”的错误:
验证服务器正在运行:
node build/index.js从项目目录检查你的配置:
claude_desktop_config.json中的绝对路径对你系统是正确的\\)尝试自动启动选项:
如果浏览器在认证过程中没有自动打开,请手动访问:
http://127.0.0.1:8888/login
确保你在Spotify开发者仪表板中正确配置了重定向URI:
http://127.0.0.1:8888/callback
验证以下事项:
claude_desktop_config.json或启动脚本中是否正确配置如果认证后Spotify工具在Claude中不可见:
要检查服务器是否运行:
ps aux | grep node如果没有看到服务器正在运行,请手动启动或使用自动启动方法。
该项目包含自动化测试以确保代码质量和功能。测试套件使用Jest和TypeScript支持,并涵盖:
首先,确保安装了所有开发依赖项:
npm install
运行所有测试:
npm test
运行特定测试文件:
npm test -- --testMatch="**/tests/schemas.test.ts"
如果你遇到ESM模块问题,请确保你使用的是Node.js v16或更高版本,并且NODE_OPTIONS环境变量包括--experimental-vm-modules标志,如package.json中所配置。
tests/schemas.test.ts:输入验证模式的测试tests/spotify-api.test.ts:Spotify API交互的测试tests/server.test.ts:MCP服务器功能的测试添加新功能时,请包含相应的测试:
schemas.test.ts中添加验证测试spotify-api.test.ts中添加测试server.test.ts中添加测试所有测试应使用Jest和ESM模块格式以及TypeScript编写。
~/.spotify-mcp/tokens.json中,以实现跨会话和多个实例的持久性出于安全原因,当你:
可能需要撤销应用程序对你的Spotify账户的访问权限:
这将立即使所有访问和刷新令牌失效。下次使用auth-spotify命令时,你需要再次授权应用程序。
欢迎贡献!请遵循以下指南:
git checkout -b feature/amazing-feature)npm test)git commit -m '添加一些精彩的功能')git push origin feature/amazing-feature)此项目遵循以下编码标准:
项目遵循以下结构:
mcp-claude-spotify/
├── src/ # 源代码
├── build/ # 编译后的JavaScript
├── tests/ # 测试文件
├── public/ # 公共资产
└── ...