Bytestream ships a Model Context Protocol (MCP) server at mcp/server.mjs. It is a thin, read-only wrapper over the public catalog API: every tool maps to one op= endpoint, and the same guarantee applies — stream URLs never leave the API. Channels come back with a watch_path that opens the player on bytestream.tv instead.

Connect it

The server speaks JSON-RPC over stdio (newline-delimited or Content-Length-framed — both work). It needs Node 20+ and nothing else; no keys, no database.
By default it talks to production. Point it elsewhere with:

Tools

Behavior notes

  • NSFW is hidden unless a tool call passes nsfw: true — the same off-by-default rule as the app.
  • Channel ids are catalog ids; feed the ids bytestream_search returns into bytestream_get_channel, bytestream_programmes, and bytestream_recommend.
  • bytestream_trending returns an empty list until signed-in viewers generate watch/like/save signals — see Recommendations for how those flow.
  • Programme detail is only as rich as the broadcaster published; most fields are absent on most rows, by honesty rather than by bug.