通过一个由人工智能驱动的音乐助手来改造你的 Navidrome 音乐服务器。这个 MCP(模型上下文协议)服务器使 Claude、ChatGPT 和其他 AI 助手能够通过自然语言与你的个人音乐库进行交互,提供智能播放列表创建、音乐发现和库管理等功能。
想象一下拥有一个真正理解你音乐品味的 AI 助手。这个 MCP 服务器让 AI 助手能够:
这不仅仅是一个音乐工具——它是由 AI 驱动的个人音乐策展人。
手动构建的附加项:
最简单的方法是使用已发布的 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",
"NAVIDROME_DEFAULT_LIBRARIES": "1,2", // 可选:设置默认激活的库(逗号分隔的ID)
"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-M_1.0 (+https://github.com/Blakeem/Navidrome-MCP)"
}
}
}
}
{
"mcpServers": {
"navidrome": {
"command": "node",
"args": ["/绝对路径/to/navidrome-mcp/dist/index.js"],
"env": {
"NAVIDROME_URL": "http://your-server:4533",
"NAVIDROME_USERNAME": "your_username",
"NAVIDROME_PASSWORD": "your_password",
"NAVIDROME_DEFAULT_LIBRARIES": "1,2", // 可选:设置默认激活的库(逗号分隔的ID)
"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,每次启动都会自动更新NAVIDROME_DEFAULT_LIBRARIES 设置默认激活的库(例如,“1”表示一个库,“1,2,3”表示多个库)
set_active_libraries 工具更改激活的库npxnavidrome-mcpnode/绝对路径/to/navidrome-mcp/dist/index.js| 工具 | 描述 |
|---|---|
test_connection | 验证 Navidrome 服务器连接性和功能状态 |
| 工具 | 描述 |
|---|---|
get_song | 详细的歌曲信息 |
get_album | 详细的专辑信息 |
get_artist | 详细的艺术家信息 |
get_song_playlists | 获取包含特定歌曲的所有播放列表 |
get_user_details | 获取用户信息和可用库 |
set_active_libraries | 设置哪些库是激活的,用于筛选内容 |
| 工具 | 描述 |
|---|---|
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 | 在单个操作中添加多种类型的内容(歌曲/专辑/艺术家) |
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 | 使用 JSON 数组格式创建广播电台(单个或多个电台,可选验证*) |
delete_radio_station | 删除互联网广播电台(通过ID) |
play_radio_station | 开始广播电台播放 |
get_current_radio_info | 获取当前播放的广播电台和流元数据的信息 |
discover_radio_stations | 全球范围内发现互联网广播电台 |
get_radio_filters | 获取可用的搜索过滤器(流派、国家等) |
get_station_by_uuid | 获取详细的电台信息 |
click_station | 注册播放点击以计算受欢迎度指标 |
vote_station | 对广播电台进行投票 |
*注意:create_radio_station 支持一个可选的 validateBeforeAdd 参数,该参数会在添加到 Navidrome 之前测试流 URL 的有效性。
| 工具 | 描述 |
|---|---|
get_lyrics | 获取同步和纯文本歌词 |
| 工具 | 描述 |
|---|---|
search_by_tags | 按特定标签搜索 |
get_tag_distribution | 分析标签使用模式和分布 |
get_filter_options | 获取搜索操作的可用过滤值 |
连接问题