- Home
- MCP servers
- Navidrome
Navidrome
- typescript
52
GitHub Stars
typescript
Language
4 months ago
First Indexed
3 weeks ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"blakeem-navidrome-mcp": {
"command": "npx",
"args": [
"navidrome-mcp"
],
"env": {
"NAVIDROME_URL": "http://your-server:4533",
"LASTFM_API_KEY": "your_api_key",
"LYRICS_PROVIDER": "lrclib",
"LRCLIB_USER_AGENT": "Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)",
"NAVIDROME_PASSWORD": "your_password",
"NAVIDROME_USERNAME": "your_username",
"RADIO_BROWSER_USER_AGENT": "Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)",
"NAVIDROME_DEFAULT_LIBRARIES": "1,2"
}
}
}
}Transform your Navidrome music server with an AI-powered assistant. This MCP server lets Claude, ChatGPT, and other MCP-compatible clients interact with your library through natural language, enabling intelligent playlist creation, music discovery, and library management.
How to use
You connect an MCP client to Navidrome MCP to start asking questions about your library, request playlists, get music recommendations, and manage your collection via natural language. Use the client to browse and search your library, create and reorder playlists, validate radio streams, and discover new music based on Last.fm and Radio Browser data. You can also access time-synced lyrics and detailed metadata to inform your conversations with your AI assistant.
How to install
Prerequisites: you need Node.js 20+ and a running Navidrome server with your music library. Install a compatible MCP client such as Claude Desktop or ChatGPT Desktop.
Step 1. Quick setup using the npm package (recommended) Open your terminal and run:npm install -g navidrome-mcp
Step 2. Create a configuration for Claude/ChatGPT Desktop by adding an MCP server entry as shown in the configuration example below. Use your actual server URL and credentials where indicated.
Step 3. Start the MCP server. If you installed the package globally, launching the MCP server via the client will auto-start the MCP integration on first use.
Configuration and start options
Two explicit startup options are provided for Navidrome MCP. Use the npm-based method for automatic updates, or choose the manual build method if you prefer a local, self-contained start.
npm-based start (recommended): The MCP server runs with npx navidrome-mcp and uses your configured environment to connect to Navidrome.
manual build (alternative): Build the project, then run the distributed index.js with node and provide Navidrome/MCP related environment variables.
Notes and tips
Set NAVIDROME_DEFAULT_LIBRARIES to choose which Navidrome libraries are active by default (e.g., "1,2,3"). If not set, all libraries are active.
Get a free Last.fm API key to enable music discovery features. Radio Browser integration requires a User-Agent string.
Lyrics are available via LRCLIB without API keys. Restart the desktop client after saving configuration.
Powerful usage ideas
Ask your AI assistant to analyze listening history, identify missing albums by top artists, or build mood-based playlists from your owned tracks.
Troubleshooting
If you encounter connection issues, ensure the Navidrome server is reachable at the configured URL and that credentials are correct. Restart the MCP client after changes.
Development and testing
If you contribute, you can build and test MCP features locally. Use the Inspector tool to validate tools and simulate API calls.
License and support
Code is licensed under AGPL-3.0. Documentation is CC-BY-SA-4.0. For issues or discussions, use the project’s official channels.
Available tools
test_connection
Verify Navidrome server connectivity and feature status
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_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
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 to a playlist
remove_tracks_from_playlist
Remove specific tracks from a playlist
reorder_playlist_track
Reorder track in a playlist
star_item
Mark item as favorite
unstar_item
Remove item from favorites
set_rating
Set 0-5 star rating for an item
list_starred_items
View favorites
list_top_rated
View highest rated items
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
validate_radio_stream
Test radio stream URL validity
list_radio_stations
View all stations
get_radio_station
Get details about a radio station by ID
create_radio_station
Create radio stations (JSON array format)
delete_radio_station
Delete a radio station by ID
play_radio_station
Start radio playback
get_current_radio_info
Get info about the currently playing radio station
discover_radio_stations
Find internet radio stations globally
get_radio_filters
Get available search filters for radio stations
get_station_by_uuid
Get detailed station information by UUID
click_station
Register a play click for popularity metrics
vote_station
Vote for a radio station
get_lyrics
Get synchronized and plain text lyrics
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