Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI β†’ MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE β†— (opens in a new tab)
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ’» Developer Tools
  3. Upnext
U
Health: Not checked yetWe have not completed a health check for this listing yet.No health check has run yet.

Upnext

User RatingsBe the first to rate and review this MCP server! Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View RepositoryVisit Website

One audio queue across Spotify, the browser, local files and whatever is already playing.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Client Config & Setup

Choose your client or environment
Target File:~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "upnext": {
      "command": "npx",
      "args": [
        "-y",
        "upnext"
      ]
    }
  }
}

πŸ’‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.

Install Directory Badge Claim listing AlternativesπŸ’» More in Developer Tools

Documentation Overview

upnext

npm CI license deps

One queue over every audio source β€” including the ones you don't control.

A library your product imports so that whatever is driving β€” a model, a person clicking, a script β€” can control audio without knowing whether the sound is coming from Spotify, a browser tab, a podcast feed, or a file on disk.

server.ts
const runtime = new Runtime({ adapters: [spotify, browser, local, nowPlaying] });

runtime.enqueue(NOW_PLAYING_URI);                         // the podcast already
                                                          // playing in their browser
runtime.enqueue('spotify:track:1OWBh1eVxUdA1Z6UA8r4nh');  // then a Spotify track
runtime.enqueue('https://example.com/episode.mp3');       // then a file on the web
runtime.enqueue('something calmer after those');          // then whatever you decide, later

await runtime.play();

Four sources, one list, in order. The first one is playing inside an app you do not own β€” and the queue waits for it to finish before taking over.

What you get

Add audio to your product without marrying one service. Write against one queue; swap or add backends later. An entry describes what to play, not where from, so it can bind to whichever source is available at the moment it plays.

Join what someone is already listening to instead of talking over it. The machine's current playback β€” a YouTube tab, a podcast in Safari, VLC β€” can be a queue entry like any other. Your track starts when theirs ends.

Know what you can do before you try it. runtime.can('seek') answers for the backend that is actually loaded. No silent no-ops, no discovering at 2am that one source quietly ignored a command.

Keep playing when a source fails. If a backend cannot load an entry, the same description is handed to the next one that can. A queue does not stop because one service is down.

Survive a restart. serialize() / restore() β€” and a queue saved on a machine with Spotify reopens on one without it, then plays from somewhere else.

What ships today

packageplays
upnext-corenothing β€” the queue, state machine, capability model and events. Zero dependencies, no I/O.
upnext-adapter-spotifythe Spotify desktop app on macOS with no credentials, or the Web API with a token you hold
upnext-adapter-browserany media element you control β€” browser, Electron renderer, webview, across a process boundary
upnext-adapter-locallocal files and streams via ffplay/afplay
upnext-adapter-apple-musicyour Apple Music library through the Music app β€” no credentials, and it can search
upnext-adapter-nowplayingwhatever the machine is already playing, whichever app is playing it (macOS + Linux)
upnext-adapter-processan adapter written in any language, over a pipe
upnext-desktopall of the above wired for you, in one call β€” plus the upnext CLI
upnext-mcpthe same, as an MCP server any agent can use
upnext-httpthe same, over HTTP with a live event stream

What each one can actually do

The point of the capability model is that these differ, and say so:

starts tracksend of trackpositionseekpausevolumesearchsomeone else can change it
browserβœ…eventexactβœ…βœ…βœ…βŒno
local (ffplay)βœ…eventestimatedβœ…βœ…βŒβœ…ΒΉno
local (afplay)βœ…eventestimatedβŒβœ…βŒβœ…ΒΉno
spotify desktopβœ…eventexactβœ…βœ…βœ…βŒΒ²yes
spotify webβœ…eventexactβœ…βœ…βœ…βœ…yes
apple musicβœ…pollexactβœ…βœ…βœ…βœ…yes
nowplaying❌³pollexactβŒβœ…βŒβŒyes

ΒΉ only when you point it at a music folder to index Β· Β² the AppleScript dictionary cannot search a catalogue Β· Β³ there is no way to ask macOS's Now Playing register to start a specific track

Every ❌ there is a refusal rather than a silent failure. An adapter that claims it can seek and then doesn't is a bug you chase for an hour; these tell you first, and the runtime routes around them.

Not built yet: Now Playing on Windows, and controlling one specific browser tab (needs an extension). Details at the bottom.


The problem

Every audio integration today puts the queue in the wrong place.

Code
   WITHOUT upnext                          WITH upnext

   caller                                  caller
     β”‚                                       β”‚
     β”‚ "play X"                              β”‚ enqueue / move / skip
     β–Ό                                       β–Ό
   Spotify Web API                     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚                                 β”‚   THE QUEUE   β”‚ ← yours. one of them.
     β–Ό                                 β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                           β”‚
   β”‚ Spotify queue β”‚ ← the real one    β”Œβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β–Ό       β–Ό       β–Ό        β–Ό
                                    Spotify  Apple  browser   local
   Now queue a YouTube video.                 Music    tab      file
   Nowhere to put it.               Each one just plays what it's handed.

That works right up until the next item isn't a Spotify track β€” and then there is nowhere to put it. upnext inverts it: the runtime owns the queue, and Spotify's queue, Apple Music's Up Next and a browser tab's <audio> element all become places to send one item at a time.


Quickstart

The fast way β€” every source this machine can reach, one call:

Terminal
npm i upnext-desktop
server.ts
import { desktop } from 'upnext-desktop';

const audio = await desktop();
audio.enqueue('spotify:track:1OWBh1eVxUdA1Z6UA8r4nh');
audio.enqueue('https://example.com/podcast.mp3');
await audio.play();

It ships a CLI too:

Code
$ upnext now
β–Ά Korea's STRANGEST Food is on Jeju Island!! β€” More Best Ever Food Review Show
  Google Chrome Β· 23:20 / 24:11

That is a YouTube tab, read with no browser extension.

Or give it to an agent

config.json
{ "mcpServers": { "upnext": { "command": "npx", "args": ["-y", "upnext-mcp"] } } }

Twelve tools in Claude Desktop, Cursor or anything else that speaks MCP β€” including media_adopt_current, which puts what someone is already listening to into the queue so the agent adds to it rather than talking over it.

Or wire it yourself

Terminal
npm i upnext-core upnext-adapter-local

upnext-adapter-local needs ffplay (from ffmpeg) or afplay (built into macOS).

server.ts
import { Runtime } from 'upnext-core';
import { LocalAdapter } from 'upnext-adapter-local';

const runtime = new Runtime({
  // Absolute paths only β€” Node does not expand `~`.
  adapters: [new LocalAdapter({ library: ['/Users/you/Music'] })],
});

runtime.on('item:started', ({ item }) => console.log('β–Ά', item.ref.title));
runtime.on('item:ended',   ({ item }) => console.log('β– ', item.ref.title));

runtime.enqueue('file:///path/to/first.mp3');
runtime.enqueue('file:///path/to/second.mp3');

await runtime.play();     // plays the first, then the second, on its own
await runtime.next();     // skip

On a Mac with Spotify open, add a second source with nothing to sign up for:

Terminal
npm i upnext-adapter-spotify
server.ts
import { SpotifyDesktopAdapter } from 'upnext-adapter-spotify';

const runtime = new Runtime({
  adapters: [new LocalAdapter({ library: ['/Users/you/Music'] }), new SpotifyDesktopAdapter()],
});

runtime.enqueue('https://open.spotify.com/track/1OWBh1eVxUdA1Z6UA8r4nh');
runtime.enqueue('file:///path/to/second.mp3');
await runtime.play();   // Spotify, then a local file, without either knowing

Want to hear it right now, with no files of your own?

bash
git clone https://github.com/tothienbao6a0/upnext && cd upnext
npm install && npm run demo    # synthesizes its own tones and plays them

How it works

The pieces

Code
                          your application
                                β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚  Runtime                   β–Ό                            β”‚
   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
   β”‚  β”‚  Queue   β”‚  β”‚    Binder    β”‚  β”‚   Prefetcher   β”‚     β”‚
   β”‚  β”‚ ordered  β”‚  β”‚ which source β”‚  β”‚  resolve ahead β”‚     β”‚
   β”‚  β”‚ id-based β”‚  β”‚  + fallback  β”‚  β”‚  of the head   β”‚     β”‚
   β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
   β”‚  β”‚   Deck   β”‚  β”‚   Watcher    β”‚  β”‚   Reconciler   β”‚     β”‚
   β”‚  β”‚  loaded  β”‚  β”‚  is it over  β”‚  β”‚  human took    β”‚     β”‚
   β”‚  β”‚   item   β”‚  β”‚     yet?     β”‚  β”‚      over      β”‚     β”‚
   β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚  Adapter interface
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β–Ό          β–Ό          β–Ό            β–Ό          β–Ό          β–Ό
 Spotify    Spotify    a media      local     whatever    anything
 desktop    Web API     element     files      is on      you write
                     (browser /              (macOS Now
                      Electron)               Playing)

The life of one queue entry

Read the full README β†’View source on GitHub β†’

Related MCP Servers

View all in Developer Tools View all alternatives
  • Labelhead Artist Momentum logoLabelhead Artist Momentum

    Trending hip-hop artist momentum scores across four cultural dimensions.

    πŸ’» Developer Tools0 views
    Compare vs Labelhead Artist Momentum β†’
  • PraisonAI logoPraisonAI

    AI Agents Framework with Self Reflection and MCP support

    πŸ’» Developer Tools1 views
    Compare vs PraisonAI β†’
  • DrissionPage MCP logoDrissionPage MCP

    Local browser automation for MCP clients powered by DrissionPage.

    πŸ’» Developer Tools0 views
    Compare vs DrissionPage MCP β†’
  • Audio File MCP App logoAudio File MCP App

    Inspect local audio files β€” playback, metadata, loudness, spectrogram.

    πŸ’» Developer Tools0 views
    Compare vs Audio File MCP App β†’

Reviews

No reviews yet β€” be the first to share how this listing worked for you.

Frequently Asked Questions about Upnext

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "upnext": { "command": "npx", "args": ["-y", "upnext"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewUpnext AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/upnext?style=directory)](https://allmcps.com/mcp/upnext)
HTML Embed
<a href="https://allmcps.com/mcp/upnext"><img src="https://allmcps.com/api/badge/upnext?style=directory" alt="Upnext on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ’»Developer Tools
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
Last updatedSep 7, 2026
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
27Quality signal: Emerging Β· 27/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools11/30
Adoption & activity1/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… FeaturedMoxie Docs MCP logo

Moxie Docs MCP

MCP & Agent Skills for Automated Documentation, and codebase conventions + context

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to unlock edit access and the Official badge β€” proof is checked automatically, then reviewed by our team.

Free dofollow backlink: add your website and place the AllMCPs badge on it β€” no claim needed. We detect it automatically and keep it verified as long as the badge stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ’» Developer Tools β†’Best MCP servers for Developers β†’Alternatives to Upnext β†’Install in Claude DesktopInstall in CursorInstall in VS Code