Search, play, and control Stremio on Android TV over native ADB.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A Python Model Context Protocol (MCP) server for searching TMDB, opening Stremio content on Android TV, controlling playback over ADB, and optionally accessing your Stremio library.
[!IMPORTANT] This server can control a physical Android TV and, when
STREMIO_AUTH_KEYis configured, add or remove items from your Stremio library. ADB grants powerful device access. Review tool requests, keep credentials private, and disable Wireless Debugging when you are not using it.
adb) β install a current release and keep it updated; use at least the wireless-debugging era of Platform Tools (30.0.0+, when adb pair landed). Prefer the latest stable from the Platform Tools page for mDNS and TLS fixesRun the latest published release without cloning the repository:
To run the current release explicitly:
[!NOTE] This project is published on PyPI as
stremio-mcp-server. A separate, unrelated project is published asstremio-mcp; installing that name does not install this server. Thestremio-mcpconsole script below is provided by thestremio-mcp-serverdistribution.
Use a source checkout for development or local modifications:
Edit .env with your TV endpoint and API keys. The file is ignored by Git; never commit it.
This server talks to the TV through the native Platform Tools adb client, not a pure-Python ADB library. That is intentional: modern Wireless Debugging negotiates TLS (STLS) and this project needs a full shell for intents, key events, and media-session diagnostics. Pure-Python clients that only speak legacy ADB-over-TCP do not cover that path.
On the TV, enable Developer options and Wireless debugging. Menu names vary by manufacturer. Official wireless debugging for TV requires Android 13+; see Google's Connect to a device over Wi-Fi guide.
Modern Wireless Debugging displays separate pairing and connection ports (often ephemeral). Pair once, then connect with the current connection port:
Set ANDROID_TV_PORT to the connection port, not the temporary pairing port. The device must appear as device, not offline or unauthorized. Wireless Debugging ports may change after a reboot or after debugging is toggled. On newer Platform Tools and Android versions, a previously paired device may also reconnect via mDNS when it returns to a trusted network; still configure the explicit connection port when the UI shows one.
Legacy network debugging may use port 5555 (adb tcpip after USB); only use that workflow when your TV explicitly documents it. Prefer Wireless Debugging on supported TVs.
Claude Desktop configuration file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonCreate a private environment file from the example above, then configure:
Replace both absolute paths:
Restart the MCP client after changing configuration. You can instead place the variables directly in the client configuration's env object, but that file must remain private.
| Variable | Required for | Sensitive | Description |
|---|---|---|---|
ANDROID_TV_HOST | Playback and TV tools | Local network detail | Android TV IP address |
ANDROID_TV_PORT | Playback and TV tools | No | Current ADB connection port; defaults to legacy 5555 |
TMDB_API_KEY | search and title-based play with source="search" | Yes | TMDB credential. A v4 read access token is sent as an Authorization header; a legacy v3 key has no header form and is sent as a query parameter |
STREMIO_AUTH_KEY | library and library-based play | Yes | Account token used for Stremio library reads and writes; sent in the HTTPS request body only |
ADB_PATH | Optional | No | Native ADB executable; defaults to adb on PATH |
Features initialize independently. For example, TMDB search works without a TV connection, while direct IMDb playback does not require TMDB. Leave STREMIO_AUTH_KEY empty to disable library access.
Every HTTP request uses one shared async client with explicit timeouts, a bounded response size, and a bounded connection pool, so a slow or unreachable service cannot stall other tool calls or device controls. The defaults are safe; override them only when a slow link makes them too tight. An unparsable or out-of-range value is reported by variable name and replaced with the default.
| Variable | Default | Description |
|---|---|---|
STREMIO_MCP_CONNECT_TIMEOUT | 5 | Seconds to establish a connection |
STREMIO_MCP_READ_TIMEOUT | 20 | Seconds to wait for response data |
STREMIO_MCP_WRITE_TIMEOUT | 20 | Seconds to send request data |
STREMIO_MCP_POOL_TIMEOUT | 5 | Seconds to wait for a pooled connection |
STREMIO_MCP_MAX_RESPONSE_BYTES | 4194304 | Maximum TMDB/Cinemeta response body |
STREMIO_MCP_LIBRARY_MAX_RESPONSE_BYTES | 16777216 | Maximum Stremio library response body |
STREMIO_MCP_MAX_CONNECTIONS | 8 | Maximum simultaneous connections |
STREMIO_MCP_MAX_CONCURRENT_REQUESTS | 4 | Maximum simultaneous TMDB requests during a fan-out search |
| Tool | Purpose | External access and side effects |
|---|---|---|
search | Read-only TMDB discovery for movies/TV and IMDb IDs | Sends bounded read-only requests to TMDB; never changes the TV or account |
play | Open a movie or episode by direct IMDb ID or by title | Requires ADB; title search may query TMDB or the library, opens Stremio, and attempts a center key press |
library | Read the account or add/remove explicit items | Requires the Stremio auth key; only add and remove persist account changes |
tv_control | Send volume, playback, navigation, or power commands | Sends commands to the physical Android TV; playback stop verifies its post-condition |
playback_status | Read the current Stremio playback snapshot | Reads only Stremio-scoped media-session, audio-track, uptime, and extractor diagnostics |
Use search for TMDB discovery and library with action=search for the personal Stremio collection. Use play to open content, tv_control for remote-like commands, and playback_status to inspect what is actually playing. All five tools return plain text rather than structured result objects.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/stremio-mcp-server)<a href="https://allmcps.com/mcp/stremio-mcp-server"><img src="https://allmcps.com/api/badge/stremio-mcp-server?style=directory" alt="Stremio MCP Server on AllMCPs" /></a>