借助由人工智能驱动的音乐助手,对您的 Navidrome 音乐服务器进行改造。此 MCP(模型上下文协议)服务器使 Claude、ChatGPT 等人工智能助手能够通过自然语言与您的个人音乐库进行交互,实现智能播放列表创建、音乐发现和音乐库管理等功能。
本 MCP 服务器能让人工智能助手真正理解您的音乐品味,实现以下功能:
这不仅仅是另一个音乐工具,而是由人工智能驱动的个人音乐策划师。
手动构建的额外要求:
最简单的开始方式是使用已发布的 npm 包,该包在启动时会自动更新:
npm install -g navidrome-mcp
此方法会全局安装 MCP 服务器,并自动保持其最新状态。
如果您需要进行开发或自定义构建,请执行以下操作:
git clone https://github.com/Blakeem/Navidrome-MCP.git
cd navidrome-mcp
pnpm install
pnpm build
找到您的配置文件:
%APPDATA%/Claude/claude_desktop_config.json
~/Library/Application Support/Claude/claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
添加 Navidrome MCP 服务器:
{
"mcpServers": {
"navidrome": {
"command": "npx",
"args": ["navidrome-mcp"],
"env": {
"NAVIDROME_URL": "http://your-server:4533",
"NAVIDROME_USERNAME": "your_username",
"NAVIDROME_PASSWORD": "your_password",
"LASTFM_API_KEY": "your_api_key", // 在 https://www.last.fm/api/account/create 获取您自己的 API 密钥
"RADIO_BROWSER_USER_AGENT": "Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)",
"LYRICS_PROVIDER": "lrclib",
"LRCLIB_USER_AGENT": "Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)"
}
}
}
}
{
"mcpServers": {
"navidrome": {
"command": "node",
"args": ["/absolute/path/to/navidrome-mcp/dist/index.js"],
"env": {
"NAVIDROME_URL": "http://your-server:4533",
"NAVIDROME_USERNAME": "your_username",
"NAVIDROME_PASSWORD": "your_password",
"LASTFM_API_KEY": "your_api_key", // 在 https://www.last.fm/api/account/create 获取您自己的 API 密钥
"RADIO_BROWSER_USER_AGENT": "Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)",
"LYRICS_PROVIDER": "lrclib",
"LRCLIB_USER_AGENT": "Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)"
}
}
}
}
重要提示:
npx navidrome-mcp
,每次启动时会自动更新。npx
navidrome-mcp
node
/absolute/path/to/navidrome-mcp/dist/index.js
工具 | 描述 |
---|---|
test_connection |
验证 Navidrome 服务器的连接性和功能状态 |
工具 | 描述 |
---|---|
list_songs |
通过过滤和排序浏览歌曲 |
list_albums |
浏览带有元数据的专辑 |
list_artists |
浏览带有统计信息的艺术家 |
list_genres |
查看音乐库中的所有音乐流派 |
get_song |
获取详细的歌曲信息 |
get_album |
获取详细的专辑信息 |
get_artist |
获取详细的艺术家信息 |
get_song_playlists |
获取包含特定歌曲的所有播放列表 |
工具 | 描述 |
---|---|
search_all |
在所有内容类型中进行搜索 |
search_songs |
搜索特定歌曲 |
search_albums |
搜索专辑 |
search_artists |
搜索艺术家 |
get_similar_artists |
查找相似的艺术家(Last.fm) |
get_similar_tracks |
查找相似的曲目(Last.fm) |
get_artist_info |
获取艺术家的传记和标签信息 |
get_top_tracks_by_artist |
从 Last.fm 获取艺术家的热门曲目 |
get_trending_music |
查看全球音乐趋势 |
工具 | 描述 |
---|---|
list_playlists |
查看所有播放列表 |
get_playlist |
根据 ID 获取特定播放列表的详细信息 |
create_playlist |
创建新的播放列表 |
update_playlist |
更新播放列表的元数据 |
delete_playlist |
删除播放列表 |
get_playlist_tracks |
获取播放列表的内容 |
add_tracks_to_playlist |
添加歌曲/专辑/艺术家 |
batch_add_tracks_to_playlist |
批量添加多组曲目 |
remove_tracks_from_playlist |
删除特定曲目 |
reorder_playlist_track |
重新排列曲目顺序 |
工具 | 描述 |
---|---|
star_item |
将项目标记为收藏 |
unstar_item |
从收藏中移除项目 |
set_rating |
设置 0 - 5 星评级 |
list_starred_items |
查看收藏项目 |
list_top_rated |
查看评分最高的项目 |
工具 | 描述 |
---|---|
list_recently_played |
查看最近的收听活动 |
list_most_played |
查找播放最多的内容 |
get_queue |
查看播放队列 |
set_queue |
设置播放队列 |
clear_queue |
清空播放队列 |
工具 | 描述 |
---|---|
validate_radio_stream |
测试广播流 URL 的有效性 |
list_radio_stations |
查看所有广播电台 |
get_radio_station |
根据 ID 获取特定广播电台的详细信息 |
create_radio_station |
添加新的广播电台(可选验证*) |
delete_radio_station |
根据 ID 删除网络广播电台 |
batch_create_radio_stations |
批量添加多个广播电台(可选验证*) |
play_radio_station |
开始广播播放 |
get_current_radio_info |
获取当前播放的广播电台和流元数据的信息 |
discover_radio_stations |
在全球范围内查找网络广播电台 |
get_radio_filters |
获取可用的搜索过滤器(流派、国家等) |
get_station_by_uuid |
获取详细的电台信息 |
click_station |
记录播放点击以用于人气指标 |
vote_station |
为广播电台投票 |
*注意:create_radio_station
和 batch_create_radio_stations
都支持一个可选的 validateBeforeAdd
参数,该参数会在将广播流 URL 添加到 Navidrome 之前对其进行测试。
工具 | 描述 |
---|---|
get_lyrics |
获取同步和纯文本歌词 |
工具 | 描述 |
---|---|
list_tags |
浏览所有元数据标签 |
get_tag |
根据 ID 获取特定标签的详细信息 |
search_by_tags |
根据特定标签进行搜索 |
get_tag_distribution |
分析标签使用情况 |
list_unique_tags |
列出所有唯一的标签名称并附带统计信息(唯一值数量、总使用次数) |
curl
或浏览器进行测试。# 克隆并设置项目
git clone https://github.com/Blakeem/Navidrome-MCP.git
cd navidrome-mcp
cp .env.example .env
# 使用您的凭据编辑 .env 文件
# 开发
pnpm dev # 热重载模式
pnpm test # 运行测试
pnpm lint # 检查代码风格
pnpm typecheck # 类型检查
# 首先进行构建
pnpm build
# 网页 UI 测试
npx @modelcontextprotocol/inspector node dist/index.js
# CLI 测试
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call \
--tool-name search_all \
--tool-arg query="jazz"
navidrome-mcp/
├── src/ # TypeScript 源代码
├── dist/ # 编译后的 JavaScript
├── docs/ # 文档
├── tests/ # 测试套件
└── CLAUDE.md # 人工智能助手说明
源代码遵循 GNU Affero 通用公共许可证 v3.0。请参阅 LICENSE。
文档遵循知识共享署名 - 相同方式共享 4.0 国际许可协议。
为 Navidrome 社区用心打造 ❤️