项目简介

本项目 'mcp-server-qq-music' 是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型(LLM)应用提供访问QQ音乐平台的能力。它通过定义和注册一系列工具,允许LLM客户端调用这些工具来搜索歌曲、获取歌曲详情等信息,从而扩展LLM在音乐领域的应用场景。

主要功能点

  • 登录与状态检查:提供工具检查QQ音乐登录状态以及进行登录操作,确保可以访问需要登录才能使用的功能。
  • 歌曲搜索:允许LLM客户端通过关键词搜索QQ音乐平台上的歌曲,返回歌曲列表,包含歌名、歌手、专辑、时长和歌曲链接等信息。
  • 歌曲详情获取:根据歌曲链接,获取歌曲的详细信息,包括歌曲描述、歌词和评论等,为LLM提供丰富的音乐上下文信息。

安装步骤

  1. 环境准备

    • 确保已安装 Python 3.12 或更高版本。
    • 确保已安装 uv (可以使用 'pip install uv' 安装,uv 是一个更快的 pip 和 venv 替代品)。
    • 确保已安装 Node.jsnpm (通常 Node.js 安装包会自带 npm)。
  2. 克隆仓库

    git clone https://github.com/saltfishpr/mcp-servers.git
    cd mcp-servers/src/mcp-server-qq-music
  3. 安装依赖: 使用 uv 安装 Python 依赖:

    uv pip install -r requirements.txt

    如果 'requirements.txt' 文件不存在,或者安装失败,请尝试使用 pip 安装:

    pip install -r requirements.txt

    如果 'requirements.txt' 文件不存在,可以尝试手动安装 'pyproject.toml' 中 'dependencies' 下列出的依赖。

  4. 安装 Playwright 浏览器驱动: Playwright 是一个用于浏览器自动化的库,本项目使用它来与QQ音乐网页进行交互。安装 Playwright 浏览器驱动:

    playwright install

服务器配置

MCP 客户端需要以下配置信息来启动并连接 'mcp-server-qq-music' 服务器。将以下 JSON 配置添加到您的 MCP 客户端配置中:

{
  "serverName": "qq-music",
  "command": "uv",
  "args": [
    "run",
    "python",
    "-m",
    "mcp_server_qq_music"
  ],
  "transports": [
    "stdio"
  ]
}

参数注释

  • 'serverName': 服务器名称,客户端用以标识和调用。这里设置为 'qq-music'。
  • 'command': 启动服务器的命令。这里使用 'uv run python -m' 来运行 Python 模块。
  • 'args': 传递给 'command' 的参数列表。
    • '"python"': 指定使用 python 解释器。
    • '"-m"': Python 的 '-m' 参数,用于运行模块。
    • '"mcp_server_qq_music"': 指定要运行的 Python 模块为 'mcp_server_qq_music',对应项目中的 'src/mcp-server-qq-music/src/mcp_server_qq_music/main.py' 文件。
  • 'transports': 服务器支持的传输协议。这里指定为 'stdio',表示使用标准输入输出流进行通信。

注意

  • 确保您的系统环境变量 'PATH' 中包含了 'uv' 和 'python' 命令。
  • 'state_path' 参数用于指定浏览器状态存储路径,默认已设置为 '~/.mcp/qq-music/state.json',无需额外配置,除非您需要自定义状态存储位置。

基本使用方法

  1. 启动 MCP 服务器: 在配置好 MCP 客户端后,启动客户端,客户端会根据上述配置信息自动启动 'mcp-server-qq-music' 服务器。

  2. 在 LLM 应用中使用工具: 在您的 LLM 应用中,通过 MCP 客户端向 'qq-music' 服务器发送请求,调用相应的工具。例如:

    • 检查登录状态:调用 'check_login' 工具,无需参数。
    • 登录:调用 'login' 工具,无需参数。服务器会启动浏览器进行QQ音乐网页登录,您需要在浏览器中完成扫码登录。
    • 搜索歌曲:调用 'search_songs' 工具,并提供 'keyword' 参数,例如 '{"keyword": "海阔天空"}'。
    • 获取歌曲详情:调用 'get_song' 工具,并提供 'link' 参数,即歌曲链接,例如 '{"link": "/n/ryqq/songDetail/002nHTx62ug8MZ"}'。

    LLM 应用会接收到服务器返回的 JSON-RPC 响应,其中包含工具执行的结果,例如歌曲列表或歌曲详情等信息。您可以根据需要解析和利用这些信息。

注意

  • 首次使用 'login' 工具时,会启动一个无头浏览器窗口(默认配置,可以通过修改代码为 'headless=False' 显示浏览器窗口),您需要在弹出的二维码页面上使用手机QQ音乐扫码登录。登录状态会被保存,下次启动服务器时无需重新登录(除非登录状态失效)。
  • 调用需要登录的功能前,建议先调用 'check_login' 工具检查登录状态,确保操作成功。

信息

分类

网页与API