Genius MCP Server

by federicogarciav

Not rated
GitHub

About

An MCP server to interact with the genius.com API and collect song information, annotations, artist data, etc.

Details

Author
federicogarciav
Categories
Web Scraping, API, Other

Setup

Install Genius MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/federicogarciav/genius-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

An MCP server that brings the power ofGeniusinto your AI assistant.

Query songs, artists, lyrics annotations, album artwork annotations, song relationships, credits, and editorial knowledge through a clean set of tools and prompts — powered by both the official Genius API and thelyricsgeniusPython library.

- What It Does
-
Tools
-
Prompts
-
Getting Started

- 1. Get a Genius API Token
-
2. Configure Environment Variables
-
3. Run with Python
-
4. Run with Docker

The Genius MCP Server exposes the Genius.com knowledge base to any MCP-compatible AI client (Claude Desktop, Claude Code, Cursor, etc.). It lets the AI:

- Searchfor songs and artists by name
- Fetch full song metadata— title, album, release date, lyrics state, and Genius editorial descriptions
- Fetch artist profiles— bio, follower count, verification status
- Browse an artist's discography— sorted by popularity or release date, or as a full album list with tracklists
- Read annotations— community and artist-verified explanations of specific lyric fragments, each tagged with a trust level so the AI knows how much weight to give them
- Read album artwork annotations— community explanations of visual elements, symbolism, and artistic choices written directly on album cover art images
- Explore song relationships— discover what a song samples, interpolates, covers, or remixes, and what later songs sampled it in turn
- Look up song credits— writers, producers, featured artists, and custom performance roles (mixing engineer, recording studio, label)
- Run pre-built analysis promptsthat gather all relevant data in one shot and ask the AI for a deep analysis of a song or artist

Some tools call theofficial Genius API(api.genius.com) using your access token. Others use thelyricsgeniusPython library, which accesses Genius's undocumented public API — these endpoints are not part of the official API contract and may change without notice.

Prompts are pre-built multi-step workflows that gather data from Genius and feed it to the AI in a structured context.

Args:song_title(required),artist_name(optional)

Searches for the song, fetches its full metadata and editorial description, retrieves all annotations (sorted by trust level), and asks the AI for a deep analysis of the song's meaning, themes, and cultural context.

Fetches the artist's full bio, their top 3 most popular songs with metadata and artist-verified annotations (where available), and asks the AI for an overview of the artist's themes, style, and significance.

Copy the example env file and fill in your token:

# Required — your Genius API access token GENIUS_ACCESS_TOKEN=your_token_here # Transport mode: # true → run as a Streamable HTTP server on port 8080 # false → run in stdio mode (for Claude Desktop) STREAMABLE_HTTP=true

The server will start onhttp://127.0.0.1:8080(Streamable HTTP mode) or in stdio mode depending on yourSTREAMABLE_HTTPsetting.

The server runs asgenius-mcp-serveron port 8080. The.envfile is mounted into the container — make sure it exists and contains your token before starting.

stdio mode(e.g. for Claude Desktop via Docker):

SetSTREAMABLE_HTTP=falsein your.env, then run:

docker run --rm -i --env-file .env $(docker build -q .)
claude mcp add genius --transport http http://127.0.0.1:8080/mcp

WithSTREAMABLE_HTTP=falsein your.env, add this to yourclaude_desktop_config.json:

{ "mcpServers": { "genius": { "command": "python", "args": ["/absolute/path/to/genius-mcp/main.py"], "env": { "GENIUS_ACCESS_TOKEN": "your_token_here", "STREAMABLE_HTTP": "false" } } } }

Every annotation returned by the server includes atrust_levelfield. This lets the AI reason about source reliability:

Theget_song_annotationstool accepts afilterargument to retrieve only annotations at a specific trust level.

genius-mcp/ ├── main.py # Entry point — configures transport and starts the server ├── app.py # FastMCP app instance ├── mcp_components/ │ ├── genius_api.py # Async HTTP client for the Genius API │ ├── mcp_tools.py # MCP tool definitions │ └── mcp_prompts.py # MCP prompt definitions ├── tests/ │ ├── test_mcp_server_initialization.py │ └── test_mcp_server_tools.py ├── Dockerfile ├── docker-compose.yml ├── requirements.txt └── .env.example

1GB Free Trial, World's Leading Proxy Service Platform, Efficient Data Collection

Scrape websites with Oxylabs Web API, supporting dynamic rendering and parsing for structured data extraction.

Access Swedish real estate data from Booli.se through a GraphQL API.

A crawler compliance risk assessment system via a simple API.

An MCP server for making HTTP requests, enabling LLMs to fetch and process web content.

KonbiniAPI gives AI agents direct access to social media data — profiles, posts, videos, comments, and search results.

Fetches LinkedIn profile information using the Fresh LinkedIn Profile Data API.

One MCP server for 160+ live web-data APIs (search, social, e-commerce, real estate, jobs, finance) — clean JSON, free tier.

AI-powered web scraping using the ScrapeGraph AI API. Requires an API key.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.