A side-by-side look at the MCP Lrclib and Musicbrainz MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Lrclib for art & culture work as a local process; choose Musicbrainz MCP for art & culture as a local process. You can also run both side by side in one mcpServers block.
search_tracks, get_lyrics, get_track.musicbrainz_search, musicbrainz_lookup, musicbrainz_browse.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Art & Culture | Art & Culture |
| Quality signal | 59/100 · Good | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Free |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 3 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 3 | 9 |
| Full listing | View MCP Lrclib | View Musicbrainz MCP |
search_tracksSearch 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_lyricsFetch 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_trackLook 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.musicbrainz_searchSearch any entity type with a Lucene query; returns ranked matches + MBIDsmusicbrainz_lookupLook up an entity by MBID, with `inc` subqueries for linked datamusicbrainz_browseList all entities linked to another (e.g. every release by an artist)musicbrainz_cover_artCover Art Archive image URLs for a release / release-groupmusicbrainz_resolveTurn a pasted musicbrainz.org URL into its entitymusicbrainz_healthcheckVerify connectivity and whether OAuth writes are configuredmusicbrainz_submit_tagsApply user tags to an entity on your accountmusicbrainz_submit_ratingSet your 0–100 rating for an entitymusicbrainz_modify_collectionAdd/remove entities in one of your collectionsPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"mcp-lrclib": {
"command": "npx",
"args": [
"-y",
"mcp-lrclib"
]
}
}
}
{
"mcpServers": {
"musicbrainz-mcp": {
"command": "npx",
"args": [
"-y",
"musicbrainz-mcp"
]
}
}
}