Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LRCLIB_LOG_LEVELNosilent, error, info or debug. Logs go to stderr.error
LRCLIB_TIMEOUT_MSNoPer-request timeout.15000
LRCLIB_USER_AGENTNoUser-Agent sent to LRCLIB. Please keep that shape if you override it.mcp-lrclib v<version> (<repo url>)
LRCLIB_MAX_RETRIESNoRetries on rate limiting and transient errors.3
LRCLIB_CACHE_TTL_MSNoIn-memory cache lifetime (15 minutes).900000
LRCLIB_MIN_INTERVAL_MSNoMinimum gap between requests. Values below 200 ms are ignored.500
LRCLIB_CACHE_MAX_ENTRIESNoIn-memory cache size.200

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_tracksA

Search LRCLIB for tracks by title, artist or album, and get the id needed to fetch lyrics with get_lyrics. Give either 'query' as free text, or 'track_name' and 'artist_name' separately for a narrower search. Results carry metadata only: title, artist, album, duration, and whether plain and time-synced lyrics exist. Use 'duration_seconds' and 'album_name' in the results to tell releases and re-recordings of the same song apart, and 'has_synced_lyrics' to know whether karaoke-style timed lyrics are available before fetching them. LRCLIB indexes tracks by their metadata, so it cannot search for a word appearing inside the lyrics.

get_lyricsA

Fetch the lyrics of one track from LRCLIB, given the id returned by search_tracks, or an exact artist and title. Set 'format' to "synced" for karaoke-style lyrics with a timestamp on every line, "plain" for the text alone, or "both". Check 'has_synced_lyrics' in the search results first: not every track has timed lyrics. Lyrics can be long, so the text is truncated by default: check 'truncated' and call again with 'offset' set to 'next_offset' to continue reading. Instrumental tracks come back with status "instrumental" and no text, which is a valid answer, so do not retry them. Always cite 'attribution' when showing lyrics to a user.

get_trackA

Look up one LRCLIB track by its id and return its metadata without the lyrics: title, artist, album, duration, and whether plain and time-synced lyrics exist. Use this to confirm you have the right release or version before calling get_lyrics, or to check whether timed lyrics exist for a track id you already hold.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.7/5.0

Scored across 3 tools

Disambiguation4/5

The tools are mostly distinct: search_tracks finds tracks by query while get_track fetches a specific track by ID, and get_lyrics retrieves lyric content. There is minor overlap in that both search_tracks and get_track return metadata, but their purposes are clearly separated by search vs. direct lookup.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: search_tracks, get_lyrics, and get_track. The naming is predictable and makes the action and resource type immediately clear.

Tool Count5/5

Three tools is an appropriate scope for an LRCLIB lyrics server. Each tool covers a distinct part of the workflow: searching, fetching lyrics, and fetching track metadata, with no unnecessary duplication.

Completeness5/5

The tool surface covers the full read-only workflow for this domain: discover tracks, inspect metadata, and fetch either plain or synced lyrics. Descriptions also handle edge cases like truncation, instrumental tracks, and timing checks, so there are no obvious dead ends.

Maintenance

ActivityActive
ResponsivenessUnresponsive