lxmusic
Multi-source music search and playback MCP server supporting QQ Music, NetEase Cloud, and local files with playlist management.
README
<div align="center"> <h1>lxmusic</h1> <p>QQ音乐 / 网易云 CLI & MCP 工具 — 搜索、播放、下载、歌单管理</p> <p> <a href="#quick-start">Quick Start</a> • <a href="#cli-usage">CLI</a> • <a href="#mcp-server">MCP</a> • <a href="#configuration">Configuration</a> • <a href="#local-source">Local Source</a> • <a href="#build--publish">Build</a> </p> </div>
Features
- 多音源 — QQ音乐(tx)、网易云(wy)、本地文件扫描(local)
- 搜索 — 音乐 / 专辑,音源间自由切换
- 播放 — 获取播放直链或本地路径,
--json含歌词 - 下载 — 单曲 / 整张专辑下载,带进度条,自动降级音质
- 歌单 — YAML 存储,创建、搜索添加(多选)、查看、播放、导出 M3U8
- 本地源 — 扫描音乐目录,同时解析 YAML 歌单文件,
search album按歌单名匹配 - 配置 —
lxmusic config set运行时修改,只需关心data_dir+music_dir - MCP — 标准 MCP server(搜索/播放工具)
- 多音质 — 128k / 320k / FLAC / Hi-Res,不可用时自动降级
Quick Start
# 安装
uv tool install lxmusic
# 或: pipx install lxmusic
# 设置 API 密钥(从 https://source.shiqianjiang.cn/ 获取)
lxmusic config set api_key your_key_here
# 搜索音乐(QQ音乐)
lxmusic search music "周杰伦"
# 搜索音乐(网易云)
lxmusic search music "周杰伦" --source wy
# 搜索专辑
lxmusic search album "范特西"
# 播放,返回 URL 和歌词
lxmusic play 102065756 --json
# 下载单曲
lxmusic download 102065756 --dir ~/Music
# 下载整张专辑(先搜索得到 album_id,再下载)
lxmusic album 003DFRzD192KKD --dir ~/Music/七里香
# 启动 MCP server
lxmusic mcp
Installation
从 PyPI
uv tool install lxmusic
# 或: pipx install lxmusic
从源码
git clone <repo-url>
cd lxmusic
uv sync
CLI Usage
Search
lxmusic search music "儿歌" --page 1
lxmusic search album "范特西"
lxmusic search music "周杰伦" --source wy --json
lxmusic search album "我的最爱" --source local # 本地歌单匹配
Play
lxmusic play 102065756
lxmusic play 102065756 --quality flac
lxmusic play 102065756 --json
{
"url": "http://...mp3",
"quality": "320k",
"lyric": "[ti:七里香]\n...",
"song": { "id": 102065756, "title": "七里香", "artist": "周杰伦", ... }
}
Download
lxmusic download 102065756 # 当前目录
lxmusic download 102065756 --dir ~/Music # 指定目录
lxmusic download 509781655 --source wy --dir ~/Music # 网易云歌曲
Album
lxmusic album 003DFRzD192KKD # 远程专辑
lxmusic album "巧虎儿歌" --source local # 本地歌单曲目
lxmusic album 003DFRzD192KKD --dir ~/Music/七里香 # 指定目录
lxmusic album 003DFRzD192KKD --quality flac # 无损音质
lxmusic album 003DFRzD192KKD --json # JSON 输出
Playlist
lxmusic playlist create "我的最爱"
lxmusic playlist add "我的最爱" "周杰伦 七里香" # 搜索 → 交互选择 → 下载 → 添加
lxmusic playlist add "我的最爱" "周杰伦 晴天" # 回车=全部,逗号分隔多选
lxmusic playlist show "我的最爱"
lxmusic playlist play "我的最爱"
lxmusic playlist export "我的最爱" --dir ~/Music # 导出 M3U8
Config
lxmusic config set api_key your_key_here # 设置密钥
lxmusic config set default_source local # 默认本地源
lxmusic config set music_dir ~/Music # 音乐文件目录
lxmusic config set data_dir ~/.config/lxmusic # 数据目录
lxmusic config set default_quality flac # 默认音质
lxmusic config set api_key "" # 删除配置项
lxmusic config show # 查看当前配置
MCP Server
标准 MCP
lxmusic mcp
标准工具:search_music, search_album, play_music
Local Source
本地源支持两种资产:
- 音频文件 —
.mp3.flac.wav.m4a.ogg.wma,按文件名搜索 - 歌单 YAML — 目录下
*.yaml文件,解析name+tracks结构,通过search album匹配歌单名
YAML 格式示例(巧虎儿歌.yaml):
name: 巧虎儿歌
tracks:
- {"id": 1, "title": "小毛驴", "artist": "儿童歌曲", "path": "/music/小毛驴.mp3"}
- {"id": 2, "title": "粉刷匠", "artist": "儿童歌曲", "path": "/music/粉刷匠.mp3"}
Configuration
配置项说明
优先级:环境变量 > config.yaml > 默认值
| Environment Variable | Description | Default |
|---|---|---|
LX_MUSIC_API_KEY |
API 密钥(必填) | — |
LX_MUSIC_API_URL |
后端 API 地址 | https://source.shiqianjiang.cn/api/music |
LX_MUSIC_DEFAULT_SOURCE |
默认音源(tx/wy/local) | tx |
LX_MUSIC_DEFAULT_QUALITY |
默认音质(128k/320k/flac/hires) | 320k |
LX_MUSIC_DATA_DIR |
lxmusic 数据目录 | ~/.config/lxmusic |
LX_MUSIC_MUSIC_DIR |
本地音乐目录(逗号分隔多目录) | ~/.config/lxmusic/library |
目录结构
用户只需要关心两个路径:数据放哪 和 音乐文件在哪,其余子目录自动推导:
data_dir/ # lxmusic 数据目录(默认 ~/.config/lxmusic)
├── config.yaml # 配置文件
├── playlists/ # 歌单 YAML 文件
├── cache/ # 下载缓存(playlist add 下载的音频)
├── library/ # 曲库索引
└── history/ # 播放历史
music_dir/ # 用户音乐文件目录(可多个,逗号分隔)
└── 巧虎儿歌/
├── *.mp3
└── 巧虎儿歌.yaml # 歌单文件(自动识别)
配置示例
# ~/.config/lxmusic/config.yaml
api_key: your_key_here
api_url: https://source.shiqianjiang.cn/api/music
default_source: local # 默认使用本地源
default_quality: 320k
data_dir: ~/.config/lxmusic # 数据目录
music_dir: ~/Music,/mnt/music # 本地音乐目录(多个用逗号分隔)
常用命令
# 查看当前配置
lxmusic config show
# 设置 API 密钥
lxmusic config set api_key your_key_here
# 切换默认音源
lxmusic config set default_source local
# 设置本地音乐目录(支持多个)
lxmusic config set music_dir "~/Music,/mnt/music"
# 改变数据目录
lxmusic config set data_dir ~/.config/lxmusic
# 删除配置项(恢复默认)
lxmusic config set api_key ""
路径说明
playlist_dir→data_dir/playlists/—lxmusic playlist命令操作的文件cache_dir→data_dir/cache/—lxmusic playlist add下载的音频缓存local_dirs→music_dir的值 —LocalSource扫描的目录lxmusic download默认下载到当前目录,--dir指定其他位置
Build & Publish
uv build
uv publish
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。