AI Skill Hub 推荐使用:Navidrome-MCP 是一款优质的MCP工具。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的MCP工具解决方案,这是一个值得深入了解的选择。
Navidrome-MCP:开源MCP工具,分析听歌习惯,生成播放列表,找寻缺失专辑,发现相似音乐。
Navidrome-MCP 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
Navidrome-MCP:开源MCP工具,分析听歌习惯,生成播放列表,找寻缺失专辑,发现相似音乐。
Navidrome-MCP 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/Blakeem/Navidrome-MCP
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"navidrome-mcp": {
"command": "npx",
"args": ["-y", "navidrome-mcp"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 Navidrome-MCP 执行以下任务... Claude: [自动调用 Navidrome-MCP MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"navidrome-mcp": {
"command": "npx",
"args": ["-y", "navidrome-mcp"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
| Tool | Description |
|---|---|
get_similar_artists | Find artists similar to a given artist |
get_similar_tracks | Find tracks similar to a given track |
get_artist_info | Artist biography and tags |
get_top_tracks_by_artist | Top tracks for an artist |
get_trending_music | Trending artists, tracks, and tags from Last.fm charts |
get_artist_albums | Full discography with release types/years (MusicBrainz), genres + popularity (Last.fm), and an in-library flag per album — "what albums by X am I missing?" |
get_album_info | Single-album deep dive: tracklist with durations, year/type, genres, wiki summary, popularity, and library membership — works for albums you don't own |
| Tool | Description |
|---|---|
get_lyrics | Time-synced (LRC) and plain-text lyrics, matched by title/artist/album/duration |
| Tool | Description |
|---|---|
discover_radio_stations | Find stations globally via Radio Browser |
get_radio_filters | Available filter values (tags, countries, languages, codecs) |
get_station_by_uuid | Detailed Radio Browser station info |
click_station | Register a play click for popularity metrics |
vote_station | Vote for a station |
Audio plays through the host's speakers. mpv is lazy-spawned on first use and survives MCP client restarts via a per-user IPC socket. Playback streams the original file by default; set Transcode format to a codec for constrained bandwidth (see First-run setup).
| Tool | Description |
|---|---|
play_songs | Play one or many songs; mode: 'replace' \| 'append', optional shuffle |
play_albums | Play one or many albums; mode plus shuffle: 'none' \| 'albums' \| 'songs' (preserve, randomize album order, or fully interleave) |
play_albums_search | One-shot filter-driven album playback; accepts all search_albums filters plus mode/shuffle |
play_songs_search | One-shot filter-driven song playback; accepts all search_songs filters plus mode/shuffle |
play_playlist | One-shot load every track of a Navidrome playlist into the queue by playlistId; supports mode and shuffle |
play_radio_station | Play a saved Navidrome radio station; replaces the queue (mutually exclusive with songs/albums) |
pause | Pause playback (position preserved) |
resume | Resume playback |
next | Skip to the next track |
previous | Skip to the previous track |
seek | Move within the current track (absolute or relative) |
set_volume | Set mpv's internal volume (0-100) |
now_playing | Current title/artist/album/position/duration and queue index (or station + ICY metadata for radio) |
playback_status | Engine health probe (running, mpv version, idle) without spawning mpv |
get_play_queue | Snapshot of the live queue with metadata and current-track index |
clear_play_queue | Clear the queue and stop playback |
shuffle_play_queue | Randomize queue order (membership unchanged); the current track keeps playing and is lifted to the top |
move_in_play_queue | Move a queue entry between indices; never changes what's currently playing |
remove_from_play_queue | Remove an entry; mpv auto-advances if the current track is removed |
play_queue_index | Jump directly to the queue entry at the given index; does not reorder |
Install the published package (auto-updates on launch):
npm install -g navidrome-mcp
Package: navidrome-mcp on npm.
For a development build:
git clone https://github.com/Blakeem/Navidrome-MCP.git
cd Navidrome-MCP
pnpm install
pnpm build
On first start without configuration, the settings page opens automatically in your browser. This happens whether you launched the MCP server or the standalone web player (navidrome-web) first; either one, run unconfigured, brings it up. If a browser can't open (e.g. over SSH), the URL is printed to the console, and the unconfigured MCP server also exposes an open_settings tool that returns it. You can open the settings page any time with:
npx navidrome-config
Enter your Navidrome URL, username, and password (plus any optional features), click Test connection, then Save. This writes a local settings.json (shape: settings.example.json). Settings load at startup and don't hot-reload, so restart whatever you launched to apply them: the MCP client (quit and reopen, e.g. Claude Desktop) or the web player (re-run navidrome-web). If the web player brought up the settings page itself, it stays open for further edits and self-closes when idle; re-launch navidrome-web to start playing. Upgrading from the old env-based setup? The form pre-fills from your previous env/.env values; verify and save.
Required: Navidrome URL, username, password.
Optional (set in the settings page): - Default libraries: comma-separated library IDs to activate by default; blank = all. - Last.fm API key: enables Last.fm discovery features. - Radio Browser user agent: enables global station discovery. - Lyrics provider (LRCLIB) + user agent: enables lyrics fetching. - mpv path: point at the mpv binary if it's not on PATH; blank auto-detects. - Transcode format: defaults to raw (streams the original file untouched for best quality and reliable seeking). Set a codec (e.g. mp3, opus) to transcode for slow/metered links; the bitrate applies then. - Web UI (port / host / expose / enabled / auto-open browser): configures the MPV Remote web UI (defaults to localhost:8808).
Features turn on automatically when their settings are present. Restart your MCP client after saving.
mpv is a lightweight, cross-platform media player. When detected at startup, the server registers an additional set of playback tools so audio streams through your machine's speakers. Without it, the server still manages your library and Navidrome's saved queue; it just doesn't produce audio.
macOS (via Homebrew):
brew install mpv
Linux:
sudo apt install mpv # Debian / Ubuntu / Mint / PopOS
sudo dnf install mpv # Fedora / RHEL / CentOS Stream
sudo pacman -S mpv # Arch / Manjaro
sudo zypper install mpv # openSUSE
Windows:
winget install shinchiro.mpv # winget is included on Windows 11
scoop install mpv
choco install mpv
Use the full IDshinchiro.mpv; plainwinget install mpvprompts you to disambiguate from an unofficial Store package. The shinchiro build is the one mpv.io points to for Windows. WindowsPATHnote. Theshinchiro.mpvpackage installs toC:\Program Files\MPV Player\and does not add itself toPATH. Either: - Add that folder to yourPATH(System Properties → Environment Variables → Path → New), then open a new terminal, or - Set mpv path in the settings page (playback.mpvPath) to the fullmpv.exepath, e.g.C:\Program Files\MPV Player\mpv.exe. Other install methods (scoop, choco, manual zip) use different folders. Ifmpv --versionfails in a fresh terminal, locatempv.exeand apply one of the fixes above.
Or a pre-built binary from mpv.io. Verify with mpv --version, then restart your MCP client so the server re-detects mpv.
node dist/web/main.js ```
This is the from-source path for trying the player before it's published to npm (the published package may lag behind dev). It applies to the MCP server too; both run from the same dist/.
```bash
pnpm build
pnpm dev # hot reload pnpm test # watch-mode tests pnpm test:run # one-shot tests pnpm check:all # lint + typecheck + dead-code pnpm build # production bundle ```
The MCP client config does just one thing: tell it how to launch the server. Your Navidrome credentials and all options live in a local settings.json, edited through a browser-based settings page (no secrets in the client JSON or environment). The settings page opens automatically on first run (see First-run setup).
For Claude Desktop, edit claude_desktop_config.json (locations: %APPDATA%/Claude/ on Windows, ~/Library/Application Support/Claude/ on macOS, ~/.config/Claude/ on Linux). Other MCP clients use the same JSON shape.
{
"mcpServers": {
"navidrome": {
"command": "npx",
"args": ["navidrome-mcp"]
}
}
}
For a manual build, replace command/args with:
"command": "node",
"args": ["/absolute/path/to/Navidrome-MCP/dist/index.js"]
All of these are optional and live in the Web UI section of the settings page (navidrome-config); the keys below are their settings.json paths. Restart the client after saving (except persistAfterMcpExit, which the in-player gear modal applies live).
Setting (settings.json) | Default | Effect |
|---|---|---|
webui.enabled | true | Disable the panel entirely. |
webui.port | 8808 | Port the HTTP server listens on. Pick a free port if 8808 is taken on your host. |
webui.host | 127.0.0.1 | Bind address. Override only if you know which interface you want; usually **Expose on LAN** is the right knob. |
webui.expose | false | Bind on 0.0.0.0 so other devices on your LAN can reach the panel. |
webui.autoOpenBrowser | false | Open the player in your browser automatically when the MCP server starts. (Running navidrome-web directly always opens a browser regardless.) |
webui.persistAfterMcpExit | false | Keep an MCP-launched player (and mpv) running after the MCP server closes/restarts. Toggle it live in the in-player gear modal too. |
When Expose on LAN is enabled, the player logs the LAN URLs it's reachable on at bind time (e.g. http://192.168.1.42:8808). Open one of those on your phone or tablet.
node dist/config-app/main.js # opens the settings page; fill in + Save
Connection problems - Verify Navidrome is running and reachable - Ensure the Navidrome URL in the settings page includes the protocol (http:// or https://) - Use the settings page's Test connection button (or test credentials with curl / a browser) before saving
macOS-specific - See the macOS Troubleshooting Guide (commonly: Node.js path not found; fix with symlinks or full paths)
Configuration - Use absolute paths in config files - Validate JSON (no trailing commas) - Restart your MCP client after changes
Navidrome-MCP是一个开源的MCP工具,提供了分析听歌习惯,生成播放列表,找寻缺失专辑和发现相似音乐的功能。虽然它是一个有用的工具,但仍然需要进一步的开发和测试。
该工具使用 AGPL-3.0 协议,商用场景请仔细阅读协议条款,必要时咨询法律意见。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
⚠️ AGPL 3.0 — 最严格的 Copyleft,网络服务端使用也需开源,SaaS 使用受限。
总体来看,Navidrome-MCP 是一款质量良好的MCP工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | Navidrome-MCP |
| 原始描述 | 开源MCP工具:Analyze listening patterns, build playlists, find missing albums, discover simil。⭐74 · TypeScript |
| Topics | mcpnavidrometypescript |
| GitHub | https://github.com/Blakeem/Navidrome-MCP |
| License | AGPL-3.0 |
| 语言 | TypeScript |
收录时间:2026-06-13 · 更新时间:2026-06-13 · License:AGPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端