streamloop.app is a remote MCP server that gives an AI agent 33 tools, among them streamloop_apply_playlist_operations, streamloop_cancel_stream_schedule, streamloop_check_stream_readiness. It answers at https://mcp.streamloop.app/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 11 of 11 times since 4 September 2026; the last check, on 7 November 2026, succeeded.
Model Context Protocol server for streamloop.app. Requires authentication.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
streamloop_apply_playlist_operations | Apply a batched, ordered spec edit (add/remove/reorder/settings) to a playlist. All-or-nothing: on any validation failure nothing is written. Does not affect running streams. Set basedOnVersion for optimistic concurrency. Inputs: playlistId, operations, basedOnVersion |
streamloop_cancel_stream_schedule | Undo a Scheduled stream, returning it to Draft (lifecycle CmdCancelSchedule). Inputs: streamId |
streamloop_check_stream_readiness | Dry-run the start pre-flight checks for a stream without mutating. Returns ready + any blocking issues. Inputs: streamId |
streamloop_complete_upload | Mark a direct file upload as finished after the bytes have been PUT to the presigned URL. Inputs: id |
streamloop_copy_playlist | Copy a playlist's spec into another playlist the caller owns. The target must be empty. Inputs: sourcePlaylistId, targetPlaylistId |
streamloop_create_rtmp_destination | Create a custom RTMP destination from an ingest URL + stream key (the key is encrypted server-side). For YouTube, connect in the web UI and find it via streamloop_list_destinations. Inputs: name, rtmpUrl, rtmpKey |
streamloop_create_stream | Create a new stream. Optionally attach a destination, uploads, and playlists. Returns the new stream. Inputs: name, quality, framerate, scheduleStartAt, scheduleEndAt, streamDuration |
streamloop_create_upload_from_file_upload | Register a new upload and get a presigned PUT URL. The client uploads the file bytes to the returned uploadUrl (the MCP server cannot transfer bytes), then calls streamloop_complete_upload with the returned id. Inputs: name, type, mimeType, fileSize, duration, width |
streamloop_create_upload_from_link | Ingest a video or audio file from a remote URL. The server downloads it asynchronously; poll streamloop_get_upload to watch ingest progress. Inputs: url, type |
streamloop_delete_stream | Permanently delete a stream. Destructive and irreversible — requires confirm=true and the streamloop:destructive scope. Inputs: id, confirm |
streamloop_delete_upload | Permanently delete an upload. Destructive — requires confirm=true and the streamloop:destructive scope. Inputs: id, confirm |
streamloop_get_billing_overview | One-call billing snapshot: balance, credits left, good standing, free-credit eligibility, current burn rate, all-time totals, currently-streaming sessions, and the credits-per-minute pricing reference. |
streamloop_get_crypto_deposit_address | Get (or lazily create) the authenticated user's crypto deposit address for a given currency. The id must be a valid 0xProcessing currency identifier from streamloop_list_crypto_currencies (e.g. "USDT (TRC20)" or "BTC"). Note: the first call Inputs: id |
streamloop_get_me | Fetch the authenticated user's general profile (id, email, name, role, locale, default stream duration). |
streamloop_get_playlist | Fetch a single playlist by typeid (e.g. plst_...), including draft items, the snapshot-vs-draft diff, liveItems, hasUnpublishedChanges, and publishStatus. Inputs: id |
streamloop_get_selected_workspace | Report the workspace this MCP connection currently operates in: an explicit select_workspace choice, else the access token's default workspace hint (your personal workspace), else none. |
streamloop_get_stream | Fetch a single stream by its typeid (e.g. stream_...). Inputs: id |
streamloop_get_stream_live_stats | Get the YouTube live stats for a stream (watch URL, broadcast lifecycle, concurrent viewers, views, likes, mirror status). Inputs: id |
streamloop_get_upload | Fetch a single upload by id, including download/thumbnail URLs, ffprobe media metadata, and remote-link ingest progress. Inputs: id |
streamloop_get_usage | Time-bucketed usage analytics (minutes, credits, sessions) for a period, broken down by quality. Inputs: period, startDate, endDate |
streamloop_list_crypto_currencies | List all supported cryptocurrencies with live USD rates and transfer rules. Returns the 0xProcessing currency id, symbol, network, name, icon, rateUSD, contractAddress, chainId, decimals, and transferKind for each coin. |
streamloop_list_destinations | List the caller's destinations (YouTube + custom RTMP), optionally filtered by a name substring or a specific id. Returns ids to attach to a stream via streamloop_update_stream(destinationID). Inputs: name, id, status, kind, sort, first |
streamloop_list_invoices | List the caller's invoices (with receipt URLs). Filter by status (paid/pending/cancelled), type, and creation window; sort newest/oldest. Inputs: status, type, createdAfter, createdBefore, sort, first |
streamloop_list_playlists | List the caller's playlists. Filter by kind (video/audio) and creation window; sort newest/oldest. Inputs: kind, createdAfter, createdBefore, sort, first, after |
streamloop_list_streams | List the caller's streams. Filter by name substring, status, and creation window; sort newest/oldest. Inputs: name, status, createdAfter, createdBefore, sort, first |
streamloop_list_uploads | List the caller's uploaded media. Filter by name substring, type (audio/video/image), and creation window; sort newest/oldest. Inputs: name, type, createdAfter, createdBefore, sort, first |
streamloop_publish_playlist | Publish the draft playlist as a new LIVE snapshot (async; signals PreparePlaylistWorkflow). Hot-swaps a live stream's playlist. Requires expectedDraftVersion for strict optimistic concurrency. Poll publishStatus (PREPARING -> IDLE/FAILED) v Inputs: playlistId, expectedDraftVersion |
streamloop_schedule_stream | Schedule a stream to start at a future time (lifecycle CmdSchedule → Scheduled). scheduleEndAt is optional (open-ended allowed). Inputs: streamId, scheduleStartAt, scheduleEndAt |
streamloop_select_workspace | Set the workspace this MCP connection operates in. The selection is per-connection: other MCP connections (even ones sharing this OAuth grant) keep their own selection. Membership is verified by the API on every subsequent operation — selec Inputs: workspaceId |
streamloop_start_stream | Start a stream (lifecycle CmdStart → Activating). Run streamloop_check_stream_readiness first if unsure. Inputs: streamId |
streamloop_stop_stream | Stop a running stream (lifecycle CmdStop → Stopping). Inputs: streamId |
streamloop_top_up_using_card_link | Start a card (Stripe) credit top-up for the given dollar amount in cents (e.g. 2000 = $20). Returns a hosted checkout URL the user completes in a browser. Financial — requires confirm=true and the streamloop:billing scope. Inputs: amountCents, confirm |
streamloop_update_stream | Update a stream's configuration and/or its YouTube broadcast settings (title, privacy, thumbnail, etc. via the `youtube` object). NOTE: the `youtube` settings only apply when the stream's destination is a YouTube account connected through S Inputs: id, name, quality, framerate, scheduleStartAt, scheduleEndAt |
Every block below points at https://mcp.streamloop.app/mcp. Pick your client and copy.
claude mcp add --transport http streamloop-app https://mcp.streamloop.app/mcp
{
"mcpServers": {
"streamloop-app": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.streamloop.app/mcp"]
}
}
}{
"mcpServers": {
"streamloop-app": {
"url": "https://mcp.streamloop.app/mcp"
}
}
}{
"servers": {
"streamloop-app": {
"type": "http",
"url": "https://mcp.streamloop.app/mcp"
}
}
}{
"context_servers": {
"streamloop-app": {
"url": "https://mcp.streamloop.app/mcp"
}
}
}{
"mcpServers": {
"streamloop-app": {
"serverUrl": "https://mcp.streamloop.app/mcp"
}
}
}{
"mcpServers": {
"streamloop-app": {
"url": "https://mcp.streamloop.app/mcp"
}
}
}name: streamloop.app
version: 0.0.1
schema: v1
mcpServers:
- name: streamloop.app
type: streamable-http
url: https://mcp.streamloop.app/mcp{
"mcpServers": {
"streamloop-app": {
"httpUrl": "https://mcp.streamloop.app/mcp"
}
}
}{
"mcpServers": {
"streamloop-app": {
"type": "http",
"url": "https://mcp.streamloop.app/mcp"
}
}
}{
"mcpServers": {
"streamloop-app": {
"url": "https://mcp.streamloop.app/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.streamloop.app%2Fmcp&type=streamable_http&id=streamloop-app&name=streamloop.app
It answered our last check on 7 November 2026 in 230 ms. Over 11 checks since 4 September 2026 it answered 11. Status here comes from Neuronto's own probes, not from the publisher.
33, as returned by the server's own tools/list on 2 September 2026: streamloop_apply_playlist_operations, streamloop_cancel_stream_schedule, streamloop_check_stream_readiness, streamloop_complete_upload, streamloop_copy_playlist, streamloop_create_rtmp_destination, streamloop_create_stream, streamloop_create_upload_from_file_upload, and 25 more.
It answered our last check on 7 November 2026 in 230 ms. Over 11 checks since 4 September 2026 it answered 11.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.streamloop.app/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: ora.ai. Endpoint host: mcp.streamloop.app. ARD identifier: urn:air:ora.ai:mcp:streamloop.app-mcp-0.
First indexed 1 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.