MusicPlayerMcp
使用说明内容(Markdown格式)
-
项目简介
- MusicPlayerMcp 是一个实现了 MCP 服务器端的简单后端,提供本地音乐播放控制能力,客户端通过 MCP 请求调用服务器暴露的工具实现对音乐的搜索、下载与播放,以及停止播放等操作,全部通过 stdio 传输。
-
主要功能点
- 提供两个 MCP 工具:
- search_and_play_song: 接受歌曲名称、艺术家或 YouTube 链接,解析后下载音频并开始本地播放,若已有音乐在播放会替换。
- stop_song: 停止当前正在播放的音乐。
- 通过 stdio 传输实现 MCP 通信,支持与 MCP 客户端(如 Copilot、Claude Desktop 等)直接对接。
- 使用 YoutubeExplode 下载 YouTube 音频,使用 NAudio 实时播放音频,音频缓存于本地 Temp 目录。
- 会话级别的简单日志输出,便于调试与监控。
- 提供两个 MCP 工具:
-
安装步骤
- 需要安装 .NET 10 运行时(根据项目要求,可使用 dotnet 10 环境)。
- 获取代码并编译:
- 读取并安装所需依赖(通过 NuGet 自动获取)。
- 构建项目(通常使用 dotnet build,或在 IDE 中直接生成可执行文件)。
- 运行方式(在本地开发环境中启动服务器):
- 将程序作为一个控制台应用运行,通常生成可执行的 DLL/运行入口。
- 参考下方的服务器配置将服务器以 MCP 客户端可识别的方式暴露给 MCP 客户端使用。
-
服务器配置(MCP 客户端需要的最低信息,用于连接到 MCP 服务器)
-
服务器配置示例(文本描述,非代码块形式,便于理解):
- MusicPlayerMcpServer
- type: stdio
- command: dotnet
- args: ["MusicPlayerMcpServer.dll"] // 请将 DLL 名称替换为实际编译输出的入口程序名
- 注释:该配置让 MCP 客户端通过标准输入/输出与本服务器建立通信,具体的 DLL/可执行名称需以实际部署产物为准
- MusicPlayerMcpServer
-
另一种常见部署方式(Docker)示例配置:
- MusicPlayerMcpDocker
- command: docker
- args: ["run", "-i", "--rm", "eduardorezende01/musicplayermcp"]
- 注释:使用 Docker 镜像直接运行服务器,适合快速试用或部署在容器环境中
- MusicPlayerMcpDocker
-
-
基本使用方法
- 启动后,MCP 客户端通过调用工具名称触发行为:
- 触发 search_and_play_song:输入 "Play Let It Happen by Tame Impala" 或 "play https://youtube.com/...",服务器将下载音频并开始播放。
- 触发 stop_song:输入任意停止语,例如 "Stop the music"、"stop the audio" 等,服务器将停止当前音乐播放。
- 说明:同一时刻只能播放一首音乐,新的 search_and_play_song 请求会替换当前播放的音轨。
- 启动后,MCP 客户端通过调用工具名称触发行为:
-
注意事项
- 音乐音频来源为 YouTube,下载过程可能受网络波动影响。
- 音频文件保存在系统的临时目录中。
- 需要在目标环境具备音频输出设备(扬声器/耳机)并允许应用访问音频硬件。
- 不提供图形界面,所有控制通过 MCP 请求实现。
-
使用示例(简要)
- 调用:播放 Bohemian Rhapsody,服务器返回音轨路径或播放状态确认。
- 调用:停止音乐,服务器返回停止确认。