A side-by-side look at the Runapi AI MCP and Upstream.so MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Runapi AI MCP for multimedia process work as a local process; choose Upstream.so for multimedia process. You can also run both side by side in one mcpServers block.
RUNAPI_API_KEY.list_models, get_model_info, list_actions.list_streams, get_stream, create_stream.Rows where the two servers differ are marked.
| Spec | U Upstream.so | |
|---|---|---|
| Category | Multimedia Process | Multimedia Process |
| Quality signal | 68/100 · Great | 48/100 · Fair |
| Install command | Confirmed | Not confirmed yet |
| Transport | Local subprocess (stdio) | — |
| Auth | API key required | OAuth 2.0 |
| Pricing | Free | Not declared |
| Required env vars | RUNAPI_API_KEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 55 | 1 |
| Directory activity | 3 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 9 | 32 |
| Full listing | View Runapi AI MCP | View Upstream.so |
list_modelsList RunAPI models from the embedded catalog. Optional filters: modality, service, or action.get_model_infoGet supported endpoint, current runtime pricing, and input constraints for a RunAPI model slug. Add service and action when the model supports multiple endpoints.list_actionsList RunAPI endpoint names grouped by output modality.check_pricingReturn current runtime pricing for a RunAPI model/action pair.search_promptsSearch RunAPI prompt examples by modality, category, tags, text query, model, or featured status. Free, no API key required.check_balanceReturn the authenticated RunAPI account balance and spending metrics.create_taskRun a RunAPI operation with a caller-generated idempotency key. Asynchronous operations can optionally poll until completion.get_taskFetch the current status and latest payload for an existing RunAPI task.loginAuthenticate RunAPI by opening a browser PKCE login flow and saving the API key to ~/.config/runapi/config.json.list_streamsList the streams owned by the account, newest first, paginated.get_streamGet one stream by UUID: settings, status, tags, destinations.create_streamCreate a stream — name, platform (`youtube`, `twitch`, `kick`, `custom`, `customsrt`), stream key.update_streamPartially update a stream; only provided fields change.delete_streamPermanently delete a stream and its configuration.start_streamStart broadcasting to the stream's platform.stop_streamStop a running stream. This interrupts a live broadcast for viewers.get_stream_queueGet the ordered items of one queue.add_to_stream_queueAppend media UUIDs to a queue — or `{url, name}` objects for `external-videos`.remove_from_stream_queueRemove one item. The media file itself is not deleted.reorder_stream_queueReplace a queue's playback order with a full ordered list of ids.list_mediaList and search the library, paginated. Filter by type, name or folder.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"runapi-ai-mcp": {
"command": "npx",
"args": [
"-y",
"@runapi.ai/mcp"
],
"env": {
"RUNAPI_API_KEY": "YOUR_RUNAPI_API_KEY_HERE"
}
}
}
}
No confirmed install command for Upstream.so yet — follow the setup steps linked from its listing page rather than a guessed package name.