mcp-lyricscom
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LYRICSCOM_LOG_LEVEL | No | silent, error, info or debug. Logs go to stderr. | error |
| LYRICSCOM_TIMEOUT_MS | No | Per-request timeout. | 15000 |
| LYRICSCOM_USER_AGENT | No | User-Agent sent to lyrics.com. See README for details. | mcp-lyricscom/<version> (+repo url) |
| LYRICSCOM_MAX_RETRIES | No | Retries on throttling and transient errors. | 3 |
| LYRICSCOM_CACHE_TTL_MS | No | In-memory page cache lifetime (15 minutes). | 900000 |
| LYRICSCOM_MIN_INTERVAL_MS | No | Minimum gap between requests. Raise it if you hit throttling. | 1100 |
| LYRICSCOM_CACHE_MAX_ENTRIES | No | In-memory page 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_lyricsA | Search lyrics.com for songs whose lyrics contain a given word or phrase. Returns matching songs with artist, title, a short excerpt of the line where the word appears, and the lyrics.com id and URL needed to fetch the full text with get_lyrics. Use this when someone remembers a fragment of lyrics but not the song, or wants songs mentioning a word or theme. One call returns one page of lyrics.com results; to see more, increase 'page' rather than 'limit'. lyrics.com also returns loose and title-only matches, so results are filtered locally to keep only songs where the word genuinely appears in the lyrics. Set 'verify' to "none" to see the raw, unfiltered list. |
| search_songsA | Find songs on lyrics.com by their title. Returns candidate songs with artist, album, year, and the lyrics.com id and URL. Use this when someone names a song and you need its id to call get_lyrics, or to tell covers and versions by different artists apart. An optional 'artist' narrows the list. lyrics.com searches titles and lyrics together, so results are ranked and filtered locally by title match; use match="strict" to keep only genuine title matches. |
| get_lyricsA | Fetch the full lyrics of one song from lyrics.com, given the song id or URL returned by search_lyrics or search_songs. Lyrics can be long, so the response is truncated by default: check 'truncated' and call again with 'offset' set to 'next_offset' to continue reading. Some lyrics.com pages legitimately have no lyrics on file; those come back with status "no_lyrics" and an empty lyrics field, which is a valid answer and not an error, so do not retry them. Always cite 'source_url' and the artist when showing lyrics to a user. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
search_lyrics and search_songs are the only pair at risk of confusion since lyrics.com conflates title and lyric matching, but the descriptions clearly separate 'fragment of lyrics' from 'named song title' use cases. get_lyrics is unambiguously a fetch-by-id tool.
All three tools follow a consistent snake_case verb_noun pattern (search_lyrics, search_songs, get_lyrics). Search verbs are used uniformly and the fetch verb is distinct.
Three tools is on the lean side, but for the narrow lyrics-lookup domain each has a clear role: find by lyric, find by title, fetch full text. No padding or redundancy.
The core workflow (locate a song by lyric or title, then retrieve its full text with pagination) is fully covered, including edge cases like no_lyrics. Minor gaps exist for artist/album-centric browsing, but agents can work around these via title searches.