这是一个符合模型上下文协议(MCP)的服务器,它提供了与 StreamerSongList API 交互的工具。该服务器使像 Claude 这样的 AI 助手能够管理歌曲请求、监控队列,并与流媒体平台的歌曲请求系统进行交互。
无需安装!只需将 Claude Desktop 配置为使用以下内容:
{
"mcpServers": {
"streamersonglist": {
"command": "npx",
"args": ["streamersonglist-mcp"]
}
}
}
git clone https://github.com/vuvuvu/streamersonglist-mcp.git
cd streamersonglist-mcp
npm install
npm test
要通过 Smithery 自动为 Claude Desktop 安装 streamersonglist-mcp,请执行以下命令:
npx -y @smithery/cli install @vuvuvu/streamersonglist-mcp --client claude
找到你的 Claude Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
将服务器添加到你的配置中:
{
"mcpServers": {
"streamersonglist": {
"command": "npx",
"args": ["streamersonglist-mcp"]
}
}
}
重启 Claude Desktop
进行测试: 询问 Claude:"使用 getStreamerByName 工具获取某个热门主播的信息"
如果你更喜欢从本地克隆运行,可以使用以下配置:
{
"mcpServers": {
"streamersonglist": {
"command": "node",
"args": ["src/server.js"],
"cwd": "/path/to/streamersonglist-mcp"
}
}
}
以下是使用 getStreamerByName
工具的示例:
Use getStreamerByName with streamerName "belleune"
以下是使用 manageSongRequest
工具创建新请求的示例:
Use manageSongRequest to create a new request:
- action: "create"
- streamerName: "belleune"
- songTitle: "Bohemian Rhapsody"
- artist: "Queen"
- requesterName: "ChatUser123"
获取特定主播的详细信息。
参数:
streamerName
(字符串,必需):主播的名称示例:
Use getStreamerByName with streamerName "belleune"
查看当前歌曲队列,支持分页。
参数:
streamerName
(字符串,必需):要获取其队列的主播名称limit
(数字,可选):返回的最大歌曲数量(默认值:50)offset
(数字,可选):分页时要跳过的歌曲数量(默认值:0)示例:
Use getQueue with streamerName "belleune" and limit 10
获取歌曲队列的综合统计信息。
参数:
streamerName
(字符串,必需):要获取其队列统计信息的主播名称示例:
Use getQueueStats with streamerName "belleune"
创建、更新和删除歌曲请求。
参数:
action
(字符串,必需):要执行的操作("create"、"update" 或 "delete")streamerName
(字符串,必需):主播的名称requestId
(字符串,可选):请求的 ID(更新/删除时必需)songTitle
(字符串,可选):歌曲的标题(创建/更新时必需)artist
(字符串,可选):艺术家的名称requesterName
(字符串,可选):请求者的名称message
(字符串,可选):请求附带的可选消息示例:
Use manageSongRequest to create a new request:
- action: "create"
- streamerName: "belleune"
- songTitle: "Bohemian Rhapsody"
- artist: "Queen"
- requesterName: "ChatUser123"
以可配置的轮询间隔监控队列变化。
参数:
streamerName
(字符串,必需):要监控其队列的主播名称interval
(数字,可选):轮询间隔(秒)(默认值:30)duration
(数字,可选):监控的时长(秒)(默认值:300)示例:
Use monitorQueue with streamerName "belleune", interval 60, duration 600
检索播放历史,支持过滤和分页。
参数:
streamerName
(字符串,必需):要获取其播放历史的主播名称limit
(数字,可选):返回的最大条目数(默认值:50)offset
(数字,可选):分页时要跳过的条目数(默认值:0)startDate
(字符串,可选):开始日期过滤器(ISO 格式)endDate
(字符串,可选):结束日期过滤器(ISO 格式)示例:
Use getPlayHistory with streamerName "belleune", limit 20, startDate "2024-01-01"
使用各种过滤器搜索歌曲数据库。
参数:
query
(字符串,可选):歌曲标题或艺术家的搜索查询artist
(字符串,可选):按特定艺术家过滤genre
(字符串,可选):按音乐流派过滤limit
(数字,可选):返回的最大结果数(默认值:50)offset
(数字,可选):要跳过的结果数(默认值:0)示例:
Use searchSongs with query "bohemian", artist "Queen", limit 10
获取特定歌曲的详细信息。
参数:
songId
(字符串,必需):歌曲的唯一标识符示例:
Use getSongDetails with songId "song_12345"
获取流媒体软件的实时叠加层数据。
参数:
streamerName
(字符串,必需):主播的名称overlayType
(字符串,可选):叠加层数据的类型("current"、"queue"、"stats")示例:
Use getOverlayData with streamerName "belleune", overlayType "current"
获取全面的流媒体统计信息和分析数据。
参数:
streamerName
(字符串,必需):主播的名称period
(字符串,可选):统计的时间段("day"、"week"、"month"、"year")startDate
(字符串,可选):自定义时间段的开始日期(ISO 格式)endDate
(字符串,可选):自定义时间段的结束日期(ISO 格式)示例:
Use getStreamStats with streamerName "belleune", period "week"
添加、更新或删除歌曲属性,如标签和评分。
参数:
action
(字符串,必需):要执行的操作("add"、"update"、"remove")songId
(字符串,必需):歌曲的唯一标识符attributeType
(字符串,必需):属性的类型("tag"、"rating"、"note")value
(字符串,可选):属性的值(添加/更新时必需)示例:
Use manageSongAttributes with action "add", songId "song_12345", attributeType "tag", value "rock"
streamersonglist-mcp/
├── src/
│ └── server.js # 主要的 MCP 服务器实现
├── package.json # Node.js 依赖项和脚本
├── test-server.js # 测试脚本
└── README.md # 本文件
运行测试脚本以验证服务器是否正常工作:
npm test
这将:
你也可以手动测试服务器:
npm start
服务器将启动并等待标准输入上的 MCP 协议消息。你可以发送以下测试消息:
{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
getPlayHistory
)searchSongs
)getSongDetails
)getOverlayData
)getStreamStats
)manageSongAttributes
)