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

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

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