navigravity
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NAVIDROME_URL | Yes | URL of your Navidrome instance, e.g., http://your-navidrome-instance:4533 | |
| NAVIDROME_PASS | Yes | Your Navidrome password | |
| NAVIDROME_USER | Yes | Your Navidrome username | |
| NAVIDROME_LOG_FILE | No | Optional path to log file, e.g., ./logs/navidrome_mcp.log |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_connectionA | Verifies connection to the backend Navidrome instance. |
| analyze_libraryA | Analyzes the library inventory and user stats. Args: mode: The type of analysis to perform. - 'composition': Returns genre distribution and total stats (Cold Analysis). - 'pillars': Identifies core artists (Album Count) (Canonical Analysis). - 'taste_profile': Analyzes recent/frequent/starred for top artists & eras (Warm Analysis). |
| batch_check_library_presenceB | Checks if artists/albums exist in the library. Input example: [{"artist": "Camel"}, {"artist": "Pink Floyd", "album": "Animals"}] |
| search_by_tagC | Multi-genre intersection/union for 'vibe' search. |
| validate_playlist_rulesC | Dry-run validation for diversity and mood. Example rules: {"max_tracks_per_artist": 2, "exclude_genres": ["Metal"], "min_bpm": 100} |
| get_genre_tracksC | Fetches random tracks for specific genre(s). Accepts a single string or a list of strings. |
| get_similar_artistsA | Gets similar artists. Provide artist_id OR artist_name (name will be resolved to ID first). Uses getArtistInfo2 as a reliable fallback for library similarity. |
| get_similar_songsC | Gets similar songs to the target song (Radio Mode). |
| get_genresA | Lists all available genres with track and album counts. |
| explore_genreC | Gets detailed metrics for a genre (Top Artists, Album counts). |
| get_smart_candidatesA | Generates lists based on stats with advanced filtering. Args: mode: recently_added, most_played, top_rated, lowest_rated, rediscover, rediscover_deep, hidden_gems, unheard_favorites, divergent, fallen_pillars, similar_to_starred. Accepts comma-separated list of modes. limit: Max tracks to return (default 50) include_genres: List of genres to strictly include (case-insensitive partial match) exclude_genres: List of genres to exclude min_bpm: Minimum BPM max_bpm: Maximum BPM mood: 'relax', 'energy', 'focus', etc. max_tracks_per_artist: Diversity constraint reference_track_ids: List of source track IDs to use as seeds (Similarity expansion) |
| list_playlistsA | Lists all available playlists with IDs for discoverability. |
| manage_playlistA | Manages playlists and moods. Args: name: Playlist name. For moods, use convention 'NG:Mood:{MoodName}'. operation: - 'create': Replaces/Creates playlist with track_ids. - 'append': Adds track_ids to playlist (creates if missing). - 'get': Returns tracks in playlist. track_ids: List of track IDs (required for create/append). |
| assess_playlist_qualityC | (Bliss) Checks diversity and repetition. |
| search_music_enrichedA | Robust search with multi-strategy fallback. Returns enriched track metadata. WHEN to use optional parameters:
Search strategy (cascading, stops at first successful step):
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| usage_guide | Returns the 'Instruction Manual' for the Navigravity MCP server. |
| curator_mode | Injects the Curator Manifesto into the context to enforce strict playlist quality protocols. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_server_info | Returns server identity, version, and connectivity status. |
| get_manifesto | Returns the Curator Manifesto protocol. |
TDQS
Scored across 15 tools
Each tool has a clearly distinct purpose, ranging from library analysis and playlist management to similarity and search. No two tools overlap significantly; even similar sounding tools like search_by_tag and search_music_enriched serve different search strategies.
All tool names follow a consistent verb_noun pattern in snake_case, such as analyze_library, get_similar_artists, and manage_playlist. The verbs are descriptive and align with the actions, making the set predictable.
With 15 tools, the set is well-scoped for a music library assistant, covering analysis, search, playlist management, and similarity. The count is sufficient without being overwhelming.
The tool surface covers core operations like library analysis, playlist CRUD, search, and similarity. Minor gaps exist, such as missing explicit delete for playlists or detailed artist/album retrieval, but these are not critical for the intended curation use case.