Navidrome
Analyze listening patterns, create custom playlists, discover missing albums, discover similar artists, discover radio stations, and validate radio streams using natural language.
claude mcp add --transport stdio blakeem-navidrome-mcp npx navidrome-mcp \ --env NAVIDROME_URL="http://your-server:4533" \ --env LASTFM_API_KEY="your_api_key" \ --env LYRICS_PROVIDER="lrclib" \ --env LRCLIB_USER_AGENT="Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)" \ --env NAVIDROME_PASSWORD="your_password" \ --env NAVIDROME_USERNAME="your_username" \ --env RADIO_BROWSER_USER_AGENT="Navidrome-MCP/1.0 (+https://github.com/Blakeem/Navidrome-MCP)" \ --env NAVIDROME_DEFAULT_LIBRARIES="1,2"
How to use
Navidrome MCP Server exposes AI-assisted control over your Navidrome music library to Claude, ChatGPT, and other MCP-compatible assistants. It enables natural-language queries to browse your collection, generate and manage playlists, discover music based on mood or activity, create custom radio stations, and fetch synchronized lyrics and metadata. With tools around library inspection, playlist management, radio setup, and lyric retrieval, AI assistants can perform conversational operations that mirror human interaction with Navidrome's catalog while returning concise, structured results optimized for chat responses.
How to install
Prerequisites:
- Node.js 20+ installed on your machine
- Navidrome server running and reachable at the URL you provide to NAVIDROME_URL
- Optional: Claude Desktop or ChatGPT Desktop configured for MCP servers
Quick Setup (recommended):
- Install the MCP globally via npm:
npm install -g navidrome-mcp
- Start the MCP server (it auto-updates):
npx navidrome-mcp
- Configure Claude/ChatGPT environments to point at your Navidrome MCP by adding an mcpServers entry (see the provided configuration example).
Manual Build (development):
- Clone the repository and install dependencies:
git clone https://github.com/Blakeem/Navidrome-MCP.git
cd Navidrome-MCP
pnpm install
pnpm build
- Run the built server (example using Node if you build a dist/index.js):
node dist/index.js
- Use the same configuration shape as shown in the mcp_config example to connect clients.
Note: If you prefer a containerized setup, you can adapt the mcp_config to a docker-based invocation once you have a built image. Ensure environment variables like NAVIDROME_URL, credentials, and API keys are securely managed.
Additional notes
Tips and caveats:
- Ensure NAVIDROME_URL uses a reachable address from the MCP host and that Navidrome is configured to allow API access.
- Keep LASTFM_API_KEY, and any station/listening data keys secured and not exposed in public configs.
- The default LIBRARIES setting (NAVIDROME_DEFAULT_LIBRARIES) should be updated to match libraries you want active by default.
- If you encounter authentication failures, verify that NAVIDROME_USERNAME and NAVIDROME_PASSWORD are correct and that Navidrome's API is accessible.
- The provided User-Agent strings help Navidrome and external services identify the MCP client; adjust as needed for your environment.
- When upgrading Navidrome or the MCP, revalidate your configuration for any breaking changes in environment variable expectations.
Related MCP Servers
context7
Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
obsidian -tools
Add Obsidian integrations like semantic search and custom Templater prompts to Claude or any MCP client.
MiniMax -JS
Official MiniMax Model Context Protocol (MCP) JavaScript implementation that provides seamless integration with MiniMax's powerful AI capabilities including image generation, video generation, text-to-speech, and voice cloning APIs.
mcp-bundler
Is the MCP configuration too complicated? You can easily share your own simplified setup!
akyn-sdk
Turn any data source into an MCP server in 5 minutes. Build AI-agents-ready knowledge bases.
promptboard
The Shared Whiteboard for Your AI Agents via MCP. Paste screenshots, mark them up, and share with AI.