音乐元数据查询服务器

Genius MCP Server是一个通过官方Genius API和lyricsgenius Python库提供歌曲、艺术家、歌词注释、专辑艺术注释、歌曲关系和编辑知识等音乐元数据查询服务的服务器。

  • by federicogarciav
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 federicogarciav/genius-mcp

使用说明

Genius MCP服务器

MCP服务器带来以下功能 天才 进入你的AI助手。

通过一套由官方Genius API和 lyricsgenius Python库。


目录


它的作用

Genius MCP服务器将Genius.com知识库暴露给任何兼容MCP的AI客户端(Claude Desktop、Claude Code、Cursor等)。它让AI:

  • 搜索 按名称列出歌曲和艺术家
  • 获取完整的歌曲元数据 --标题、专辑、发行日期、歌词状态和Genius编辑描述
  • 获取艺术家个人资料 --个人简介、关注者数量、验证状态
  • 浏览艺术家的唱片 --按流行度或发布日期排序,或作为带有曲目列表的完整专辑列表
  • 阅读注释 --社区和艺术家验证了对特定歌词片段的解释,每个片段都标有信任级别,以便人工智能知道该给它们多少权重
  • 阅读专辑插图注释 --直接写在专辑封面艺术图像上的视觉元素、象征主义和艺术选择的社区解释
  • 探索歌曲关系 --发现歌曲采样、插值、翻唱或混音的内容,以及后来的歌曲依次采样的内容
  • 查找歌曲署名 --作家、制作人、特邀艺术家和定制表演角色(混音工程师、录音室、唱片公司)
  • 运行预构建的分析提示 在一次拍摄中收集所有相关数据,并要求人工智能对歌曲或艺术家进行深入分析

工具

一些工具称为 官方天才API (api.genius.com)使用您的访问令牌。其他人使用 lyricsgenius Python库,访问Genius的未记录的公共API-这些端点不属于官方API合同的一部分,可能会在不通知的情况下更改。

工具 描述 后端
search_song 在Genius中搜索与查询匹配的歌曲。返回歌曲ID、标题、艺术家和注释计数。 API官方
get_song_details 通过Genius ID获取歌曲的完整元数据和编辑描述 API官方
get_song_annotations 获取歌曲的所有注释,可选择按信任级别过滤(artist_verified, accepted, unreviewed). API官方
get_annotation_detail 通过ID获取单个注释的全文和元数据。 API官方
get_song_questions_and_answers 获取用户提交的歌曲问题和答案,并分页。只有答案被接受的问题才会被返回。 lyricsgenius (公开无证件API)
get_song_relationships 获取一首歌曲的音乐关系——它采样、插值、翻唱、混音或翻译了什么,以及后来采样或翻唱了哪些歌曲。只返回至少有一首链接歌曲的关系类型。 API官方
get_song_credits 获取歌曲的创作和制作学分:作家、制作人、特邀艺术家和定制表演角色(如混音工程师、录音室、唱片公司)。 API官方
search_artist 按名字搜索天才艺术家。返回艺术家ID和基本个人资料信息。 API官方
get_artist_details 通过天才ID获取艺术家的完整个人资料和编辑简历 API官方
get_artist_songs 按艺术家列出歌曲,可按以下方式排序 popularity 或 release_date,带分页。 API官方
get_artist_albums 以带有专辑ID的专辑分页列表的形式检索艺术家的完整唱片集。 lyricsgenius (公开无证件API)
search_album 在Genius中搜索与查询匹配的相册。返回专辑ID、名称、艺术家姓名和发布日期。 lyricsgenius (公开无证件API)
get_album_details 按专辑的Genius专辑ID获取专辑的元数据、完整排序的曲目列表和封面艺术列表。每个曲目都包含其歌曲ID,用于链接到其他工具。第一张封面总是专辑的封面;注释艺术品包括 annotation_id. API官方+ lyricsgenius
get_cover_art_annotations 获取特定专辑封面图片上的完整注释——正文、信任级别、作者和投票数。需要 cover_art_id 和 album_id (两者均可从 get_album_details).只呼吁有封面艺术 annotation_id. lyricsgenius (公开无证件API)

提示

提示是预先构建的多步骤工作流程,从Genius收集数据,并在结构化的环境中将其提供给AI。

analyze-song

Args: song_title (必填), artist_name (可选)

搜索歌曲,获取其完整的元数据和编辑描述,检索所有注释(按信任级别排序),并要求人工智能对歌曲的含义、主题和文化背景进行深入分析。

artist-deep-dive

Args: artist_name (必填)

获取艺术家的完整个人简介、他们的前三首最受欢迎的歌曲以及元数据和艺术家验证的注释(如有),并要求人工智能概述艺术家的主题、风格和意义。


入门指南

1.获取Genius API代币

  1. 首选 https://genius.com/api-clients 并登录。
  2. 创建一个新的API客户端。
  3. 复制 客户端访问令牌 --这是您将使用的值 GENIUS_ACCESS_TOKEN.

2.配置环境变量

复制示例env文件并填写您的令牌:

cp .env.example .env

编辑 .env:

# 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

3.使用Python运行

要求: Python 3.11+

安装依赖项:

pip install -r requirements.txt

运行服务器:

python main.py

服务器将于启动 http://127.0.0.1:8080 (流式HTTP模式)或stdio模式,具体取决于您的 STREAMABLE_HTTP 设置。

4.使用Docker运行

流式HTTP模式 (默认):

docker compose up --build

服务器运行方式为 genius-mcp-server 在端口8080上。这 .env 文件已装载到容器中——在开始之前,请确保它存在并包含您的令牌。

stdio模式 (例如,通过Docker为Claude Desktop):

集 STREAMABLE_HTTP=false 在你的 .env,然后运行:

docker run --rm -i --env-file .env $(docker build -q .)

运输方式

模式 STREAMABLE_HTTP 使用案例
流式HTTP true (默认) Claude Code、远程MCP客户端、基于web的工具
站立 false Claude Desktop,本地CLI集成

连接到MCP客户端

克劳德代码(流式HTTP)

claude mcp add genius --transport http http://127.0.0.1:8080/mcp

克劳德桌面(stdio)

随着 STREAMABLE_HTTP=false 在你的 .env,将此添加到您的 claude_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"
      }
    }
  }
}

注释信任级别

服务器返回的每个注释都包含 trust_level 现场。这让AI对源可靠性进行推理:

信任级别 含义
artist_verified 由艺术家书写或确认。将其视为基本真理。
accepted 由Genius编辑人员审核和批准。高品质。
unreviewed 由社区用户提交,尚未审核。视为解释。

这 get_song_annotations 工具接受 filter 参数仅检索特定信任级别的注释。


项目结构

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

许可证

麻省理工学院