mcpField
U
upnext

upnext

本地服务
github.com游戏娱乐18 周前更新

关于 upnext

upnext 是用于管理设备音频的 MCP 服务,将 Spotify、浏览器播放、本地文件和当前播放内容纳入同一队列。队列操作通过条目 ID 定位,便于 Agent 可靠地处理项目。

主要功能

  1. 01查看播放状态和队列
  2. 02将链接、文件、Spotify URI 或描述加入队列
  3. 03控制播放,并在支持时跳转
  4. 04按 ID 移动或移除队列条目
  5. 05搜索可用来源
  6. 06将当前播放内容加入队列

适用场景

  1. 01在当前浏览器音频后排入曲目
  2. 02将本地音乐文件加入播放队列
  3. 03调整顺序或移除指定队列项目
  4. 04查看设备不同来源正在播放的内容

MCP 相关

该 MCP 服务向 MCP 客户端提供媒体查看、队列、播放控制、搜索和采纳当前播放内容等工具。也可通过其服务传输层嵌入现有运行时。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tothienbao6a0-upnext": {
"command": "npx",
"args": [
"-y",
"upnext-mcp"
]
}
}
}
启动命令npx -y upnext-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmupnext-mcp0.3.1

工具

12

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

upnext-mcp

npm license

为你的设备音频打造的 MCP 服务。 Spotify、浏览器、本地文件和当前正在播放的内容,共用一个队列。

{
  "mcpServers": {
    "upnext": {
      "command": "npx",
      "args": ["-y", "upnext-mcp", "--library", "/Users/me/Music"]
    }
  }
}

把它添加到 Claude Desktop、Cursor、Windsurf 或其他任何支持 MCP 的工具中。

它能让 Agent 做什么

you:  what am I listening to?
      → ❚❚ Acquired — Jensen Huang (Google Chrome)

you:  let that finish, then play Bad Habit
      → adopted "Acquired — Jensen Huang" as q_0001
        up next:
          q_0001  Acquired — Jensen Huang
          q_0002  Bad Habit — Steve Lacy

第一行读取浏览器标签页——无需扩展程序。第二行将其作为真正的条目加入队列,因此 Agent 会在用户正在做的事情上继续添加,而不是打断它。

工具

工具
media_now正在播放什么,包括队列中和设备其他位置的内容
media_queue队列,以及每个条目的 ID
media_enqueue添加链接、文件路径、Spotify URI 或普通描述
media_play · media_pause · media_next播放控制
media_seek跳转到指定位置——如果来源不支持,会明确说明
media_move · media_remove按 ID 调整顺序和移除条目
media_search搜索支持搜索的来源
media_adopt_current将当前正在播放的内容加入队列
media_setup查看此处已接入的内容及其功能

所有变更都通过 ID 指定对象,且每个响应都包含带 ID 的队列。这是刻意设计的:如果模型根据位置操作,任何其他对队列的操作都会造成竞态;等它的调用执行时,位置 2 可能已经是另一首歌。

如实告知模型

有两种情况的行为不同于大多数工具服务,原因相同——如果模型遇到悄无声息的无操作,就会信誓旦旦地告诉用户操作成功了。

当来源不支持跳转时调用 media_seek,返回一句说明,而不是错误:

当前来源(spotify-desktop)不支持跳转。未做任何更改。

没有可搜索的来源时调用 media_search,会说明原因:

未找到“bad habit”。 正在播放的来源:spotify-desktop、nowplaying、local 无法匹配标题:此处没有已接入的搜索功能……

标题需要搜索器

链接会明确指定要播放什么。描述则需要查询,但并非每个后端都能做到。Spotify 桌面应用可以播放交给它的 URI,却无法搜索曲库——因此,在普通的 Mac 设置中,media_enqueue 无法将 "bad habit" 匹配到任何内容。

为它添加以下任意一项:

// index a music folder
"args": ["-y", "upnext-mcp", "--library", "/Users/me/Music"]

// or a Spotify Web token, via the environment
"env": { "SPOTIFY_TOKEN": "..." }

media_setup 会告诉你已经接入了哪些服务。

嵌入使用

如果你的产品已经有队列,请直接公开现有队列,而不是另建一个与之争用的队列:

import { createServer } from 'upnext-mcp';
import { serveStdio } from '@modelcontextprotocol/server/stdio';

serveStdio(() => createServer(myExistingRuntime));

这个包只负责传输——排序、能力协商、解析和协调都由 upnext-core 处理。它独立存在,因为传输层本身带有主观看法,不该让任何导入运行时的项目继承这一套。


完整文档:https://github.com/tothienbao6a0/upnext · Apache-2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。