# Upstream.so [Health: Active]

**Category:** 🎥 Multimedia Process  
**Repository:** https://github.com/upstream-so/upstream-mcp  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/upstream-so

## Description
Manage 24/7 live streams, media, playback queues, schedules, and multistreaming from AI assistants.

## Tools
Capabilities this server exposes over MCP:

- **list_streams** — List the streams owned by the account, newest first, paginated.
- **get_stream** — Get one stream by UUID: settings, status, tags, destinations.
- **create_stream** — Create a stream — name, platform (`youtube`, `twitch`, `kick`, `custom`, `customsrt`), stream key.
- **update_stream** — Partially update a stream; only provided fields change.
- **delete_stream** — Permanently delete a stream and its configuration.
- **start_stream** — Start broadcasting to the stream's platform.
- **stop_stream** — Stop a running stream. This interrupts a live broadcast for viewers.
- **get_stream_queue** — Get the ordered items of one queue.
- **add_to_stream_queue** — Append media UUIDs to a queue — or `{url, name}` objects for `external-videos`.
- **remove_from_stream_queue** — Remove one item. The media file itself is not deleted.
- **reorder_stream_queue** — Replace a queue's playback order with a full ordered list of ids.
- **list_media** — List and search the library, paginated. Filter by type, name or folder.
- **get_media** — Get one file, including its processing state.
- **update_media** — Update name and audio tags (title, artist, album, year, genre).
- **delete_media** — Permanently delete a file. It also disappears from any queue referencing it.
- **create_upload_ticket** — Mint a TUS upload ticket so the client can upload files itself.
- **revoke_upload_tickets** — Revoke active upload tickets for the account.
- **list_folders** — List folders, optionally filtered by parent.
- **get_folder** — Get one folder by UUID.
- **create_folder** — Create a folder, optionally inside a parent.
- **update_folder** — Rename a folder, or move it under another parent.
- **delete_folder** — Delete a folder and its subfolders. Contained files move to the library root.
- **move_files_to_folder** — Move up to 100 files into a folder, or back to the root.
- **list_destinations** — List the extra platforms a stream is restreamed to.
- **add_destination** — Add a destination — name, platform, stream key.
- **update_destination** — Partially update a destination.
- **remove_destination** — Remove a destination from the stream.
- **list_tags** — List the account's tags.
- **create_tag** — Create a tag. Names are unique per account.
- **update_tag** — Update a tag's name, colour or icon.
- **delete_tag** — Delete a tag. Streams keep working; they just lose it.
- **get_account** — Get the authenticated account: id, name, email, plan and limits.

## Claude Desktop Quick Installation
No confirmed install details yet, so no config is published. Follow the setup steps in the repository above.

## Documentation

## What Upstream.so MCP server does

The Upstream.so MCP server lets an AI assistant manage an Upstream.so account through MCP. It covers live-stream configuration and operation, media organization, playback queues, scheduling, and additional streaming destinations. Stream tools can list, inspect, create, update, start, stop, or delete streams. Stream creation and updates can also include schedules with start and end times, repetition, or continuous-mode run and break durations.

This makes the Upstream.so MCP server relevant to the 🎥 Multimedia Process category. It is intended for accounts that already use Upstream.so to host or distribute live video or audio content.

## How it works

The server is remote and uses Streamable HTTP at `https://studio.upstream.so/mcp`. An MCP client sends tool calls to that endpoint, which applies the same account ownership checks, input validation, and rate limits as the public Upstream API. Nothing needs to be installed locally, and the repository does not provide a local npm process.

Authentication supports OAuth and personal API keys. OAuth is the recommended option when the client supports it: the user signs in on Upstream.so and approves the requested access. Clients that support custom headers can instead send a dedicated personal token with `Authorization: Bearer`. Both authentication methods can authorize operations that modify or delete data, so approval prompts should remain enabled.

## Setup and configuration

Add the MCP endpoint to a client that supports remote Streamable HTTP. OAuth-capable clients can usually discover the authentication settings and open the Upstream.so sign-in flow. For clients without OAuth, create a personal token under **Profile → API Keys** and store it in the client’s secret request-header settings. The legacy `X-Upstream-Api-Key` header remains supported, but new API-key connections should use the Bearer format.

The documented setup paths include custom connections for ChatGPT and Claude, an HTTP MCP entry for VS Code, and the `claude mcp add --transport http` command for Claude Code. After authentication, verify the connection with a read-only request such as listing streams before making changes.

## Tools and capabilities

The Upstream.so MCP server exposes tools for:

- Listing, creating, editing, starting, stopping, and deleting streams.
- Reading and changing ordered queues for video, audio, secondary audio, and external-video content.
- Searching paginated media, checking processing state, editing audio metadata, deleting files, and creating or revoking TUS upload tickets.
- Creating, nesting, renaming, moving, and deleting folders, including moving up to 100 files at once.
- Adding, editing, listing, and removing extra destinations used for multistreaming.
- Listing and editing account tags, including their names, colours, and icons.

Uploaded media must finish processing before it can be added to a queue. External-video queue entries use URL and name objects rather than media UUIDs.

## Limitations and notes

The Upstream.so MCP server can perform destructive actions. Deleting a stream permanently removes its configuration; deleting media also removes it from queues that reference it. Stopping a stream interrupts the live broadcast for viewers, while deleting a folder moves its contained files to the library root.

Upload handling is indirect: `create_upload_ticket` creates a TUS ticket, but the client uploads the file itself. Queue reordering requires submitting the complete ordered list of item IDs. API-key connections should use a separate key for each client and must not expose the token in prompts or shared configuration. OAuth access is not read-only, even when using the `mcp:use` scope.

_Full upstream README: https://allmcps.com/mcp/upstream-so/readme_

