lyric-fetch-mcp
A small MCP (Model Context Protocol) server that fetches song lyrics and artist/album song lists using the Genius API via lyricsgenius and exposes them as FastMCP tools.
Overview ✅
- Purpose: Provide simple, reusable tools for retrieving song lyrics and lists of songs by artist/album for LLMs or other tooling that can call MCP tools.
- Tools exposed:
get_song_lyrics(song_title, artist_name),get_artist_songs(artist_name, max_songs=5),get_album_songs(album_title, artist_name) - Server framework: Uses
fastmcpto register the tools and run the MCP server.
Installation (after publishing to uv) 🔧
Once you publish this package to a registry that uv can reach (e.g., PyPI or a private index), users can install and run it locally with uv:
-
Install the published package:
uv add lyric-fetch-mcp
-
Run the installed tool directly (ephemeral environment):
GENIUS_ACCESS_TOKEN="<your_token>" uvx lyric-fetch-mcp
-
Or add it as a dependency to your
uvproject and run:uv add lyric-fetch-mcpuv run -- lyric-fetch-mcp
Note:
uvxruns a tool in an ephemeral environment created byuv(similar topipx).
Running locally (developer)
-
One-off run with an env var:
GENIUS_ACCESS_TOKEN="your_token_here" python -m lyric_fetch_mcp.server
-
Install locally for development and run the script:
python -m pip install -e .lyric-fetch-mcp(after install)
Environment
- Requires a valid
GENIUS_ACCESS_TOKENenvironment variable. - For production/CI, store the token in your CI/host secret manager (GitHub Secrets, Docker secrets, etc.).
CLI examples
-
Fetch lyrics quickly from the shell (one-line):
GENIUS_ACCESS_TOKEN="your_token" python -c 'from lyric_fetch_mcp.server import get_song_lyrics; print(get_song_lyrics("Sofia","Clairo"))'
Contributing & Publishing
- The project uses
uv_buildas the PEP 517 backend — build withuv buildand publish withuv publish. - Please follow the repository's contribution guidelines and add tests for any new behavior.
License
- MIT — see
LICENSEfor details.
Metadata
Release files for lyric-fetch-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lyric_fetch_mcp-0.1.0.tar.gz | 2.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lyric_fetch_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.5 kB
Release files / lyric_fetch_mcp-0.1.0.tar.gz
| Download URL | lyric_fetch_mcp-0.1.0.tar.gz |
|---|---|
| Size | 2.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f914a0d10deea6d358f4bc99339bb20945626873f9659428d333524da7cb584
|
|
BLAKE2b-256 checksum How to use checksums |
2ea207b90cf27d5ca4bbc3fede6a0e9dcca9aec9e04bc89cee1aac4dd851ee6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / lyric_fetch_mcp-0.1.0-py3-none-any.whl
| Download URL | lyric_fetch_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d949a77a13094c2c2ea4dba13a62477336a25953d4b29971b37d49772bb83f74
|
|
BLAKE2b-256 checksum How to use checksums |
72ba0d54ee1306351809a888ba91bd30a4ef83806a4111fda7b3f5930902679f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|