Skip to main content
Glama
miziodel

navigravity

by miziodel

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NAVIDROME_URLYesURL of your Navidrome instance, e.g., http://your-navidrome-instance:4533
NAVIDROME_PASSYesYour Navidrome password
NAVIDROME_USERYesYour Navidrome username
NAVIDROME_LOG_FILENoOptional path to log file, e.g., ./logs/navidrome_mcp.log

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  • artist: provide when you know the artist name (e.g., artist='Miles Davis'). Results are post-filtered so only tracks from this artist are returned.

  • album: provide when you know the album name (e.g., album='Bitches Brew'). Results are post-filtered on the song's album field — NOT the track title.

Search strategy (cascading, stops at first successful step):

  1. search3(query, songCount=limit*3, albumCount=2) → if songs found: post-filter by artist/album, return. → if only albums found: expand each album into tracks (max 2), post-filter, return.

  2. [only if artist provided] search3(artist) → post-filter by album.

  3. [only if album provided] search3(album, albumCount=5) → expand albums → return tracks.

  4. Unicode normalization fallback: retry step 1 with NFKD-normalized query (only if normalized query differs from original).

  5. Raw fallback: return step-1 results as-is (never returns empty if tracks exist).

Prompts

Interactive templates invoked by user choice

NameDescription
usage_guideReturns the 'Instruction Manual' for the Navigravity MCP server.
curator_modeInjects the Curator Manifesto into the context to enforce strict playlist quality protocols.

Resources

Contextual data attached and managed by the client

NameDescription
get_server_infoReturns server identity, version, and connectivity status.
get_manifestoReturns the Curator Manifesto protocol.

Latest Blog Posts

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