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 |
Capabilities
Features and capabilities supported by this server
| 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. |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/miziodel/navigravity'
If you have feedback or need assistance with the MCP directory API, please join our Discord server