1. Conduid
  2. Developer Tools
  3. Navidrome MCP
MCP server · Developer Tools

Navidrome MCP

Analyze listening patterns, create custom playlists, discover missing albums, discover similar artists, discover radio stations, and validate radio streams using natural language.

Unclaimed AGPL-3.0 last commit 11 months ago navidromedevtoolsmcpmcp-server
66Good

Scored yesterday · breakdown

About Navidrome MCP

Navidrome MCP is an MCP server published by Blakeem in the Developer Tools category: analyze listening patterns, create custom playlists, discover missing albums, discover similar artists, discover radio stations, and validate radio streams using natural language. It has been installed 0 times through Conduid.

The repository has 54 stars and 3 forks, with the last commit 11 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx navidrome-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Navidrome MCP

Powered by Claude · Grounded in docs

I know everything about Navidrome MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v2.3.0 v2.3.0 - Added synced karaoke style lyrics to the Web UI and metadata lyrics support · 26 Aug 2026Synced lyrics view (web player) A full-viewport lyrics overlay that highlights the current line and scrolls to follow it. Lyrics button uses a microphone icon. Tap any line to seek playback to it. Auto-scroll suspends the moment you…
v2.2.0v2.2.0 - Streamable HTTP transport support, Docker Support, New get_artist_albums and get_album_info Tools, Play Starred Songs and Starred Albums from Web Remote · 30 Jul 2026New Features Streamable HTTP transport support added Docker support: a first-class Dockerfile for the HTTP transport Env-var configuration fallback: with no settings.json, the server (and now the standalone web player too) runs entirely…
v2.1.0v2.1.0 - new config interface, remote works without MCP, added playlists support to remote · 4 Jun 2026It's now much more user friendly to setup. New config interface launches on first run, settings.json is used instead of the MCP json. The web remote control is now an independent application and can be launched without the MCP server.…
v2.0.1v2.0.1 - mpv network cache fix + scrobble support · 14 May 2026Added 20 second cache to prevent mpv from skipping. Added scrobble support so that Navidrome will show what was recently played when using mpv.
v2.0.0v.2.0.0 - Major upgrade for · 12 May 2026Added MPV support and Web UI to control playback.

README

Navidrome MCP Server

Transform your Navidrome music server with an AI-powered music assistant. This MCP (Model Context Protocol) server enables Claude, ChatGPT, and other AI assistants to interact with your personal music library through natural language, offering intelligent playlist creation, music discovery, and library management.

Table of Contents

Why Navidrome MCP?

Imagine having an AI assistant that truly understands your music taste. This MCP server enables AI assistants to:

  • Analyze your listening patterns and create perfectly curated playlists
  • Discover hidden gems in your library based on your mood or activity
  • Build custom radio stations from your favorite tracks
  • Find music similar to what you love using Last.fm's recommendation engine
  • Discover internet radio stations from around the world with advanced filtering
  • Get synchronized lyrics with millisecond-precision timestamps for your favorite tracks
  • Manage your library with simple conversational commands

This isn't just another music tool – it's your personal music curator powered by AI.

Features

🎵 Music Library Management

  • Intelligent Browsing: Navigate songs, albums, artists, and genres with smart filtering
  • Deep Search: Full-text search across all metadata or targeted searches for specific content
  • Rich Metadata: Access detailed information about tracks, albums, and artists
  • Tag Analysis: Explore and analyze metadata tags (genre, composer, label, year, and more)
  • Clean Responses: Optimized data transfer with only essential fields (~10 properties vs 50+ raw)

🎶 Intelligent Playlist Creation

  • AI Assistant Integration: Enables AI assistants to analyze your taste and build themed playlists
  • Smart Management: Create, update, and organize playlists conversationally
  • Flexible Track Addition: Add songs by ID, entire albums, artist discographies, or specific discs
  • Dynamic Reordering: Rearrange tracks with simple commands
  • Cross-Reference: Find which playlists contain specific songs

🎼 Personalized Music Discovery

  • Listening Data Access: Provides listening history data for AI assistants to understand your preferences
  • Similar Artist/Track Finding: Discover music similar to your favorites via Last.fm
  • Artist Deep Dives: Get biographies, popular tracks, and related artists
  • Global Trends: Browse worldwide music charts and trending genres
  • Library Analysis Tools: Access data to help AI assistants find overlooked tracks in your library

📻 Smart Radio Management

  • Stream Validation: Test radio URLs before adding to avoid broken streams
  • Format Detection: Automatic detection of MP3, AAC, OGG, FLAC streams
  • Metadata Extraction: Pull station info from SHOUTcast/Icecast headers
  • Custom Station Creation: Build radio stations from your collection
  • One-Time Setup Tips: Smart contextual help that appears only when needed

🌍 Internet Radio Discovery

  • Global Station Database: Access thousands of internet radio stations worldwide via Radio Browser
  • Advanced Filtering: Search by genre, country, language, codec, bitrate, and more
  • Automatic Validation: Discovered stations are tested for availability
  • Quality Control: Filter out broken stations and focus on high-quality streams
  • Popularity Metrics: Discover stations by vote count and listener engagement
  • Station Management: Tools for AI assistants to add discovered stations to your collection

🎤 Synchronized Lyrics

  • Time-Synchronized Lyrics: Get lyrics with millisecond-precision timestamps for line-by-line timing
  • Dual Format Support: Access both time-synced and plain text lyrics
  • Community-Powered: Lyrics sourced from LRCLIB's community database
  • Smart Matching: Automatic matching by title, artist, album, and duration
  • No API Keys Required: Free lyrics access without registration

📊 Analytics & Insights

  • Listening Patterns: Understand your music habits with play statistics
  • Taste Evolution: Track how your preferences change over time
  • Most/Least Played: Discover your true favorites and forgotten tracks
  • Genre Distribution: Access data about your library's composition for analysis
  • Recommendation Data: Provides data for AI assistants to generate suggestions based on your history

⭐ Preference Management

  • Star System: Mark favorites for quick access
  • 5-Star Ratings: Rate content for better recommendations
  • Queue Control: Manage playback queues across devices
  • Data Access for Organization: Provides preference data for AI assistants to help organize your collection

Installation

Prerequisites

  • Node.js 20+ (Download here)
  • Running Navidrome server with your music library
  • Claude Desktop or ChatGPT Desktop (or any MCP-compatible client)

Additional for manual build:

Quick Setup

Method 1: NPM Package (Recommended)

The easiest way to get started is using the published npm package, which auto-updates on launch:

npm install -g navidrome-mcp

📦 Package: navidrome-mcp on npm

This installs the MCP server globally and keeps it up-to-date automatically.

Method 2: Manual Build (Development)

For development or custom builds:

git clone https://github.com/Blakeem/Navidrome-MCP.git
cd navidrome-mcp
pnpm install
pnpm build

Configure Claude Desktop

Find your configuration file:

  • Windows: %APPDATA%/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Add the Navidrome MCP server:

Using NPM Package (Recommended)

{
  "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", // Optional: Set default active libraries (comma-separated IDs)
        "LASTFM_API_KEY": "your_api_key", // Get your own at https://www.last.fm/api/account/create
        "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)"
      }
    }
  }
}

Using Manual Build (Alternative)

{
  "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",
        "NAVIDROME_DEFAULT_LIBRARIES": "1,2", // Optional: Set default active libraries (comma-separated IDs)
        "LASTFM_API_KEY": "your_api_key", // Get your own at https://www.last.fm/api/account/create
        "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)"
      }
    }
  }
}

Important:

  • NPM method: Uses npx navidrome-mcp which auto-updates on each launch
  • Manual method: Requires absolute paths (full path from root) and manual updates
  • Library filtering: Use NAVIDROME_DEFAULT_LIBRARIES to set default active libraries (e.g., "1" for one library, "1,2,3" for multiple)
    • If not set, all libraries are active by default
    • You can change active libraries at runtime using the set_active_libraries tool
    • Invalid library IDs are ignored with a warning
  • Get a free Last.fm API key at Last.fm (optional - enables music discovery)
  • Radio Browser integration requires a User-Agent string (enables station discovery)
  • Lyrics integration works without API keys (LRCLIB is free)
  • Features are automatically enabled/disabled based on available configuration
  • Restart Claude Desktop after saving

Configure ChatGPT Desktop

Using NPM Package (Recommended)

  1. Open ChatGPT Desktop
  2. Go to Settings → Connectors
  3. Click Create and add:
    • Command: npx
    • Args: navidrome-mcp
    • Environment variables: Same as above
  4. Save and restart

Using Manual Build (Alternative)

  1. Open ChatGPT Desktop
  2. Go to Settings → Connectors
  3. Click Create and add:
    • Command: node
    • Args: /absolute/path/to/navidrome-mcp/dist/index.js
    • Environment variables: Same as above
  4. Save and restart

Powerful Usage Examples

🎯 Smart Discovery & Playlist Creation

  • "Look at my most played artists, find what albums I'm missing from their discographies, and tell me which ones are most popular"
  • "Create a 'Best of Pink Floyd' playlist using Last.fm's top tracks data, but only with songs I actually own"
  • "Analyze my recently played songs, find similar tracks in my library I haven't played in 6 months, and create a rediscovery playlist"
  • "Build me a playlist mixing my top 10 most played songs with similar tracks from artists I own but rarely listen to"

🔍 Collection Gap Analysis

  • "Show me which albums are missing from my top 5 most played artists and rank them by Last.fm popularity"
  • "Find artists where I only own singles or compilations, not their main albums"
  • "Identify my favorite genres, then show me highly-rated albums in those genres that I don't own"
  • "Look at artists similar to my favorites and tell me which ones I already have in my library but never play"

📻 Radio Station Maintenance

  • "Go through all my existing radio stations, validate each one, and remove the broken ones"
  • "Here are 10 jazz radio URLs I found online - test them all and add only the working ones with good bitrates"
  • "Find the top-voted jazz and classical stations worldwide, validate them, and add the best 5 of each genre"
  • "Check all my radio stations and replace any broken ones with similar working stations"

🎼 Advanced Playlist Automation

  • "Create a 'Hidden Gems' playlist with 5-star rated songs that have less than 5 plays"
  • "Build weekly playlists based on what I listened to most each month of last year"
  • "Make a 'Complete Artist Journey' playlist with one top track from each album of my top 10 artists, in chronological order"
  • "Generate mood playlists by analyzing my listening patterns: what I play in mornings vs evenings vs weekends"

📊 Listening Insights & Organization

  • "Analyze my jazz collection: show play counts, ratings, and find which albums I've never fully listened to"
  • "Find duplicate songs across different albums and create a cleanup list"
  • "Show me my listening evolution: which genres I've moved away from and which I'm playing more"
  • "Identify 'one-hit wonders' in my library - artists where I only play one song repeatedly"

Available Tools

🔧 Core System

Tool Description
test_connection Verify Navidrome server connectivity and feature status

📚 Library Management

Tool Description
get_song Detailed song information
get_album Detailed album information
get_artist Detailed artist information
get_song_playlists Get all playlists that contain a specific song
get_user_details Get user information and available libraries
set_active_libraries Set which libraries are active for filtering content

🔍 Search & Discovery

Tool Description
search_all Search across all content types
search_songs Search for specific songs
search_albums Search for albums
search_artists Search for artists
get_similar_artists Find similar artists (Last.fm)
get_similar_tracks Find similar tracks (Last.fm)
get_artist_info Artist biography and tags
get_top_tracks_by_artist Get top tracks for an artist from Last.fm
get_trending_music Global music trends

🎵 Playlist Operations

Tool Description
list_playlists View all playlists
get_playlist Get detailed information about a specific playlist by ID
create_playlist Create new playlist
update_playlist Update playlist metadata
delete_playlist Remove playlist
get_playlist_tracks Get playlist contents
add_tracks_to_playlist Add multiple types of content (songs/albums/artists) in a single operation
remove_tracks_from_playlist Remove specific tracks
reorder_playlist_track Rearrange track order

⭐ Ratings & Favorites

Tool Description
star_item Mark as favorite
unstar_item Remove from favorites
set_rating Set 0-5 star rating
list_starred_items View favorites
list_top_rated View highest rated items

📊 Analytics & History

Tool Description
list_recently_played View recent listening activity
list_most_played Find most played content
get_queue View playback queue
set_queue Set playback queue
clear_queue Clear the playback queue

📻 Radio Management

Tool Description
validate_radio_stream Test stream URL validity
list_radio_stations View all stations
get_radio_station Get detailed information about a specific radio station by ID
create_radio_station Create radio stations using JSON array format (single or multiple stations, with optional validation*)
delete_radio_station Delete an internet radio station by ID
play_radio_station Start radio playback
get_current_radio_info Get information about currently playing radio station and stream metadata
discover_radio_stations Find internet radio stations globally
get_radio_filters Get available search filters (genres, countries, etc.)
get_station_by_uuid Get detailed station information
click_station Register play click for popularity metrics
vote_station Vote for a radio station

*Note: create_radio_station supports an optional validateBeforeAdd parameter that will test stream URLs before adding them to Navidrome.

🎤 Lyrics & Timestamps

Tool Description
get_lyrics Get synchronized and plain text lyrics

🏷️ Metadata & Tags

Tool Description
search_by_tags Search by specific tags
get_tag_distribution Analyze tag usage patterns and distribution
get_filter_options Get available filter values for search operations

Troubleshooting

Common Issues

Connection Problems

  • Verify Navidrome server is running
  • Check URL includes protocol (http:// or https://)
  • Ensure credentials are correct
  • Test with curl or browser first

macOS Specific

Configuration Issues

  • Use absolute paths in config files
  • Validate JSON syntax (no trailing commas)
  • Check environment variables are set
  • Restart client after changes

Limitations

Playback Control: This MCP server manages your library and queues but doesn't directly control playback. Use your Navidrome client app for play/pause/skip.

Recently Played: Navidrome doesn't provide last-played timestamps, only play counts and completion status.

Queue Management: Works with Subsonic-compatible clients that support jukebox mode.

Development

Setup for Contributors

# Clone and setup
git clone https://github.com/Blakeem/Navidrome-MCP.git
cd navidrome-mcp
cp .env.example .env
# Edit .env with your credentials

# Development
pnpm dev       # Hot reload mode
pnpm test      # Run tests
pnpm lint      # Check code style
pnpm typecheck # Type checking

Testing with MCP Inspector

# Build first
pnpm build

# Web UI testing
npx @modelcontextprotocol/inspector node dist/index.js

# CLI testing
npx @modelcontextprotocol/inspector --cli node dist/index.js \
  --method tools/call \
  --tool-name search_all \
  --tool-arg query="jazz"

Project Structure

navidrome-mcp/
├── src/           # TypeScript source
├── dist/          # Compiled JavaScript
├── docs/          # Documentation
├── tests/         # Test suites
└── CLAUDE.md      # AI assistant instructions

License

Code: AGPL-3.0

Source code is licensed under GNU Affero General Public License v3.0. See LICENSE.

Documentation: CC-BY-SA-4.0

Documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International.

Support


Built with ❤️ for the Navidrome community

README mirrored from the source repository yesterday. The original is authoritative.

Questions

About Navidrome MCP

How do I install Navidrome MCP?

Run npx navidrome-mcp, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Navidrome MCP safe to use with an AI agent?

Its trust score is 66 out of 100 (good). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Navidrome MCP still maintained?

Yes — the latest release is v2.3.0 (26 Aug 2026), and the last commit was 11 months ago. The repository has 54 stars and 0 open issues.